| 12 | | (function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); |
| 13 | | /* |
| | 12 | (function(){ |
| | 13 | |
| | 14 | var |
| | 15 | // Will speed up references to window, and allows munging its name. |
| | 16 | window = this, |
| | 17 | // Will speed up references to undefined, and allows munging its name. |
| | 18 | undefined, |
| | 19 | // Map over jQuery in case of overwrite |
| | 20 | _jQuery = window.jQuery, |
| | 21 | // Map over the $ in case of overwrite |
| | 22 | _$ = window.$, |
| | 23 | |
| | 24 | jQuery = window.jQuery = window.$ = function( selector, context ) { |
| | 25 | // The jQuery object is actually just the init constructor 'enhanced' |
| | 26 | return new jQuery.fn.init( selector, context ); |
| | 27 | }, |
| | 28 | |
| | 29 | // A simple way to check for HTML strings or ID strings |
| | 30 | // (both of which we optimize for) |
| | 31 | quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, |
| | 32 | // Is it a simple selector |
| | 33 | isSimple = /^.[^:#\[\.,]*$/; |
| | 34 | |
| | 35 | jQuery.fn = jQuery.prototype = { |
| | 36 | init: function( selector, context ) { |
| | 37 | // Make sure that a selection was provided |
| | 38 | selector = selector || document; |
| | 39 | |
| | 40 | // Handle $(DOMElement) |
| | 41 | if ( selector.nodeType ) { |
| | 42 | this[0] = selector; |
| | 43 | this.length = 1; |
| | 44 | this.context = selector; |
| | 45 | return this; |
| | 46 | } |
| | 47 | // Handle HTML strings |
| | 48 | if ( typeof selector === "string" ) { |
| | 49 | // Are we dealing with HTML string or an ID? |
| | 50 | var match = quickExpr.exec( selector ); |
| | 51 | |
| | 52 | // Verify a match, and that no context was specified for #id |
| | 53 | if ( match && (match[1] || !context) ) { |
| | 54 | |
| | 55 | // HANDLE: $(html) -> $(array) |
| | 56 | if ( match[1] ) |
| | 57 | selector = jQuery.clean( [ match[1] ], context ); |
| | 58 | |
| | 59 | // HANDLE: $("#id") |
| | 60 | else { |
| | 61 | var elem = document.getElementById( match[3] ); |
| | 62 | |
| | 63 | // Handle the case where IE and Opera return items |
| | 64 | // by name instead of ID |
| | 65 | if ( elem && elem.id != match[3] ) |
| | 66 | return jQuery().find( selector ); |
| | 67 | |
| | 68 | // Otherwise, we inject the element directly into the jQuery object |
| | 69 | var ret = jQuery( elem || [] ); |
| | 70 | ret.context = document; |
| | 71 | ret.selector = selector; |
| | 72 | return ret; |
| | 73 | } |
| | 74 | |
| | 75 | // HANDLE: $(expr, [context]) |
| | 76 | // (which is just equivalent to: $(content).find(expr) |
| | 77 | } else |
| | 78 | return jQuery( context ).find( selector ); |
| | 79 | |
| | 80 | // HANDLE: $(function) |
| | 81 | // Shortcut for document ready |
| | 82 | } else if ( jQuery.isFunction( selector ) ) |
| | 83 | return jQuery( document ).ready( selector ); |
| | 84 | |
| | 85 | // Make sure that old selector state is passed along |
| | 86 | if ( selector.selector && selector.context ) { |
| | 87 | this.selector = selector.selector; |
| | 88 | this.context = selector.context; |
| | 89 | } |
| | 90 | |
| | 91 | return this.setArray(jQuery.isArray( selector ) ? |
| | 92 | selector : |
| | 93 | jQuery.makeArray(selector)); |
| | 94 | }, |
| | 95 | |
| | 96 | // Start with an empty selector |
| | 97 | selector: "", |
| | 98 | |
| | 99 | // The current version of jQuery being used |
| | 100 | jquery: "1.3.2", |
| | 101 | |
| | 102 | // The number of elements contained in the matched element set |
| | 103 | size: function() { |
| | 104 | return this.length; |
| | 105 | }, |
| | 106 | |
| | 107 | // Get the Nth element in the matched element set OR |
| | 108 | // Get the whole matched element set as a clean array |
| | 109 | get: function( num ) { |
| | 110 | return num === undefined ? |
| | 111 | |
| | 112 | // Return a 'clean' array |
| | 113 | Array.prototype.slice.call( this ) : |
| | 114 | |
| | 115 | // Return just the object |
| | 116 | this[ num ]; |
| | 117 | }, |
| | 118 | |
| | 119 | // Take an array of elements and push it onto the stack |
| | 120 | // (returning the new matched element set) |
| | 121 | pushStack: function( elems, name, selector ) { |
| | 122 | // Build a new jQuery matched element set |
| | 123 | var ret = jQuery( elems ); |
| | 124 | |
| | 125 | // Add the old object onto the stack (as a reference) |
| | 126 | ret.prevObject = this; |
| | 127 | |
| | 128 | ret.context = this.context; |
| | 129 | |
| | 130 | if ( name === "find" ) |
| | 131 | ret.selector = this.selector + (this.selector ? " " : "") + selector; |
| | 132 | else if ( name ) |
| | 133 | ret.selector = this.selector + "." + name + "(" + selector + ")"; |
| | 134 | |
| | 135 | // Return the newly-formed element set |
| | 136 | return ret; |
| | 137 | }, |
| | 138 | |
| | 139 | // Force the current matched set of elements to become |
| | 140 | // the specified array of elements (destroying the stack in the process) |
| | 141 | // You should use pushStack() in order to do this, but maintain the stack |
| | 142 | setArray: function( elems ) { |
| | 143 | // Resetting the length to 0, then using the native Array push |
| | 144 | // is a super-fast way to populate an object with array-like properties |
| | 145 | this.length = 0; |
| | 146 | Array.prototype.push.apply( this, elems ); |
| | 147 | |
| | 148 | return this; |
| | 149 | }, |
| | 150 | |
| | 151 | // Execute a callback for every element in the matched set. |
| | 152 | // (You can seed the arguments with an array of args, but this is |
| | 153 | // only used internally.) |
| | 154 | each: function( callback, args ) { |
| | 155 | return jQuery.each( this, callback, args ); |
| | 156 | }, |
| | 157 | |
| | 158 | // Determine the position of an element within |
| | 159 | // the matched set of elements |
| | 160 | index: function( elem ) { |
| | 161 | // Locate the position of the desired element |
| | 162 | return jQuery.inArray( |
| | 163 | // If it receives a jQuery object, the first element is used |
| | 164 | elem && elem.jquery ? elem[0] : elem |
| | 165 | , this ); |
| | 166 | }, |
| | 167 | |
| | 168 | attr: function( name, value, type ) { |
| | 169 | var options = name; |
| | 170 | |
| | 171 | // Look for the case where we're accessing a style value |
| | 172 | if ( typeof name === "string" ) |
| | 173 | if ( value === undefined ) |
| | 174 | return this[0] && jQuery[ type || "attr" ]( this[0], name ); |
| | 175 | |
| | 176 | else { |
| | 177 | options = {}; |
| | 178 | options[ name ] = value; |
| | 179 | } |
| | 180 | |
| | 181 | // Check to see if we're setting style values |
| | 182 | return this.each(function(i){ |
| | 183 | // Set all the styles |
| | 184 | for ( name in options ) |
| | 185 | jQuery.attr( |
| | 186 | type ? |
| | 187 | this.style : |
| | 188 | this, |
| | 189 | name, jQuery.prop( this, options[ name ], type, i, name ) |
| | 190 | ); |
| | 191 | }); |
| | 192 | }, |
| | 193 | |
| | 194 | css: function( key, value ) { |
| | 195 | // ignore negative width and height values |
| | 196 | if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 ) |
| | 197 | value = undefined; |
| | 198 | return this.attr( key, value, "curCSS" ); |
| | 199 | }, |
| | 200 | |
| | 201 | text: function( text ) { |
| | 202 | if ( typeof text !== "object" && text != null ) |
| | 203 | return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); |
| | 204 | |
| | 205 | var ret = ""; |
| | 206 | |
| | 207 | jQuery.each( text || this, function(){ |
| | 208 | jQuery.each( this.childNodes, function(){ |
| | 209 | if ( this.nodeType != 8 ) |
| | 210 | ret += this.nodeType != 1 ? |
| | 211 | this.nodeValue : |
| | 212 | jQuery.fn.text( [ this ] ); |
| | 213 | }); |
| | 214 | }); |
| | 215 | |
| | 216 | return ret; |
| | 217 | }, |
| | 218 | |
| | 219 | wrapAll: function( html ) { |
| | 220 | if ( this[0] ) { |
| | 221 | // The elements to wrap the target around |
| | 222 | var wrap = jQuery( html, this[0].ownerDocument ).clone(); |
| | 223 | |
| | 224 | if ( this[0].parentNode ) |
| | 225 | wrap.insertBefore( this[0] ); |
| | 226 | |
| | 227 | wrap.map(function(){ |
| | 228 | var elem = this; |
| | 229 | |
| | 230 | while ( elem.firstChild ) |
| | 231 | elem = elem.firstChild; |
| | 232 | |
| | 233 | return elem; |
| | 234 | }).append(this); |
| | 235 | } |
| | 236 | |
| | 237 | return this; |
| | 238 | }, |
| | 239 | |
| | 240 | wrapInner: function( html ) { |
| | 241 | return this.each(function(){ |
| | 242 | jQuery( this ).contents().wrapAll( html ); |
| | 243 | }); |
| | 244 | }, |
| | 245 | |
| | 246 | wrap: function( html ) { |
| | 247 | return this.each(function(){ |
| | 248 | jQuery( this ).wrapAll( html ); |
| | 249 | }); |
| | 250 | }, |
| | 251 | |
| | 252 | append: function() { |
| | 253 | return this.domManip(arguments, true, function(elem){ |
| | 254 | if (this.nodeType == 1) |
| | 255 | this.appendChild( elem ); |
| | 256 | }); |
| | 257 | }, |
| | 258 | |
| | 259 | prepend: function() { |
| | 260 | return this.domManip(arguments, true, function(elem){ |
| | 261 | if (this.nodeType == 1) |
| | 262 | this.insertBefore( elem, this.firstChild ); |
| | 263 | }); |
| | 264 | }, |
| | 265 | |
| | 266 | before: function() { |
| | 267 | return this.domManip(arguments, false, function(elem){ |
| | 268 | this.parentNode.insertBefore( elem, this ); |
| | 269 | }); |
| | 270 | }, |
| | 271 | |
| | 272 | after: function() { |
| | 273 | return this.domManip(arguments, false, function(elem){ |
| | 274 | this.parentNode.insertBefore( elem, this.nextSibling ); |
| | 275 | }); |
| | 276 | }, |
| | 277 | |
| | 278 | end: function() { |
| | 279 | return this.prevObject || jQuery( [] ); |
| | 280 | }, |
| | 281 | |
| | 282 | // For internal use only. |
| | 283 | // Behaves like an Array's method, not like a jQuery method. |
| | 284 | push: [].push, |
| | 285 | sort: [].sort, |
| | 286 | splice: [].splice, |
| | 287 | |
| | 288 | find: function( selector ) { |
| | 289 | if ( this.length === 1 ) { |
| | 290 | var ret = this.pushStack( [], "find", selector ); |
| | 291 | ret.length = 0; |
| | 292 | jQuery.find( selector, this[0], ret ); |
| | 293 | return ret; |
| | 294 | } else { |
| | 295 | return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){ |
| | 296 | return jQuery.find( selector, elem ); |
| | 297 | })), "find", selector ); |
| | 298 | } |
| | 299 | }, |
| | 300 | |
| | 301 | clone: function( events ) { |
| | 302 | // Do the clone |
| | 303 | var ret = this.map(function(){ |
| | 304 | if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { |
| | 305 | // IE copies events bound via attachEvent when |
| | 306 | // using cloneNode. Calling detachEvent on the |
| | 307 | // clone will also remove the events from the orignal |
| | 308 | // In order to get around this, we use innerHTML. |
| | 309 | // Unfortunately, this means some modifications to |
| | 310 | // attributes in IE that are actually only stored |
| | 311 | // as properties will not be copied (such as the |
| | 312 | // the name attribute on an input). |
| | 313 | var html = this.outerHTML; |
| | 314 | if ( !html ) { |
| | 315 | var div = this.ownerDocument.createElement("div"); |
| | 316 | div.appendChild( this.cloneNode(true) ); |
| | 317 | html = div.innerHTML; |
| | 318 | } |
| | 319 | |
| | 320 | return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]; |
| | 321 | } else |
| | 322 | return this.cloneNode(true); |
| | 323 | }); |
| | 324 | |
| | 325 | // Copy the events from the original to the clone |
| | 326 | if ( events === true ) { |
| | 327 | var orig = this.find("*").andSelf(), i = 0; |
| | 328 | |
| | 329 | ret.find("*").andSelf().each(function(){ |
| | 330 | if ( this.nodeName !== orig[i].nodeName ) |
| | 331 | return; |
| | 332 | |
| | 333 | var events = jQuery.data( orig[i], "events" ); |
| | 334 | |
| | 335 | for ( var type in events ) { |
| | 336 | for ( var handler in events[ type ] ) { |
| | 337 | jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); |
| | 338 | } |
| | 339 | } |
| | 340 | |
| | 341 | i++; |
| | 342 | }); |
| | 343 | } |
| | 344 | |
| | 345 | // Return the cloned set |
| | 346 | return ret; |
| | 347 | }, |
| | 348 | |
| | 349 | filter: function( selector ) { |
| | 350 | return this.pushStack( |
| | 351 | jQuery.isFunction( selector ) && |
| | 352 | jQuery.grep(this, function(elem, i){ |
| | 353 | return selector.call( elem, i ); |
| | 354 | }) || |
| | 355 | |
| | 356 | jQuery.multiFilter( selector, jQuery.grep(this, function(elem){ |
| | 357 | return elem.nodeType === 1; |
| | 358 | }) ), "filter", selector ); |
| | 359 | }, |
| | 360 | |
| | 361 | closest: function( selector ) { |
| | 362 | var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null, |
| | 363 | closer = 0; |
| | 364 | |
| | 365 | return this.map(function(){ |
| | 366 | var cur = this; |
| | 367 | while ( cur && cur.ownerDocument ) { |
| | 368 | if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) { |
| | 369 | jQuery.data(cur, "closest", closer); |
| | 370 | return cur; |
| | 371 | } |
| | 372 | cur = cur.parentNode; |
| | 373 | closer++; |
| | 374 | } |
| | 375 | }); |
| | 376 | }, |
| | 377 | |
| | 378 | not: function( selector ) { |
| | 379 | if ( typeof selector === "string" ) |
| | 380 | // test special case where just one selector is passed in |
| | 381 | if ( isSimple.test( selector ) ) |
| | 382 | return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector ); |
| | 383 | else |
| | 384 | selector = jQuery.multiFilter( selector, this ); |
| | 385 | |
| | 386 | var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; |
| | 387 | return this.filter(function() { |
| | 388 | return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector; |
| | 389 | }); |
| | 390 | }, |
| | 391 | |
| | 392 | add: function( selector ) { |
| | 393 | return this.pushStack( jQuery.unique( jQuery.merge( |
| | 394 | this.get(), |
| | 395 | typeof selector === "string" ? |
| | 396 | jQuery( selector ) : |
| | 397 | jQuery.makeArray( selector ) |
| | 398 | ))); |
| | 399 | }, |
| | 400 | |
| | 401 | is: function( selector ) { |
| | 402 | return !!selector && jQuery.multiFilter( selector, this ).length > 0; |
| | 403 | }, |
| | 404 | |
| | 405 | hasClass: function( selector ) { |
| | 406 | return !!selector && this.is( "." + selector ); |
| | 407 | }, |
| | 408 | |
| | 409 | val: function( value ) { |
| | 410 | if ( value === undefined ) { |
| | 411 | var elem = this[0]; |
| | 412 | |
| | 413 | if ( elem ) { |
| | 414 | if( jQuery.nodeName( elem, 'option' ) ) |
| | 415 | return (elem.attributes.value || {}).specified ? elem.value : elem.text; |
| | 416 | |
| | 417 | // We need to handle select boxes special |
| | 418 | if ( jQuery.nodeName( elem, "select" ) ) { |
| | 419 | var index = elem.selectedIndex, |
| | 420 | values = [], |
| | 421 | options = elem.options, |
| | 422 | one = elem.type == "select-one"; |
| | 423 | |
| | 424 | // Nothing was selected |
| | 425 | if ( index < 0 ) |
| | 426 | return null; |
| | 427 | |
| | 428 | // Loop through all the selected options |
| | 429 | for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { |
| | 430 | var option = options[ i ]; |
| | 431 | |
| | 432 | if ( option.selected ) { |
| | 433 | // Get the specifc value for the option |
| | 434 | value = jQuery(option).val(); |
| | 435 | |
| | 436 | // We don't need an array for one selects |
| | 437 | if ( one ) |
| | 438 | return value; |
| | 439 | |
| | 440 | // Multi-Selects return an array |
| | 441 | values.push( value ); |
| | 442 | } |
| | 443 | } |
| | 444 | |
| | 445 | return values; |
| | 446 | } |
| | 447 | |
| | 448 | // Everything else, we just grab the value |
| | 449 | return (elem.value || "").replace(/\r/g, ""); |
| | 450 | |
| | 451 | } |
| | 452 | |
| | 453 | return undefined; |
| | 454 | } |
| | 455 | |
| | 456 | if ( typeof value === "number" ) |
| | 457 | value += ''; |
| | 458 | |
| | 459 | return this.each(function(){ |
| | 460 | if ( this.nodeType != 1 ) |
| | 461 | return; |
| | 462 | |
| | 463 | if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) ) |
| | 464 | this.checked = (jQuery.inArray(this.value, value) >= 0 || |
| | 465 | jQuery.inArray(this.name, value) >= 0); |
| | 466 | |
| | 467 | else if ( jQuery.nodeName( this, "select" ) ) { |
| | 468 | var values = jQuery.makeArray(value); |
| | 469 | |
| | 470 | jQuery( "option", this ).each(function(){ |
| | 471 | this.selected = (jQuery.inArray( this.value, values ) >= 0 || |
| | 472 | jQuery.inArray( this.text, values ) >= 0); |
| | 473 | }); |
| | 474 | |
| | 475 | if ( !values.length ) |
| | 476 | this.selectedIndex = -1; |
| | 477 | |
| | 478 | } else |
| | 479 | this.value = value; |
| | 480 | }); |
| | 481 | }, |
| | 482 | |
| | 483 | html: function( value ) { |
| | 484 | return value === undefined ? |
| | 485 | (this[0] ? |
| | 486 | this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : |
| | 487 | null) : |
| | 488 | this.empty().append( value ); |
| | 489 | }, |
| | 490 | |
| | 491 | replaceWith: function( value ) { |
| | 492 | return this.after( value ).remove(); |
| | 493 | }, |
| | 494 | |
| | 495 | eq: function( i ) { |
| | 496 | return this.slice( i, +i + 1 ); |
| | 497 | }, |
| | 498 | |
| | 499 | slice: function() { |
| | 500 | return this.pushStack( Array.prototype.slice.apply( this, arguments ), |
| | 501 | "slice", Array.prototype.slice.call(arguments).join(",") ); |
| | 502 | }, |
| | 503 | |
| | 504 | map: function( callback ) { |
| | 505 | return this.pushStack( jQuery.map(this, function(elem, i){ |
| | 506 | return callback.call( elem, i, elem ); |
| | 507 | })); |
| | 508 | }, |
| | 509 | |
| | 510 | andSelf: function() { |
| | 511 | return this.add( this.prevObject ); |
| | 512 | }, |
| | 513 | |
| | 514 | domManip: function( args, table, callback ) { |
| | 515 | if ( this[0] ) { |
| | 516 | var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), |
| | 517 | scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ), |
| | 518 | first = fragment.firstChild; |
| | 519 | |
| | 520 | if ( first ) |
| | 521 | for ( var i = 0, l = this.length; i < l; i++ ) |
| | 522 | callback.call( root(this[i], first), this.length > 1 || i > 0 ? |
| | 523 | fragment.cloneNode(true) : fragment ); |
| | 524 | |
| | 525 | if ( scripts ) |
| | 526 | jQuery.each( scripts, evalScript ); |
| | 527 | } |
| | 528 | |
| | 529 | return this; |
| | 530 | |
| | 531 | function root( elem, cur ) { |
| | 532 | return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? |
| | 533 | (elem.getElementsByTagName("tbody")[0] || |
| | 534 | elem.appendChild(elem.ownerDocument.createElement("tbody"))) : |
| | 535 | elem; |
| | 536 | } |
| | 537 | } |
| | 538 | }; |
| | 539 | |
| | 540 | // Give the init function the jQuery prototype for later instantiation |
| | 541 | jQuery.fn.init.prototype = jQuery.fn; |
| | 542 | |
| | 543 | function evalScript( i, elem ) { |
| | 544 | if ( elem.src ) |
| | 545 | jQuery.ajax({ |
| | 546 | url: elem.src, |
| | 547 | async: false, |
| | 548 | dataType: "script" |
| | 549 | }); |
| | 550 | |
| | 551 | else |
| | 552 | jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); |
| | 553 | |
| | 554 | if ( elem.parentNode ) |
| | 555 | elem.parentNode.removeChild( elem ); |
| | 556 | } |
| | 557 | |
| | 558 | function now(){ |
| | 559 | return +new Date; |
| | 560 | } |
| | 561 | |
| | 562 | jQuery.extend = jQuery.fn.extend = function() { |
| | 563 | // copy reference to target object |
| | 564 | var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; |
| | 565 | |
| | 566 | // Handle a deep copy situation |
| | 567 | if ( typeof target === "boolean" ) { |
| | 568 | deep = target; |
| | 569 | target = arguments[1] || {}; |
| | 570 | // skip the boolean and the target |
| | 571 | i = 2; |
| | 572 | } |
| | 573 | |
| | 574 | // Handle case when target is a string or something (possible in deep copy) |
| | 575 | if ( typeof target !== "object" && !jQuery.isFunction(target) ) |
| | 576 | target = {}; |
| | 577 | |
| | 578 | // extend jQuery itself if only one argument is passed |
| | 579 | if ( length == i ) { |
| | 580 | target = this; |
| | 581 | --i; |
| | 582 | } |
| | 583 | |
| | 584 | for ( ; i < length; i++ ) |
| | 585 | // Only deal with non-null/undefined values |
| | 586 | if ( (options = arguments[ i ]) != null ) |
| | 587 | // Extend the base object |
| | 588 | for ( var name in options ) { |
| | 589 | var src = target[ name ], copy = options[ name ]; |
| | 590 | |
| | 591 | // Prevent never-ending loop |
| | 592 | if ( target === copy ) |
| | 593 | continue; |
| | 594 | |
| | 595 | // Recurse if we're merging object values |
| | 596 | if ( deep && copy && typeof copy === "object" && !copy.nodeType ) |
| | 597 | target[ name ] = jQuery.extend( deep, |
| | 598 | // Never move original objects, clone them |
| | 599 | src || ( copy.length != null ? [ ] : { } ) |
| | 600 | , copy ); |
| | 601 | |
| | 602 | // Don't bring in undefined values |
| | 603 | else if ( copy !== undefined ) |
| | 604 | target[ name ] = copy; |
| | 605 | |
| | 606 | } |
| | 607 | |
| | 608 | // Return the modified object |
| | 609 | return target; |
| | 610 | }; |
| | 611 | |
| | 612 | // exclude the following css properties to add px |
| | 613 | var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, |
| | 614 | // cache defaultView |
| | 615 | defaultView = document.defaultView || {}, |
| | 616 | toString = Object.prototype.toString; |
| | 617 | |
| | 618 | jQuery.extend({ |
| | 619 | noConflict: function( deep ) { |
| | 620 | window.$ = _$; |
| | 621 | |
| | 622 | if ( deep ) |
| | 623 | window.jQuery = _jQuery; |
| | 624 | |
| | 625 | return jQuery; |
| | 626 | }, |
| | 627 | |
| | 628 | // See test/unit/core.js for details concerning isFunction. |
| | 629 | // Since version 1.3, DOM methods and functions like alert |
| | 630 | // aren't supported. They return false on IE (#2968). |
| | 631 | isFunction: function( obj ) { |
| | 632 | return toString.call(obj) === "[object Function]"; |
| | 633 | }, |
| | 634 | |
| | 635 | isArray: function( obj ) { |
| | 636 | return toString.call(obj) === "[object Array]"; |
| | 637 | }, |
| | 638 | |
| | 639 | // check if an element is in a (or is an) XML document |
| | 640 | isXMLDoc: function( elem ) { |
| | 641 | return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || |
| | 642 | !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument ); |
| | 643 | }, |
| | 644 | |
| | 645 | // Evalulates a script in a global context |
| | 646 | globalEval: function( data ) { |
| | 647 | if ( data && /\S/.test(data) ) { |
| | 648 | // Inspired by code by Andrea Giammarchi |
| | 649 | // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html |
| | 650 | var head = document.getElementsByTagName("head")[0] || document.documentElement, |
| | 651 | script = document.createElement("script"); |
| | 652 | |
| | 653 | script.type = "text/javascript"; |
| | 654 | if ( jQuery.support.scriptEval ) |
| | 655 | script.appendChild( document.createTextNode( data ) ); |
| | 656 | else |
| | 657 | script.text = data; |
| | 658 | |
| | 659 | // Use insertBefore instead of appendChild to circumvent an IE6 bug. |
| | 660 | // This arises when a base node is used (#2709). |
| | 661 | head.insertBefore( script, head.firstChild ); |
| | 662 | head.removeChild( script ); |
| | 663 | } |
| | 664 | }, |
| | 665 | |
| | 666 | nodeName: function( elem, name ) { |
| | 667 | return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); |
| | 668 | }, |
| | 669 | |
| | 670 | // args is for internal usage only |
| | 671 | each: function( object, callback, args ) { |
| | 672 | var name, i = 0, length = object.length; |
| | 673 | |
| | 674 | if ( args ) { |
| | 675 | if ( length === undefined ) { |
| | 676 | for ( name in object ) |
| | 677 | if ( callback.apply( object[ name ], args ) === false ) |
| | 678 | break; |
| | 679 | } else |
| | 680 | for ( ; i < length; ) |
| | 681 | if ( callback.apply( object[ i++ ], args ) === false ) |
| | 682 | break; |
| | 683 | |
| | 684 | // A special, fast, case for the most common use of each |
| | 685 | } else { |
| | 686 | if ( length === undefined ) { |
| | 687 | for ( name in object ) |
| | 688 | if ( callback.call( object[ name ], name, object[ name ] ) === false ) |
| | 689 | break; |
| | 690 | } else |
| | 691 | for ( var value = object[0]; |
| | 692 | i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} |
| | 693 | } |
| | 694 | |
| | 695 | return object; |
| | 696 | }, |
| | 697 | |
| | 698 | prop: function( elem, value, type, i, name ) { |
| | 699 | // Handle executable functions |
| | 700 | if ( jQuery.isFunction( value ) ) |
| | 701 | value = value.call( elem, i ); |
| | 702 | |
| | 703 | // Handle passing in a number to a CSS property |
| | 704 | return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ? |
| | 705 | value + "px" : |
| | 706 | value; |
| | 707 | }, |
| | 708 | |
| | 709 | className: { |
| | 710 | // internal only, use addClass("class") |
| | 711 | add: function( elem, classNames ) { |
| | 712 | jQuery.each((classNames || "").split(/\s+/), function(i, className){ |
| | 713 | if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) ) |
| | 714 | elem.className += (elem.className ? " " : "") + className; |
| | 715 | }); |
| | 716 | }, |
| | 717 | |
| | 718 | // internal only, use removeClass("class") |
| | 719 | remove: function( elem, classNames ) { |
| | 720 | if (elem.nodeType == 1) |
| | 721 | elem.className = classNames !== undefined ? |
| | 722 | jQuery.grep(elem.className.split(/\s+/), function(className){ |
| | 723 | return !jQuery.className.has( classNames, className ); |
| | 724 | }).join(" ") : |
| | 725 | ""; |
| | 726 | }, |
| | 727 | |
| | 728 | // internal only, use hasClass("class") |
| | 729 | has: function( elem, className ) { |
| | 730 | return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; |
| | 731 | } |
| | 732 | }, |
| | 733 | |
| | 734 | // A method for quickly swapping in/out CSS properties to get correct calculations |
| | 735 | swap: function( elem, options, callback ) { |
| | 736 | var old = {}; |
| | 737 | // Remember the old values, and insert the new ones |
| | 738 | for ( var name in options ) { |
| | 739 | old[ name ] = elem.style[ name ]; |
| | 740 | elem.style[ name ] = options[ name ]; |
| | 741 | } |
| | 742 | |
| | 743 | callback.call( elem ); |
| | 744 | |
| | 745 | // Revert the old values |
| | 746 | for ( var name in options ) |
| | 747 | elem.style[ name ] = old[ name ]; |
| | 748 | }, |
| | 749 | |
| | 750 | css: function( elem, name, force, extra ) { |
| | 751 | if ( name == "width" || name == "height" ) { |
| | 752 | var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ]; |
| | 753 | |
| | 754 | function getWH() { |
| | 755 | val = name == "width" ? elem.offsetWidth : elem.offsetHeight; |
| | 756 | |
| | 757 | if ( extra === "border" ) |
| | 758 | return; |
| | 759 | |
| | 760 | jQuery.each( which, function() { |
| | 761 | if ( !extra ) |
| | 762 | val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; |
| | 763 | if ( extra === "margin" ) |
| | 764 | val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0; |
| | 765 | else |
| | 766 | val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; |
| | 767 | }); |
| | 768 | } |
| | 769 | |
| | 770 | if ( elem.offsetWidth !== 0 ) |
| | 771 | getWH(); |
| | 772 | else |
| | 773 | jQuery.swap( elem, props, getWH ); |
| | 774 | |
| | 775 | return Math.max(0, Math.round(val)); |
| | 776 | } |
| | 777 | |
| | 778 | return jQuery.curCSS( elem, name, force ); |
| | 779 | }, |
| | 780 | |
| | 781 | curCSS: function( elem, name, force ) { |
| | 782 | var ret, style = elem.style; |
| | 783 | |
| | 784 | // We need to handle opacity special in IE |
| | 785 | if ( name == "opacity" && !jQuery.support.opacity ) { |
| | 786 | ret = jQuery.attr( style, "opacity" ); |
| | 787 | |
| | 788 | return ret == "" ? |
| | 789 | "1" : |
| | 790 | ret; |
| | 791 | } |
| | 792 | |
| | 793 | // Make sure we're using the right name for getting the float value |
| | 794 | if ( name.match( /float/i ) ) |
| | 795 | name = styleFloat; |
| | 796 | |
| | 797 | if ( !force && style && style[ name ] ) |
| | 798 | ret = style[ name ]; |
| | 799 | |
| | 800 | else if ( defaultView.getComputedStyle ) { |
| | 801 | |
| | 802 | // Only "float" is needed here |
| | 803 | if ( name.match( /float/i ) ) |
| | 804 | name = "float"; |
| | 805 | |
| | 806 | name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase(); |
| | 807 | |
| | 808 | var computedStyle = defaultView.getComputedStyle( elem, null ); |
| | 809 | |
| | 810 | if ( computedStyle ) |
| | 811 | ret = computedStyle.getPropertyValue( name ); |
| | 812 | |
| | 813 | // We should always get a number back from opacity |
| | 814 | if ( name == "opacity" && ret == "" ) |
| | 815 | ret = "1"; |
| | 816 | |
| | 817 | } else if ( elem.currentStyle ) { |
| | 818 | var camelCase = name.replace(/\-(\w)/g, function(all, letter){ |
| | 819 | return letter.toUpperCase(); |
| | 820 | }); |
| | 821 | |
| | 822 | ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; |
| | 823 | |
| | 824 | // From the awesome hack by Dean Edwards |
| | 825 | // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 |
| | 826 | |
| | 827 | // If we're not dealing with a regular pixel number |
| | 828 | // but a number that has a weird ending, we need to convert it to pixels |
| | 829 | if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) { |
| | 830 | // Remember the original values |
| | 831 | var left = style.left, rsLeft = elem.runtimeStyle.left; |
| | 832 | |
| | 833 | // Put in the new values to get a computed value out |
| | 834 | elem.runtimeStyle.left = elem.currentStyle.left; |
| | 835 | style.left = ret || 0; |
| | 836 | ret = style.pixelLeft + "px"; |
| | 837 | |
| | 838 | // Revert the changed values |
| | 839 | style.left = left; |
| | 840 | elem.runtimeStyle.left = rsLeft; |
| | 841 | } |
| | 842 | } |
| | 843 | |
| | 844 | return ret; |
| | 845 | }, |
| | 846 | |
| | 847 | clean: function( elems, context, fragment ) { |
| | 848 | context = context || document; |
| | 849 | |
| | 850 | // !context.createElement fails in IE with an error but returns typeof 'object' |
| | 851 | if ( typeof context.createElement === "undefined" ) |
| | 852 | context = context.ownerDocument || context[0] && context[0].ownerDocument || document; |
| | 853 | |
| | 854 | // If a single string is passed in and it's a single tag |
| | 855 | // just do a createElement and skip the rest |
| | 856 | if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) { |
| | 857 | var match = /^<(\w+)\s*\/?>$/.exec(elems[0]); |
| | 858 | if ( match ) |
| | 859 | return [ context.createElement( match[1] ) ]; |
| | 860 | } |
| | 861 | |
| | 862 | var ret = [], scripts = [], div = context.createElement("div"); |
| | 863 | |
| | 864 | jQuery.each(elems, function(i, elem){ |
| | 865 | if ( typeof elem === "number" ) |
| | 866 | elem += ''; |
| | 867 | |
| | 868 | if ( !elem ) |
| | 869 | return; |
| | 870 | |
| | 871 | // Convert html string into DOM nodes |
| | 872 | if ( typeof elem === "string" ) { |
| | 873 | // Fix "XHTML"-style tags in all browsers |
| | 874 | elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){ |
| | 875 | return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? |
| | 876 | all : |
| | 877 | front + "></" + tag + ">"; |
| | 878 | }); |
| | 879 | |
| | 880 | // Trim whitespace, otherwise indexOf won't work as expected |
| | 881 | var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase(); |
| | 882 | |
| | 883 | var wrap = |
| | 884 | // option or optgroup |
| | 885 | !tags.indexOf("<opt") && |
| | 886 | [ 1, "<select multiple='multiple'>", "</select>" ] || |
| | 887 | |
| | 888 | !tags.indexOf("<leg") && |
| | 889 | [ 1, "<fieldset>", "</fieldset>" ] || |
| | 890 | |
| | 891 | tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && |
| | 892 | [ 1, "<table>", "</table>" ] || |
| | 893 | |
| | 894 | !tags.indexOf("<tr") && |
| | 895 | [ 2, "<table><tbody>", "</tbody></table>" ] || |
| | 896 | |
| | 897 | // <thead> matched above |
| | 898 | (!tags.indexOf("<td") || !tags.indexOf("<th")) && |
| | 899 | [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] || |
| | 900 | |
| | 901 | !tags.indexOf("<col") && |
| | 902 | [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] || |
| | 903 | |
| | 904 | // IE can't serialize <link> and <script> tags normally |
| | 905 | !jQuery.support.htmlSerialize && |
| | 906 | [ 1, "div<div>", "</div>" ] || |
| | 907 | |
| | 908 | [ 0, "", "" ]; |
| | 909 | |
| | 910 | // Go to html and back, then peel off extra wrappers |
| | 911 | div.innerHTML = wrap[1] + elem + wrap[2]; |
| | 912 | |
| | 913 | // Move to the right depth |
| | 914 | while ( wrap[0]-- ) |
| | 915 | div = div.lastChild; |
| | 916 | |
| | 917 | // Remove IE's autoinserted <tbody> from table fragments |
| | 918 | if ( !jQuery.support.tbody ) { |
| | 919 | |
| | 920 | // String was a <table>, *may* have spurious <tbody> |
| | 921 | var hasBody = /<tbody/i.test(elem), |
| | 922 | tbody = !tags.indexOf("<table") && !hasBody ? |
| | 923 | div.firstChild && div.firstChild.childNodes : |
| | 924 | |
| | 925 | // String was a bare <thead> or <tfoot> |
| | 926 | wrap[1] == "<table>" && !hasBody ? |
| | 927 | div.childNodes : |
| | 928 | []; |
| | 929 | |
| | 930 | for ( var j = tbody.length - 1; j >= 0 ; --j ) |
| | 931 | if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) |
| | 932 | tbody[ j ].parentNode.removeChild( tbody[ j ] ); |
| | 933 | |
| | 934 | } |
| | 935 | |
| | 936 | // IE completely kills leading whitespace when innerHTML is used |
| | 937 | if ( !jQuery.support.leadingWhitespace && /^\s/.test( elem ) ) |
| | 938 | div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild ); |
| | 939 | |
| | 940 | elem = jQuery.makeArray( div.childNodes ); |
| | 941 | } |
| | 942 | |
| | 943 | if ( elem.nodeType ) |
| | 944 | ret.push( elem ); |
| | 945 | else |
| | 946 | ret = jQuery.merge( ret, elem ); |
| | 947 | |
| | 948 | }); |
| | 949 | |
| | 950 | if ( fragment ) { |
| | 951 | for ( var i = 0; ret[i]; i++ ) { |
| | 952 | if ( jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { |
| | 953 | scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); |
| | 954 | } else { |
| | 955 | if ( ret[i].nodeType === 1 ) |
| | 956 | ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) ); |
| | 957 | fragment.appendChild( ret[i] ); |
| | 958 | } |
| | 959 | } |
| | 960 | |
| | 961 | return scripts; |
| | 962 | } |
| | 963 | |
| | 964 | return ret; |
| | 965 | }, |
| | 966 | |
| | 967 | attr: function( elem, name, value ) { |
| | 968 | // don't set attributes on text and comment nodes |
| | 969 | if (!elem || elem.nodeType == 3 || elem.nodeType == 8) |
| | 970 | return undefined; |
| | 971 | |
| | 972 | var notxml = !jQuery.isXMLDoc( elem ), |
| | 973 | // Whether we are setting (or getting) |
| | 974 | set = value !== undefined; |
| | 975 | |
| | 976 | // Try to normalize/fix the name |
| | 977 | name = notxml && jQuery.props[ name ] || name; |
| | 978 | |
| | 979 | // Only do all the following if this is a node (faster for style) |
| | 980 | // IE elem.getAttribute passes even for style |
| | 981 | if ( elem.tagName ) { |
| | 982 | |
| | 983 | // These attributes require special treatment |
| | 984 | var special = /href|src|style/.test( name ); |
| | 985 | |
| | 986 | // Safari mis-reports the default selected property of a hidden option |
| | 987 | // Accessing the parent's selectedIndex property fixes it |
| | 988 | if ( name == "selected" && elem.parentNode ) |
| | 989 | elem.parentNode.selectedIndex; |
| | 990 | |
| | 991 | // If applicable, access the attribute via the DOM 0 way |
| | 992 | if ( name in elem && notxml && !special ) { |
| | 993 | if ( set ){ |
| | 994 | // We can't allow the type property to be changed (since it causes problems in IE) |
| | 995 | if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode ) |
| | 996 | throw "type property can't be changed"; |
| | 997 | |
| | 998 | elem[ name ] = value; |
| | 999 | } |
| | 1000 | |
| | 1001 | // browsers index elements by id/name on forms, give priority to attributes. |
| | 1002 | if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) |
| | 1003 | return elem.getAttributeNode( name ).nodeValue; |
| | 1004 | |
| | 1005 | // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set |
| | 1006 | // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ |
| | 1007 | if ( name == "tabIndex" ) { |
| | 1008 | var attributeNode = elem.getAttributeNode( "tabIndex" ); |
| | 1009 | return attributeNode && attributeNode.specified |
| | 1010 | ? attributeNode.value |
| | 1011 | : elem.nodeName.match(/(button|input|object|select|textarea)/i) |
| | 1012 | ? 0 |
| | 1013 | : elem.nodeName.match(/^(a|area)$/i) && elem.href |
| | 1014 | ? 0 |
| | 1015 | : undefined; |
| | 1016 | } |
| | 1017 | |
| | 1018 | return elem[ name ]; |
| | 1019 | } |
| | 1020 | |
| | 1021 | if ( !jQuery.support.style && notxml && name == "style" ) |
| | 1022 | return jQuery.attr( elem.style, "cssText", value ); |
| | 1023 | |
| | 1024 | if ( set ) |
| | 1025 | // convert the value to a string (all browsers do this but IE) see #1070 |
| | 1026 | elem.setAttribute( name, "" + value ); |
| | 1027 | |
| | 1028 | var attr = !jQuery.support.hrefNormalized && notxml && special |
| | 1029 | // Some attributes require a special call on IE |
| | 1030 | ? elem.getAttribute( name, 2 ) |
| | 1031 | : elem.getAttribute( name ); |
| | 1032 | |
| | 1033 | // Non-existent attributes return null, we normalize to undefined |
| | 1034 | return attr === null ? undefined : attr; |
| | 1035 | } |
| | 1036 | |
| | 1037 | // elem is actually elem.style ... set the style |
| | 1038 | |
| | 1039 | // IE uses filters for opacity |
| | 1040 | if ( !jQuery.support.opacity && name == "opacity" ) { |
| | 1041 | if ( set ) { |
| | 1042 | // IE has trouble with opacity if it does not have layout |
| | 1043 | // Force it by setting the zoom level |
| | 1044 | elem.zoom = 1; |
| | 1045 | |
| | 1046 | // Set the alpha filter to set the opacity |
| | 1047 | elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) + |
| | 1048 | (parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")"); |
| | 1049 | } |
| | 1050 | |
| | 1051 | return elem.filter && elem.filter.indexOf("opacity=") >= 0 ? |
| | 1052 | (parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '': |
| | 1053 | ""; |
| | 1054 | } |
| | 1055 | |
| | 1056 | name = name.replace(/-([a-z])/ig, function(all, letter){ |
| | 1057 | return letter.toUpperCase(); |
| | 1058 | }); |
| | 1059 | |
| | 1060 | if ( set ) |
| | 1061 | elem[ name ] = value; |
| | 1062 | |
| | 1063 | return elem[ name ]; |
| | 1064 | }, |
| | 1065 | |
| | 1066 | trim: function( text ) { |
| | 1067 | return (text || "").replace( /^\s+|\s+$/g, "" ); |
| | 1068 | }, |
| | 1069 | |
| | 1070 | makeArray: function( array ) { |
| | 1071 | var ret = []; |
| | 1072 | |
| | 1073 | if( array != null ){ |
| | 1074 | var i = array.length; |
| | 1075 | // The window, strings (and functions) also have 'length' |
| | 1076 | if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval ) |
| | 1077 | ret[0] = array; |
| | 1078 | else |
| | 1079 | while( i ) |
| | 1080 | ret[--i] = array[i]; |
| | 1081 | } |
| | 1082 | |
| | 1083 | return ret; |
| | 1084 | }, |
| | 1085 | |
| | 1086 | inArray: function( elem, array ) { |
| | 1087 | for ( var i = 0, length = array.length; i < length; i++ ) |
| | 1088 | // Use === because on IE, window == document |
| | 1089 | if ( array[ i ] === elem ) |
| | 1090 | return i; |
| | 1091 | |
| | 1092 | return -1; |
| | 1093 | }, |
| | 1094 | |
| | 1095 | merge: function( first, second ) { |
| | 1096 | // We have to loop this way because IE & Opera overwrite the length |
| | 1097 | // expando of getElementsByTagName |
| | 1098 | var i = 0, elem, pos = first.length; |
| | 1099 | // Also, we need to make sure that the correct elements are being returned |
| | 1100 | // (IE returns comment nodes in a '*' query) |
| | 1101 | if ( !jQuery.support.getAll ) { |
| | 1102 | while ( (elem = second[ i++ ]) != null ) |
| | 1103 | if ( elem.nodeType != 8 ) |
| | 1104 | first[ pos++ ] = elem; |
| | 1105 | |
| | 1106 | } else |
| | 1107 | while ( (elem = second[ i++ ]) != null ) |
| | 1108 | first[ pos++ ] = elem; |
| | 1109 | |
| | 1110 | return first; |
| | 1111 | }, |
| | 1112 | |
| | 1113 | unique: function( array ) { |
| | 1114 | var ret = [], done = {}; |
| | 1115 | |
| | 1116 | try { |
| | 1117 | |
| | 1118 | for ( var i = 0, length = array.length; i < length; i++ ) { |
| | 1119 | var id = jQuery.data( array[ i ] ); |
| | 1120 | |
| | 1121 | if ( !done[ id ] ) { |
| | 1122 | done[ id ] = true; |
| | 1123 | ret.push( array[ i ] ); |
| | 1124 | } |
| | 1125 | } |
| | 1126 | |
| | 1127 | } catch( e ) { |
| | 1128 | ret = array; |
| | 1129 | } |
| | 1130 | |
| | 1131 | return ret; |
| | 1132 | }, |
| | 1133 | |
| | 1134 | grep: function( elems, callback, inv ) { |
| | 1135 | var ret = []; |
| | 1136 | |
| | 1137 | // Go through the array, only saving the items |
| | 1138 | // that pass the validator function |
| | 1139 | for ( var i = 0, length = elems.length; i < length; i++ ) |
| | 1140 | if ( !inv != !callback( elems[ i ], i ) ) |
| | 1141 | ret.push( elems[ i ] ); |
| | 1142 | |
| | 1143 | return ret; |
| | 1144 | }, |
| | 1145 | |
| | 1146 | map: function( elems, callback ) { |
| | 1147 | var ret = []; |
| | 1148 | |
| | 1149 | // Go through the array, translating each of the items to their |
| | 1150 | // new value (or values). |
| | 1151 | for ( var i = 0, length = elems.length; i < length; i++ ) { |
| | 1152 | var value = callback( elems[ i ], i ); |
| | 1153 | |
| | 1154 | if ( value != null ) |
| | 1155 | ret[ ret.length ] = value; |
| | 1156 | } |
| | 1157 | |
| | 1158 | return ret.concat.apply( [], ret ); |
| | 1159 | } |
| | 1160 | }); |
| | 1161 | |
| | 1162 | // Use of jQuery.browser is deprecated. |
| | 1163 | // It's included for backwards compatibility and plugins, |
| | 1164 | // although they should work to migrate away. |
| | 1165 | |
| | 1166 | var userAgent = navigator.userAgent.toLowerCase(); |
| | 1167 | |
| | 1168 | // Figure out what browser is being used |
| | 1169 | jQuery.browser = { |
| | 1170 | version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1], |
| | 1171 | safari: /webkit/.test( userAgent ), |
| | 1172 | opera: /opera/.test( userAgent ), |
| | 1173 | msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ), |
| | 1174 | mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent ) |
| | 1175 | }; |
| | 1176 | |
| | 1177 | jQuery.each({ |
| | 1178 | parent: function(elem){return elem.parentNode;}, |
| | 1179 | parents: function(elem){return jQuery.dir(elem,"parentNode");}, |
| | 1180 | next: function(elem){return jQuery.nth(elem,2,"nextSibling");}, |
| | 1181 | prev: function(elem){return jQuery.nth(elem,2,"previousSibling");}, |
| | 1182 | nextAll: function(elem){return jQuery.dir(elem,"nextSibling");}, |
| | 1183 | prevAll: function(elem){return jQuery.dir(elem,"previousSibling");}, |
| | 1184 | siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);}, |
| | 1185 | children: function(elem){return jQuery.sibling(elem.firstChild);}, |
| | 1186 | contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);} |
| | 1187 | }, function(name, fn){ |
| | 1188 | jQuery.fn[ name ] = function( selector ) { |
| | 1189 | var ret = jQuery.map( this, fn ); |
| | 1190 | |
| | 1191 | if ( selector && typeof selector == "string" ) |
| | 1192 | ret = jQuery.multiFilter( selector, ret ); |
| | 1193 | |
| | 1194 | return this.pushStack( jQuery.unique( ret ), name, selector ); |
| | 1195 | }; |
| | 1196 | }); |
| | 1197 | |
| | 1198 | jQuery.each({ |
| | 1199 | appendTo: "append", |
| | 1200 | prependTo: "prepend", |
| | 1201 | insertBefore: "before", |
| | 1202 | insertAfter: "after", |
| | 1203 | replaceAll: "replaceWith" |
| | 1204 | }, function(name, original){ |
| | 1205 | jQuery.fn[ name ] = function( selector ) { |
| | 1206 | var ret = [], insert = jQuery( selector ); |
| | 1207 | |
| | 1208 | for ( var i = 0, l = insert.length; i < l; i++ ) { |
| | 1209 | var elems = (i > 0 ? this.clone(true) : this).get(); |
| | 1210 | jQuery.fn[ original ].apply( jQuery(insert[i]), elems ); |
| | 1211 | ret = ret.concat( elems ); |
| | 1212 | } |
| | 1213 | |
| | 1214 | return this.pushStack( ret, name, selector ); |
| | 1215 | }; |
| | 1216 | }); |
| | 1217 | |
| | 1218 | jQuery.each({ |
| | 1219 | removeAttr: function( name ) { |
| | 1220 | jQuery.attr( this, name, "" ); |
| | 1221 | if (this.nodeType == 1) |
| | 1222 | this.removeAttribute( name ); |
| | 1223 | }, |
| | 1224 | |
| | 1225 | addClass: function( classNames ) { |
| | 1226 | jQuery.className.add( this, classNames ); |
| | 1227 | }, |
| | 1228 | |
| | 1229 | removeClass: function( classNames ) { |
| | 1230 | jQuery.className.remove( this, classNames ); |
| | 1231 | }, |
| | 1232 | |
| | 1233 | toggleClass: function( classNames, state ) { |
| | 1234 | if( typeof state !== "boolean" ) |
| | 1235 | state = !jQuery.className.has( this, classNames ); |
| | 1236 | jQuery.className[ state ? "add" : "remove" ]( this, classNames ); |
| | 1237 | }, |
| | 1238 | |
| | 1239 | remove: function( selector ) { |
| | 1240 | if ( !selector || jQuery.filter( selector, [ this ] ).length ) { |
| | 1241 | // Prevent memory leaks |
| | 1242 | jQuery( "*", this ).add([this]).each(function(){ |
| | 1243 | jQuery.event.remove(this); |
| | 1244 | jQuery.removeData(this); |
| | 1245 | }); |
| | 1246 | if (this.parentNode) |
| | 1247 | this.parentNode.removeChild( this ); |
| | 1248 | } |
| | 1249 | }, |
| | 1250 | |
| | 1251 | empty: function() { |
| | 1252 | // Remove element nodes and prevent memory leaks |
| | 1253 | jQuery(this).children().remove(); |
| | 1254 | |
| | 1255 | // Remove any remaining nodes |
| | 1256 | while ( this.firstChild ) |
| | 1257 | this.removeChild( this.firstChild ); |
| | 1258 | } |
| | 1259 | }, function(name, fn){ |
| | 1260 | jQuery.fn[ name ] = function(){ |
| | 1261 | return this.each( fn, arguments ); |
| | 1262 | }; |
| | 1263 | }); |
| | 1264 | |
| | 1265 | // Helper function used by the dimensions and offset modules |
| | 1266 | function num(elem, prop) { |
| | 1267 | return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0; |
| | 1268 | } |
| | 1269 | var expando = "jQuery" + now(), uuid = 0, windowData = {}; |
| | 1270 | |
| | 1271 | jQuery.extend({ |
| | 1272 | cache: {}, |
| | 1273 | |
| | 1274 | data: function( elem, name, data ) { |
| | 1275 | elem = elem == window ? |
| | 1276 | windowData : |
| | 1277 | elem; |
| | 1278 | |
| | 1279 | var id = elem[ expando ]; |
| | 1280 | |
| | 1281 | // Compute a unique ID for the element |
| | 1282 | if ( !id ) |
| | 1283 | id = elem[ expando ] = ++uuid; |
| | 1284 | |
| | 1285 | // Only generate the data cache if we're |
| | 1286 | // trying to access or manipulate it |
| | 1287 | if ( name && !jQuery.cache[ id ] ) |
| | 1288 | jQuery.cache[ id ] = {}; |
| | 1289 | |
| | 1290 | // Prevent overriding the named cache with undefined values |
| | 1291 | if ( data !== undefined ) |
| | 1292 | jQuery.cache[ id ][ name ] = data; |
| | 1293 | |
| | 1294 | // Return the named cache data, or the ID for the element |
| | 1295 | return name ? |
| | 1296 | jQuery.cache[ id ][ name ] : |
| | 1297 | id; |
| | 1298 | }, |
| | 1299 | |
| | 1300 | removeData: function( elem, name ) { |
| | 1301 | elem = elem == window ? |
| | 1302 | windowData : |
| | 1303 | elem; |
| | 1304 | |
| | 1305 | var id = elem[ expando ]; |
| | 1306 | |
| | 1307 | // If we want to remove a specific section of the element's data |
| | 1308 | if ( name ) { |
| | 1309 | if ( jQuery.cache[ id ] ) { |
| | 1310 | // Remove the section of cache data |
| | 1311 | delete jQuery.cache[ id ][ name ]; |
| | 1312 | |
| | 1313 | // If we've removed all the data, remove the element's cache |
| | 1314 | name = ""; |
| | 1315 | |
| | 1316 | for ( name in jQuery.cache[ id ] ) |
| | 1317 | break; |
| | 1318 | |
| | 1319 | if ( !name ) |
| | 1320 | jQuery.removeData( elem ); |
| | 1321 | } |
| | 1322 | |
| | 1323 | // Otherwise, we want to remove all of the element's data |
| | 1324 | } else { |
| | 1325 | // Clean up the element expando |
| | 1326 | try { |
| | 1327 | delete elem[ expando ]; |
| | 1328 | } catch(e){ |
| | 1329 | // IE has trouble directly removing the expando |
| | 1330 | // but it's ok with using removeAttribute |
| | 1331 | if ( elem.removeAttribute ) |
| | 1332 | elem.removeAttribute( expando ); |
| | 1333 | } |
| | 1334 | |
| | 1335 | // Completely remove the data cache |
| | 1336 | delete jQuery.cache[ id ]; |
| | 1337 | } |
| | 1338 | }, |
| | 1339 | queue: function( elem, type, data ) { |
| | 1340 | if ( elem ){ |
| | 1341 | |
| | 1342 | type = (type || "fx") + "queue"; |
| | 1343 | |
| | 1344 | var q = jQuery.data( elem, type ); |
| | 1345 | |
| | 1346 | if ( !q || jQuery.isArray(data) ) |
| | 1347 | q = jQuery.data( elem, type, jQuery.makeArray(data) ); |
| | 1348 | else if( data ) |
| | 1349 | q.push( data ); |
| | 1350 | |
| | 1351 | } |
| | 1352 | return q; |
| | 1353 | }, |
| | 1354 | |
| | 1355 | dequeue: function( elem, type ){ |
| | 1356 | var queue = jQuery.queue( elem, type ), |
| | 1357 | fn = queue.shift(); |
| | 1358 | |
| | 1359 | if( !type || type === "fx" ) |
| | 1360 | fn = queue[0]; |
| | 1361 | |
| | 1362 | if( fn !== undefined ) |
| | 1363 | fn.call(elem); |
| | 1364 | } |
| | 1365 | }); |
| | 1366 | |
| | 1367 | jQuery.fn.extend({ |
| | 1368 | data: function( key, value ){ |
| | 1369 | var parts = key.split("."); |
| | 1370 | parts[1] = parts[1] ? "." + parts[1] : ""; |
| | 1371 | |
| | 1372 | if ( value === undefined ) { |
| | 1373 | var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); |
| | 1374 | |
| | 1375 | if ( data === undefined && this.length ) |
| | 1376 | data = jQuery.data( this[0], key ); |
| | 1377 | |
| | 1378 | return data === undefined && parts[1] ? |
| | 1379 | this.data( parts[0] ) : |
| | 1380 | data; |
| | 1381 | } else |
| | 1382 | return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){ |
| | 1383 | jQuery.data( this, key, value ); |
| | 1384 | }); |
| | 1385 | }, |
| | 1386 | |
| | 1387 | removeData: function( key ){ |
| | 1388 | return this.each(function(){ |
| | 1389 | jQuery.removeData( this, key ); |
| | 1390 | }); |
| | 1391 | }, |
| | 1392 | queue: function(type, data){ |
| | 1393 | if ( typeof type !== "string" ) { |
| | 1394 | data = type; |
| | 1395 | type = "fx"; |
| | 1396 | } |
| | 1397 | |
| | 1398 | if ( data === undefined ) |
| | 1399 | return jQuery.queue( this[0], type ); |
| | 1400 | |
| | 1401 | return this.each(function(){ |
| | 1402 | var queue = jQuery.queue( this, type, data ); |
| | 1403 | |
| | 1404 | if( type == "fx" && queue.length == 1 ) |
| | 1405 | queue[0].call(this); |
| | 1406 | }); |
| | 1407 | }, |
| | 1408 | dequeue: function(type){ |
| | 1409 | return this.each(function(){ |
| | 1410 | jQuery.dequeue( this, type ); |
| | 1411 | }); |
| | 1412 | } |
| | 1413 | });/*! |
| 19 | | (function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},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 toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); |
| | 1419 | (function(){ |
| | 1420 | |
| | 1421 | var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g, |
| | 1422 | done = 0, |
| | 1423 | toString = Object.prototype.toString; |
| | 1424 | |
| | 1425 | var Sizzle = function(selector, context, results, seed) { |
| | 1426 | results = results || []; |
| | 1427 | context = context || document; |
| | 1428 | |
| | 1429 | if ( context.nodeType !== 1 && context.nodeType !== 9 ) |
| | 1430 | return []; |
| | 1431 | |
| | 1432 | if ( !selector || typeof selector !== "string" ) { |
| | 1433 | return results; |
| | 1434 | } |
| | 1435 | |
| | 1436 | var parts = [], m, set, checkSet, check, mode, extra, prune = true; |
| | 1437 | |
| | 1438 | // Reset the position of the chunker regexp (start from head) |
| | 1439 | chunker.lastIndex = 0; |
| | 1440 | |
| | 1441 | while ( (m = chunker.exec(selector)) !== null ) { |
| | 1442 | parts.push( m[1] ); |
| | 1443 | |
| | 1444 | if ( m[2] ) { |
| | 1445 | extra = RegExp.rightContext; |
| | 1446 | break; |
| | 1447 | } |
| | 1448 | } |
| | 1449 | |
| | 1450 | if ( parts.length > 1 && origPOS.exec( selector ) ) { |
| | 1451 | if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { |
| | 1452 | set = posProcess( parts[0] + parts[1], context ); |
| | 1453 | } else { |
| | 1454 | set = Expr.relative[ parts[0] ] ? |
| | 1455 | [ context ] : |
| | 1456 | Sizzle( parts.shift(), context ); |
| | 1457 | |
| | 1458 | while ( parts.length ) { |
| | 1459 | selector = parts.shift(); |
| | 1460 | |
| | 1461 | if ( Expr.relative[ selector ] ) |
| | 1462 | selector += parts.shift(); |
| | 1463 | |
| | 1464 | set = posProcess( selector, set ); |
| | 1465 | } |
| | 1466 | } |
| | 1467 | } else { |
| | 1468 | var ret = seed ? |
| | 1469 | { expr: parts.pop(), set: makeArray(seed) } : |
| | 1470 | Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, isXML(context) ); |
| | 1471 | set = Sizzle.filter( ret.expr, ret.set ); |
| | 1472 | |
| | 1473 | if ( parts.length > 0 ) { |
| | 1474 | checkSet = makeArray(set); |
| | 1475 | } else { |
| | 1476 | prune = false; |
| | 1477 | } |
| | 1478 | |
| | 1479 | while ( parts.length ) { |
| | 1480 | var cur = parts.pop(), pop = cur; |
| | 1481 | |
| | 1482 | if ( !Expr.relative[ cur ] ) { |
| | 1483 | cur = ""; |
| | 1484 | } else { |
| | 1485 | pop = parts.pop(); |
| | 1486 | } |
| | 1487 | |
| | 1488 | if ( pop == null ) { |
| | 1489 | pop = context; |
| | 1490 | } |
| | 1491 | |
| | 1492 | Expr.relative[ cur ]( checkSet, pop, isXML(context) ); |
| | 1493 | } |
| | 1494 | } |
| | 1495 | |
| | 1496 | if ( !checkSet ) { |
| | 1497 | checkSet = set; |
| | 1498 | } |
| | 1499 | |
| | 1500 | if ( !checkSet ) { |
| | 1501 | throw "Syntax error, unrecognized expression: " + (cur || selector); |
| | 1502 | } |
| | 1503 | |
| | 1504 | if ( toString.call(checkSet) === "[object Array]" ) { |
| | 1505 | if ( !prune ) { |
| | 1506 | results.push.apply( results, checkSet ); |
| | 1507 | } else if ( context.nodeType === 1 ) { |
| | 1508 | for ( var i = 0; checkSet[i] != null; i++ ) { |
| | 1509 | if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) { |
| | 1510 | results.push( set[i] ); |
| | 1511 | } |
| | 1512 | } |
| | 1513 | } else { |
| | 1514 | for ( var i = 0; checkSet[i] != null; i++ ) { |
| | 1515 | if ( checkSet[i] && checkSet[i].nodeType === 1 ) { |
| | 1516 | results.push( set[i] ); |
| | 1517 | } |
| | 1518 | } |
| | 1519 | } |
| | 1520 | } else { |
| | 1521 | makeArray( checkSet, results ); |
| | 1522 | } |
| | 1523 | |
| | 1524 | if ( extra ) { |
| | 1525 | Sizzle( extra, context, results, seed ); |
| | 1526 | |
| | 1527 | if ( sortOrder ) { |
| | 1528 | hasDuplicate = false; |
| | 1529 | results.sort(sortOrder); |
| | 1530 | |
| | 1531 | if ( hasDuplicate ) { |
| | 1532 | for ( var i = 1; i < results.length; i++ ) { |
| | 1533 | if ( results[i] === results[i-1] ) { |
| | 1534 | results.splice(i--, 1); |
| | 1535 | } |
| | 1536 | } |
| | 1537 | } |
| | 1538 | } |
| | 1539 | } |
| | 1540 | |
| | 1541 | return results; |
| | 1542 | }; |
| | 1543 | |
| | 1544 | Sizzle.matches = function(expr, set){ |
| | 1545 | return Sizzle(expr, null, null, set); |
| | 1546 | }; |
| | 1547 | |
| | 1548 | Sizzle.find = function(expr, context, isXML){ |
| | 1549 | var set, match; |
| | 1550 | |
| | 1551 | if ( !expr ) { |
| | 1552 | return []; |
| | 1553 | } |
| | 1554 | |
| | 1555 | for ( var i = 0, l = Expr.order.length; i < l; i++ ) { |
| | 1556 | var type = Expr.order[i], match; |
| | 1557 | |
| | 1558 | if ( (match = Expr.match[ type ].exec( expr )) ) { |
| | 1559 | var left = RegExp.leftContext; |
| | 1560 | |
| | 1561 | if ( left.substr( left.length - 1 ) !== "\\" ) { |
| | 1562 | match[1] = (match[1] || "").replace(/\\/g, ""); |
| | 1563 | set = Expr.find[ type ]( match, context, isXML ); |
| | 1564 | if ( set != null ) { |
| | 1565 | expr = expr.replace( Expr.match[ type ], "" ); |
| | 1566 | break; |
| | 1567 | } |
| | 1568 | } |
| | 1569 | } |
| | 1570 | } |
| | 1571 | |
| | 1572 | if ( !set ) { |
| | 1573 | set = context.getElementsByTagName("*"); |
| | 1574 | } |
| | 1575 | |
| | 1576 | return {set: set, expr: expr}; |
| | 1577 | }; |
| | 1578 | |
| | 1579 | Sizzle.filter = function(expr, set, inplace, not){ |
| | 1580 | var old = expr, result = [], curLoop = set, match, anyFound, |
| | 1581 | isXMLFilter = set && set[0] && isXML(set[0]); |
| | 1582 | |
| | 1583 | while ( expr && set.length ) { |
| | 1584 | for ( var type in Expr.filter ) { |
| | 1585 | if ( (match = Expr.match[ type ].exec( expr )) != null ) { |
| | 1586 | var filter = Expr.filter[ type ], found, item; |
| | 1587 | anyFound = false; |
| | 1588 | |
| | 1589 | if ( curLoop == result ) { |
| | 1590 | result = []; |
| | 1591 | } |
| | 1592 | |
| | 1593 | if ( Expr.preFilter[ type ] ) { |
| | 1594 | match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); |
| | 1595 | |
| | 1596 | if ( !match ) { |
| | 1597 | anyFound = found = true; |
| | 1598 | } else if ( match === true ) { |
| | 1599 | continue; |
| | 1600 | } |
| | 1601 | } |
| | 1602 | |
| | 1603 | if ( match ) { |
| | 1604 | for ( var i = 0; (item = curLoop[i]) != null; i++ ) { |
| | 1605 | if ( item ) { |
| | 1606 | found = filter( item, match, i, curLoop ); |
| | 1607 | var pass = not ^ !!found; |
| | 1608 | |
| | 1609 | if ( inplace && found != null ) { |
| | 1610 | if ( pass ) { |
| | 1611 | anyFound = true; |
| | 1612 | } else { |
| | 1613 | curLoop[i] = false; |
| | 1614 | } |
| | 1615 | } else if ( pass ) { |
| | 1616 | result.push( item ); |
| | 1617 | anyFound = true; |
| | 1618 | } |
| | 1619 | } |
| | 1620 | } |
| | 1621 | } |
| | 1622 | |
| | 1623 | if ( found !== undefined ) { |
| | 1624 | if ( !inplace ) { |
| | 1625 | curLoop = result; |
| | 1626 | } |
| | 1627 | |
| | 1628 | expr = expr.replace( Expr.match[ type ], "" ); |
| | 1629 | |
| | 1630 | if ( !anyFound ) { |
| | 1631 | return []; |
| | 1632 | } |
| | 1633 | |
| | 1634 | break; |
| | 1635 | } |
| | 1636 | } |
| | 1637 | } |
| | 1638 | |
| | 1639 | // Improper expression |
| | 1640 | if ( expr == old ) { |
| | 1641 | if ( anyFound == null ) { |
| | 1642 | throw "Syntax error, unrecognized expression: " + expr; |
| | 1643 | } else { |
| | 1644 | break; |
| | 1645 | } |
| | 1646 | } |
| | 1647 | |
| | 1648 | old = expr; |
| | 1649 | } |
| | 1650 | |
| | 1651 | return curLoop; |
| | 1652 | }; |
| | 1653 | |
| | 1654 | var Expr = Sizzle.selectors = { |
| | 1655 | order: [ "ID", "NAME", "TAG" ], |
| | 1656 | match: { |
| | 1657 | ID: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/, |
| | 1658 | CLASS: /\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/, |
| | 1659 | NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/, |
| | 1660 | ATTR: /\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, |
| | 1661 | TAG: /^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/, |
| | 1662 | CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/, |
| | 1663 | POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/, |
| | 1664 | PSEUDO: /:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/ |
| | 1665 | }, |
| | 1666 | attrMap: { |
| | 1667 | "class": "className", |
| | 1668 | "for": "htmlFor" |
| | 1669 | }, |
| | 1670 | attrHandle: { |
| | 1671 | href: function(elem){ |
| | 1672 | return elem.getAttribute("href"); |
| | 1673 | } |
| | 1674 | }, |
| | 1675 | relative: { |
| | 1676 | "+": function(checkSet, part, isXML){ |
| | 1677 | var isPartStr = typeof part === "string", |
| | 1678 | isTag = isPartStr && !/\W/.test(part), |
| | 1679 | isPartStrNotTag = isPartStr && !isTag; |
| | 1680 | |
| | 1681 | if ( isTag && !isXML ) { |
| | 1682 | part = part.toUpperCase(); |
| | 1683 | } |
| | 1684 | |
| | 1685 | for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { |
| | 1686 | if ( (elem = checkSet[i]) ) { |
| | 1687 | while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} |
| | 1688 | |
| | 1689 | checkSet[i] = isPartStrNotTag || elem && elem.nodeName === part ? |
| | 1690 | elem || false : |
| | 1691 | elem === part; |
| | 1692 | } |
| | 1693 | } |
| | 1694 | |
| | 1695 | if ( isPartStrNotTag ) { |
| | 1696 | Sizzle.filter( part, checkSet, true ); |
| | 1697 | } |
| | 1698 | }, |
| | 1699 | ">": function(checkSet, part, isXML){ |
| | 1700 | var isPartStr = typeof part === "string"; |
| | 1701 | |
| | 1702 | if ( isPartStr && !/\W/.test(part) ) { |
| | 1703 | part = isXML ? part : part.toUpperCase(); |
| | 1704 | |
| | 1705 | for ( var i = 0, l = checkSet.length; i < l; i++ ) { |
| | 1706 | var elem = checkSet[i]; |
| | 1707 | if ( elem ) { |
| | 1708 | var parent = elem.parentNode; |
| | 1709 | checkSet[i] = parent.nodeName === part ? parent : false; |
| | 1710 | } |
| | 1711 | } |
| | 1712 | } else { |
| | 1713 | for ( var i = 0, l = checkSet.length; i < l; i++ ) { |
| | 1714 | var elem = checkSet[i]; |
| | 1715 | if ( elem ) { |
| | 1716 | checkSet[i] = isPartStr ? |
| | 1717 | elem.parentNode : |
| | 1718 | elem.parentNode === part; |
| | 1719 | } |
| | 1720 | } |
| | 1721 | |
| | 1722 | if ( isPartStr ) { |
| | 1723 | Sizzle.filter( part, checkSet, true ); |
| | 1724 | } |
| | 1725 | } |
| | 1726 | }, |
| | 1727 | "": function(checkSet, part, isXML){ |
| | 1728 | var doneName = done++, checkFn = dirCheck; |
| | 1729 | |
| | 1730 | if ( !part.match(/\W/) ) { |
| | 1731 | var nodeCheck = part = isXML ? part : part.toUpperCase(); |
| | 1732 | checkFn = dirNodeCheck; |
| | 1733 | } |
| | 1734 | |
| | 1735 | checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML); |
| | 1736 | }, |
| | 1737 | "~": function(checkSet, part, isXML){ |
| | 1738 | var doneName = done++, checkFn = dirCheck; |
| | 1739 | |
| | 1740 | if ( typeof part === "string" && !part.match(/\W/) ) { |
| | 1741 | var nodeCheck = part = isXML ? part : part.toUpperCase(); |
| | 1742 | checkFn = dirNodeCheck; |
| | 1743 | } |
| | 1744 | |
| | 1745 | checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML); |
| | 1746 | } |
| | 1747 | }, |
| | 1748 | find: { |
| | 1749 | ID: function(match, context, isXML){ |
| | 1750 | if ( typeof context.getElementById !== "undefined" && !isXML ) { |
| | 1751 | var m = context.getElementById(match[1]); |
| | 1752 | return m ? [m] : []; |
| | 1753 | } |
| | 1754 | }, |
| | 1755 | NAME: function(match, context, isXML){ |
| | 1756 | if ( typeof context.getElementsByName !== "undefined" ) { |
| | 1757 | var ret = [], results = context.getElementsByName(match[1]); |
| | 1758 | |
| | 1759 | for ( var i = 0, l = results.length; i < l; i++ ) { |
| | 1760 | if ( results[i].getAttribute("name") === match[1] ) { |
| | 1761 | ret.push( results[i] ); |
| | 1762 | } |
| | 1763 | } |
| | 1764 | |
| | 1765 | return ret.length === 0 ? null : ret; |
| | 1766 | } |
| | 1767 | }, |
| | 1768 | TAG: function(match, context){ |
| | 1769 | return context.getElementsByTagName(match[1]); |
| | 1770 | } |
| | 1771 | }, |
| | 1772 | preFilter: { |
| | 1773 | CLASS: function(match, curLoop, inplace, result, not, isXML){ |
| | 1774 | match = " " + match[1].replace(/\\/g, "") + " "; |
| | 1775 | |
| | 1776 | if ( isXML ) { |
| | 1777 | return match; |
| | 1778 | } |
| | 1779 | |
| | 1780 | for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { |
| | 1781 | if ( elem ) { |
| | 1782 | if ( not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0) ) { |
| | 1783 | if ( !inplace ) |
| | 1784 | result.push( elem ); |
| | 1785 | } else if ( inplace ) { |
| | 1786 | curLoop[i] = false; |
| | 1787 | } |
| | 1788 | } |
| | 1789 | } |
| | 1790 | |
| | 1791 | return false; |
| | 1792 | }, |
| | 1793 | ID: function(match){ |
| | 1794 | return match[1].replace(/\\/g, ""); |
| | 1795 | }, |
| | 1796 | TAG: function(match, curLoop){ |
| | 1797 | for ( var i = 0; curLoop[i] === false; i++ ){} |
| | 1798 | return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase(); |
| | 1799 | }, |
| | 1800 | CHILD: function(match){ |
| | 1801 | if ( match[1] == "nth" ) { |
| | 1802 | // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' |
| | 1803 | var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec( |
| | 1804 | match[2] == "even" && "2n" || match[2] == "odd" && "2n+1" || |
| | 1805 | !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); |
| | 1806 | |
| | 1807 | // calculate the numbers (first)n+(last) including if they are negative |
| | 1808 | match[2] = (test[1] + (test[2] || 1)) - 0; |
| | 1809 | match[3] = test[3] - 0; |
| | 1810 | } |
| | 1811 | |
| | 1812 | // TODO: Move to normal caching system |
| | 1813 | match[0] = done++; |
| | 1814 | |
| | 1815 | return match; |
| | 1816 | }, |
| | 1817 | ATTR: function(match, curLoop, inplace, result, not, isXML){ |
| | 1818 | var name = match[1].replace(/\\/g, ""); |
| | 1819 | |
| | 1820 | if ( !isXML && Expr.attrMap[name] ) { |
| | 1821 | match[1] = Expr.attrMap[name]; |
| | 1822 | } |
| | 1823 | |
| | 1824 | if ( match[2] === "~=" ) { |
| | 1825 | match[4] = " " + match[4] + " "; |
| | 1826 | } |
| | 1827 | |
| | 1828 | return match; |
| | 1829 | }, |
| | 1830 | PSEUDO: function(match, curLoop, inplace, result, not){ |
| | 1831 | if ( match[1] === "not" ) { |
| | 1832 | // If we're dealing with a complex expression, or a simple one |
| | 1833 | if ( match[3].match(chunker).length > 1 || /^\w/.test(match[3]) ) { |
| | 1834 | match[3] = Sizzle(match[3], null, null, curLoop); |
| | 1835 | } else { |
| | 1836 | var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); |
| | 1837 | if ( !inplace ) { |
| | 1838 | result.push.apply( result, ret ); |
| | 1839 | } |
| | 1840 | return false; |
| | 1841 | } |
| | 1842 | } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { |
| | 1843 | return true; |
| | 1844 | } |
| | 1845 | |
| | 1846 | return match; |
| | 1847 | }, |
| | 1848 | POS: function(match){ |
| | 1849 | match.unshift( true ); |
| | 1850 | return match; |
| | 1851 | } |
| | 1852 | }, |
| | 1853 | filters: { |
| | 1854 | enabled: function(elem){ |
| | 1855 | return elem.disabled === false && elem.type !== "hidden"; |
| | 1856 | }, |
| | 1857 | disabled: function(elem){ |
| | 1858 | return elem.disabled === true; |
| | 1859 | }, |
| | 1860 | checked: function(elem){ |
| | 1861 | return elem.checked === true; |
| | 1862 | }, |
| | 1863 | selected: function(elem){ |
| | 1864 | // Accessing this property makes selected-by-default |
| | 1865 | // options in Safari work properly |
| | 1866 | elem.parentNode.selectedIndex; |
| | 1867 | return elem.selected === true; |
| | 1868 | }, |
| | 1869 | parent: function(elem){ |
| | 1870 | return !!elem.firstChild; |
| | 1871 | }, |
| | 1872 | empty: function(elem){ |
| | 1873 | return !elem.firstChild; |
| | 1874 | }, |
| | 1875 | has: function(elem, i, match){ |
| | 1876 | return !!Sizzle( match[3], elem ).length; |
| | 1877 | }, |
| | 1878 | header: function(elem){ |
| | 1879 | return /h\d/i.test( elem.nodeName ); |
| | 1880 | }, |
| | 1881 | text: function(elem){ |
| | 1882 | return "text" === elem.type; |
| | 1883 | }, |
| | 1884 | radio: function(elem){ |
| | 1885 | return "radio" === elem.type; |
| | 1886 | }, |
| | 1887 | checkbox: function(elem){ |
| | 1888 | return "checkbox" === elem.type; |
| | 1889 | }, |
| | 1890 | file: function(elem){ |
| | 1891 | return "file" === elem.type; |
| | 1892 | }, |
| | 1893 | password: function(elem){ |
| | 1894 | return "password" === elem.type; |
| | 1895 | }, |
| | 1896 | submit: function(elem){ |
| | 1897 | return "submit" === elem.type; |
| | 1898 | }, |
| | 1899 | image: function(elem){ |
| | 1900 | return "image" === elem.type; |
| | 1901 | }, |
| | 1902 | reset: function(elem){ |
| | 1903 | return "reset" === elem.type; |
| | 1904 | }, |
| | 1905 | button: function(elem){ |
| | 1906 | return "button" === elem.type || elem.nodeName.toUpperCase() === "BUTTON"; |
| | 1907 | }, |
| | 1908 | input: function(elem){ |
| | 1909 | return /input|select|textarea|button/i.test(elem.nodeName); |
| | 1910 | } |
| | 1911 | }, |
| | 1912 | setFilters: { |
| | 1913 | first: function(elem, i){ |
| | 1914 | return i === 0; |
| | 1915 | }, |
| | 1916 | last: function(elem, i, match, array){ |
| | 1917 | return i === array.length - 1; |
| | 1918 | }, |
| | 1919 | even: function(elem, i){ |
| | 1920 | return i % 2 === 0; |
| | 1921 | }, |
| | 1922 | odd: function(elem, i){ |
| | 1923 | return i % 2 === 1; |
| | 1924 | }, |
| | 1925 | lt: function(elem, i, match){ |
| | 1926 | return i < match[3] - 0; |
| | 1927 | }, |
| | 1928 | gt: function(elem, i, match){ |
| | 1929 | return i > match[3] - 0; |
| | 1930 | }, |
| | 1931 | nth: function(elem, i, match){ |
| | 1932 | return match[3] - 0 == i; |
| | 1933 | }, |
| | 1934 | eq: function(elem, i, match){ |
| | 1935 | return match[3] - 0 == i; |
| | 1936 | } |
| | 1937 | }, |
| | 1938 | filter: { |
| | 1939 | PSEUDO: function(elem, match, i, array){ |
| | 1940 | var name = match[1], filter = Expr.filters[ name ]; |
| | 1941 | |
| | 1942 | if ( filter ) { |
| | 1943 | return filter( elem, i, match, array ); |
| | 1944 | } else if ( name === "contains" ) { |
| | 1945 | return (elem.textContent || elem.innerText || "").indexOf(match[3]) >= 0; |
| | 1946 | } else if ( name === "not" ) { |
| | 1947 | var not = match[3]; |
| | 1948 | |
| | 1949 | for ( var i = 0, l = not.length; i < l; i++ ) { |
| | 1950 | if ( not[i] === elem ) { |
| | 1951 | return false; |
| | 1952 | } |
| | 1953 | } |
| | 1954 | |
| | 1955 | return true; |
| | 1956 | } |
| | 1957 | }, |
| | 1958 | CHILD: function(elem, match){ |
| | 1959 | var type = match[1], node = elem; |
| | 1960 | switch (type) { |
| | 1961 | case 'only': |
| | 1962 | case 'first': |
| | 1963 | while (node = node.previousSibling) { |
| | 1964 | if ( node.nodeType === 1 ) return false; |
| | 1965 | } |
| | 1966 | if ( type == 'first') return true; |
| | 1967 | node = elem; |
| | 1968 | case 'last': |
| | 1969 | while (node = node.nextSibling) { |
| | 1970 | if ( node.nodeType === 1 ) return false; |
| | 1971 | } |
| | 1972 | return true; |
| | 1973 | case 'nth': |
| | 1974 | var first = match[2], last = match[3]; |
| | 1975 | |
| | 1976 | if ( first == 1 && last == 0 ) { |
| | 1977 | return true; |
| | 1978 | } |
| | 1979 | |
| | 1980 | var doneName = match[0], |
| | 1981 | parent = elem.parentNode; |
| | 1982 | |
| | 1983 | if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { |
| | 1984 | var count = 0; |
| | 1985 | for ( node = parent.firstChild; node; node = node.nextSibling ) { |
| | 1986 | if ( node.nodeType === 1 ) { |
| | 1987 | node.nodeIndex = ++count; |
| | 1988 | } |
| | 1989 | } |
| | 1990 | parent.sizcache = doneName; |
| | 1991 | } |
| | 1992 | |
| | 1993 | var diff = elem.nodeIndex - last; |
| | 1994 | if ( first == 0 ) { |
| | 1995 | return diff == 0; |
| | 1996 | } else { |
| | 1997 | return ( diff % first == 0 && diff / first >= 0 ); |
| | 1998 | } |
| | 1999 | } |
| | 2000 | }, |
| | 2001 | ID: function(elem, match){ |
| | 2002 | return elem.nodeType === 1 && elem.getAttribute("id") === match; |
| | 2003 | }, |
| | 2004 | TAG: function(elem, match){ |
| | 2005 | return (match === "*" && elem.nodeType === 1) || elem.nodeName === match; |
| | 2006 | }, |
| | 2007 | CLASS: function(elem, match){ |
| | 2008 | return (" " + (elem.className || elem.getAttribute("class")) + " ") |
| | 2009 | .indexOf( match ) > -1; |
| | 2010 | }, |
| | 2011 | ATTR: function(elem, match){ |
| | 2012 | var name = match[1], |
| | 2013 | result = Expr.attrHandle[ name ] ? |
| | 2014 | Expr.attrHandle[ name ]( elem ) : |
| | 2015 | elem[ name ] != null ? |
| | 2016 | elem[ name ] : |
| | 2017 | elem.getAttribute( name ), |
| | 2018 | value = result + "", |
| | 2019 | type = match[2], |
| | 2020 | check = match[4]; |
| | 2021 | |
| | 2022 | return result == null ? |
| | 2023 | type === "!=" : |
| | 2024 | type === "=" ? |
| | 2025 | value === check : |
| | 2026 | type === "*=" ? |
| | 2027 | value.indexOf(check) >= 0 : |
| | 2028 | type === "~=" ? |
| | 2029 | (" " + value + " ").indexOf(check) >= 0 : |
| | 2030 | !check ? |
| | 2031 | value && result !== false : |
| | 2032 | type === "!=" ? |
| | 2033 | value != check : |
| | 2034 | type === "^=" ? |
| | 2035 | value.indexOf(check) === 0 : |
| | 2036 | type === "$=" ? |
| | 2037 | value.substr(value.length - check.length) === check : |
| | 2038 | type === "|=" ? |
| | 2039 | value === check || value.substr(0, check.length + 1) === check + "-" : |
| | 2040 | false; |
| | 2041 | }, |
| | 2042 | POS: function(elem, match, i, array){ |
| | 2043 | var name = match[2], filter = Expr.setFilters[ name ]; |
| | 2044 | |
| | 2045 | if ( filter ) { |
| | 2046 | return filter( elem, i, match, array ); |
| | 2047 | } |
| | 2048 | } |
| | 2049 | } |
| | 2050 | }; |
| | 2051 | |
| | 2052 | var origPOS = Expr.match.POS; |
| | 2053 | |
| | 2054 | for ( var type in Expr.match ) { |
| | 2055 | Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source ); |
| | 2056 | } |
| | 2057 | |
| | 2058 | var makeArray = function(array, results) { |
| | 2059 | array = Array.prototype.slice.call( array ); |
| | 2060 | |
| | 2061 | if ( results ) { |
| | 2062 | results.push.apply( results, array ); |
| | 2063 | return results; |
| | 2064 | } |
| | 2065 | |
| | 2066 | return array; |
| | 2067 | }; |
| | 2068 | |
| | 2069 | // Perform a simple check to determine if the browser is capable of |
| | 2070 | // converting a NodeList to an array using builtin methods. |
| | 2071 | try { |
| | 2072 | Array.prototype.slice.call( document.documentElement.childNodes ); |
| | 2073 | |
| | 2074 | // Provide a fallback method if it does not work |
| | 2075 | } catch(e){ |
| | 2076 | makeArray = function(array, results) { |
| | 2077 | var ret = results || []; |
| | 2078 | |
| | 2079 | if ( toString.call(array) === "[object Array]" ) { |
| | 2080 | Array.prototype.push.apply( ret, array ); |
| | 2081 | } else { |
| | 2082 | if ( typeof array.length === "number" ) { |
| | 2083 | for ( var i = 0, l = array.length; i < l; i++ ) { |
| | 2084 | ret.push( array[i] ); |
| | 2085 | } |
| | 2086 | } else { |
| | 2087 | for ( var i = 0; array[i]; i++ ) { |
| | 2088 | ret.push( array[i] ); |
| | 2089 | } |
| | 2090 | } |
| | 2091 | } |
| | 2092 | |
| | 2093 | return ret; |
| | 2094 | }; |
| | 2095 | } |
| | 2096 | |
| | 2097 | var sortOrder; |
| | 2098 | |
| | 2099 | if ( document.documentElement.compareDocumentPosition ) { |
| | 2100 | sortOrder = function( a, b ) { |
| | 2101 | var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1; |
| | 2102 | if ( ret === 0 ) { |
| | 2103 | hasDuplicate = true; |
| | 2104 | } |
| | 2105 | return ret; |
| | 2106 | }; |
| | 2107 | } else if ( "sourceIndex" in document.documentElement ) { |
| | 2108 | sortOrder = function( a, b ) { |
| | 2109 | var ret = a.sourceIndex - b.sourceIndex; |
| | 2110 | if ( ret === 0 ) { |
| | 2111 | hasDuplicate = true; |
| | 2112 | } |
| | 2113 | return ret; |
| | 2114 | }; |
| | 2115 | } else if ( document.createRange ) { |
| | 2116 | sortOrder = function( a, b ) { |
| | 2117 | var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange(); |
| | 2118 | aRange.selectNode(a); |
| | 2119 | aRange.collapse(true); |
| | 2120 | bRange.selectNode(b); |
| | 2121 | bRange.collapse(true); |
| | 2122 | var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange); |
| | 2123 | if ( ret === 0 ) { |
| | 2124 | hasDuplicate = true; |
| | 2125 | } |
| | 2126 | return ret; |
| | 2127 | }; |
| | 2128 | } |
| | 2129 | |
| | 2130 | // Check |