http://scrolls.combats.com/~SSL/ - френд-лента - scrolls.combats.com Fri, 28 Feb 2020 01:50:00 GMT scrolls.combats.com - Скроллы Бойцовского Клуба http://scrolls.combats.com/i/avatar/big/0183_yyctjwl.jpg SSL http://scrolls.combats.com/~SSL/90 80 http://scrolls.combats.com/~x zmey x/1328875.html Fri, 28 Feb 2020 01:50:00 GMT http://scrolls.combats.com/~x zmey x/1328875.htmlx zmey x RecruitsComa <table class="commentTable" cellspacing="1" bgcolor="#e5e0d0"><tr><th bgcolor="#feeddc"><a href="http://capitalcity.combats.ru/clans_inf.pl?RecruitsComa" target="_blank">http://capitalcity.combats.ru/clans_inf.pl?RecruitsComa</a> <br><a href="http://scrolls.combats.com/~x%20zmey%20x/1328875.html" target="_blank">http://scrolls.combats.com/~x%20zmey%20x/1328875.html</a> <br><b>Update: 28-02-0 14:21</b> <br> <br>заголовок</th><th bgcolor="#feeddc">таблицы</th></tr><tr><td bgcolor="#feeddc">Шаблон</td><td bgcolor="#feeddc">таблицы</td></tr></table> <br> <br> <br>banner_clan_str.PGN.gif <br> <br><a href="http://www.google.com/url?q=http%3A%2F%2Fimg.combats.com%2Fi%2Fitems%2F20%2Fbanner_clan_str.gif&sa=D&sntz=1&usg=AFQjCNE85U-CA8RGYbBIeHE88T-N8nq57g" target="_blank">[img=http://www.google.com/url?q=http%3A%2F%2Fimg.combats.com%2Fi%2Fitems%2F20%2Fbanner_clan_str.gif&sa=D&sntz=1&usg=AFQjCNE85U-CA8RGYbBIeHE88T-N8nq57g]http://img.combats.com/i/items/20/banner_clan_str.gif[/img]</a> <br> <br><i>incorrect img url</i> <br> <br><a href="https://platform.twitter.com/widgets/tweet_button.7aeb03ce9f308997020e5998720fbbf7.en.html" target="_blank">https://platform.twitter.com/widgets/tweet_button.7aeb03ce9f308997020e5998720fbbf7.en.html</a> http://scrolls.combats.com/~x zmey x/1327593.html Wed, 22 Jan 2020 03:02:00 GMT http://scrolls.combats.com/~x zmey x/1327593.htmlx zmey x 4925.. 492.HTML5 <br> * Dual licensed under the MIT (MIT-LICENSE.txt) <br> * and GPL (GPL-LICENSE.txt) licenses. <br> * <br> * $Date: 2008/11/18 12:21:39 $ <br> * $Rev: 5685 $ <br> */ <br>(function() { <br> var _jQuery = window.jQuery <br> , _$ = window.$; <br> var jQuery = window.jQuery = window.$ = function(selector, context) { <br> return new jQuery.fn.init(selector,context); <br> } <br> ; <br> var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/, isSimple = /^.[^:#\[\.]*$/, undefined; <br> jQuery.fn = jQuery.prototype = { <br> init: function(selector, context) { <br> selector = selector || document; <br> if (selector.nodeType) { <br> this[0] = selector; <br> this.length = 1; <br> return this; <br> } <br> if (typeof selector == "string") { <br> var match = quickExpr.exec(selector); <br> if (match && (match[1] || !context)) { <br> if (match[1]) <br> selector = jQuery.clean([match[1]], context); <br> else { <br> var elem = document.getElementById(match[3]); <br> if (elem) { <br> if (elem.id != match[3]) <br> return jQuery().find(selector); <br> return jQuery(elem); <br> } <br> selector = []; <br> } <br> } else <br> return jQuery(context).find(selector); <br> } else if (jQuery.isFunction(selector)) <br> return jQuery(document)[jQuery.fn.ready ? "ready" : "load"](selector); <br> return this.setArray(jQuery.makeArray(selector)); <br> }, <br> jquery: "1.2.6", <br> size: function() { <br> return this.length; <br> }, <br> length: 0, <br> get: function(num) { <br> return num == undefined ? jQuery.makeArray(this) : this[num]; <br> }, <br> pushStack: function(elems) { <br> var ret = jQuery(elems); <br> ret.prevObject = this; <br> return ret; <br> }, <br> setArray: function(elems) { <br> this.length = 0; <br> Array.prototype.push.apply(this, elems); <br> return this; <br> }, <br> each: function(callback, args) { <br> return jQuery.each(this, callback, args); <br> }, <br> index: function(elem) { <br> var ret = -1; <br> return jQuery.inArray(elem && elem.jquery ? elem[0] : elem, this); <br> }, <br> attr: function(name, value, type) { <br> var options = name; <br> if (name.constructor == String) <br> if (value === undefined) <br> return this[0] && jQuery[type || "attr"](this[0], name); <br> else { <br> options = {}; <br> options[name] = value; <br> } <br> return this.each(function(i) { <br> for (name in options) <br> jQuery.attr(type ? this.style : this, name, jQuery.prop(this, options[name], type, i, name)); <br> }); <br> }, <br> css: function(key, value) { <br> if ((key == 'width' || key == 'height') && parseFloat(value) < 0) <br> value = undefined; <br> return this.attr(key, value, "curCSS"); <br> }, <br> text: function(text) { <br> if (typeof text != "object" && text != null) <br> return this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(text)); <br> var ret = ""; <br> jQuery.each(text || this, function() { <br> jQuery.each(this.childNodes, function() { <br> if (this.nodeType != 8) <br> ret += this.nodeType != 1 ? this.nodeValue : jQuery.fn.text([this]); <br> }); <br> }); <br> return ret; <br> }, <br> wrapAll: function(html) { <br> if (this[0]) <br> jQuery(html, this[0].ownerDocument).clone().insertBefore(this[0]).map(function() { <br> var elem = this; <br> while (elem.firstChild) <br> elem = elem.firstChild; <br> return elem; <br> }).append(this); <br> return this; <br> }, <br> wrapInner: function(html) { <br> return this.each(function() { <br> jQuery(this).contents().wrapAll(html); <br> }); <br> }, <br> wrap: function(html) { <br> return this.each(function() { <br> jQuery(this).wrapAll(html); <br> }); <br> }, <br> append: function() { <br> return this.domManip(arguments, true, false, function(elem) { <br> if (this.nodeType == 1) <br> this.appendChild(elem); <br> }); <br> }, <br> prepend: function() { <br> return this.domManip(arguments, true, true, function(elem) { <br> if (this.nodeType == 1) <br> this.insertBefore(elem, this.firstChild); <br> }); <br> }, <br> before: function() { <br> return this.domManip(arguments, false, false, function(elem) { <br> this.parentNode.insertBefore(elem, this); <br> }); <br> }, <br> after: function() { <br> return this.domManip(arguments, false, true, function(elem) { <br> this.parentNode.insertBefore(elem, this.nextSibling); <br> }); <br> }, <br> end: function() { <br> return this.prevObject || jQuery([]); <br> }, <br> find: function(selector) { <br> var elems = jQuery.map(this, function(elem) { <br> return jQuery.find(selector, elem); <br> }); <br> return this.pushStack(/[^+>] [^+>]/.test(selector) || selector.indexOf("..") > -1 ? jQuery.unique(elems) : elems); <br> }, <br> clone: function(events) { <br> var ret = this.map(function() { <br> if (jQuery.browser.msie && !jQuery.isXMLDoc(this)) { <br> var clone = this.cloneNode(true) <br> , container = document.createElement("div"); <br> container.appendChild(clone); <br> return jQuery.clean([container.innerHTML])[0]; <br> } else <br> return this.cloneNode(true); <br> }); <br> var clone = ret.find("*").andSelf().each(function() { <br> if (this[expando] != undefined) <br> this[expando] = null; <br> }); <br> if (events === true) <br> this.find("*").andSelf().each(function(i) { <br> if (this.nodeType == 3) <br> return; <br> var events = jQuery.data(this, "events"); <br> for (var type in events) <br> for (var handler in events[type]) <br> jQuery.event.add(clone[i], type, events[type][handler], events[type][handler].data); <br> }); <br> return ret; <br> }, <br> filter: function(selector) { <br> return this.pushStack(jQuery.isFunction(selector) && jQuery.grep(this, function(elem, i) { <br> return selector.call(elem, i); <br> }) || jQuery.multiFilter(selector, this)); <br> }, <br> not: function(selector) { <br> if (selector.constructor == String) <br> if (isSimple.test(selector)) <br> return this.pushStack(jQuery.multiFilter(selector, this, true)); <br> else <br> selector = jQuery.multiFilter(selector, this); <br> var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; <br> return this.filter(function() { <br> return isArrayLike ? jQuery.inArray(this, selector) < 0 : this != selector; <br> }); <br> }, <br> add: function(selector) { <br> return this.pushStack(jQuery.unique(jQuery.merge(this.get(), typeof selector == 'string' ? jQuery(selector) : jQuery.makeArray(selector)))); <br> }, <br> is: function(selector) { <br> return !!selector && jQuery.multiFilter(selector, this).length > 0; <br> }, <br> hasClass: function(selector) { <br> return this.is("." + selector); <br> }, <br> val: function(value) { <br> if (value == undefined) { <br> if (this.length) { <br> var elem = this[0]; <br> if (jQuery.nodeName(elem, "select")) { <br> var index = elem.selectedIndex <br> , values = [] <br> , options = elem.options <br> , one = elem.type == "select-one"; <br> if (index < 0) <br> return null; <br> for (var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++) { <br> var option = options[i]; <br> if (option.selected) { <br> value = jQuery.browser.msie && !option.attributes.value.specified ? option.text : option.value; <br> if (one) <br> return value; <br> values.push(value); <br> } <br> } <br> return values; <br> } else <br> return (this[0].value || "").replace(/\r/g, ""); <br> } <br> return undefined; <br> } <br> if (value.constructor == Number) <br> value += ''; <br> return this.each(function() { <br> if (this.nodeType != 1) <br> return; <br> if (value.constructor == Array && /radio|checkbox/.test(this.type)) <br> this.checked = (jQuery.inArray(this.value, value) >= 0 || jQuery.inArray(this.name, value) >= 0); <br> else if (jQuery.nodeName(this, "select")) { <br> var values = jQuery.makeArray(value); <br> jQuery("option", this).each(function() { <br> this.selected = (jQuery.inArray(this.value, values) >= 0 || jQuery.inArray(this.text, values) >= 0); <br> }); <br> if (!values.length) <br> this.selectedIndex = -1; <br> } else <br> this.value = value; <br> }); <br> }, <br> html: function(value) { <br> return value == undefined ? (this[0] ? this[0].innerHTML : null) : this.empty().append(value); <br> }, <br> replaceWith: function(value) { <br> return this.after(value).remove(); <br> }, <br> eq: function(i) { <br> return this.slice(i, i + 1); <br> }, <br> slice: function() { <br> return this.pushStack(Array.prototype.slice.apply(this, arguments)); <br> }, <br> map: function(callback) { <br> return this.pushStack(jQuery.map(this, function(elem, i) { <br> return callback.call(elem, i, elem); <br> })); <br> }, <br> andSelf: function() { <br> return this.add(this.prevObject); <br> }, <br> data: function(key, value) { <br> var parts = key.split("."); <br> parts[1] = parts[1] ? "." + parts[1] : ""; <br> if (value === undefined) { <br> var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); <br> if (data === undefined && this.length) <br> data = jQuery.data(this[0], key); <br> return data === undefined && parts[1] ? this.data(parts[0]) : data; <br> } else <br> return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function() { <br> jQuery.data(this, key, value); <br> }); <br> }, <br> removeData: function(key) { <br> return this.each(function() { <br> jQuery.removeData(this, key); <br> }); <br> }, <br> domManip: function(args, table, reverse, callback) { <br> var clone = this.length > 1, elems; <br> return this.each(function() { <br> if (!elems) { <br> elems = jQuery.clean(args, this.ownerDocument); <br> if (reverse) <br> elems.reverse(); <br> } <br> var obj = this; <br> if (table && jQuery.nodeName(this, "table") && jQuery.nodeName(elems[0], "tr")) <br> obj = this.getElementsByTagName("tbody")[0] || this.appendChild(this.ownerDocument.createElement("tbody")); <br> var scripts = jQuery([]); <br> jQuery.each(elems, function() { <br> var elem = clone ? jQuery(this).clone(true)[0] : this; <br> if (jQuery.nodeName(elem, "script")) <br> scripts = scripts.add(elem); <br> else { <br> if (elem.nodeType == 1) <br> scripts = scripts.add(jQuery("script", elem).remove()); <br> callback.call(obj, elem); <br> } <br> }); <br> scripts.each(evalScript); <br> }); <br> } <br> }; <br> jQuery.fn.init.prototype = jQuery.fn; <br> function evalScript(i, elem) { <br> if (elem.src) <br> jQuery.ajax({ <br> url: elem.src, <br> async: false, <br> dataType: "script" <br> }); <br> else <br> jQuery.globalEval(elem.text || elem.textContent || elem.innerHTML || ""); <br> if (elem.parentNode) <br> elem.parentNode.removeChild(elem); <br> } <br> function now() { <br> return +new Date; <br> } <br> jQuery.extend = jQuery.fn.extend = function() { <br> var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; <br> if (target.constructor == Boolean) { <br> deep = target; <br> target = arguments[1] || {}; <br> i = 2; <br> } <br> if (typeof target != "object" && typeof target != "function") <br> target = {}; <br> if (length == i) { <br> target = this; <br> --i; <br> } <br> for (; i < length; i++) <br> if ((options = arguments[i]) != null) <br> for (var name in options) { <br> var src = target[name] <br> , copy = options[name]; <br> if (target === copy) <br> continue; <br> if (deep && copy && typeof copy == "object" && !copy.nodeType) <br> target[name] = jQuery.extend(deep, src || (copy.length != null ? [] : {}), copy); <br> else if (copy !== undefined) <br> target[name] = copy; <br> } <br> return target; <br> } <br> ; <br> var expando = "jQuery" + now() <br> , uuid = 0 <br> , windowData = {} <br> , exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i <br> , defaultView = document.defaultView || {}; <br> jQuery.extend({ <br> noConflict: function(deep) { <br> window.$ = _$; <br> if (deep) <br> window.jQuery = _jQuery; <br> return jQuery; <br> }, <br> isFunction: function(fn) { <br> return !!fn && typeof fn != "string" && !fn.nodeName && fn.constructor != Array && /^[\s[]?function/.test(fn + ""); <br> }, <br> isXMLDoc: function(elem) { <br> return elem.documentElement && !elem.body || elem.tagName && elem.ownerDocument && !elem.ownerDocument.body; <br> }, <br> globalEval: function(data) { <br> data = jQuery.trim(data); <br> if (data) { <br> var head = document.getElementsByTagName("head")[0] || document.documentElement <br> , script = document.createElement("script"); <br> script.type = "text/jаvаscript"; <br> if (jQuery.browser.msie) <br> script.text = data; <br> else <br> script.appendChild(document.createTextNode(data)); <br> head.insertBefore(script, head.firstChild); <br> head.removeChild(script); <br> } <br> }, <br> nodeName: function(elem, name) { <br> return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); <br> }, <br> cache: {}, <br> data: function(elem, name, data) { <br> elem = elem == window ? windowData : elem; <br> var id = elem[expando]; <br> if (!id) <br> id = elem[expando] = ++uuid; <br> if (name && !jQuery.cache[id]) <br> jQuery.cache[id] = {}; <br> if (data !== undefined) <br> jQuery.cache[id][name] = data; <br> return name ? jQuery.cache[id][name] : id; <br> }, <br> removeData: function(elem, name) { <br> elem = elem == window ? windowData : elem; <br> var id = elem[expando]; <br> if (name) { <br> if (jQuery.cache[id]) { <br> delete jQuery.cache[id][name]; <br> name = ""; <br> for (name in jQuery.cache[id]) <br> break; <br> if (!name) <br> jQuery.removeData(elem); <br> } <br> } else { <br> try { <br> delete elem[expando]; <br> } catch (e) { <br> if (elem.removeAttribute) <br> elem.removeAttribute(expando); <br> } <br> delete jQuery.cache[id]; <br> } <br> }, <br> each: function(object, callback, args) { <br> var name, i = 0, length = object.length; <br> if (args) { <br> if (length == undefined) { <br> for (name in object) <br> if (callback.apply(object[name], args) === false) <br> break; <br> } else <br> for (; i < length; ) <br> if (callback.apply(object[i++], args) === false) <br> break; <br> } else { <br> if (length == undefined) { <br> for (name in object) <br> if (callback.call(object[name], name, object[name]) === false) <br> break; <br> } else <br> for (var value = object[0]; i < length && callback.call(value, i, value) !== false; value = object[++i]) {} <br> } <br> return object; <br> }, <br> prop: function(elem, value, type, i, name) { <br> if (jQuery.isFunction(value)) <br> value = value.call(elem, i); <br> return value && value.constructor == Number && type == "curCSS" && !exclude.test(name) ? value + "px" : value; <br> }, <br> className: { <br> add: function(elem, classNames) { <br> jQuery.each((classNames || "").split(/\s+/), function(i, className) { <br> if (elem.nodeType == 1 && !jQuery.className.has(elem.className, className)) <br> elem.className += (elem.className ? " " : "") + className; <br> }); <br> }, <br> remove: function(elem, classNames) { <br> if (elem.nodeType == 1) <br> elem.className = classNames != undefined ? jQuery.grep(elem.className.split(/\s+/), function(className) { <br> return !jQuery.className.has(classNames, className); <br> }).join(" ") : ""; <br> }, <br> has: function(elem, className) { <br> return jQuery.inArray(className, (elem.className || elem).toString().split(/\s+/)) > -1; <br> } <br> }, <br> swap: function(elem, options, callback) { <br> var old = {}; <br> for (var name in options) { <br> old[name] = elem.style[name]; <br> elem.style[name] = options[name]; <br> } <br> callback.call(elem); <br> for (var name in options) <br> elem.style[name] = old[name]; <br> }, <br> css: function(elem, name, force) { <br> if (name == "width" || name == "height") { <br> var val, props = { <br> position: "absolute", <br> visibility: "hidden", <br> display: "block" <br> }, which = name == "width" ? ["Left", "Right"] : ["Top", "Bottom"]; <br> function getWH() { <br> val = name == "width" ? elem.offsetWidth : elem.offsetHeight; <br> var padding = 0 <br> , border = 0; <br> jQuery.each(which, function() { <br> padding += parseFloat(jQuery.curCSS(elem, "padding" + this, true)) || 0; <br> border += parseFloat(jQuery.curCSS(elem, "border" + this + "Width", true)) || 0; <br> }); <br> val -= Math.round(padding + border); <br> } <br> if (jQuery(elem).is(":visible")) <br> getWH(); <br> else <br> jQuery.swap(elem, props, getWH); <br> return Math.max(0, val); <br> } <br> return jQuery.curCSS(elem, name, force); <br> }, <br> curCSS: function(elem, name, force) { <br> var ret, style = elem.style; <br> function color(elem) { <br> if (!jQuery.browser.safari) <br> return false; <br> var ret = defaultView.getComputedStyle(elem, null); <br> return !ret || ret.getPropertyValue("color") == ""; <br> } <br> if (name == "opacity" && jQuery.browser.msie) { <br> ret = jQuery.attr(style, "opacity"); <br> return ret == "" ? "1" : ret; <br> } <br> if (jQuery.browser.opera && name == "display") { <br> var save = style.outline; <br> style.outline = "0 solid black"; <br> style.outline = save; <br> } <br> if (name.match(/float/i)) <br> name = styleFloat; <br> if (!force && style && style[name]) <br> ret = style[name]; <br> else if (defaultView.getComputedStyle) { <br> if (name.match(/float/i)) <br> name = "float"; <br> name = name.replace(/([A-Z])/g, "-$1").toLowerCase(); <br> var computedStyle = defaultView.getComputedStyle(elem, null); <br> if (computedStyle && !color(elem)) <br> ret = computedStyle.getPropertyValue(name); <br> else { <br> var swap = [] <br> , stack = [] <br> , a = elem <br> , i = 0; <br> for (; a && color(a); a = a.parentNode) <br> stack.unshift(a); <br> for (; i < stack.length; i++) <br> if (color(stack[i])) { <br> swap[i] = stack[i].style.display; <br> stack[i].style.display = "block"; <br> } <br> ret = name == "display" && swap[stack.length - 1] != null ? "none" : (computedStyle && computedStyle.getPropertyValue(name)) || ""; <br> for (i = 0; i < swap.length; i++) <br> if (swap[i] != null) <br> stack[i].style.display = swap[i]; <br> } <br> if (name == "opacity" && ret == "") <br> ret = "1"; <br> } else if (elem.currentStyle) { <br> var camelCase = name.replace(/\-(\w)/g, function(all, letter) { <br> return letter.toUpperCase(); <br> }); <br> ret = elem.currentStyle[name] || elem.currentStyle[camelCase]; <br> if (!/^\d+(px)?$/i.test(ret) && /^\d/.test(ret)) { <br> var left = style.left <br> , rsLeft = elem.runtimeStyle.left; <br> elem.runtimeStyle.left = elem.currentStyle.left; <br> style.left = ret || 0; <br> ret = style.pixelLeft + "px"; <br> style.left = left; <br> elem.runtimeStyle.left = rsLeft; <br> } <br> } <br> return ret; <br> }, <br> clean: function(elems, context) { <br> var ret = []; <br> context = context || document; <br> if (typeof context.createElement == 'undefined') <br> context = context.ownerDocument || context[0] && context[0].ownerDocument || document; <br> jQuery.each(elems, function(i, elem) { <br> if (!elem) <br> return; <br> if (elem.constructor == Number) <br> elem += ''; <br> if (typeof elem == "string") { <br> elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag) { <br> return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? all : front + "></" + tag + ">"; <br> }); <br> var tags = jQuery.trim(elem).toLowerCase() <br> , div = context.createElement("div"); <br> var wrap = !tags.indexOf("<opt") && [1, "<select multiple='multiple'>", "</select>"] || !tags.indexOf("<leg") && [1, "<fieldset>", "</fieldset>"] || tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && [1, "<table>", "</table>"] || !tags.indexOf("<tr") && [2, "<table><tbody>", "</tbody></table>"] || (!tags.indexOf("<td") || !tags.indexOf("<th")) && [3, "<table><tbody><tr>", "</tr></tbody></table>"] || !tags.indexOf("<col") && [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"] || jQuery.browser.msie && [1, "div<div>", "</div>"] || [0, "", ""]; <br> div.innerHTML = wrap[1] + elem + wrap[2]; <br> while (wrap[0]--) <br> div = div.lastChild; <br> if (jQuery.browser.msie) { <br> var tbody = !tags.indexOf("<table") && tags.indexOf("<tbody") < 0 ? div.firstChild && div.firstChild.childNodes : wrap[1] == "<table>" && tags.indexOf("<tbody") < 0 ? div.childNodes : []; <br> for (var j = tbody.length - 1; j >= 0; --j) <br> if (jQuery.nodeName(tbody[j], "tbody") && !tbody[j].childNodes.length) <br> tbody[j].parentNode.removeChild(tbody[j]); <br> if (/^\s/.test(elem)) <br> div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]), div.firstChild); <br> } <br> elem = jQuery.makeArray(div.childNodes); <br> } <br> if (elem.length === 0 && (!jQuery.nodeName(elem, "form") && !jQuery.nodeName(elem, "select"))) <br> return; <br> if (elem[0] == undefined || jQuery.nodeName(elem, "form") || elem.options) <br> ret.push(elem); <br> else <br> ret = jQuery.merge(ret, elem); <br> }); <br> return ret; <br> }, <br> attr: function(elem, name, value) { <br> if (!elem || elem.nodeType == 3 || elem.nodeType == 8) <br> return undefined; <br> var notxml = !jQuery.isXMLDoc(elem) <br> , set = value !== undefined <br> , msie = jQuery.browser.msie; <br> name = notxml && jQuery.props[name] || name; <br> if (elem.tagName) { <br> var special = /href|src|style/.test(name); <br> if (name == "selected" && jQuery.browser.safari) <br> elem.parentNode.selectedIndex; <br> if (name in elem && notxml && !special) { <br> if (set) { <br> if (name == "type" && jQuery.nodeName(elem, "input") && elem.parentNode) <br> throw "type property can't be changed"; <br> elem[name] = value; <br> } <br> if (jQuery.nodeName(elem, "form") && elem.getAttributeNode(name)) <br> return elem.getAttributeNode(name).nodeValue; <br> return elem[name]; <br> } <br> if (msie && notxml && name == "style") <br> return jQuery.attr(elem.style, "cssText", value); <br> if (set) <br> elem.setAttribute(name, "" + value); <br> var attr = msie && notxml && special ? elem.getAttribute(name, 2) : elem.getAttribute(name); <br> return attr === null ? undefined : attr; <br> } <br> if (msie && name == "opacity") { <br> if (set) { <br> elem.zoom = 1; <br> elem.filter = (elem.filter || "").replace(/alpha\([^)]*\)/, "") + (parseInt(value) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")"); <br> } <br> return elem.filter && elem.filter.indexOf("opacity=") >= 0 ? (parseFloat(elem.filter.match(/opacity=([^)]*)/)[1]) / 100) + '' : ""; <br> } <br> name = name.replace(/-([a-z])/ig, function(all, letter) { <br> return letter.toUpperCase(); <br> }); <br> if (set) <br> elem[name] = value; <br> return elem[name]; <br> }, <br> trim: function(text) { <br> return (text || "").replace(/^\s+|\s+$/g, ""); <br> }, <br> makeArray: function(array) { <br> var ret = []; <br> if (array != null) { <br> var i = array.length; <br> if (i == null || array.split || array.setInterval || array.call) <br> ret[0] = array; <br> else <br> while (i) <br> ret[--i] = array[i]; <br> } <br> return ret; <br> }, <br> inArray: function(elem, array) { <br> for (var i = 0, length = array.length; i < length; i++) <br> if (array[i] === elem) <br> return i; <br> return -1; <br> }, <br> merge: function(first, second) { <br> var i = 0, elem, pos = first.length; <br> if (jQuery.browser.msie) { <br> while (elem = second[i++]) <br> if (elem.nodeType != 8) <br> first[pos++] = elem; <br> } else <br> while (elem = second[i++]) <br> first[pos++] = elem; <br> return first; <br> }, <br> unique: function(array) { <br> var ret = [] <br> , done = {}; <br> try { <br> for (var i = 0, length = array.length; i < length; i++) { <br> var id = jQuery.data(array[i]); <br> if (!done[id]) { <br> done[id] = true; <br> ret.push(array[i]); <br> } <br> } <br> } catch (e) { <br> ret = array; <br> } <br> return ret; <br> }, <br> grep: function(elems, callback, inv) { <br> var ret = []; <br> for (var i = 0, length = elems.length; i < length; i++) <br> if (!inv != !callback(elems[i], i)) <br> ret.push(elems[i]); <br> return ret; <br> }, <br> map: function(elems, callback) { <br> var ret = []; <br> for (var i = 0, length = elems.length; i < length; i++) { <br> var value = callback(elems[i], i); <br> if (value != null) <br> ret[ret.length] = value; <br> } <br> return ret.concat.apply([], ret); <br> } <br> }); <br> var userAgent = navigator.userAgent.toLowerCase(); <br> jQuery.browser = { <br> version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1], <br> safari: /webkit/.test(userAgent), <br> opera: /opera/.test(userAgent), <br> msie: /msie/.test(userAgent) && !/opera/.test(userAgent), <br> mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent) <br> }; <br> var styleFloat = jQuery.browser.msie ? "styleFloat" : "cssFloat"; <br> jQuery.extend({ <br> boxModel: !jQuery.browser.msie || document.compatMode == "CSS1Compat", <br> props: { <br> "for": "htmlFor", <br> "class": "className", <br> "float": styleFloat, <br> cssFloat: styleFloat, <br> styleFloat: styleFloat, <br> readonly: "readOnly", <br> maxlength: "maxLength", <br> cellspacing: "cellSpacing" <br> } <br> }); <br> jQuery.each({ <br> parent: function(elem) { <br> return elem.parentNode; <br> }, <br> parents: function(elem) { <br> return jQuery.dir(elem, "parentNode"); <br> }, <br> next: function(elem) { <br> return jQuery.nth(elem, 2, "nextSibling"); <br> }, <br> prev: function(elem) { <br> return jQuery.nth(elem, 2, "previousSibling"); <br> }, <br> nextAll: function(elem) { <br> return jQuery.dir(elem, "nextSibling"); <br> }, <br> prevAll: function(elem) { <br> return jQuery.dir(elem, "previousSibling"); <br> }, <br> siblings: function(elem) { <br> return jQuery.sibling(elem.parentNode.firstChild, elem); <br> }, <br> children: function(elem) { <br> return jQuery.sibling(elem.firstChild); <br> }, <br> contents: function(elem) { <br> return jQuery.nodeName(elem, "iframe") ? elem.contentDocument || elem.contentWindow.document : jQuery.makeArray(elem.childNodes); <br> } <br> }, function(name, fn) { <br> jQuery.fn[name] = function(selector) { <br> var ret = jQuery.map(this, fn); <br> if (selector && typeof selector == "string") <br> ret = jQuery.multiFilter(selector, ret); <br> return this.pushStack(jQuery.unique(ret)); <br> } <br> ; <br> }); <br> jQuery.each({ <br> appendTo: "append", <br> prependTo: "prepend", <br> insertBefore: "before", <br> insertAfter: "after", <br> replaceAll: "replaceWith" <br> }, function(name, original) { <br> jQuery.fn[name] = function() { <br> var args = arguments; <br> return this.each(function() { <br> for (var i = 0, length = args.length; i < length; i++) <br> jQuery(args[i])[original](this); <br> }); <br> } <br> ; <br> }); <br> jQuery.each({ <br> removeAttr: function(name) { <br> jQuery.attr(this, name, ""); <br> if (this.nodeType == 1) <br> this.removeAttribute(name); <br> }, <br> addClass: function(classNames) { <br> jQuery.className.add(this, classNames); <br> }, <br> removeClass: function(classNames) { <br> jQuery.className.remove(this, classNames); <br> }, <br> toggleClass: function(classNames) { <br> jQuery.className[jQuery.className.has(this, classNames) ? "remove" : "add"](this, classNames); <br> }, <br> remove: function(selector) { <br> if (!selector || jQuery.filter(selector, [this]).r.length) { <br> jQuery("*", this).add(this).each(function() { <br> jQuery.event.remove(this); <br> jQuery.removeData(this); <br> }); <br> if (this.parentNode) <br> this.parentNode.removeChild(this); <br> } <br> }, <br> empty: function() { <br> jQuery(">*", this).remove(); <br> while (this.firstChild) <br> this.removeChild(this.firstChild); <br> } <br> }, function(name, fn) { <br> jQuery.fn[name] = function() { <br> return this.each(fn, arguments); <br> } <br> ; <br> }); <br> jQuery.each(["Height", "Width"], function(i, name) { <br> var type = name.toLowerCase(); <br> jQuery.fn[type] = function(size) { <br> return this[0] == window ? jQuery.browser.opera && document.body["client" + name] || jQuery.browser.safari && window["inner" + name] || document.compatMode == "CSS1Compat" && document.documentElement["client" + name] || document.body["client" + name] : this[0] == document ? Math.max(Math.max(document.body["scroll" + name], document.documentElement["scroll" + name]), Math.max(document.body["offset" + name], document.documentElement["offset" + name])) : size == undefined ? (this.length ? jQuery.css(this[0], type) : null) : this.css(type, size.constructor == String ? size : size + "px"); <br> } <br> ; <br> }); <br> function num(elem, prop) { <br> return elem[0] && parseInt(jQuery.curCSS(elem[0], prop, true), 10) || 0; <br> } <br> var chars = jQuery.browser.safari && parseInt(jQuery.browser.version) < 417 ? "(?:[\\w*_-]|\\\\.)" : "(?:[\\w\u0128-\uFFFF*_-]|\\\\.)" <br> , quickChild = new RegExp("^>\\s*(" + chars + "+)") <br> , quickID = new RegExp("^(" + chars + "+)(#)(" + chars + "+)") <br> , quickClass = new RegExp("^([#.]?)(" + chars + "*)"); <br> jQuery.extend({ <br> expr: { <br> "": function(a, i, m) { <br> return m[2] == "*" || jQuery.nodeName(a, m[2]); <br> }, <br> "#": function(a, i, m) { <br> return a.getAttribute("id") == m[2]; <br> }, <br> ":": { <br> lt: function(a, i, m) { <br> return i < m[3] - 0; <br> }, <br> gt: function(a, i, m) { <br> return i > m[3] - 0; <br> }, <br> nth: function(a, i, m) { <br> return m[3] - 0 == i; <br> }, <br> eq: function(a, i, m) { <br> return m[3] - 0 == i; <br> }, <br> first: function(a, i) { <br> return i == 0; <br> }, <br> last: function(a, i, m, r) { <br> return i == r.length - 1; <br> }, <br> even: function(a, i) { <br> return i % 2 == 0; <br> }, <br> odd: function(a, i) { <br> return i % 2; <br> }, <br> "first-child": function(a) { <br> return a.parentNode.getElementsByTagName("*")[0] == a; <br> }, <br> "last-child": function(a) { <br> return jQuery.nth(a.parentNode.lastChild, 1, "previousSibling") == a; <br> }, <br> "only-child": function(a) { <br> return !jQuery.nth(a.parentNode.lastChild, 2, "previousSibling"); <br> }, <br> parent: function(a) { <br> return a.firstChild; <br> }, <br> empty: function(a) { <br> return !a.firstChild; <br> }, <br> contains: function(a, i, m) { <br> return (a.textContent || a.innerText || jQuery(a).text() || "").indexOf(m[3]) >= 0; <br> }, <br> visible: function(a) { <br> return "hidden" != a.type && jQuery.css(a, "display") != "none" && jQuery.css(a, "visibility") != "hidden"; <br> }, <br> hidden: function(a) { <br> return "hidden" == a.type || jQuery.css(a, "display") == "none" || jQuery.css(a, "visibility") == "hidden"; <br> }, <br> enabled: function(a) { <br> return !a.disabled; <br> }, <br> disabled: function(a) { <br> return a.disabled; <br> }, <br> checked: function(a) { <br> return a.checked; <br> }, <br> selected: function(a) { <br> return a.selected || jQuery.attr(a, "selected"); <br> }, <br> text: function(a) { <br> return "text" == a.type; <br> }, <br> radio: function(a) { <br> return "radio" == a.type; <br> }, <br> checkbox: function(a) { <br> return "checkbox" == a.type; <br> }, <br> file: function(a) { <br> return "file" == a.type; <br> }, <br> password: function(a) { <br> return "password" == a.type; <br> }, <br> submit: function(a) { <br> return "submit" == a.type; <br> }, <br> image: function(a) { <br> return "image" == a.type; <br> }, <br> reset: function(a) { <br> return "reset" == a.type; <br> }, <br> button: function(a) { <br> return "button" == a.type || jQuery.nodeName(a, "button"); <br> }, <br> input: function(a) { <br> return /input|select|textarea|button/i.test(a.nodeName); <br> }, <br> has: function(a, i, m) { <br> return jQuery.find(m[3], a).length; <br> }, <br> header: function(a) { <br> return /h\d/i.test(a.nodeName); <br> }, <br> animated: function(a) { <br> return jQuery.grep(jQuery.timers, function(fn) { <br> return a == fn.elem; <br> }).length; <br> } <br> } <br> }, <br> parse: [/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/, /^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/, new RegExp("^([:.#]*)(" + chars + "+)")], <br> multiFilter: function(expr, elems, not) { <br> var old, cur = []; <br> while (expr && expr != old) { <br> old = expr; <br> var f = jQuery.filter(expr, elems, not); <br> expr = f.t.replace(/^\s*,\s*/, ""); <br> cur = not ? elems = f.r : jQuery.merge(cur, f.r); <br> } <br> return cur; <br> }, <br> find: function(t, context) { <br> if (typeof t != "string") <br> return [t]; <br> if (context && context.nodeType != 1 && context.nodeType != 9) <br> return []; <br> context = context || document; <br> var ret = [context], done = [], last, nodeName; <br> while (t && last != t) { <br> var r = []; <br> last = t; <br> t = jQuery.trim(t); <br> var foundToken = false <br> , re = quickChild <br> , m = re.exec(t); <br> if (m) { <br> nodeName = m[1].toUpperCase(); <br> for (var i = 0; ret[i]; i++) <br> for (var c = ret[i].firstChild; c; c = c.nextSibling) <br> if (c.nodeType == 1 && (nodeName == "*" || c.nodeName.toUpperCase() == nodeName)) <br> r.push(c); <br> ret = r; <br> t = t.replace(re, ""); <br> if (t.indexOf(" ") == 0) <br> continue; <br> foundToken = true; <br> } else { <br> re = /^([>+~])\s*(\w*)/i; <br> if ((m = re.exec(t)) != null) { <br> r = []; <br> var merge = {}; <br> nodeName = m[2].toUpperCase(); <br> m = m[1]; <br> for (var j = 0, rl = ret.length; j < rl; j++) { <br> var n = m == "~" || m == "+" ? ret[j].nextSibling : ret[j].firstChild; <br> for (; n; n = n.nextSibling) <br> if (n.nodeType == 1) { <br> var id = jQuery.data(n); <br> if (m == "~" && merge[id]) <br> break; <br> if (!nodeName || n.nodeName.toUpperCase() == nodeName) { <br> if (m == "~") <br> merge[id] = true; <br> r.push(n); <br> } <br> if (m == "+") <br> break; <br> } <br> } <br> ret = r; <br> t = jQuery.trim(t.replace(re, "")); <br> foundToken = true; <br> } <br> } <br> if (t && !foundToken) { <br> if (!t.indexOf(",")) { <br> if (context == ret[0]) <br> ret.shift(); <br> done = jQuery.merge(done, ret); <br> r = ret = [context]; <br> t = " " + t.substr(1, t.length); <br> } else { <br> var re2 = quickID; <br> var m = re2.exec(t); <br> if (m) { <br> m = [0, m[2], m[3], m[1]]; <br> } else { <br> re2 = quickClass; <br> m = re2.exec(t); <br> } <br> m[2] = m[2].replace(/\\/g, ""); <br> var elem = ret[ret.length - 1]; <br> if (m[1] == "#" && elem && elem.getElementById && !jQuery.isXMLDoc(elem)) { <br> var oid = elem.getElementById(m[2]); <br> if ((jQuery.browser.msie || jQuery.browser.opera) && oid && typeof oid.id == "string" && oid.id != m[2]) <br> oid = jQuery('[@id="' + m[2] + '"]', elem)[0]; <br> ret = r = oid && (!m[3] || jQuery.nodeName(oid, m[3])) ? [oid] : []; <br> } else { <br> for (var i = 0; ret[i]; i++) { <br> var tag = m[1] == "#" && m[3] ? m[3] : m[1] != "" || m[0] == "" ? "*" : m[2]; <br> if (tag == "*" && ret[i].nodeName.toLowerCase() == "object") <br> tag = "param"; <br> r = jQuery.merge(r, ret[i].getElementsByTagName(tag)); <br> } <br> if (m[1] == ".") <br> r = jQuery.classFilter(r, m[2]); <br> if (m[1] == "#") { <br> var tmp = []; <br> for (var i = 0; r[i]; i++) <br> if (r[i].getAttribute("id") == m[2]) { <br> tmp = [r[i]]; <br> break; <br> } <br> r = tmp; <br> } <br> ret = r; <br> } <br> t = t.replace(re2, ""); <br> } <br> } <br> if (t) { <br> var val = jQuery.filter(t, r); <br> ret = r = val.r; <br> t = jQuery.trim(val.t); <br> } <br> } <br> if (t) <br> ret = []; <br> if (ret && context == ret[0]) <br> ret.shift(); <br> done = jQuery.merge(done, ret); <br> return done; <br> }, <br> classFilter: function(r, m, not) { <br> m = " " + m + " "; <br> var tmp = []; <br> for (var i = 0; r[i]; i++) { <br> var pass = (" " + r[i].className + " ").indexOf(m) >= 0; <br> if (!not && pass || not && !pass) <br> tmp.push(r[i]); <br> } <br> return tmp; <br> }, <br> filter: function(t, r, not) { <br> var last; <br> while (t && t != last) { <br> last = t; <br> var p = jQuery.parse, m; <br> for (var i = 0; p[i]; i++) { <br> m = p[i].exec(t); <br> if (m) { <br> t = t.substring(m[0].length); <br> m[2] = m[2].replace(/\\/g, ""); <br> break; <br> } <br> } <br> if (!m) <br> break; <br> if (m[1] == ":" && m[2] == "not") <br> r = isSimple.test(m[3]) ? jQuery.filter(m[3], r, true).r : jQuery(r).not(m[3]); <br> else if (m[1] == ".") <br> r = jQuery.classFilter(r, m[2], not); <br> else if (m[1] == "[") { <br> var tmp = [] <br> , type = m[3]; <br> for (var i = 0, rl = r.length; i < rl; i++) { <br> var a = r[i] <br> , z = a[jQuery.props[m[2]] || m[2]]; <br> if (z == null || /href|src|selected/.test(m[2])) <br> z = jQuery.attr(a, m[2]) || ''; <br> if ((type == "" && !!z || type == "=" && z == m[5] || type == "!=" && z != m[5] || type == "^=" && z && !z.indexOf(m[5]) || type == "$=" && z.substr(z.length - m[5].length) == m[5] || (type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) ^ not) <br> tmp.push(a); <br> } <br> r = tmp; <br> } else if (m[1] == ":" && m[2] == "nth-child") { <br> var merge = {} <br> , tmp = [] <br> , test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3] == "even" && "2n" || m[3] == "odd" && "2n+1" || !/\D/.test(m[3]) && "0n+" + m[3] || m[3]) <br> , first = (test[1] + (test[2] || 1)) - 0 <br> , last = test[3] - 0; <br> for (var i = 0, rl = r.length; i < rl; i++) { <br> var node = r[i] <br> , parentNode = node.parentNode <br> , id = jQuery.data(parentNode); <br> if (!merge[id]) { <br> var c = 1; <br> for (var n = parentNode.firstChild; n; n = n.nextSibling) <br> if (n.nodeType == 1) <br> n.nodeIndex = c++; <br> merge[id] = true; <br> } <br> var add = false; <br> if (first == 0) { <br> if (node.nodeIndex == last) <br> add = true; <br> } else if ((node.nodeIndex - last) % first == 0 && (node.nodeIndex - last) / first >= 0) <br> add = true; <br> if (add ^ not) <br> tmp.push(node); <br> } <br> r = tmp; <br> } else { <br> var fn = jQuery.expr[m[1]]; <br> if (typeof fn == "object") <br> fn = fn[m[2]]; <br> if (typeof fn == "string") <br> fn = eval("false||function(a,i){return " + fn + ";}"); <br> r = jQuery.grep(r, function(elem, i) { <br> return fn(elem, i, m, r); <br> }, not); <br> } <br> } <br> return { <br> r: r, <br> t: t <br> }; <br> }, <br> dir: function(elem, dir) { <br> var matched = [] <br> , cur = elem[dir]; <br> while (cur && cur != document) { <br> if (cur.nodeType == 1) <br> matched.push(cur); <br> cur = cur[dir]; <br> } <br> return matched; <br> }, <br> nth: function(cur, result, dir, elem) { <br> result = result || 1; <br> var num = 0; <br> for (; cur; cur = cur[dir]) <br> if (cur.nodeType == 1 && ++num == result) <br> break; <br> return cur; <br> }, <br> sibling: function(n, elem) { <br> var r = []; <br> for (; n; n = n.nextSibling) { <br> if (n.nodeType == 1 && n != elem) <br> r.push(n); <br> } <br> return r; <br> } <br> }); <br> jQuery.event = { <br> add: function(elem, types, handler, data) { <br> if (elem.nodeType == 3 || elem.nodeType == 8) <br> return; <br> if (jQuery.browser.msie && elem.setInterval) <br> elem = window; <br> if (!handler.guid) <br> handler.guid = this.guid++; <br> if (data != undefined) { <br> var fn = handler; <br> handler = this.proxy(fn, function() { <br> return fn.apply(this, arguments); <br> }); <br> handler.data = data; <br> } <br> var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}) <br> , handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function() { <br> if (typeof jQuery != "undefined" && !jQuery.event.triggered) <br> return jQuery.event.handle.apply(arguments.callee.elem, arguments); <br> }); <br> handle.elem = elem; <br> jQuery.each(types.split(/\s+/), function(index, type) { <br> var parts = type.split("."); <br> type = parts[0]; <br> handler.type = parts[1]; <br> var handlers = events[type]; <br> if (!handlers) { <br> handlers = events[type] = {}; <br> if (!jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem) === false) { <br> if (elem.addEventListener) <br> elem.addEventListener(type, handle, false); <br> else if (elem.attachEvent) <br> elem.attachEvent("on" + type, handle); <br> } <br> } <br> handlers[handler.guid] = handler; <br> jQuery.event.global[type] = true; <br> }); <br> elem = null; <br> }, <br> guid: 1, <br> global: {}, <br> remove: function(elem, types, handler) { <br> if (elem.nodeType == 3 || elem.nodeType == 8) <br> return; <br> var events = jQuery.data(elem, "events"), ret, index; <br> if (events) { <br> if (types == undefined || (typeof types == "string" && types.charAt(0) == ".")) <br> for (var type in events) <br> this.remove(elem, type + (types || "")); <br> else { <br> if (types.type) { <br> handler = types.handler; <br> types = types.type; <br> } <br> jQuery.each(types.split(/\s+/), function(index, type) { <br> var parts = type.split("."); <br> type = parts[0]; <br> if (events[type]) { <br> if (handler) <br> delete events[type][handler.guid]; <br> else <br> for (handler in events[type]) <br> if (!parts[1] || events[type][handler].type == parts[1]) <br> delete events[type][handler]; <br> for (ret in events[type]) <br> break; <br> if (!ret) { <br> if (!jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem) === false) { <br> if (elem.removeEventListener) <br> elem.removeEventListener(type, jQuery.data(elem, "handle"), false); <br> else if (elem.detachEvent) <br> elem.detachEvent("on" + type, jQuery.data(elem, "handle")); <br> } <br> ret = null; <br> delete events[type]; <br> } <br> } <br> }); <br> } <br> for (ret in events) <br> break; <br> if (!ret) { <br> var handle = jQuery.data(elem, "handle"); <br> if (handle) <br> handle.elem = null; <br> jQuery.removeData(elem, "events"); <br> jQuery.removeData(elem, "handle"); <br> } <br> } <br> }, <br> trigger: function(type, data, elem, donative, extra) { <br> data = jQuery.makeArray(data); <br> if (type.indexOf("!") >= 0) { <br> type = type.slice(0, -1); <br> var exclusive = true; <br> } <br> if (!elem) { <br> if (this.global[type]) <br> jQuery("*").add([window, document]).trigger(type, data); <br> } else { <br> if (elem.nodeType == 3 || elem.nodeType == 8) <br> return undefined; <br> var val, ret, fn = jQuery.isFunction(elem[type] || null), event = !data[0] || !data[0].preventDefault; <br> if (event) { <br> data.unshift({ <br> type: type, <br> target: elem, <br> preventDefault: function() {}, <br> stopPropagation: function() {}, <br> timeStamp: now() <br> }); <br> data[0][expando] = true; <br> } <br> data[0].type = type; <br> if (exclusive) <br> data[0].exclusive = true; <br> var handle = jQuery.data(elem, "handle"); <br> if (handle) <br> val = handle.apply(elem, data); <br> if ((!fn || (jQuery.nodeName(elem, 'a') && type == "click")) && elem["on" + type] && elem["on" + type].apply(elem, data) === false) <br> val = false; <br> if (event) <br> data.shift(); <br> if (extra && jQuery.isFunction(extra)) { <br> ret = extra.apply(elem, val == null ? data : data.concat(val)); <br> if (ret !== undefined) <br> val = ret; <br> } <br> if (fn && donative !== false && val !== false && !(jQuery.nodeName(elem, 'a') && type == "click")) { <br> this.triggered = true; <br> try { <br> elem[type](); <br> } catch (e) {} <br> } <br> this.triggered = false; <br> } <br> return val; <br> }, <br> handle: function(event) { <br> var val, ret, namespace, all, handlers; <br> event = arguments[0] = jQuery.event.fix(event || window.event); <br> namespace = event.type.split("."); <br> event.type = namespace[0]; <br> namespace = namespace[1]; <br> all = !namespace && !event.exclusive; <br> handlers = (jQuery.data(this, "events") || {})[event.type]; <br> for (var j in handlers) { <br> var handler = handlers[j]; <br> if (all || handler.type == namespace) { <br> event.handler = handler; <br> event.data = handler.data; <br> ret = handler.apply(this, arguments); <br> if (val !== false) <br> val = ret; <br> if (ret === false) { <br> event.preventDefault(); <br> event.stopPropagation(); <br> } <br> } <br> } <br> return val; <br> }, <br> fix: function(event) { <br> if (event[expando] == true) <br> return event; <br> var originalEvent = event; <br> event = { <br> originalEvent: originalEvent <br> }; <br> var props = "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" "); <br> for (var i = props.length; i; i--) <br> event[props[i]] = originalEvent[props[i]]; <br> event[expando] = true; <br> event.preventDefault = function() { <br> if (originalEvent.preventDefault) <br> originalEvent.preventDefault(); <br> originalEvent.returnValue = false; <br> } <br> ; <br> event.stopPropagation = function() { <br> if (originalEvent.stopPropagation) <br> originalEvent.stopPropagation(); <br> originalEvent.cancelBubble = true; <br> } <br> ; <br> event.timeStamp = event.timeStamp || now(); <br> if (!event.target) <br> event.target = event.srcElement || document; <br> if (event.target.nodeType == 3) <br> event.target = event.target.parentNode; <br> if (!event.relatedTarget && event.fromElement) <br> event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement; <br> if (event.pageX == null && event.clientX != null) { <br> var doc = document.documentElement <br> , body = document.body; <br> event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0); <br> event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0); <br> } <br> if (!event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode)) <br> event.which = event.charCode || event.keyCode; <br> if (!event.metaKey && event.ctrlKey) <br> event.metaKey = event.ctrlKey; <br> if (!event.which && event.button) <br> event.which = (event.button & 1 ? 1 : (event.button & 2 ? 3 : (event.button & 4 ? 2 : 0))); <br> return event; <br> }, <br> proxy: function(fn, proxy) { <br> proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++; <br> return proxy; <br> }, <br> special: { <br> ready: { <br> setup: function() { <br> bindReady(); <br> return; <br> }, <br> teardown: function() { <br> return; <br> } <br> }, <br> mouseenter: { <br> setup: function() { <br> if (jQuery.browser.msie) <br> return false; <br> jQuery(this).bind("mouseover", jQuery.event.special.mouseenter.handler); <br> return true; <br> }, <br> teardown: function() { <br> if (jQuery.browser.msie) <br> return false; <br> jQuery(this).unbind("mouseover", jQuery.event.special.mouseenter.handler); <br> return true; <br> }, <br> handler: function(event) { <br> if (withinElement(event, this)) <br> return true; <br> event.type = "mouseenter"; <br> return jQuery.event.handle.apply(this, arguments); <br> } <br> }, <br> mouseleave: { <br> setup: function() { <br> if (jQuery.browser.msie) <br> return false; <br> jQuery(this).bind("mouseout", jQuery.event.special.mouseleave.handler); <br> return true; <br> }, <br> teardown: function() { <br> if (jQuery.browser.msie) <br> return false; <br> jQuery(this).unbind("mouseout", jQuery.event.special.mouseleave.handler); <br> return true; <br> }, <br> handler: function(event) { <br> if (withinElement(event, this)) <br> return true; <br> event.type = "mouseleave"; <br> return jQuery.event.handle.apply(this, arguments); <br> } <br> } <br> } <br> }; <br> jQuery.fn.extend({ <br> bind: function(type, data, fn) { <br> return type == "unload" ? this.one(type, data, fn) : this.each(function() { <br> jQuery.event.add(this, type, fn || data, fn && data); <br> }); <br> }, <br> one: function(type, data, fn) { <br> var one = jQuery.event.proxy(fn || data, function(event) { <br> jQuery(this).unbind(event, one); <br> return (fn || data).apply(this, arguments); <br> }); <br> return this.each(function() { <br> jQuery.event.add(this, type, one, fn && data); <br> }); <br> }, <br> unbind: function(type, fn) { <br> return this.each(function() { <br> jQuery.event.remove(this, type, fn); <br> }); <br> }, <br> trigger: function(type, data, fn) { <br> return this.each(function() { <br> jQuery.event.trigger(type, data, this, true, fn); <br> }); <br> }, <br> triggerHandler: function(type, data, fn) { <br> return this[0] && jQuery.event.trigger(type, data, this[0], false, fn); <br> }, <br> toggle: function(fn) { <br> var args = arguments <br> , i = 1; <br> while (i < args.length) <br> jQuery.event.proxy(fn, args[i++]); <br> return this.click(jQuery.event.proxy(fn, function(event) { <br> this.lastToggle = (this.lastToggle || 0) % i; <br> event.preventDefault(); <br> return args[this.lastToggle++].apply(this, arguments) || false; <br> })); <br> }, <br> hover: function(fnOver, fnOut) { <br> return this.bind('mouseenter', fnOver).bind('mouseleave', fnOut); <br> }, <br> ready: function(fn) { <br> bindReady(); <br> if (jQuery.isReady) <br> fn.call(document, jQuery); <br> else <br> jQuery.readyList.push(function() { <br> return fn.call(this, jQuery); <br> }); <br> return this; <br> } <br> }); <br> jQuery.extend({ <br> isReady: false, <br> readyList: [], <br> ready: function() { <br> if (!jQuery.isReady) { <br> jQuery.isReady = true; <br> if (jQuery.readyList) { <br> jQuery.each(jQuery.readyList, function() { <br> this.call(document); <br> }); <br> jQuery.readyList = null; <br> } <br> jQuery(document).triggerHandler("ready"); <br> } <br> } <br> }); <br> var readyBound = false; <br> function bindReady() { <br> if (readyBound) <br> return; <br> readyBound = true; <br> if (document.addEventListener && !jQuery.browser.opera) <br> document.addEventListener("DOMContentLoaded", jQuery.ready, false); <br> if (jQuery.browser.msie && window == top) <br> (function() { <br> if (jQuery.isReady) <br> return; <br> try { <br> document.documentElement.doScroll("left"); <br> } catch (error) { <br> setTimeout(arguments.callee, 0); <br> return; <br> } <br> jQuery.ready(); <br> } <br> )(); <br> if (jQuery.browser.opera) <br> document.addEventListener("DOMContentLoaded", function() { <br> if (jQuery.isReady) <br> return; <br> for (var i = 0; i < document.styleSheets.length; i++) <br> if (document.styleSheets[i].disabled) { <br> setTimeout(arguments.callee, 0); <br> return; <br> } <br> jQuery.ready(); <br> }, false); <br> if (jQuery.browser.safari) { <br> var numStyles; <br> (function() { <br> if (jQuery.isReady) <br> return; <br> if (document.readyState != "loaded" && document.readyState != "complete") { <br> setTimeout(arguments.callee, 0); <br> return; <br> } <br> if (numStyles === undefined) <br> numStyles = jQuery("style, link[rel=stylesheet]").length; <br> if (document.styleSheets.length != numStyles) { <br> setTimeout(arguments.callee, 0); <br> return; <br> } <br> jQuery.ready(); <br> } <br> )(); <br> } <br> jQuery.event.add(window, "load", jQuery.ready); <br> } <br> jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick," + "mousedown,mouseup,mousemove,mouseover,mouseout,change,select," + "submit,keydown,keypress,keyup,error").split(","), function(i, name) { <br> jQuery.fn[name] = function(fn) { <br> return fn ? this.bind(name, fn) : this.trigger(name); <br> } <br> ; <br> }); <br> var withinElement = function(event, elem) { <br> var parent = event.relatedTarget; <br> while (parent && parent != elem) <br> try { <br> parent = parent.parentNode; <br> } catch (error) { <br> parent = elem; <br> } <br> return parent == elem; <br> }; <br> jQuery(window).bind("unload", function() { <br> jQuery("*").add(document).unbind(); <br> }); <br> jQuery.fn.extend({ <br> _load: jQuery.fn.load, <br> load: function(url, params, callback) { <br> if (typeof url != 'string') <br> return this._load(url); <br> var off = url.indexOf(" "); <br> if (off >= 0) { <br> var selector = url.slice(off, url.length); <br> url = url.slice(0, off); <br> } <br> callback = callback || function() {} <br> ; <br> var type = "GET"; <br> if (params) <br> if (jQuery.isFunction(params)) { <br> callback = params; <br> params = null; <br> } else { <br> params = jQuery.param(params); <br> type = "POST"; <br> } <br> var self = this; <br> jQuery.ajax({ <br> url: url, <br> type: type, <br> dataType: "html", <br> data: params, <br> complete: function(res, status) { <br> if (status == "success" || status == "notmodified") <br> self.html(selector ? jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g, "")).find(selector) : res.responseText); <br> self.each(callback, [res.responseText, status, res]); <br> } <br> }); <br> return this; <br> }, <br> serialize: function() { <br> return jQuery.param(this.serializeArray()); <br> }, <br> serializeArray: function() { <br> return this.map(function() { <br> return jQuery.nodeName(this, "form") ? jQuery.makeArray(this.elements) : this; <br> }).filter(function() { <br> return this.name && !this.disabled && (this.checked || /select|textarea/i.test(this.nodeName) || /text|hidden|password/i.test(this.type)); <br> }).map(function(i, elem) { <br> var val = jQuery(this).val(); <br> return val == null ? null : val.constructor == Array ? jQuery.map(val, function(val, i) { <br> return { <br> name: elem.name, <br> value: val <br> }; <br> }) : { <br> name: elem.name, <br> value: val <br> }; <br> }).get(); <br> } <br> }); <br> jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i, o) { <br> jQuery.fn[o] = function(f) { <br> return this.bind(o, f); <br> } <br> ; <br> }); <br> var jsc = now(); <br> jQuery.extend({ <br> get: function(url, data, callback, type) { <br> if (jQuery.isFunction(data)) { <br> callback = data; <br> data = null; <br> } <br> return jQuery.ajax({ <br> type: "GET", <br> url: url, <br> data: data, <br> success: callback, <br> dataType: type <br> }); <br> }, <br> getScript: function(url, callback) { <br> return jQuery.get(url, null, callback, "script"); <br> }, <br> getJSON: function(url, data, callback) { <br> return jQuery.get(url, data, callback, "json"); <br> }, <br> post: function(url, data, callback, type) { <br> if (jQuery.isFunction(data)) { <br> callback = data; <br> data = {}; <br> } <br> return jQuery.ajax({ <br> type: "POST", <br> url: url, <br> data: data, <br> success: callback, <br> dataType: type <br> }); <br> }, <br> ajaxSetup: function(settings) { <br> jQuery.extend(jQuery.ajaxSettings, settings); <br> }, <br> ajaxSettings: { <br> url: location.href, <br> global: true, <br> type: "GET", <br> timeout: 0, <br> contentType: "application/x-www-form-urlencoded", <br> processData: true, <br> async: true, <br> data: null, <br> username: null, <br> password: null, <br> accepts: { <br> xml: "application/xml, text/xml", <br> html: "text/html", <br> script: "text/jаvаscript, application/jаvаscript", <br> json: "application/json, text/jаvаscript", <br> text: "text/plain", <br> _default: "*/*" <br> } <br> }, <br> lastModified: {}, <br> ajax: function(s) { <br> s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s)); <br> var jsonp, jsre = /=\?(&|$)/g, status, data, type = s.type.toUpperCase(); <br> if (s.data && s.processData && typeof s.data != "string") <br> s.data = jQuery.param(s.data); <br> if (s.dataType == "jsonp") { <br> if (type == "GET") { <br> if (!s.url.match(jsre)) <br> s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?"; <br> } else if (!s.data || !s.data.match(jsre)) <br> s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?"; <br> s.dataType = "json"; <br> } <br> if (s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre))) { <br> jsonp = "jsonp" + jsc++; <br> if (s.data) <br> s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1"); <br> s.url = s.url.replace(jsre, "=" + jsonp + "$1"); <br> s.dataType = "script"; <br> window[jsonp] = function(tmp) { <br> data = tmp; <br> success(); <br> complete(); <br> window[jsonp] = undefined; <br> try { <br> delete window[jsonp]; <br> } catch (e) {} <br> if (head) <br> head.removeChild(script); <br> } <br> ; <br> } <br> if (s.dataType == "script" && s.cache == null) <br> s.cache = false; <br> if (s.cache === false && type == "GET") { <br> var ts = now(); <br> var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2"); <br> s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : ""); <br> } <br> if (s.data && type == "GET") { <br> s.url += (s.url.match(/\?/) ? "&" : "?") + s.data; <br> s.data = null; <br> } <br> if (s.global && !jQuery.active++) <br> jQuery.event.trigger("ajaxStart"); <br> var remote = /^(?:\w+:)?\/\/([^\/?#]+)/; <br> if (s.dataType == "script" && type == "GET" && remote.test(s.url) && remote.exec(s.url)[1] != location.host) { <br> var head = document.getElementsByTagName("head")[0]; <br> var script = document.createElement("script"); <br> script.src = s.url; <br> if (s.scriptCharset) <br> script.charset = s.scriptCharset; <br> if (!jsonp) { <br> var done = false; <br> script.onload = script.onreadystatechange = function() { <br> if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) { <br> done = true; <br> success(); <br> complete(); <br> head.removeChild(script); <br> } <br> } <br> ; <br> } <br> head.appendChild(script); <br> return undefined; <br> } <br> var requestDone = false; <br> var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); <br> if (s.username) <br> xhr.open(type, s.url, s.async, s.username, s.password); <br> else <br> xhr.open(type, s.url, s.async); <br> try { <br> if (s.data) <br> xhr.setRequestHeader("Content-Type", s.contentType); <br> if (s.ifModified) <br> xhr.setRequestHeader("If-Modified-Since", jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT"); <br> xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); <br> xhr.setRequestHeader("Accept", s.dataType && s.accepts[s.dataType] ? s.accepts[s.dataType] + ", */*" : s.accepts._default); <br> } catch (e) {} <br> if (s.beforeSend && s.beforeSend(xhr, s) === false) { <br> s.global && jQuery.active--; <br> xhr.abort(); <br> return false; <br> } <br> if (s.global) <br> jQuery.event.trigger("ajaxSend", [xhr, s]); <br> var onreadystatechange = function(isTimeout) { <br> if (!requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout")) { <br> requestDone = true; <br> if (ival) { <br> clearInterval(ival); <br> ival = null; <br> } <br> status = isTimeout == "timeout" && "timeout" || !jQuery.httpSuccess(xhr) && "error" || s.ifModified && jQuery.httpNotModified(xhr, s.url) && "notmodified" || "success"; <br> if (status == "success") { <br> try { <br> data = jQuery.httpData(xhr, s.dataType, s.dataFilter); <br> } catch (e) { <br> status = "parsererror"; <br> } <br> } <br> if (status == "success") { <br> var modRes; <br> try { <br> modRes = xhr.getResponseHeader("Last-Modified"); <br> } catch (e) {} <br> if (s.ifModified && modRes) <br> jQuery.lastModified[s.url] = modRes; <br> if (!jsonp) <br> success(); <br> } else <br> jQuery.handleError(s, xhr, status); <br> complete(); <br> if (s.async) <br> xhr = null; <br> } <br> }; <br> if (s.async) { <br> var ival = setInterval(onreadystatechange, 13); <br> if (s.timeout > 0) <br> setTimeout(function() { <br> if (xhr) { <br> xhr.abort(); <br> if (!requestDone) <br> onreadystatechange("timeout"); <br> } <br> }, s.timeout); <br> } <br> try { <br> xhr.send(s.data); <br> } catch (e) { <br> jQuery.handleError(s, xhr, null, e); <br> } <br> if (!s.async) <br> onreadystatechange(); <br> function success() { <br> if (s.success) <br> s.success(data, status); <br> if (s.global) <br> jQuery.event.trigger("ajaxSuccess", [xhr, s]); <br> } <br> function complete() { <br> if (s.complete) <br> s.complete(xhr, status); <br> if (s.global) <br> jQuery.event.trigger("ajaxComplete", [xhr, s]); <br> if (s.global && !--jQuery.active) <br> jQuery.event.trigger("ajaxStop"); <br> } <br> return xhr; <br> }, <br> handleError: function(s, xhr, status, e) { <br> if (s.error) <br> s.error(xhr, status, e); <br> if (s.global) <br> jQuery.event.trigger("ajaxError", [xhr, s, e]); <br> }, <br> active: 0, <br> httpSuccess: function(xhr) { <br> try { <br> return !xhr.status && location.protocol == "file:" || (xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || xhr.status == 1223 || jQuery.browser.safari && xhr.status == undefined; <br> } catch (e) {} <br> return false; <br> }, <br> httpNotModified: function(xhr, url) { <br> try { <br> var xhrRes = xhr.getResponseHeader("Last-Modified"); <br> return xhr.status == 304 || xhrRes == jQuery.lastModified[url] || jQuery.browser.safari && xhr.status == undefined; <br> } catch (e) {} <br> return false; <br> }, <br> httpData: function(xhr, type, filter) { <br> var ct = xhr.getResponseHeader("content-type") <br> , xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0 <br> , data = xml ? xhr.responseXML : xhr.responseText; <br> if (xml && data.documentElement.tagName == "parsererror") <br> throw "parsererror"; <br> if (filter) <br> data = filter(data, type); <br> if (type == "script") <br> jQuery.globalEval(data); <br> if (type == "json") <br> data = eval("(" + data + ")"); <br> return data; <br> }, <br> param: function(a) { <br> var s = []; <br> if (a.constructor == Array || a.jquery) <br> jQuery.each(a, function() { <br> s.push(encodeURIComponent(this.name) + "=" + encodeURIComponent(this.value)); <br> }); <br> else <br> for (var j in a) <br> if (a[j] && a[j].constructor == Array) <br> jQuery.each(a[j], function() { <br> s.push(encodeURIComponent(j) + "=" + encodeURIComponent(this)); <br> }); <br> else <br> s.push(encodeURIComponent(j) + "=" + encodeURIComponent(jQuery.isFunction(a[j]) ? a[j]() : a[j])); <br> return s.join("&").replace(/%20/g, "+"); <br> } <br> }); <br> jQuery.fn.extend({ <br> show: function(speed, callback) { <br> return speed ? this.animate({ <br> height: "show", <br> width: "show", <br> opacity: "show" <br> }, speed, callback) : this.filter(":hidden").each(function() { <br> this.style.display = this.oldblock || ""; <br> if (jQuery.css(this, "display") == "none") { <br> var elem = jQuery("<" + this.tagName + " />").appendTo("body"); <br> this.style.display = elem.css("display"); <br> if (this.style.display == "none") <br> this.style.display = "block"; <br> elem.remove(); <br> } <br> }).end(); <br> }, <br> hide: function(speed, callback) { <br> return speed ? this.animate({ <br> height: "hide", <br> width: "hide", <br> opacity: "hide" <br> }, speed, callback) : this.filter(":visible").each(function() { <br> this.oldblock = this.oldblock || jQuery.css(this, "display"); <br> this.style.display = "none"; <br> }).end(); <br> }, <br> _toggle: jQuery.fn.toggle, <br> toggle: function(fn, fn2) { <br> return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ? this._toggle.apply(this, arguments) : fn ? this.animate({ <br> height: "toggle", <br> width: "toggle", <br> opacity: "toggle" <br> }, fn, fn2) : this.each(function() { <br> jQuery(this)[jQuery(this).is(":hidden") ? "show" : "hide"](); <br> }); <br> }, <br> slideDown: function(speed, callback) { <br> return this.animate({ <br> height: "show" <br> }, speed, callback); <br> }, <br> slideUp: function(speed, callback) { <br> return this.animate({ <br> height: "hide" <br> }, speed, callback); <br> }, <br> slideToggle: function(speed, callback) { <br> return this.animate({ <br> height: "toggle" <br> }, speed, callback); <br> }, <br> fadeIn: function(speed, callback) { <br> return this.animate({ <br> opacity: "show" <br> }, speed, callback); <br> }, <br> fadeOut: function(speed, callback) { <br> return this.animate({ <br> opacity: "hide" <br> }, speed, callback); <br> }, <br> fadeTo: function(speed, to, callback) { <br> return this.animate({ <br> opacity: to <br> }, speed, callback); <br> }, <br> animate: function(prop, speed, easing, callback) { <br> var optall = jQuery.speed(speed, easing, callback); <br> return this[optall.queue === false ? "each" : "queue"](function() { <br> if (this.nodeType != 1) <br> return false; <br> var opt = jQuery.extend({}, optall), p, hidden = jQuery(this).is(":hidden"), self = this; <br> for (p in prop) { <br> if (prop[p] == "hide" && hidden || prop[p] == "show" && !hidden) <br> return opt.complete.call(this); <br> if (p == "height" || p == "width") { <br> opt.display = jQuery.css(this, "display"); <br> opt.overflow = this.style.overflow; <br> } <br> } <br> if (opt.overflow != null) <br> this.style.overflow = "hidden"; <br> opt.curAnim = jQuery.extend({}, prop); <br> jQuery.each(prop, function(name, val) { <br> var e = new jQuery.fx(self,opt,name); <br> if (/toggle|show|hide/.test(val)) <br> e[val == "toggle" ? hidden ? "show" : "hide" : val](prop); <br> else { <br> var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/) <br> , start = e.cur(true) || 0; <br> if (parts) { <br> var end = parseFloat(parts[2]) <br> , unit = parts[3] || "px"; <br> if (unit != "px") { <br> self.style[name] = (end || 1) + unit; <br> start = ((end || 1) / e.cur(true)) * start; <br> self.style[name] = start + unit; <br> } <br> if (parts[1]) <br> end = ((parts[1] == "-=" ? -1 : 1) * end) + start; <br> e.custom(start, end, unit); <br> } else <br> e.custom(start, val, ""); <br> } <br> }); <br> return true; <br> }); <br> }, <br> queue: function(type, fn) { <br> if (jQuery.isFunction(type) || (type && type.constructor == Array)) { <br> fn = type; <br> type = "fx"; <br> } <br> if (!type || (typeof type == "string" && !fn)) <br> return queue(this[0], type); <br> return this.each(function() { <br> if (fn.constructor == Array) <br> queue(this, type, fn); <br> else { <br> queue(this, type).push(fn); <br> if (queue(this, type).length == 1) <br> fn.call(this); <br> } <br> }); <br> }, <br> stop: function(clearQueue, gotoEnd) { <br> var timers = jQuery.timers; <br> if (clearQueue) <br> this.queue([]); <br> this.each(function() { <br> for (var i = timers.length - 1; i >= 0; i--) <br> if (timers[i].elem == this) { <br> if (gotoEnd) <br> timers[i](true); <br> timers.splice(i, 1); <br> } <br> }); <br> if (!gotoEnd) <br> this.dequeue(); <br> return this; <br> } <br> }); <br> var queue = function(elem, type, array) { <br> if (elem) { <br> type = type || "fx"; <br> var q = jQuery.data(elem, type + "queue"); <br> if (!q || array) <br> q = jQuery.data(elem, type + "queue", jQuery.makeArray(array)); <br> } <br> return q; <br> }; <br> jQuery.fn.dequeue = function(type) { <br> type = type || "fx"; <br> return this.each(function() { <br> var q = queue(this, type); <br> q.shift(); <br> if (q.length) <br> q[0].call(this); <br> }); <br> } <br> ; <br> jQuery.extend({ <br> speed: function(speed, easing, fn) { <br> var opt = speed && speed.constructor == Object ? speed : { <br> complete: fn || !fn && easing || jQuery.isFunction(speed) && speed, <br> duration: speed, <br> easing: fn && easing || easing && easing.constructor != Function && easing <br> }; <br> opt.duration = (opt.duration && opt.duration.constructor == Number ? opt.duration : jQuery.fx.speeds[opt.duration]) || jQuery.fx.speeds.def; <br> opt.old = opt.complete; <br> opt.complete = function() { <br> if (opt.queue !== false) <br> jQuery(this).dequeue(); <br> if (jQuery.isFunction(opt.old)) <br> opt.old.call(this); <br> } <br> ; <br> return opt; <br> }, <br> easing: { <br> linear: function(p, n, firstNum, diff) { <br> return firstNum + diff * p; <br> }, <br> swing: function(p, n, firstNum, diff) { <br> return ((-Math.cos(p * Math.PI) / 2) + 0.5) * diff + firstNum; <br> } <br> }, <br> timers: [], <br> timerId: null, <br> fx: function(elem, options, prop) { <br> this.options = options; <br> this.elem = elem; <br> this.prop = prop; <br> if (!options.orig) <br> options.orig = {}; <br> } <br> }); <br> jQuery.fx.prototype = { <br> update: function() { <br> if (this.options.step) <br> this.options.step.call(this.elem, this.now, this); <br> (jQuery.fx.step[this.prop] || jQuery.fx.step._default)(this); <br> if (this.prop == "height" || this.prop == "width") <br> this.elem.style.display = "block"; <br> }, <br> cur: function(force) { <br> if (this.elem[this.prop] != null && this.elem.style[this.prop] == null) <br> return this.elem[this.prop]; <br> var r = parseFloat(jQuery.css(this.elem, this.prop, force)); <br> return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0; <br> }, <br> custom: function(from, to, unit) { <br> this.startTime = now(); <br> this.start = from; <br> this.end = to; <br> this.unit = unit || this.unit || "px"; <br> this.now = this.start; <br> this.pos = this.state = 0; <br> this.update(); <br> var self = this; <br> function t(gotoEnd) { <br> return self.step(gotoEnd); <br> } <br> t.elem = this.elem; <br> jQuery.timers.push(t); <br> if (jQuery.timerId == null) { <br> jQuery.timerId = setInterval(function() { <br> var timers = jQuery.timers; <br> for (var i = 0; i < timers.length; i++) <br> if (!timers[i]()) <br> timers.splice(i--, 1); <br> if (!timers.length) { <br> clearInterval(jQuery.timerId); <br> jQuery.timerId = null; <br> } <br> }, 13); <br> } <br> }, <br> show: function() { <br> this.options.orig[this.prop] = jQuery.attr(this.elem.style, this.prop); <br> this.options.show = true; <br> this.custom(0, this.cur()); <br> if (this.prop == "width" || this.prop == "height") <br> this.elem.style[this.prop] = "1px"; <br> jQuery(this.elem).show(); <br> }, <br> hide: function() { <br> this.options.orig[this.prop] = jQuery.attr(this.elem.style, this.prop); <br> this.options.hide = true; <br> this.custom(this.cur(), 0); <br> }, <br> step: function(gotoEnd) { <br> var t = now(); <br> if (gotoEnd || t > this.options.duration + this.startTime) { <br> this.now = this.end; <br> this.pos = this.state = 1; <br> this.update(); <br> this.options.curAnim[this.prop] = true; <br> var done = true; <br> for (var i in this.options.curAnim) <br> if (this.options.curAnim[i] !== true) <br> done = false; <br> if (done) { <br> if (this.options.display != null) { <br> this.elem.style.overflow = this.options.overflow; <br> this.elem.style.display = this.options.display; <br> if (jQuery.css(this.elem, "display") == "none") <br> this.elem.style.display = "block"; <br> } <br> if (this.options.hide) <br> this.elem.style.display = "none"; <br> if (this.options.hide || this.options.show) <br> for (var p in this.options.curAnim) <br> jQuery.attr(this.elem.style, p, this.options.orig[p]); <br> } <br> if (done) <br> this.options.complete.call(this.elem); <br> return false; <br> } else { <br> var n = t - this.startTime; <br> this.state = n / this.options.duration; <br> this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration); <br> this.now = this.start + ((this.end - this.start) * this.pos); <br> this.update(); <br> } <br> return true; <br> } <br> }; <br> jQuery.extend(jQuery.fx, { <br> speeds: { <br> slow: 600, <br> fast: 200, <br> def: 400 <br> }, <br> step: { <br> scrollLeft: function(fx) { <br> fx.elem.scrollLeft = fx.now; <br> }, <br> scrollTop: function(fx) { <br> fx.elem.scrollTop = fx.now; <br> }, <br> opacity: function(fx) { <br> jQuery.attr(fx.elem.style, "opacity", fx.now); <br> }, <br> _default: function(fx) { <br> fx.elem.style[fx.prop] = fx.now + fx.unit; <br> } <br> } <br> }); <br> jQuery.fn.offset = function() { <br> var left = 0, top = 0, elem = this[0], results; <br> if (elem) <br> with (jQuery.browser) { <br> var parent = elem.parentNode <br> , offsetChild = elem <br> , offsetParent = elem.offsetParent <br> , doc = elem.ownerDocument <br> , safari2 = safari && parseInt(version) < 522 && !/adobeair/i.test(userAgent) <br> , css = jQuery.curCSS <br> , fixed = css(elem, "position") == "fixed"; <br> if (elem.getBoundingClientRect) { <br> var box = elem.getBoundingClientRect(); <br> add(box.left + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft), box.top + Math.max(doc.documentElement.scrollTop, doc.body.scrollTop)); <br> add(-doc.documentElement.clientLeft, -doc.documentElement.clientTop); <br> } else { <br> add(elem.offsetLeft, elem.offsetTop); <br> while (offsetParent) { <br> add(offsetParent.offsetLeft, offsetParent.offsetTop); <br> if (mozilla && !/^t(able|d|h)$/i.test(offsetParent.tagName) || safari && !safari2) <br> border(offsetParent); <br> if (!fixed && css(offsetParent, "position") == "fixed") <br> fixed = true; <br> offsetChild = /^body$/i.test(offsetParent.tagName) ? offsetChild : offsetParent; <br> offsetParent = offsetParent.offsetParent; <br> } <br> while (parent && parent.tagName && !/^body|html$/i.test(parent.tagName)) { <br> if (!/^inline|table.*$/i.test(css(parent, "display"))) <br> add(-parent.scrollLeft, -parent.scrollTop); <br> if (mozilla && css(parent, "overflow") != "visible") <br> border(parent); <br> parent = parent.parentNode; <br> } <br> if ((safari2 && (fixed || css(offsetChild, "position") == "absolute")) || (mozilla && css(offsetChild, "position") != "absolute")) <br> add(-doc.body.offsetLeft, -doc.body.offsetTop); <br> if (fixed) <br> add(Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft), Math.max(doc.documentElement.scrollTop, doc.body.scrollTop)); <br> } <br> results = { <br> top: top, <br> left: left <br> }; <br> } <br> function border(elem) { <br> add(jQuery.curCSS(elem, "borderLeftWidth", true), jQuery.curCSS(elem, "borderTopWidth", true)); <br> } <br> function add(l, t) { <br> left += parseInt(l, 10) || 0; <br> top += parseInt(t, 10) || 0; <br> } <br> return results; <br> } <br> ; <br> jQuery.fn.extend({ <br> position: function() { <br> var left = 0, top = 0, results; <br> if (this[0]) { <br> var offsetParent = this.offsetParent() <br> , offset = this.offset() <br> , parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? { <br> top: 0, <br> left: 0 <br> } : offsetParent.offset(); <br> offset.top -= num(this, 'marginTop'); <br> offset.left -= num(this, 'marginLeft'); <br> parentOffset.top += num(offsetParent, 'borderTopWidth'); <br> parentOffset.left += num(offsetParent, 'borderLeftWidth'); <br> results = { <br> top: offset.top - parentOffset.top, <br> left: offset.left - parentOffset.left <br> }; <br> } <br> return results; <br> }, <br> offsetParent: function() { <br> var offsetParent = this[0].offsetParent; <br> while (offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && jQuery.css(offsetParent, 'position') == 'static')) <br> offsetParent = offsetParent.offsetParent; <br> return jQuery(offsetParent); <br> } <br> }); <br> jQuery.each(['Left', 'Top'], function(i, name) { <br> var method = 'scroll' + name; <br> jQuery.fn[method] = function(val) { <br> if (!this[0]) <br> return; <br> return val != undefined ? this.each(function() { <br> this == window || this == document ? window.scrollTo(!i ? val : jQuery(window).scrollLeft(), i ? val : jQuery(window).scrollTop()) : this[method] = val; <br> }) : this[0] == window || this[0] == document ? self[i ? 'pageYOffset' : 'pageXOffset'] || jQuery.boxModel && document.documentElement[method] || document.body[method] : this[0][method]; <br> } <br> ; <br> }); <br> jQuery.each(["Height", "Width"], function(i, name) { <br> var tl = i ? "Left" : "Top" <br> , br = i ? "Right" : "Bottom"; <br> jQuery.fn["inner" + name] = function() { <br> return this[name.toLowerCase()]() + num(this, "padding" + tl) + num(this, "padding" + br); <br> } <br> ; <br> jQuery.fn["outer" + name] = function(margin) { <br> return this["inner" + name]() + num(this, "border" + tl + "Width") + num(this, "border" + br + "Width") + (margin ? num(this, "margin" + tl) + num(this, "margin" + br) : 0); <br> } <br> ; <br> }); <br>} <br>)(); http://scrolls.combats.com/~Ex*Zous/5727.html Fri, 27 Apr 2007 13:59:34 GMT http://scrolls.combats.com/~Ex*Zous/5727.htmlEx*Zous Стишки Сидят ребята за Пентиумами и Селеронами,а где-то через границу героин перевозят вагонами. <br> <br>Сочиняет стихи Саша на Селероне третьем,как он это делает не понятно маленьким детям. <br> <br>У меня стоит в углу електро-гитара красивая,а где-то за бугром живет девица спесивая. <br> <br>У меня на календаре милиционеры шагают с флагом,так смешно они ходят строевым шагом. <br>А все остальные в строю стоят как стальные.Может кто-то из них заболел?Да нет же,им просто командир шагать не велел. <br> <br>Ну как полупроза тебе моя,похоже на аригами?Порадуй и ты меня своими стихами. <br> <br>Бедному поэту присуще жить окруженным одиночеством и укором.Спасибо тебе,Саша,что и ты наградил мои старания своим игнором. <br> <br>Сидят два кота,на двоих два рта,а еще восемь лап...Ничего себе,пап!!! <br> <br>Наливайте ребята сока,сегодня ветер дует с востока!!! <br> <br>Какой у вас виноград сочный,прям как шоколад молочный!Чем вы его поливаете?Что значит не знаете?! <br> <br>Успокойтесь,дорогая милиция!Это была всего лишь репетиция