/* prevent execution of jQuery if included more then once */ if(typeof window.jQuery == "undefined") { /* * jQuery 1.0.2 - New Wave Javascript * * Copyright (c) 2006 John Resig (jquery.com) * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * * $Date: 2006-10-09 20:23:18 -0400 (Mon, 09 Oct 2006) $ * $Rev: 413 $ */
// Shortcut for document ready (because $(document).each() is silly) if ( a && typeof a == "function" && jQuery.fn.ready ) return jQuery(document).ready(a);
// Make sure that a selection was provided a = a || jQuery.context || document;
// Watch for when a jQuery object is passed as the selector if ( a.jquery ) return jQuery( jQuery.merge( a, [] ) );
// Watch for when a jQuery object is passed at the context if ( c && c.jquery ) return jQuery( c ).find(a);
// If the context is global, return a new object if ( window == this ) return new jQuery(a,c);
// Handle HTML strings var m = /^[^<]*(<. >)[^>]*$/.exec(a); if ( m ) a = jQuery.clean( [ m[1] ] );
// Watch for when an array is passed in this.get( a.constructor == Array || a.length && !a.nodeType && a[0] != undefined && a[0].nodeType ? // Assume that it is an array of DOM Elements jQuery.merge( a, [] ) :
// Find the matching elements and save them for later jQuery.find( a, c ) );
// See if an extra function was provided var fn = arguments[ arguments.length - 1 ];
// If so, execute it in context if ( fn && typeof fn == "function" ) this.each(fn); };
// Map over the $ in case of overwrite if ( typeof $ != "undefined" ) jQuery._$ = $;
// Map the jQuery namespace to the '$' one var $ = jQuery;
jQuery.fn = jQuery.prototype = { jquery: "1.0.2",
size: function() { return this.length; },
get: function( num ) { // Watch for when an array (of elements) is passed in if ( num && num.constructor == Array ) {
// Use a tricky hack to make the jQuery object // look and feel like an array this.length = 0; [].push.apply( this, num );
return this; } else return num == undefined ?
// Return a 'clean' array jQuery.merge( this, [] ) :
// Return just the object this[num]; }, each: function( fn, args ) { return jQuery.each( this, fn, args ); }, index: function( obj ) { var pos = -1; this.each(function(i){ if ( this == obj ) pos = i; }); return pos; },
attr: function( key, value, type ) { // Check to see if we're setting style values return key.constructor != String || value != undefined ? this.each(function(){ // See if we're setting a hash of styles if ( value == undefined ) // Set all the styles for ( var prop in key ) jQuery.attr( type ? this.style : this, prop, key[prop] );
// See if we're setting a single key/value style else jQuery.attr( type ? this.style : this, key, value ); }) :
// Look for the case where we're accessing a style value jQuery[ type || "attr" ]( this[0], key ); },
css: function( key, value ) { return this.attr( key, value, "curCSS" ); }, text: function(e) { e = e || this; var t = ""; for ( var j = 0; j < e.length; j ) { var r = e[j].childNodes; for ( var i = 0; i < r.length; i ) if ( r[i].nodeType != 8 ) t = r[i].nodeType != 1 ? r[i].nodeValue : jQuery.fn.text([ r[i] ]); } return t; },
wrap: function() { // The elements to wrap the target around var a = jQuery.clean(arguments);
// Wrap each of the matched elements individually return this.each(function(){ // Clone the structure that we're using to wrap var b = a[0].cloneNode(true);
// Insert it before the element to be wrapped this.parentNode.insertBefore( b, this );
// Find the deepest point in the wrap structure while ( b.firstChild ) b = b.firstChild;
// Move the matched element to within the wrap structure b.appendChild( this ); }); },
filter: function(t) { return this.pushStack( t.constructor == Array && jQuery.map(this,function(a){ for ( var i = 0; i < t.length; i ) if ( jQuery.filter(t[i],[a]).r.length ) return a; }) ||
jQuery.each( jQuery.macros.axis, function(i,n){ jQuery.fn[ i ] = function(a) { var ret = jQuery.map(this,n); if ( a && a.constructor == String ) ret = jQuery.filter(a,ret).r; return this.pushStack( ret, arguments ); }; });
jQuery.each( jQuery.macros.to, function(i,n){ jQuery.fn[ i ] = function(){ var a = arguments; return this.each(function(){ for ( var j = 0; j < a.length; j ) jQuery(a[j])[n]( this ); }); }; });
jQuery.each( jQuery.macros.each, function(i,n){ jQuery.fn[ i ] = function() { return this.each( n, arguments ); }; });
jQuery.each( jQuery.macros.filter, function(i,n){ jQuery.fn[ n ] = function(num,fn) { return this.filter( ":" n "(" num ")", fn ); }; });
jQuery.each( jQuery.macros.attr, function(i,n){ n = n || i; jQuery.fn[ i ] = function(h) { return h == undefined ? this.length ? this[0][n] : null : this.attr( n, h ); }; });
jQuery.each( jQuery.macros.css, function(i,n){ jQuery.fn[ n ] = function(h) { return h == undefined ? ( this.length ? jQuery.css( this[0], n ) : null ) : this.css( n, h ); }; });
}, each: function( obj, fn, args ) { if ( obj.length == undefined ) for ( var i in obj ) fn.apply( obj[i], args || [i, obj[i]] ); else for ( var i = 0; i < obj.length; i ) fn.apply( obj[i], args || [i, obj[i]] ); return obj; },
className: { add: function(o,c){ if (jQuery.className.has(o,c)) return; o.className = ( o.className ? " " : "" ) c; }, remove: function(o,c){ if( !c ) { o.className = ""; } else { var classes = o.className.split(" "); for(var i=0; i if(classes[i] == c) { classes.splice(i, 1); break; } } o.className = classes.join(' '); } }, has: function(e,a) { if ( e.className != undefined ) e = e.className; return new RegExp("(^|\s)" a "(\s|$)").test(e); } }, swap: function(e,o,f) { for ( var i in o ) { e.style["old" i] = e.style[i]; e.style[i] = o[i]; } f.apply( e, [] ); for ( var i in o ) e.style[i] = e.style["old" i]; },
css: function(e,p) { if ( p == "height" || p == "width" ) { var old = {}, oHeight, oWidth, d = ["Top","Bottom","Right","Left"];
for ( var i in d ) { old["padding" d[i]] = 0; old["border" d[i] "Width"] = 0; }
if (prop == 'opacity' && jQuery.browser.msie) return jQuery.attr(elem.style, 'opacity');
if (!force && elem.style[prop]) {
ret = elem.style[prop];
} else if (elem.currentStyle) {
var newProp = prop.replace(/-(w)/g,function(m,c){return c.toUpperCase();}); ret = elem.currentStyle[prop] || elem.currentStyle[newProp];
} else if (document.defaultView && document.defaultView.getComputedStyle) {
prop = prop.replace(/([A-Z])/g,"-$1").toLowerCase(); var cur = document.defaultView.getComputedStyle(elem, null);
if ( cur ) ret = cur.getPropertyValue(prop); else if ( prop == 'display' ) ret = 'none'; else jQuery.swap(elem, { display: 'block' }, function() { ret = document.defaultView.getComputedStyle(this,null).getPropertyValue(prop); });
}
return ret; },
clean: function(a) { var r = []; for ( var i = 0; i < a.length; i ) { if ( a[i].constructor == String ) { // trim whitespace, otherwise indexOf won't work as expected a[i] = jQuery.trim(a[i]);
var table = "";
if ( !a[i].indexOf(" table = "thead"; a[i] = "
" a[i] "
"; } else if ( !a[i].indexOf("
table = "tr"; a[i] = "
" a[i] "
"; } else if ( !a[i].indexOf("
table = "td"; a[i] = "
" a[i] "
"; }
var div = document.createElement("div"); div.innerHTML = a[i];
if ( table ) { div = div.firstChild; if ( table != "thead" ) div = div.firstChild; if ( table == "td" ) div = div.firstChild; }
for ( var j = 0; j < div.childNodes.length; j ) r.push( div.childNodes[j] ); } else if ( a[i].jquery || a[i].length && !a[i].nodeType ) for ( var k = 0; k < a[i].length; k ) r.push( a[i][k] ); else if ( a[i] !== null ) r.push( a[i].nodeType ? a[i] : document.createTextNode(a[i].toString()) ); } return r; },
token: [ "\.\.|/\.\.", "a.parentNode", ">|/", "jQuery.sibling(a.firstChild)", "\ ", "jQuery.sibling(a).next", "~", function(a){ var r = []; var s = jQuery.sibling(a); if ( s.n > 0 ) for ( var i = s.n; i < s.length; i ) r.push( s[i] ); return r; } ], find: function( t, context ) { // Make sure that the context is a DOM Element if ( context && context.nodeType == undefined ) context = null;
// Set the correct context (if none is provided) context = context || jQuery.context || document;
if ( t.constructor != String ) return [t];
if ( !t.indexOf("//") ) { context = context.documentElement; t = t.substr(2,t.length); } else if ( !t.indexOf("/") ) { context = context.documentElement; t = t.substr(1,t.length); // FIX Assume the root element is right :( if ( t.indexOf("/") >= 1 ) t = t.substr(t.indexOf("/"),t.length); }
var ret = [context]; var done = []; var last = null;
while ( t.length > 0 && last != t ) { var r = []; last = t;
t = jQuery.trim(t).replace( /^///i, "" );
var foundToken = false;
for ( var i = 0; i < jQuery.token.length; i = 2 ) { if ( foundToken ) continue;
var re = new RegExp("^(" jQuery.token[i] ")"); var m = re.exec(t);
if ( m ) { r = ret = jQuery.map( ret, jQuery.token[i 1] ); t = jQuery.trim( t.replace( re, "" ) ); foundToken = true; } }
if ( !foundToken ) { if ( !t.indexOf(",") || !t.indexOf("|") ) { if ( ret[0] == context ) ret.shift(); done = jQuery.merge( done, ret ); r = ret = [context]; t = " " t.substr(1,t.length); } else { var re2 = /^([#.]?)([a-z0-9\*_-]*)/i; var m = re2.exec(t);
if ( m[1] == "#" ) { // Ummm, should make this work in all XML docs var oid = document.getElementById(m[2]); r = ret = oid ? [oid] : []; t = t.replace( re2, "" ); } else { if ( !m[2] || m[1] == "." ) m[2] = "*";
for ( var i = 0; i < ret.length; i ) r = jQuery.merge( r, m[2] == "*" ? jQuery.getAll(ret[i]) : ret[i].getElementsByTagName(m[2]) ); } }
}
if ( t ) { var val = jQuery.filter(t,r); ret = r = val.r; t = jQuery.trim(val.t); } }
if ( ret && ret[0] == context ) ret.shift(); done = jQuery.merge( done, ret );
return done; },
getAll: function(o,r) { r = r || []; var s = o.childNodes; for ( var i = 0; i < s.length; i ) if ( s[i].nodeType == 1 ) { r.push( s[i] ); jQuery.getAll( s[i], r ); } return r; },
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn