Changeset 12040
- Timestamp:
- Sep 2, 2011, 9:29:08 PM (13 years ago)
- Location:
- trunk/themes/default/js
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/themes/default/js/jquery.js
r9553 r12040 1 1 /*! 2 * jQuery JavaScript Library v1. 5.12 * jQuery JavaScript Library v1.6.2 3 3 * http://jquery.com/ 4 4 * … … 12 12 * Released under the MIT, BSD, and GPL Licenses. 13 13 * 14 * Date: Wed Feb 23 13:55:29 2011 -050014 * Date: Thu Jun 30 14:16:56 2011 -0400 15 15 */ 16 16 (function( window, undefined ) { 17 17 18 18 // Use the correct document accordingly with window argument (sandbox) 19 var document = window.document; 19 var document = window.document, 20 navigator = window.navigator, 21 location = window.location; 20 22 var jQuery = (function() { 21 23 … … 37 39 // A simple way to check for HTML strings or ID strings 38 40 // (both of which we optimize for) 39 quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-] +)$)/,41 quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, 40 42 41 43 // Check if a string has a non-whitespace character in it … … 64 66 rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, 65 67 68 // Matches dashed string for camelizing 69 rdashAlpha = /-([a-z])/ig, 70 71 // Used by jQuery.camelCase as callback to replace() 72 fcamelCase = function( all, letter ) { 73 return letter.toUpperCase(); 74 }, 75 66 76 // Keep a UserAgent string for use with jQuery.browser 67 77 userAgent = navigator.userAgent, … … 70 80 browserMatch, 71 81 72 // Has the ready events already been bound?73 readyBound = false,74 75 82 // The deferred used on DOM ready 76 83 readyList, 77 78 // Promise methods79 promiseMethods = "then done fail isResolved isRejected promise".split( " " ),80 84 81 85 // The ready event handler … … 114 118 this.context = document; 115 119 this[0] = document.body; 116 this.selector = "body";120 this.selector = selector; 117 121 this.length = 1; 118 122 return this; … … 122 126 if ( typeof selector === "string" ) { 123 127 // Are we dealing with HTML string or an ID? 124 match = quickExpr.exec( selector ); 128 if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { 129 // Assume that strings that start and end with <> are HTML and skip the regex check 130 match = [ null, selector, null ]; 131 132 } else { 133 match = quickExpr.exec( selector ); 134 } 125 135 126 136 // Verify a match, and that no context was specified for #id … … 203 213 204 214 // The current version of jQuery being used 205 jquery: "1. 5.1",215 jquery: "1.6.2", 206 216 207 217 // The default length of a jQuery object is 0 … … 379 389 jQuery.extend({ 380 390 noConflict: function( deep ) { 381 window.$ = _$; 382 383 if ( deep ) { 391 if ( window.$ === jQuery ) { 392 window.$ = _$; 393 } 394 395 if ( deep && window.jQuery === jQuery ) { 384 396 window.jQuery = _jQuery; 385 397 } … … 395 407 readyWait: 1, 396 408 409 // Hold (or release) the ready event 410 holdReady: function( hold ) { 411 if ( hold ) { 412 jQuery.readyWait++; 413 } else { 414 jQuery.ready( true ); 415 } 416 }, 417 397 418 // Handle when the DOM is ready 398 419 ready: function( wait ) { 399 // A third-party is pushing the ready event forwards 400 if ( wait === true ) { 401 jQuery.readyWait--; 402 } 403 404 // Make sure that the DOM is not already loaded 405 if ( !jQuery.readyWait || (wait !== true && !jQuery.isReady) ) { 420 // Either a released hold or an DOMready/load event and not yet ready 421 if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { 406 422 // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). 407 423 if ( !document.body ) { … … 428 444 429 445 bindReady: function() { 430 if ( ready Bound) {446 if ( readyList ) { 431 447 return; 432 448 } 433 449 434 ready Bound = true;450 readyList = jQuery._Deferred(); 435 451 436 452 // Catch cases where $(document).ready() is called after the … … 453 469 // ensure firing before onload, 454 470 // maybe late but safe also for iframes 455 document.attachEvent( "onreadystatechange", DOMContentLoaded);471 document.attachEvent( "onreadystatechange", DOMContentLoaded ); 456 472 457 473 // A fallback to window.onload, that will always work … … 541 557 data = jQuery.trim( data ); 542 558 559 // Attempt to parse using the native JSON parser first 560 if ( window.JSON && window.JSON.parse ) { 561 return window.JSON.parse( data ); 562 } 563 543 564 // Make sure the incoming data is actual JSON 544 565 // Logic borrowed from http://json.org/json2.js 545 if ( rvalidchars.test(data.replace(rvalidescape, "@") 546 .replace(rvalidtokens, "]") 547 .replace(rvalidbraces, "")) ) { 548 549 // Try to use the native JSON parser first 550 return window.JSON && window.JSON.parse ? 551 window.JSON.parse( data ) : 552 (new Function("return " + data))(); 553 554 } else { 555 jQuery.error( "Invalid JSON: " + data ); 556 } 566 if ( rvalidchars.test( data.replace( rvalidescape, "@" ) 567 .replace( rvalidtokens, "]" ) 568 .replace( rvalidbraces, "")) ) { 569 570 return (new Function( "return " + data ))(); 571 572 } 573 jQuery.error( "Invalid JSON: " + data ); 557 574 }, 558 575 … … 581 598 noop: function() {}, 582 599 583 // Evalulates a script in a global context 600 // Evaluates a script in a global context 601 // Workarounds based on findings by Jim Driscoll 602 // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context 584 603 globalEval: function( data ) { 585 if ( data && rnotwhite.test(data) ) { 586 // Inspired by code by Andrea Giammarchi 587 // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html 588 var head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement, 589 script = document.createElement( "script" ); 590 591 if ( jQuery.support.scriptEval() ) { 592 script.appendChild( document.createTextNode( data ) ); 593 } else { 594 script.text = data; 595 } 596 597 // Use insertBefore instead of appendChild to circumvent an IE6 bug. 598 // This arises when a base node is used (#2709). 599 head.insertBefore( script, head.firstChild ); 600 head.removeChild( script ); 601 } 604 if ( data && rnotwhite.test( data ) ) { 605 // We use execScript on Internet Explorer 606 // We use an anonymous function so that context is window 607 // rather than jQuery in Firefox 608 ( window.execScript || function( data ) { 609 window[ "eval" ].call( window, data ); 610 } )( data ); 611 } 612 }, 613 614 // Converts a dashed string to camelCased string; 615 // Used by both the css and data modules 616 camelCase: function( string ) { 617 return string.replace( rdashAlpha, fcamelCase ); 602 618 }, 603 619 … … 610 626 var name, i = 0, 611 627 length = object.length, 612 isObj = length === undefined || jQuery.isFunction( object);628 isObj = length === undefined || jQuery.isFunction( object ); 613 629 614 630 if ( args ) { … … 636 652 } 637 653 } else { 638 for ( var value = object[0]; 639 i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {} 654 for ( ; i < length; ) { 655 if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { 656 break; 657 } 658 } 640 659 } 641 660 } … … 668 687 // in Safari 2 (See: #3039) 669 688 // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 670 var type = jQuery.type( array);689 var type = jQuery.type( array ); 671 690 672 691 if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { … … 681 700 682 701 inArray: function( elem, array ) { 683 if ( array.indexOf ) { 684 return array.indexOf( elem ); 702 703 if ( indexOf ) { 704 return indexOf.call( array, elem ); 685 705 } 686 706 … … 732 752 // arg is for internal usage only 733 753 map: function( elems, callback, arg ) { 734 var ret = [], value; 754 var value, key, ret = [], 755 i = 0, 756 length = elems.length, 757 // jquery objects are treated as arrays 758 isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; 735 759 736 760 // Go through the array, translating each of the items to their 737 // new value (or values). 738 for ( var i = 0, length = elems.length; i < length; i++ ) { 739 value = callback( elems[ i ], i, arg ); 740 741 if ( value != null ) { 742 ret[ ret.length ] = value; 761 if ( isArray ) { 762 for ( ; i < length; i++ ) { 763 value = callback( elems[ i ], i, arg ); 764 765 if ( value != null ) { 766 ret[ ret.length ] = value; 767 } 768 } 769 770 // Go through every key on the object, 771 } else { 772 for ( key in elems ) { 773 value = callback( elems[ key ], key, arg ); 774 775 if ( value != null ) { 776 ret[ ret.length ] = value; 777 } 743 778 } 744 779 } … … 751 786 guid: 1, 752 787 753 proxy: function( fn, proxy, thisObject ) { 754 if ( arguments.length === 2 ) { 755 if ( typeof proxy === "string" ) { 756 thisObject = fn; 757 fn = thisObject[ proxy ]; 758 proxy = undefined; 759 760 } else if ( proxy && !jQuery.isFunction( proxy ) ) { 761 thisObject = proxy; 762 proxy = undefined; 763 } 764 } 765 766 if ( !proxy && fn ) { 788 // Bind a function to a context, optionally partially applying any 789 // arguments. 790 proxy: function( fn, context ) { 791 if ( typeof context === "string" ) { 792 var tmp = fn[ context ]; 793 context = fn; 794 fn = tmp; 795 } 796 797 // Quick check to determine if target is callable, in the spec 798 // this throws a TypeError, but we will just return undefined. 799 if ( !jQuery.isFunction( fn ) ) { 800 return undefined; 801 } 802 803 // Simulated bind 804 var args = slice.call( arguments, 2 ), 767 805 proxy = function() { 768 return fn.apply( thisObject || this, arguments);806 return fn.apply( context, args.concat( slice.call( arguments ) ) ); 769 807 }; 770 }771 808 772 809 // Set the guid of unique handler to the same of original handler, so it can be removed 773 if ( fn ) { 774 proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; 775 } 776 777 // So proxy can be declared as an argument 810 proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; 811 778 812 return proxy; 779 813 }, 780 814 781 815 // Mutifunctional method to get and set values to a collection 782 // The value/s can be optionally by executed if its a function816 // The value/s can optionally be executed if it's a function 783 817 access: function( elems, key, value, exec, fn, pass ) { 784 818 var length = elems.length; … … 812 846 }, 813 847 848 // Use of jQuery.browser is frowned upon. 849 // More details: http://docs.jquery.com/Utilities/jQuery.browser 850 uaMatch: function( ua ) { 851 ua = ua.toLowerCase(); 852 853 var match = rwebkit.exec( ua ) || 854 ropera.exec( ua ) || 855 rmsie.exec( ua ) || 856 ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || 857 []; 858 859 return { browser: match[1] || "", version: match[2] || "0" }; 860 }, 861 862 sub: function() { 863 function jQuerySub( selector, context ) { 864 return new jQuerySub.fn.init( selector, context ); 865 } 866 jQuery.extend( true, jQuerySub, this ); 867 jQuerySub.superclass = this; 868 jQuerySub.fn = jQuerySub.prototype = this(); 869 jQuerySub.fn.constructor = jQuerySub; 870 jQuerySub.sub = this.sub; 871 jQuerySub.fn.init = function init( selector, context ) { 872 if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { 873 context = jQuerySub( context ); 874 } 875 876 return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); 877 }; 878 jQuerySub.fn.init.prototype = jQuerySub.fn; 879 var rootjQuerySub = jQuerySub(document); 880 return jQuerySub; 881 }, 882 883 browser: {} 884 }); 885 886 // Populate the class2type map 887 jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { 888 class2type[ "[object " + name + "]" ] = name.toLowerCase(); 889 }); 890 891 browserMatch = jQuery.uaMatch( userAgent ); 892 if ( browserMatch.browser ) { 893 jQuery.browser[ browserMatch.browser ] = true; 894 jQuery.browser.version = browserMatch.version; 895 } 896 897 // Deprecated, use jQuery.browser.webkit instead 898 if ( jQuery.browser.webkit ) { 899 jQuery.browser.safari = true; 900 } 901 902 // IE doesn't match non-breaking spaces with \s 903 if ( rnotwhite.test( "\xA0" ) ) { 904 trimLeft = /^[\s\xA0]+/; 905 trimRight = /[\s\xA0]+$/; 906 } 907 908 // All jQuery objects should point back to these 909 rootjQuery = jQuery(document); 910 911 // Cleanup functions for the document ready method 912 if ( document.addEventListener ) { 913 DOMContentLoaded = function() { 914 document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); 915 jQuery.ready(); 916 }; 917 918 } else if ( document.attachEvent ) { 919 DOMContentLoaded = function() { 920 // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). 921 if ( document.readyState === "complete" ) { 922 document.detachEvent( "onreadystatechange", DOMContentLoaded ); 923 jQuery.ready(); 924 } 925 }; 926 } 927 928 // The DOM ready check for Internet Explorer 929 function doScrollCheck() { 930 if ( jQuery.isReady ) { 931 return; 932 } 933 934 try { 935 // If IE is used, use the trick by Diego Perini 936 // http://javascript.nwbox.com/IEContentLoaded/ 937 document.documentElement.doScroll("left"); 938 } catch(e) { 939 setTimeout( doScrollCheck, 1 ); 940 return; 941 } 942 943 // and execute any waiting functions 944 jQuery.ready(); 945 } 946 947 return jQuery; 948 949 })(); 950 951 952 var // Promise methods 953 promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ), 954 // Static reference to slice 955 sliceDeferred = [].slice; 956 957 jQuery.extend({ 814 958 // Create a simple deferred (one callbacks list) 815 959 _Deferred: function() { … … 857 1001 resolveWith: function( context, args ) { 858 1002 if ( !cancelled && !fired && !firing ) { 1003 // make sure args are available (#8421) 1004 args = args || []; 859 1005 firing = 1; 860 1006 try { … … 862 1008 callbacks.shift().apply( context, args ); 863 1009 } 864 }865 // We have to add a catch block for866 // IE prior to 8 or else the finally867 // block will never get executed868 catch (e) {869 throw e;870 1010 } 871 1011 finally { … … 879 1019 // resolve with this as context and given arguments 880 1020 resolve: function() { 881 deferred.resolveWith( jQuery.isFunction( this.promise ) ? this.promise() :this, arguments );1021 deferred.resolveWith( this, arguments ); 882 1022 return this; 883 1023 }, … … 910 1050 return this; 911 1051 }, 1052 always: function() { 1053 return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments ); 1054 }, 912 1055 fail: failDeferred.done, 913 1056 rejectWith: failDeferred.resolveWith, 914 1057 reject: failDeferred.resolve, 915 1058 isRejected: failDeferred.isResolved, 1059 pipe: function( fnDone, fnFail ) { 1060 return jQuery.Deferred(function( newDefer ) { 1061 jQuery.each( { 1062 done: [ fnDone, "resolve" ], 1063 fail: [ fnFail, "reject" ] 1064 }, function( handler, data ) { 1065 var fn = data[ 0 ], 1066 action = data[ 1 ], 1067 returned; 1068 if ( jQuery.isFunction( fn ) ) { 1069 deferred[ handler ](function() { 1070 returned = fn.apply( this, arguments ); 1071 if ( returned && jQuery.isFunction( returned.promise ) ) { 1072 returned.promise().then( newDefer.resolve, newDefer.reject ); 1073 } else { 1074 newDefer[ action ]( returned ); 1075 } 1076 }); 1077 } else { 1078 deferred[ handler ]( newDefer[ action ] ); 1079 } 1080 }); 1081 }).promise(); 1082 }, 916 1083 // Get a promise for this deferred 917 1084 // If obj is provided, the promise aspect is added to the object … … 929 1096 return obj; 930 1097 } 931 } 1098 }); 932 1099 // Make sure only one callback list will be used 933 1100 deferred.done( failDeferred.cancel ).fail( deferred.cancel ); … … 942 1109 943 1110 // Deferred helper 944 when: function( object ) { 945 var lastIndex = arguments.length, 946 deferred = lastIndex <= 1 && object && jQuery.isFunction( object.promise ) ? 947 object : 948 jQuery.Deferred(), 949 promise = deferred.promise(); 950 951 if ( lastIndex > 1 ) { 952 var array = slice.call( arguments, 0 ), 953 count = lastIndex, 954 iCallback = function( index ) { 955 return function( value ) { 956 array[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value; 957 if ( !( --count ) ) { 958 deferred.resolveWith( promise, array ); 959 } 960 }; 961 }; 962 while( ( lastIndex-- ) ) { 963 object = array[ lastIndex ]; 964 if ( object && jQuery.isFunction( object.promise ) ) { 965 object.promise().then( iCallback(lastIndex), deferred.reject ); 1111 when: function( firstParam ) { 1112 var args = arguments, 1113 i = 0, 1114 length = args.length, 1115 count = length, 1116 deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? 1117 firstParam : 1118 jQuery.Deferred(); 1119 function resolveFunc( i ) { 1120 return function( value ) { 1121 args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; 1122 if ( !( --count ) ) { 1123 // Strange bug in FF4: 1124 // Values changed onto the arguments object sometimes end up as undefined values 1125 // outside the $.when method. Cloning the object into a fresh array solves the issue 1126 deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) ); 1127 } 1128 }; 1129 } 1130 if ( length > 1 ) { 1131 for( ; i < length; i++ ) { 1132 if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) { 1133 args[ i ].promise().then( resolveFunc(i), deferred.reject ); 966 1134 } else { 967 1135 --count; … … 969 1137 } 970 1138 if ( !count ) { 971 deferred.resolveWith( promise, array ); 972 } 973 } else if ( deferred !== object ) { 974 deferred.resolve( object ); 975 } 976 return promise; 977 }, 978 979 // Use of jQuery.browser is frowned upon. 980 // More details: http://docs.jquery.com/Utilities/jQuery.browser 981 uaMatch: function( ua ) { 982 ua = ua.toLowerCase(); 983 984 var match = rwebkit.exec( ua ) || 985 ropera.exec( ua ) || 986 rmsie.exec( ua ) || 987 ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || 988 []; 989 990 return { browser: match[1] || "", version: match[2] || "0" }; 991 }, 992 993 sub: function() { 994 function jQuerySubclass( selector, context ) { 995 return new jQuerySubclass.fn.init( selector, context ); 996 } 997 jQuery.extend( true, jQuerySubclass, this ); 998 jQuerySubclass.superclass = this; 999 jQuerySubclass.fn = jQuerySubclass.prototype = this(); 1000 jQuerySubclass.fn.constructor = jQuerySubclass; 1001 jQuerySubclass.subclass = this.subclass; 1002 jQuerySubclass.fn.init = function init( selector, context ) { 1003 if ( context && context instanceof jQuery && !(context instanceof jQuerySubclass) ) { 1004 context = jQuerySubclass(context); 1005 } 1006 1007 return jQuery.fn.init.call( this, selector, context, rootjQuerySubclass ); 1008 }; 1009 jQuerySubclass.fn.init.prototype = jQuerySubclass.fn; 1010 var rootjQuerySubclass = jQuerySubclass(document); 1011 return jQuerySubclass; 1012 }, 1013 1014 browser: {} 1139 deferred.resolveWith( deferred, args ); 1140 } 1141 } else if ( deferred !== firstParam ) { 1142 deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); 1143 } 1144 return deferred.promise(); 1145 } 1015 1146 }); 1016 1147 1017 // Create readyList deferred 1018 readyList = jQuery._Deferred(); 1019 1020 // Populate the class2type map 1021 jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { 1022 class2type[ "[object " + name + "]" ] = name.toLowerCase(); 1023 }); 1024 1025 browserMatch = jQuery.uaMatch( userAgent ); 1026 if ( browserMatch.browser ) { 1027 jQuery.browser[ browserMatch.browser ] = true; 1028 jQuery.browser.version = browserMatch.version; 1029 } 1030 1031 // Deprecated, use jQuery.browser.webkit instead 1032 if ( jQuery.browser.webkit ) { 1033 jQuery.browser.safari = true; 1034 } 1035 1036 if ( indexOf ) { 1037 jQuery.inArray = function( elem, array ) { 1038 return indexOf.call( array, elem ); 1039 }; 1040 } 1041 1042 // IE doesn't match non-breaking spaces with \s 1043 if ( rnotwhite.test( "\xA0" ) ) { 1044 trimLeft = /^[\s\xA0]+/; 1045 trimRight = /[\s\xA0]+$/; 1046 } 1047 1048 // All jQuery objects should point back to these 1049 rootjQuery = jQuery(document); 1050 1051 // Cleanup functions for the document ready method 1052 if ( document.addEventListener ) { 1053 DOMContentLoaded = function() { 1054 document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); 1055 jQuery.ready(); 1056 }; 1057 1058 } else if ( document.attachEvent ) { 1059 DOMContentLoaded = function() { 1060 // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). 1061 if ( document.readyState === "complete" ) { 1062 document.detachEvent( "onreadystatechange", DOMContentLoaded ); 1063 jQuery.ready(); 1064 } 1065 }; 1066 } 1067 1068 // The DOM ready check for Internet Explorer 1069 function doScrollCheck() { 1070 if ( jQuery.isReady ) { 1071 return; 1072 } 1073 1074 try { 1075 // If IE is used, use the trick by Diego Perini 1076 // http://javascript.nwbox.com/IEContentLoaded/ 1077 document.documentElement.doScroll("left"); 1078 } catch(e) { 1079 setTimeout( doScrollCheck, 1 ); 1080 return; 1081 } 1082 1083 // and execute any waiting functions 1084 jQuery.ready(); 1085 } 1086 1087 // Expose jQuery to the global object 1088 return jQuery; 1089 1090 })(); 1091 1092 1093 (function() { 1094 1095 jQuery.support = {}; 1096 1097 var div = document.createElement("div"); 1098 1099 div.style.display = "none"; 1100 div.innerHTML = " <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; 1101 1102 var all = div.getElementsByTagName("*"), 1103 a = div.getElementsByTagName("a")[0], 1104 select = document.createElement("select"), 1105 opt = select.appendChild( document.createElement("option") ), 1106 input = div.getElementsByTagName("input")[0]; 1148 1149 1150 jQuery.support = (function() { 1151 1152 var div = document.createElement( "div" ), 1153 documentElement = document.documentElement, 1154 all, 1155 a, 1156 select, 1157 opt, 1158 input, 1159 marginDiv, 1160 support, 1161 fragment, 1162 body, 1163 testElementParent, 1164 testElement, 1165 testElementStyle, 1166 tds, 1167 events, 1168 eventName, 1169 i, 1170 isSupported; 1171 1172 // Preliminary tests 1173 div.setAttribute("className", "t"); 1174 div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; 1175 1176 all = div.getElementsByTagName( "*" ); 1177 a = div.getElementsByTagName( "a" )[ 0 ]; 1107 1178 1108 1179 // Can't get basic test support 1109 1180 if ( !all || !all.length || !a ) { 1110 return; 1111 } 1112 1113 jQuery.support = { 1181 return {}; 1182 } 1183 1184 // First batch of supports tests 1185 select = document.createElement( "select" ); 1186 opt = select.appendChild( document.createElement("option") ); 1187 input = div.getElementsByTagName( "input" )[ 0 ]; 1188 1189 support = { 1114 1190 // IE strips leading whitespace when .innerHTML is used 1115 leadingWhitespace: div.firstChild.nodeType === 3,1191 leadingWhitespace: ( div.firstChild.nodeType === 3 ), 1116 1192 1117 1193 // Make sure that tbody elements aren't automatically inserted 1118 1194 // IE will insert them into empty tables 1119 tbody: !div.getElementsByTagName( "tbody").length,1195 tbody: !div.getElementsByTagName( "tbody" ).length, 1120 1196 1121 1197 // Make sure that link elements get serialized correctly by innerHTML 1122 1198 // This requires a wrapper element in IE 1123 htmlSerialize: !!div.getElementsByTagName( "link").length,1199 htmlSerialize: !!div.getElementsByTagName( "link" ).length, 1124 1200 1125 1201 // Get the style information from getAttribute 1126 // (IE uses .cssText inste d)1127 style: / red/.test( a.getAttribute("style") ),1202 // (IE uses .cssText instead) 1203 style: /top/.test( a.getAttribute("style") ), 1128 1204 1129 1205 // Make sure that URLs aren't manipulated 1130 1206 // (IE normalizes it by default) 1131 hrefNormalized: a.getAttribute("href") === "/a",1207 hrefNormalized: ( a.getAttribute( "href" ) === "/a" ), 1132 1208 1133 1209 // Make sure that element opacity exists … … 1143 1219 // that it defaults to "on". 1144 1220 // (WebKit defaults to "" instead) 1145 checkOn: input.value === "on",1221 checkOn: ( input.value === "on" ), 1146 1222 1147 1223 // Make sure that a selected-by-default option has a working selected property. … … 1149 1225 optSelected: opt.selected, 1150 1226 1227 // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) 1228 getSetAttribute: div.className !== "t", 1229 1151 1230 // Will be defined later 1231 submitBubbles: true, 1232 changeBubbles: true, 1233 focusinBubbles: false, 1152 1234 deleteExpando: true, 1153 optDisabled: false,1154 checkClone: false,1155 1235 noCloneEvent: true, 1156 noCloneChecked: true,1157 boxModel: null,1158 1236 inlineBlockNeedsLayout: false, 1159 1237 shrinkWrapBlocks: false, 1160 reliable HiddenOffsets: true1238 reliableMarginRight: true 1161 1239 }; 1162 1240 1241 // Make sure checked status is properly cloned 1163 1242 input.checked = true; 1164 jQuery.support.noCloneChecked = input.cloneNode( true ).checked;1243 support.noCloneChecked = input.cloneNode( true ).checked; 1165 1244 1166 1245 // Make sure that the options inside disabled selects aren't marked as disabled 1167 // (WebKit marks them as di abled)1246 // (WebKit marks them as disabled) 1168 1247 select.disabled = true; 1169 jQuery.support.optDisabled = !opt.disabled; 1170 1171 var _scriptEval = null; 1172 jQuery.support.scriptEval = function() { 1173 if ( _scriptEval === null ) { 1174 var root = document.documentElement, 1175 script = document.createElement("script"), 1176 id = "script" + jQuery.now(); 1177 1178 try { 1179 script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); 1180 } catch(e) {} 1181 1182 root.insertBefore( script, root.firstChild ); 1183 1184 // Make sure that the execution of code works by injecting a script 1185 // tag with appendChild/createTextNode 1186 // (IE doesn't support this, fails, and uses .text instead) 1187 if ( window[ id ] ) { 1188 _scriptEval = true; 1189 delete window[ id ]; 1190 } else { 1191 _scriptEval = false; 1192 } 1193 1194 root.removeChild( script ); 1195 // release memory in IE 1196 root = script = id = null; 1197 } 1198 1199 return _scriptEval; 1200 }; 1248 support.optDisabled = !opt.disabled; 1201 1249 1202 1250 // Test to see if it's possible to delete an expando from an element … … 1204 1252 try { 1205 1253 delete div.test; 1206 1207 } catch(e) { 1208 jQuery.support.deleteExpando = false; 1254 } catch( e ) { 1255 support.deleteExpando = false; 1209 1256 } 1210 1257 1211 1258 if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { 1212 div.attachEvent( "onclick", function click() {1259 div.attachEvent( "onclick", function() { 1213 1260 // Cloning a node shouldn't copy over any 1214 1261 // bound event handlers (IE does this) 1215 jQuery.support.noCloneEvent = false; 1216 div.detachEvent("onclick", click); 1262 support.noCloneEvent = false; 1217 1263 }); 1218 div.cloneNode(true).fireEvent("onclick"); 1219 } 1220 1221 div = document.createElement("div"); 1222 div.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>"; 1223 1224 var fragment = document.createDocumentFragment(); 1264 div.cloneNode( true ).fireEvent( "onclick" ); 1265 } 1266 1267 // Check if a radio maintains it's value 1268 // after being appended to the DOM 1269 input = document.createElement("input"); 1270 input.value = "t"; 1271 input.setAttribute("type", "radio"); 1272 support.radioValue = input.value === "t"; 1273 1274 input.setAttribute("checked", "checked"); 1275 div.appendChild( input ); 1276 fragment = document.createDocumentFragment(); 1225 1277 fragment.appendChild( div.firstChild ); 1226 1278 1227 1279 // WebKit doesn't clone checked state correctly in fragments 1228 jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked; 1280 support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; 1281 1282 div.innerHTML = ""; 1229 1283 1230 1284 // Figure out if the W3C box model works as expected 1231 // document.body must exist before we can do this 1232 jQuery(function() { 1233 var div = document.createElement("div"), 1234 body = document.getElementsByTagName("body")[0]; 1235 1236 // Frameset documents with no body should not run this code 1237 if ( !body ) { 1238 return; 1239 } 1240 1241 div.style.width = div.style.paddingLeft = "1px"; 1242 body.appendChild( div ); 1243 jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; 1244 1245 if ( "zoom" in div.style ) { 1246 // Check if natively block-level elements act like inline-block 1247 // elements when setting their display to 'inline' and giving 1248 // them layout 1249 // (IE < 8 does this) 1250 div.style.display = "inline"; 1251 div.style.zoom = 1; 1252 jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2; 1253 1254 // Check if elements with layout shrink-wrap their children 1255 // (IE 6 does this) 1256 div.style.display = ""; 1257 div.innerHTML = "<div style='width:4px;'></div>"; 1258 jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2; 1259 } 1260 1261 div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>"; 1262 var tds = div.getElementsByTagName("td"); 1263 1264 // Check if table cells still have offsetWidth/Height when they are set 1265 // to display:none and there are still other visible table cells in a 1266 // table row; if so, offsetWidth/Height are not reliable for use when 1267 // determining if an element has been hidden directly using 1268 // display:none (it is still safe to use offsets if a parent element is 1269 // hidden; don safety goggles and see bug #4512 for more information). 1270 // (only IE 8 fails this test) 1271 jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0; 1272 1273 tds[0].style.display = ""; 1274 tds[1].style.display = "none"; 1275 1276 // Check if empty table cells still have offsetWidth/Height 1277 // (IE < 8 fail this test) 1278 jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets && tds[0].offsetHeight === 0; 1279 div.innerHTML = ""; 1280 1281 body.removeChild( div ).style.display = "none"; 1282 div = tds = null; 1283 }); 1285 div.style.width = div.style.paddingLeft = "1px"; 1286 1287 body = document.getElementsByTagName( "body" )[ 0 ]; 1288 // We use our own, invisible, body unless the body is already present 1289 // in which case we use a div (#9239) 1290 testElement = document.createElement( body ? "div" : "body" ); 1291 testElementStyle = { 1292 visibility: "hidden", 1293 width: 0, 1294 height: 0, 1295 border: 0, 1296 margin: 0 1297 }; 1298 if ( body ) { 1299 jQuery.extend( testElementStyle, { 1300 position: "absolute", 1301 left: -1000, 1302 top: -1000 1303 }); 1304 } 1305 for ( i in testElementStyle ) { 1306 testElement.style[ i ] = testElementStyle[ i ]; 1307 } 1308 testElement.appendChild( div ); 1309 testElementParent = body || documentElement; 1310 testElementParent.insertBefore( testElement, testElementParent.firstChild ); 1311 1312 // Check if a disconnected checkbox will retain its checked 1313 // value of true after appended to the DOM (IE6/7) 1314 support.appendChecked = input.checked; 1315 1316 support.boxModel = div.offsetWidth === 2; 1317 1318 if ( "zoom" in div.style ) { 1319 // Check if natively block-level elements act like inline-block 1320 // elements when setting their display to 'inline' and giving 1321 // them layout 1322 // (IE < 8 does this) 1323 div.style.display = "inline"; 1324 div.style.zoom = 1; 1325 support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 ); 1326 1327 // Check if elements with layout shrink-wrap their children 1328 // (IE 6 does this) 1329 div.style.display = ""; 1330 div.innerHTML = "<div style='width:4px;'></div>"; 1331 support.shrinkWrapBlocks = ( div.offsetWidth !== 2 ); 1332 } 1333 1334 div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>"; 1335 tds = div.getElementsByTagName( "td" ); 1336 1337 // Check if table cells still have offsetWidth/Height when they are set 1338 // to display:none and there are still other visible table cells in a 1339 // table row; if so, offsetWidth/Height are not reliable for use when 1340 // determining if an element has been hidden directly using 1341 // display:none (it is still safe to use offsets if a parent element is 1342 // hidden; don safety goggles and see bug #4512 for more information). 1343 // (only IE 8 fails this test) 1344 isSupported = ( tds[ 0 ].offsetHeight === 0 ); 1345 1346 tds[ 0 ].style.display = ""; 1347 tds[ 1 ].style.display = "none"; 1348 1349 // Check if empty table cells still have offsetWidth/Height 1350 // (IE < 8 fail this test) 1351 support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); 1352 div.innerHTML = ""; 1353 1354 // Check if div with explicit width and no margin-right incorrectly 1355 // gets computed margin-right based on width of container. For more 1356 // info see bug #3333 1357 // Fails in WebKit before Feb 2011 nightlies 1358 // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right 1359 if ( document.defaultView && document.defaultView.getComputedStyle ) { 1360 marginDiv = document.createElement( "div" ); 1361 marginDiv.style.width = "0"; 1362 marginDiv.style.marginRight = "0"; 1363 div.appendChild( marginDiv ); 1364 support.reliableMarginRight = 1365 ( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; 1366 } 1367 1368 // Remove the body element we added 1369 testElement.innerHTML = ""; 1370 testElementParent.removeChild( testElement ); 1284 1371 1285 1372 // Technique from Juriy Zaytsev 1286 1373 // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ 1287 var eventSupported = function( eventName ) { 1288 var el = document.createElement("div"); 1289 eventName = "on" + eventName; 1290 1291 // We only care about the case where non-standard event systems 1292 // are used, namely in IE. Short-circuiting here helps us to 1293 // avoid an eval call (in setAttribute) which can cause CSP 1294 // to go haywire. See: https://developer.mozilla.org/en/Security/CSP 1295 if ( !el.attachEvent ) { 1296 return true; 1297 } 1298 1299 var isSupported = (eventName in el); 1300 if ( !isSupported ) { 1301 el.setAttribute(eventName, "return;"); 1302 isSupported = typeof el[eventName] === "function"; 1303 } 1304 el = null; 1305 1306 return isSupported; 1307 }; 1308 1309 jQuery.support.submitBubbles = eventSupported("submit"); 1310 jQuery.support.changeBubbles = eventSupported("change"); 1311 1312 // release memory in IE 1313 div = all = a = null; 1374 // We only care about the case where non-standard event systems 1375 // are used, namely in IE. Short-circuiting here helps us to 1376 // avoid an eval call (in setAttribute) which can cause CSP 1377 // to go haywire. See: https://developer.mozilla.org/en/Security/CSP 1378 if ( div.attachEvent ) { 1379 for( i in { 1380 submit: 1, 1381 change: 1, 1382 focusin: 1 1383 } ) { 1384 eventName = "on" + i; 1385 isSupported = ( eventName in div ); 1386 if ( !isSupported ) { 1387 div.setAttribute( eventName, "return;" ); 1388 isSupported = ( typeof div[ eventName ] === "function" ); 1389 } 1390 support[ i + "Bubbles" ] = isSupported; 1391 } 1392 } 1393 1394 // Null connected elements to avoid leaks in IE 1395 testElement = fragment = select = opt = body = marginDiv = div = input = null; 1396 1397 return support; 1314 1398 })(); 1315 1399 1316 1317 1318 var rbrace = /^(?:\{.*\}|\[.*\])$/; 1400 // Keep track of boxModel 1401 jQuery.boxModel = jQuery.support.boxModel; 1402 1403 1404 1405 1406 var rbrace = /^(?:\{.*\}|\[.*\])$/, 1407 rmultiDash = /([a-z])([A-Z])/g; 1319 1408 1320 1409 jQuery.extend({ … … 1413 1502 1414 1503 if ( data !== undefined ) { 1415 thisCache[ name] = data;1504 thisCache[ jQuery.camelCase( name ) ] = data; 1416 1505 } 1417 1506 … … 1423 1512 } 1424 1513 1425 return getByName ? thisCache[ name ] : thisCache; 1514 return getByName ? 1515 // Check for both converted-to-camel and non-converted data property names 1516 thisCache[ jQuery.camelCase( name ) ] || thisCache[ name ] : 1517 thisCache; 1426 1518 }, 1427 1519 … … 1539 1631 1540 1632 if ( this[0].nodeType === 1 ) { 1541 1633 var attr = this[0].attributes, name; 1542 1634 for ( var i = 0, l = attr.length; i < l; i++ ) { 1543 1635 name = attr[i].name; 1544 1636 1545 1637 if ( name.indexOf( "data-" ) === 0 ) { 1546 name = name.substr( 5 ); 1638 name = jQuery.camelCase( name.substring(5) ); 1639 1547 1640 dataAttr( this[0], name, data[ name ] ); 1548 1641 } … … 1598 1691 // data from the HTML5 data-* attribute 1599 1692 if ( data === undefined && elem.nodeType === 1 ) { 1600 data = elem.getAttribute( "data-" + key ); 1693 var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase(); 1694 1695 data = elem.getAttribute( name ); 1601 1696 1602 1697 if ( typeof data === "string" ) { … … 1637 1732 1638 1733 1734 function handleQueueMarkDefer( elem, type, src ) { 1735 var deferDataKey = type + "defer", 1736 queueDataKey = type + "queue", 1737 markDataKey = type + "mark", 1738 defer = jQuery.data( elem, deferDataKey, undefined, true ); 1739 if ( defer && 1740 ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) && 1741 ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) { 1742 // Give room for hard-coded callbacks to fire first 1743 // and eventually mark/queue something else on the element 1744 setTimeout( function() { 1745 if ( !jQuery.data( elem, queueDataKey, undefined, true ) && 1746 !jQuery.data( elem, markDataKey, undefined, true ) ) { 1747 jQuery.removeData( elem, deferDataKey, true ); 1748 defer.resolve(); 1749 } 1750 }, 0 ); 1751 } 1752 } 1753 1639 1754 jQuery.extend({ 1755 1756 _mark: function( elem, type ) { 1757 if ( elem ) { 1758 type = (type || "fx") + "mark"; 1759 jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true ); 1760 } 1761 }, 1762 1763 _unmark: function( force, elem, type ) { 1764 if ( force !== true ) { 1765 type = elem; 1766 elem = force; 1767 force = false; 1768 } 1769 if ( elem ) { 1770 type = type || "fx"; 1771 var key = type + "mark", 1772 count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 ); 1773 if ( count ) { 1774 jQuery.data( elem, key, count, true ); 1775 } else { 1776 jQuery.removeData( elem, key, true ); 1777 handleQueueMarkDefer( elem, type, "mark" ); 1778 } 1779 } 1780 }, 1781 1640 1782 queue: function( elem, type, data ) { 1641 if ( !elem ) { 1642 return; 1643 } 1644 1645 type = (type || "fx") + "queue"; 1646 var q = jQuery._data( elem, type ); 1647 1648 // Speed up dequeue by getting out quickly if this is just a lookup 1649 if ( !data ) { 1783 if ( elem ) { 1784 type = (type || "fx") + "queue"; 1785 var q = jQuery.data( elem, type, undefined, true ); 1786 // Speed up dequeue by getting out quickly if this is just a lookup 1787 if ( data ) { 1788 if ( !q || jQuery.isArray(data) ) { 1789 q = jQuery.data( elem, type, jQuery.makeArray(data), true ); 1790 } else { 1791 q.push( data ); 1792 } 1793 } 1650 1794 return q || []; 1651 1795 } 1652 1653 if ( !q || jQuery.isArray(data) ) {1654 q = jQuery._data( elem, type, jQuery.makeArray(data) );1655 1656 } else {1657 q.push( data );1658 }1659 1660 return q;1661 1796 }, 1662 1797 … … 1665 1800 1666 1801 var queue = jQuery.queue( elem, type ), 1667 fn = queue.shift(); 1802 fn = queue.shift(), 1803 defer; 1668 1804 1669 1805 // If the fx queue is dequeued, always remove the progress sentinel … … 1686 1822 if ( !queue.length ) { 1687 1823 jQuery.removeData( elem, type + "queue", true ); 1824 handleQueueMarkDefer( elem, type, "queue" ); 1688 1825 } 1689 1826 } … … 1700 1837 return jQuery.queue( this[0], type ); 1701 1838 } 1702 return this.each(function( i) {1839 return this.each(function() { 1703 1840 var queue = jQuery.queue( this, type, data ); 1704 1841 … … 1713 1850 }); 1714 1851 }, 1715 1716 1852 // Based off of the plugin by Clint Helfers, with permission. 1717 1853 // http://blindsignals.com/index.php/2009/07/jquery-delay/ … … 1727 1863 }); 1728 1864 }, 1729 1730 1865 clearQueue: function( type ) { 1731 1866 return this.queue( type || "fx", [] ); 1867 }, 1868 // Get a promise resolved when queues of a certain type 1869 // are emptied (fx is the type by default) 1870 promise: function( type, object ) { 1871 if ( typeof type !== "string" ) { 1872 object = type; 1873 type = undefined; 1874 } 1875 type = type || "fx"; 1876 var defer = jQuery.Deferred(), 1877 elements = this, 1878 i = elements.length, 1879 count = 1, 1880 deferDataKey = type + "defer", 1881 queueDataKey = type + "queue", 1882 markDataKey = type + "mark", 1883 tmp; 1884 function resolve() { 1885 if ( !( --count ) ) { 1886 defer.resolveWith( elements, [ elements ] ); 1887 } 1888 } 1889 while( i-- ) { 1890 if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || 1891 ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || 1892 jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && 1893 jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) { 1894 count++; 1895 tmp.done( resolve ); 1896 } 1897 } 1898 resolve(); 1899 return defer.promise(); 1732 1900 } 1733 1901 }); … … 1737 1905 1738 1906 var rclass = /[\n\t\r]/g, 1739 rspace s= /\s+/,1907 rspace = /\s+/, 1740 1908 rreturn = /\r/g, 1741 rspecialurl = /^(?:href|src|style)$/,1742 1909 rtype = /^(?:button|input)$/i, 1743 1910 rfocusable = /^(?:button|input|object|select|textarea)$/i, 1744 1911 rclickable = /^a(?:rea)?$/i, 1745 rradiocheck = /^(?:radio|checkbox)$/i; 1746 1747 jQuery.props = { 1748 "for": "htmlFor", 1749 "class": "className", 1750 readonly: "readOnly", 1751 maxlength: "maxLength", 1752 cellspacing: "cellSpacing", 1753 rowspan: "rowSpan", 1754 colspan: "colSpan", 1755 tabindex: "tabIndex", 1756 usemap: "useMap", 1757 frameborder: "frameBorder" 1758 }; 1912 rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, 1913 rinvalidChar = /\:|^on/, 1914 formHook, boolHook; 1759 1915 1760 1916 jQuery.fn.extend({ … … 1763 1919 }, 1764 1920 1765 removeAttr: function( name, fn ) { 1766 return this.each(function(){ 1767 jQuery.attr( this, name, "" ); 1768 if ( this.nodeType === 1 ) { 1769 this.removeAttribute( name ); 1770 } 1921 removeAttr: function( name ) { 1922 return this.each(function() { 1923 jQuery.removeAttr( this, name ); 1771 1924 }); 1772 1925 }, 1926 1927 prop: function( name, value ) { 1928 return jQuery.access( this, name, value, true, jQuery.prop ); 1929 }, 1930 1931 removeProp: function( name ) { 1932 name = jQuery.propFix[ name ] || name; 1933 return this.each(function() { 1934 // try/catch handles cases where IE balks (such as removing a property on window) 1935 try { 1936 this[ name ] = undefined; 1937 delete this[ name ]; 1938 } catch( e ) {} 1939 }); 1940 }, 1773 1941 1774 1942 addClass: function( value ) { 1775 if ( jQuery.isFunction(value) ) { 1776 return this.each(function(i) { 1777 var self = jQuery(this); 1778 self.addClass( value.call(this, i, self.attr("class")) ); 1943 var classNames, i, l, elem, 1944 setClass, c, cl; 1945 1946 if ( jQuery.isFunction( value ) ) { 1947 return this.each(function( j ) { 1948 jQuery( this ).addClass( value.call(this, j, this.className) ); 1779 1949 }); 1780 1950 } 1781 1951 1782 1952 if ( value && typeof value === "string" ) { 1783 var classNames = (value || "").split( rspaces);1784 1785 for ( vari = 0, l = this.length; i < l; i++ ) {1786 var elem = this[i];1953 classNames = value.split( rspace ); 1954 1955 for ( i = 0, l = this.length; i < l; i++ ) { 1956 elem = this[ i ]; 1787 1957 1788 1958 if ( elem.nodeType === 1 ) { 1789 if ( !elem.className ) {1959 if ( !elem.className && classNames.length === 1 ) { 1790 1960 elem.className = value; 1791 1961 1792 1962 } else { 1793 var className = " " + elem.className + " ", 1794 setClass = elem.className; 1795 1796 for ( var c = 0, cl = classNames.length; c < cl; c++ ) { 1797 if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) { 1798 setClass += " " + classNames[c]; 1963 setClass = " " + elem.className + " "; 1964 1965 for ( c = 0, cl = classNames.length; c < cl; c++ ) { 1966 if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { 1967 setClass += classNames[ c ] + " "; 1799 1968 } 1800 1969 } … … 1809 1978 1810 1979 removeClass: function( value ) { 1811 if ( jQuery.isFunction(value) ) { 1812 return this.each(function(i) { 1813 var self = jQuery(this); 1814 self.removeClass( value.call(this, i, self.attr("class")) ); 1980 var classNames, i, l, elem, className, c, cl; 1981 1982 if ( jQuery.isFunction( value ) ) { 1983 return this.each(function( j ) { 1984 jQuery( this ).removeClass( value.call(this, j, this.className) ); 1815 1985 }); 1816 1986 } 1817 1987 1818 1988 if ( (value && typeof value === "string") || value === undefined ) { 1819 var classNames = (value || "").split( rspaces);1820 1821 for ( vari = 0, l = this.length; i < l; i++ ) {1822 var elem = this[i];1989 classNames = (value || "").split( rspace ); 1990 1991 for ( i = 0, l = this.length; i < l; i++ ) { 1992 elem = this[ i ]; 1823 1993 1824 1994 if ( elem.nodeType === 1 && elem.className ) { 1825 1995 if ( value ) { 1826 var className = (" " + elem.className + " ").replace(rclass, " ");1827 for ( varc = 0, cl = classNames.length; c < cl; c++ ) {1828 className = className.replace(" " + classNames[ c] + " ", " ");1996 className = (" " + elem.className + " ").replace( rclass, " " ); 1997 for ( c = 0, cl = classNames.length; c < cl; c++ ) { 1998 className = className.replace(" " + classNames[ c ] + " ", " "); 1829 1999 } 1830 2000 elem.className = jQuery.trim( className ); … … 1845 2015 1846 2016 if ( jQuery.isFunction( value ) ) { 1847 return this.each(function(i) { 1848 var self = jQuery(this); 1849 self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal ); 2017 return this.each(function( i ) { 2018 jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); 1850 2019 }); 1851 2020 } … … 1858 2027 self = jQuery( this ), 1859 2028 state = stateVal, 1860 classNames = value.split( rspace s);2029 classNames = value.split( rspace ); 1861 2030 1862 2031 while ( (className = classNames[ i++ ]) ) { … … 1890 2059 1891 2060 val: function( value ) { 2061 var hooks, ret, 2062 elem = this[0]; 2063 1892 2064 if ( !arguments.length ) { 1893 var elem = this[0];1894 1895 2065 if ( elem ) { 1896 if ( jQuery.nodeName( elem, "option" ) ) { 1897 // attributes.value is undefined in Blackberry 4.7 but 1898 // uses .value. See #6932 1899 var val = elem.attributes.value; 1900 return !val || val.specified ? elem.value : elem.text; 1901 } 1902 1903 // We need to handle select boxes special 1904 if ( jQuery.nodeName( elem, "select" ) ) { 1905 var index = elem.selectedIndex, 1906 values = [], 1907 options = elem.options, 1908 one = elem.type === "select-one"; 1909 1910 // Nothing was selected 1911 if ( index < 0 ) { 1912 return null; 1913 } 1914 1915 // Loop through all the selected options 1916 for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { 1917 var option = options[ i ]; 1918 1919 // Don't return options that are disabled or in a disabled optgroup 1920 if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && 1921 (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { 1922 1923 // Get the specific value for the option 1924 value = jQuery(option).val(); 1925 1926 // We don't need an array for one selects 1927 if ( one ) { 1928 return value; 1929 } 1930 1931 // Multi-Selects return an array 1932 values.push( value ); 1933 } 1934 } 1935 1936 // Fixes Bug #2551 -- select.val() broken in IE after form.reset() 1937 if ( one && !values.length && options.length ) { 1938 return jQuery( options[ index ] ).val(); 1939 } 1940 1941 return values; 1942 } 1943 1944 // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified 1945 if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) { 1946 return elem.getAttribute("value") === null ? "on" : elem.value; 1947 } 1948 1949 // Everything else, we just grab the value 1950 return (elem.value || "").replace(rreturn, ""); 1951 2066 hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; 2067 2068 if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { 2069 return ret; 2070 } 2071 2072 ret = elem.value; 2073 2074 return typeof ret === "string" ? 2075 // handle most common string cases 2076 ret.replace(rreturn, "") : 2077 // handle cases where value is null/undef or number 2078 ret == null ? "" : ret; 1952 2079 } 1953 2080 … … 1955 2082 } 1956 2083 1957 var isFunction = jQuery.isFunction( value);1958 1959 return this.each(function( i) {1960 var self = jQuery(this), val = value;2084 var isFunction = jQuery.isFunction( value ); 2085 2086 return this.each(function( i ) { 2087 var self = jQuery(this), val; 1961 2088 1962 2089 if ( this.nodeType !== 1 ) { … … 1965 2092 1966 2093 if ( isFunction ) { 1967 val = value.call(this, i, self.val()); 2094 val = value.call( this, i, self.val() ); 2095 } else { 2096 val = value; 1968 2097 } 1969 2098 … … 1973 2102 } else if ( typeof val === "number" ) { 1974 2103 val += ""; 1975 } else if ( jQuery.isArray( val) ) {1976 val = jQuery.map(val, function ( value) {2104 } else if ( jQuery.isArray( val ) ) { 2105 val = jQuery.map(val, function ( value ) { 1977 2106 return value == null ? "" : value + ""; 1978 2107 }); 1979 2108 } 1980 2109 1981 if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) { 1982 this.checked = jQuery.inArray( self.val(), val ) >= 0; 1983 1984 } else if ( jQuery.nodeName( this, "select" ) ) { 1985 var values = jQuery.makeArray(val); 1986 1987 jQuery( "option", this ).each(function() { 2110 hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; 2111 2112 // If set returns undefined, fall back to normal setting 2113 if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { 2114 this.value = val; 2115 } 2116 }); 2117 } 2118 }); 2119 2120 jQuery.extend({ 2121 valHooks: { 2122 option: { 2123 get: function( elem ) { 2124 // attributes.value is undefined in Blackberry 4.7 but 2125 // uses .value. See #6932 2126 var val = elem.attributes.value; 2127 return !val || val.specified ? elem.value : elem.text; 2128 } 2129 }, 2130 select: { 2131 get: function( elem ) { 2132 var value, 2133 index = elem.selectedIndex, 2134 values = [], 2135 options = elem.options, 2136 one = elem.type === "select-one"; 2137 2138 // Nothing was selected 2139 if ( index < 0 ) { 2140 return null; 2141 } 2142 2143 // Loop through all the selected options 2144 for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { 2145 var option = options[ i ]; 2146 2147 // Don't return options that are disabled or in a disabled optgroup 2148 if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && 2149 (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { 2150 2151 // Get the specific value for the option 2152 value = jQuery( option ).val(); 2153 2154 // We don't need an array for one selects 2155 if ( one ) { 2156 return value; 2157 } 2158 2159 // Multi-Selects return an array 2160 values.push( value ); 2161 } 2162 } 2163 2164 // Fixes Bug #2551 -- select.val() broken in IE after form.reset() 2165 if ( one && !values.length && options.length ) { 2166 return jQuery( options[ index ] ).val(); 2167 } 2168 2169 return values; 2170 }, 2171 2172 set: function( elem, value ) { 2173 var values = jQuery.makeArray( value ); 2174 2175 jQuery(elem).find("option").each(function() { 1988 2176 this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; 1989 2177 }); 1990 2178 1991 2179 if ( !values.length ) { 1992 this.selectedIndex = -1; 1993 } 1994 1995 } else { 1996 this.value = val; 1997 } 1998 }); 1999 } 2000 }); 2001 2002 jQuery.extend({ 2180 elem.selectedIndex = -1; 2181 } 2182 return values; 2183 } 2184 } 2185 }, 2186 2003 2187 attrFn: { 2004 2188 val: true, … … 2011 2195 offset: true 2012 2196 }, 2013 2197 2198 attrFix: { 2199 // Always normalize to ensure hook usage 2200 tabindex: "tabIndex" 2201 }, 2202 2014 2203 attr: function( elem, name, value, pass ) { 2204 var nType = elem.nodeType; 2205 2015 2206 // don't get/set attributes on text, comment and attribute nodes 2016 if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || elem.nodeType === 2 ) {2207 if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { 2017 2208 return undefined; 2018 2209 } 2019 2210 2020 2211 if ( pass && name in jQuery.attrFn ) { 2021 return jQuery(elem)[name](value); 2022 } 2023 2024 var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ), 2025 // Whether we are setting (or getting) 2026 set = value !== undefined; 2027 2028 // Try to normalize/fix the name 2029 name = notxml && jQuery.props[ name ] || name; 2030 2031 // Only do all the following if this is a node (faster for style) 2212 return jQuery( elem )[ name ]( value ); 2213 } 2214 2215 // Fallback to prop when attributes are not supported 2216 if ( !("getAttribute" in elem) ) { 2217 return jQuery.prop( elem, name, value ); 2218 } 2219 2220 var ret, hooks, 2221 notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); 2222 2223 // Normalize the name if needed 2224 if ( notxml ) { 2225 name = jQuery.attrFix[ name ] || name; 2226 2227 hooks = jQuery.attrHooks[ name ]; 2228 2229 if ( !hooks ) { 2230 // Use boolHook for boolean attributes 2231 if ( rboolean.test( name ) ) { 2232 2233 hooks = boolHook; 2234 2235 // Use formHook for forms and if the name contains certain characters 2236 } else if ( formHook && name !== "className" && 2237 (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) { 2238 2239 hooks = formHook; 2240 } 2241 } 2242 } 2243 2244 if ( value !== undefined ) { 2245 2246 if ( value === null ) { 2247 jQuery.removeAttr( elem, name ); 2248 return undefined; 2249 2250 } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { 2251 return ret; 2252 2253 } else { 2254 elem.setAttribute( name, "" + value ); 2255 return value; 2256 } 2257 2258 } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { 2259 return ret; 2260 2261 } else { 2262 2263 ret = elem.getAttribute( name ); 2264 2265 // Non-existent attributes return null, we normalize to undefined 2266 return ret === null ? 2267 undefined : 2268 ret; 2269 } 2270 }, 2271 2272 removeAttr: function( elem, name ) { 2273 var propName; 2032 2274 if ( elem.nodeType === 1 ) { 2033 // These attributes require special treatment 2034 var special = rspecialurl.test( name ); 2035 2036 // Safari mis-reports the default selected property of an option 2037 // Accessing the parent's selectedIndex property fixes it 2038 if ( name === "selected" && !jQuery.support.optSelected ) { 2039 var parent = elem.parentNode; 2040 if ( parent ) { 2041 parent.selectedIndex; 2042 2043 // Make sure that it also works with optgroups, see #5701 2044 if ( parent.parentNode ) { 2045 parent.parentNode.selectedIndex; 2275 name = jQuery.attrFix[ name ] || name; 2276 2277 if ( jQuery.support.getSetAttribute ) { 2278 // Use removeAttribute in browsers that support it 2279 elem.removeAttribute( name ); 2280 } else { 2281 jQuery.attr( elem, name, "" ); 2282 elem.removeAttributeNode( elem.getAttributeNode( name ) ); 2283 } 2284 2285 // Set corresponding property to false for boolean attributes 2286 if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) { 2287 elem[ propName ] = false; 2288 } 2289 } 2290 }, 2291 2292 attrHooks: { 2293 type: { 2294 set: function( elem, value ) { 2295 // We can't allow the type property to be changed (since it causes problems in IE) 2296 if ( rtype.test( elem.nodeName ) && elem.parentNode ) { 2297 jQuery.error( "type property can't be changed" ); 2298 } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { 2299 // Setting the type on a radio button after the value resets the value in IE6-9 2300 // Reset value to it's default in case type is set after value 2301 // This is for element creation 2302 var val = elem.value; 2303 elem.setAttribute( "type", value ); 2304 if ( val ) { 2305 elem.value = val; 2046 2306 } 2047 } 2048 } 2049 2050 // If applicable, access the attribute via the DOM 0 way 2051 // 'in' checks fail in Blackberry 4.7 #6931 2052 if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) { 2053 if ( set ) { 2054 // We can't allow the type property to be changed (since it causes problems in IE) 2055 if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { 2056 jQuery.error( "type property can't be changed" ); 2057 } 2058 2059 if ( value === null ) { 2060 if ( elem.nodeType === 1 ) { 2061 elem.removeAttribute( name ); 2062 } 2063 2064 } else { 2065 elem[ name ] = value; 2066 } 2067 } 2068 2069 // browsers index elements by id/name on forms, give priority to attributes. 2070 if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { 2071 return elem.getAttributeNode( name ).nodeValue; 2072 } 2073 2307 return value; 2308 } 2309 } 2310 }, 2311 tabIndex: { 2312 get: function( elem ) { 2074 2313 // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set 2075 2314 // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ 2076 if ( name === "tabIndex" ) { 2077 var attributeNode = elem.getAttributeNode( "tabIndex" ); 2078 2079 return attributeNode && attributeNode.specified ? 2080 attributeNode.value : 2081 rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? 2082 0 : 2083 undefined; 2084 } 2085 2315 var attributeNode = elem.getAttributeNode("tabIndex"); 2316 2317 return attributeNode && attributeNode.specified ? 2318 parseInt( attributeNode.value, 10 ) : 2319 rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? 2320 0 : 2321 undefined; 2322 } 2323 }, 2324 // Use the value property for back compat 2325 // Use the formHook for button elements in IE6/7 (#1954) 2326 value: { 2327 get: function( elem, name ) { 2328 if ( formHook && jQuery.nodeName( elem, "button" ) ) { 2329 return formHook.get( elem, name ); 2330 } 2331 return name in elem ? 2332 elem.value : 2333 null; 2334 }, 2335 set: function( elem, value, name ) { 2336 if ( formHook && jQuery.nodeName( elem, "button" ) ) { 2337 return formHook.set( elem, value, name ); 2338 } 2339 // Does not return so that setAttribute is also used 2340 elem.value = value; 2341 } 2342 } 2343 }, 2344 2345 propFix: { 2346 tabindex: "tabIndex", 2347 readonly: "readOnly", 2348 "for": "htmlFor", 2349 "class": "className", 2350 maxlength: "maxLength", 2351 cellspacing: "cellSpacing", 2352 cellpadding: "cellPadding", 2353 rowspan: "rowSpan", 2354 colspan: "colSpan", 2355 usemap: "useMap", 2356 frameborder: "frameBorder", 2357 contenteditable: "contentEditable" 2358 }, 2359 2360 prop: function( elem, name, value ) { 2361 var nType = elem.nodeType; 2362 2363 // don't get/set properties on text, comment and attribute nodes 2364 if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { 2365 return undefined; 2366 } 2367 2368 var ret, hooks, 2369 notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); 2370 2371 if ( notxml ) { 2372 // Fix name and attach hooks 2373 name = jQuery.propFix[ name ] || name; 2374 hooks = jQuery.propHooks[ name ]; 2375 } 2376 2377 if ( value !== undefined ) { 2378 if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { 2379 return ret; 2380 2381 } else { 2382 return (elem[ name ] = value); 2383 } 2384 2385 } else { 2386 if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) { 2387 return ret; 2388 2389 } else { 2086 2390 return elem[ name ]; 2087 2391 } 2088 2089 if ( !jQuery.support.style && notxml && name === "style" ) { 2090 if ( set ) { 2091 elem.style.cssText = "" + value; 2092 } 2093 2094 return elem.style.cssText; 2095 } 2096 2097 if ( set ) { 2098 // convert the value to a string (all browsers do this but IE) see #1070 2099 elem.setAttribute( name, "" + value ); 2100 } 2101 2102 // Ensure that missing attributes return undefined 2103 // Blackberry 4.7 returns "" from getAttribute #6938 2104 if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) { 2105 return undefined; 2106 } 2107 2108 var attr = !jQuery.support.hrefNormalized && notxml && special ? 2109 // Some attributes require a special call on IE 2110 elem.getAttribute( name, 2 ) : 2111 elem.getAttribute( name ); 2112 2113 // Non-existent attributes return null, we normalize to undefined 2114 return attr === null ? undefined : attr; 2115 } 2116 // Handle everything which isn't a DOM element node 2117 if ( set ) { 2118 elem[ name ] = value; 2119 } 2120 return elem[ name ]; 2121 } 2392 } 2393 }, 2394 2395 propHooks: {} 2396 }); 2397 2398 // Hook for boolean attributes 2399 boolHook = { 2400 get: function( elem, name ) { 2401 // Align boolean attributes with corresponding properties 2402 return jQuery.prop( elem, name ) ? 2403 name.toLowerCase() : 2404 undefined; 2405 }, 2406 set: function( elem, value, name ) { 2407 var propName; 2408 if ( value === false ) { 2409 // Remove boolean attributes when set to false 2410 jQuery.removeAttr( elem, name ); 2411 } else { 2412 // value is true since we know at this point it's type boolean and not false 2413 // Set boolean attributes to the same name and set the DOM property 2414 propName = jQuery.propFix[ name ] || name; 2415 if ( propName in elem ) { 2416 // Only set the IDL specifically if it already exists on the element 2417 elem[ propName ] = true; 2418 } 2419 2420 elem.setAttribute( name, name.toLowerCase() ); 2421 } 2422 return name; 2423 } 2424 }; 2425 2426 // IE6/7 do not support getting/setting some attributes with get/setAttribute 2427 if ( !jQuery.support.getSetAttribute ) { 2428 2429 // propFix is more comprehensive and contains all fixes 2430 jQuery.attrFix = jQuery.propFix; 2431 2432 // Use this for any attribute on a form in IE6/7 2433 formHook = jQuery.attrHooks.name = jQuery.attrHooks.title = jQuery.valHooks.button = { 2434 get: function( elem, name ) { 2435 var ret; 2436 ret = elem.getAttributeNode( name ); 2437 // Return undefined if nodeValue is empty string 2438 return ret && ret.nodeValue !== "" ? 2439 ret.nodeValue : 2440 undefined; 2441 }, 2442 set: function( elem, value, name ) { 2443 // Check form objects in IE (multiple bugs related) 2444 // Only use nodeValue if the attribute node exists on the form 2445 var ret = elem.getAttributeNode( name ); 2446 if ( ret ) { 2447 ret.nodeValue = value; 2448 return value; 2449 } 2450 } 2451 }; 2452 2453 // Set width and height to auto instead of 0 on empty string( Bug #8150 ) 2454 // This is for removals 2455 jQuery.each([ "width", "height" ], function( i, name ) { 2456 jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { 2457 set: function( elem, value ) { 2458 if ( value === "" ) { 2459 elem.setAttribute( name, "auto" ); 2460 return value; 2461 } 2462 } 2463 }); 2464 }); 2465 } 2466 2467 2468 // Some attributes require a special call on IE 2469 if ( !jQuery.support.hrefNormalized ) { 2470 jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { 2471 jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { 2472 get: function( elem ) { 2473 var ret = elem.getAttribute( name, 2 ); 2474 return ret === null ? undefined : ret; 2475 } 2476 }); 2477 }); 2478 } 2479 2480 if ( !jQuery.support.style ) { 2481 jQuery.attrHooks.style = { 2482 get: function( elem ) { 2483 // Return undefined in the case of empty string 2484 // Normalize to lowercase since IE uppercases css property names 2485 return elem.style.cssText.toLowerCase() || undefined; 2486 }, 2487 set: function( elem, value ) { 2488 return (elem.style.cssText = "" + value); 2489 } 2490 }; 2491 } 2492 2493 // Safari mis-reports the default selected property of an option 2494 // Accessing the parent's selectedIndex property fixes it 2495 if ( !jQuery.support.optSelected ) { 2496 jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { 2497 get: function( elem ) { 2498 var parent = elem.parentNode; 2499 2500 if ( parent ) { 2501 parent.selectedIndex; 2502 2503 // Make sure that it also works with optgroups, see #5701 2504 if ( parent.parentNode ) { 2505 parent.parentNode.selectedIndex; 2506 } 2507 } 2508 } 2509 }); 2510 } 2511 2512 // Radios and checkboxes getter/setter 2513 if ( !jQuery.support.checkOn ) { 2514 jQuery.each([ "radio", "checkbox" ], function() { 2515 jQuery.valHooks[ this ] = { 2516 get: function( elem ) { 2517 // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified 2518 return elem.getAttribute("value") === null ? "on" : elem.value; 2519 } 2520 }; 2521 }); 2522 } 2523 jQuery.each([ "radio", "checkbox" ], function() { 2524 jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { 2525 set: function( elem, value ) { 2526 if ( jQuery.isArray( value ) ) { 2527 return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0); 2528 } 2529 } 2530 }); 2122 2531 }); 2123 2532 … … 2128 2537 rformElems = /^(?:textarea|input|select)$/i, 2129 2538 rperiod = /\./g, 2130 rspace = / /g,2539 rspaces = / /g, 2131 2540 rescape = /[^\w\s.|`]/g, 2132 2541 fcleanup = function( nm ) { … … 2148 2557 } 2149 2558 2150 // TODO :: Use a try/catch until it's safe to pull this out (likely 1.6)2151 // Minor release fix for bug #80182152 try {2153 // For whatever reason, IE has trouble passing the window object2154 // around, causing it to be cloned in the process2155 if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) {2156 elem = window;2157 }2158 }2159 catch ( e ) {}2160 2161 2559 if ( handler === false ) { 2162 2560 handler = returnFalse; … … 2195 2593 2196 2594 if ( !eventHandle ) { 2197 elemData.handle = eventHandle = function( ) {2198 // Handle the second event of a trigger and when2199 // an event is called after a page has unloaded2200 return typeof jQuery !== "undefined" && !jQuery.event.triggered?2595 elemData.handle = eventHandle = function( e ) { 2596 // Discard the second event of a jQuery.event.trigger() and 2597 // when an event is called after a page has unloaded 2598 return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? 2201 2599 jQuery.event.handle.apply( eventHandle.elem, arguments ) : 2202 2600 undefined; … … 2268 2666 handlers.push( handleObj ); 2269 2667 2270 // Keep track of which events have been used, for global triggering2668 // Keep track of which events have been used, for event optimization 2271 2669 jQuery.event.global[ type ] = true; 2272 2670 } … … 2401 2799 } 2402 2800 }, 2403 2404 // bubbling is internal 2405 trigger: function( event, data, elem /*, bubbling */ ) { 2801 2802 // Events that are safe to short-circuit if no handlers are attached. 2803 // Native DOM events should not be added, they may have inline handlers. 2804 customEvent: { 2805 "getData": true, 2806 "setData": true, 2807 "changeData": true 2808 }, 2809 2810 trigger: function( event, data, elem, onlyHandlers ) { 2406 2811 // Event object or event type 2407 2812 var type = event.type || event, 2408 bubbling = arguments[3]; 2409 2410 if ( !bubbling ) { 2411 event = typeof event === "object" ? 2412 // jQuery.Event object 2413 event[ jQuery.expando ] ? event : 2414 // Object literal 2415 jQuery.extend( jQuery.Event(type), event ) : 2416 // Just the event type (string) 2417 jQuery.Event(type); 2418 2419 if ( type.indexOf("!") >= 0 ) { 2420 event.type = type = type.slice(0, -1); 2421 event.exclusive = true; 2422 } 2423 2424 // Handle a global trigger 2425 if ( !elem ) { 2426 // Don't bubble custom events when global (to avoid too much overhead) 2427 event.stopPropagation(); 2428 2429 // Only trigger if we've ever bound an event for it 2430 if ( jQuery.event.global[ type ] ) { 2431 // XXX This code smells terrible. event.js should not be directly 2432 // inspecting the data cache 2433 jQuery.each( jQuery.cache, function() { 2434 // internalKey variable is just used to make it easier to find 2435 // and potentially change this stuff later; currently it just 2436 // points to jQuery.expando 2437 var internalKey = jQuery.expando, 2438 internalCache = this[ internalKey ]; 2439 if ( internalCache && internalCache.events && internalCache.events[ type ] ) { 2440 jQuery.event.trigger( event, data, internalCache.handle.elem ); 2813 namespaces = [], 2814 exclusive; 2815 2816 if ( type.indexOf("!") >= 0 ) { 2817 // Exclusive events trigger only for the exact event (no namespaces) 2818 type = type.slice(0, -1); 2819 exclusive = true; 2820 } 2821 2822 if ( type.indexOf(".") >= 0 ) { 2823 // Namespaced trigger; create a regexp to match event type in handle() 2824 namespaces = type.split("."); 2825 type = namespaces.shift(); 2826 namespaces.sort(); 2827 } 2828 2829 if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { 2830 // No jQuery handlers for this event type, and it can't have inline handlers 2831 return; 2832 } 2833 2834 // Caller can pass in an Event, Object, or just an event type string 2835 event = typeof event === "object" ? 2836 // jQuery.Event object 2837 event[ jQuery.expando ] ? event : 2838 // Object literal 2839 new jQuery.Event( type, event ) : 2840 // Just the event type (string) 2841 new jQuery.Event( type ); 2842 2843 event.type = type; 2844 event.exclusive = exclusive; 2845 event.namespace = namespaces.join("."); 2846 event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)"); 2847 2848 // triggerHandler() and global events don't bubble or run the default action 2849 if ( onlyHandlers || !elem ) { 2850 event.preventDefault(); 2851 event.stopPropagation(); 2852 } 2853 2854 // Handle a global trigger 2855 if ( !elem ) { 2856 // TODO: Stop taunting the data cache; remove global events and always attach to document 2857 jQuery.each( jQuery.cache, function() { 2858 // internalKey variable is just used to make it easier to find 2859 // and potentially change this stuff later; currently it just 2860 // points to jQuery.expando 2861 var internalKey = jQuery.expando, 2862 internalCache = this[ internalKey ]; 2863 if ( internalCache && internalCache.events && internalCache.events[ type ] ) { 2864 jQuery.event.trigger( event, data, internalCache.handle.elem ); 2865 } 2866 }); 2867 return; 2868 } 2869 2870 // Don't do events on text and comment nodes 2871 if ( elem.nodeType === 3 || elem.nodeType === 8 ) { 2872 return; 2873 } 2874 2875 // Clean up the event in case it is being reused 2876 event.result = undefined; 2877 event.target = elem; 2878 2879 // Clone any incoming data and prepend the event, creating the handler arg list 2880 data = data != null ? jQuery.makeArray( data ) : []; 2881 data.unshift( event ); 2882 2883 var cur = elem, 2884 // IE doesn't like method names with a colon (#3533, #8272) 2885 ontype = type.indexOf(":") < 0 ? "on" + type : ""; 2886 2887 // Fire event on the current element, then bubble up the DOM tree 2888 do { 2889 var handle = jQuery._data( cur, "handle" ); 2890 2891 event.currentTarget = cur; 2892 if ( handle ) { 2893 handle.apply( cur, data ); 2894 } 2895 2896 // Trigger an inline bound script 2897 if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) { 2898 event.result = false; 2899 event.preventDefault(); 2900 } 2901 2902 // Bubble up to document, then to window 2903 cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window; 2904 } while ( cur && !event.isPropagationStopped() ); 2905 2906 // If nobody prevented the default action, do it now 2907 if ( !event.isDefaultPrevented() ) { 2908 var old, 2909 special = jQuery.event.special[ type ] || {}; 2910 2911 if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) && 2912 !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { 2913 2914 // Call a native DOM method on the target with the same name name as the event. 2915 // Can't use an .isFunction)() check here because IE6/7 fails that test. 2916 // IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch. 2917 try { 2918 if ( ontype && elem[ type ] ) { 2919 // Don't re-trigger an onFOO event when we call its FOO() method 2920 old = elem[ ontype ]; 2921 2922 if ( old ) { 2923 elem[ ontype ] = null; 2441 2924 } 2442 }); 2443 } 2444 } 2445 2446 // Handle triggering a single element 2447 2448 // don't do events on text and comment nodes 2449 if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { 2450 return undefined; 2451 } 2452 2453 // Clean up in case it is reused 2454 event.result = undefined; 2455 event.target = elem; 2456 2457 // Clone the incoming data, if any 2458 data = jQuery.makeArray( data ); 2459 data.unshift( event ); 2460 } 2461 2462 event.currentTarget = elem; 2463 2464 // Trigger the event, it is assumed that "handle" is a function 2465 var handle = jQuery._data( elem, "handle" ); 2466 2467 if ( handle ) { 2468 handle.apply( elem, data ); 2469 } 2470 2471 var parent = elem.parentNode || elem.ownerDocument; 2472 2473 // Trigger an inline bound script 2474 try { 2475 if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) { 2476 if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) { 2477 event.result = false; 2478 event.preventDefault(); 2479 } 2480 } 2481 2482 // prevent IE from throwing an error for some elements with some event types, see #3533 2483 } catch (inlineError) {} 2484 2485 if ( !event.isPropagationStopped() && parent ) { 2486 jQuery.event.trigger( event, data, parent, true ); 2487 2488 } else if ( !event.isDefaultPrevented() ) { 2489 var old, 2490 target = event.target, 2491 targetType = type.replace( rnamespaces, "" ), 2492 isClick = jQuery.nodeName( target, "a" ) && targetType === "click", 2493 special = jQuery.event.special[ targetType ] || {}; 2494 2495 if ( (!special._default || special._default.call( elem, event ) === false) && 2496 !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) { 2497 2498 try { 2499 if ( target[ targetType ] ) { 2500 // Make sure that we don't accidentally re-trigger the onFOO events 2501 old = target[ "on" + targetType ]; 2502 2503 if ( old ) { 2504 target[ "on" + targetType ] = null; 2505 } 2506 2507 jQuery.event.triggered = true; 2508 target[ targetType ](); 2925 2926 jQuery.event.triggered = type; 2927 elem[ type ](); 2509 2928 } 2510 2511 // prevent IE from throwing an error for some elements with some event types, see #3533 2512 } catch (triggerError) {} 2929 } catch ( ieError ) {} 2513 2930 2514 2931 if ( old ) { 2515 target[ "on" + targetType ] = old; 2516 } 2517 2518 jQuery.event.triggered = false; 2519 } 2520 } 2932 elem[ ontype ] = old; 2933 } 2934 2935 jQuery.event.triggered = undefined; 2936 } 2937 } 2938 2939 return event.result; 2521 2940 }, 2522 2941 2523 2942 handle: function( event ) { 2524 var all, handlers, namespaces, namespace_re, events, 2525 namespace_sort = [], 2526 args = jQuery.makeArray( arguments ); 2527 2528 event = args[0] = jQuery.event.fix( event || window.event ); 2943 event = jQuery.event.fix( event || window.event ); 2944 // Snapshot the handlers list since a called handler may add/remove events. 2945 var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0), 2946 run_all = !event.exclusive && !event.namespace, 2947 args = Array.prototype.slice.call( arguments, 0 ); 2948 2949 // Use the fix-ed Event rather than the (read-only) native event 2950 args[0] = event; 2529 2951 event.currentTarget = this; 2530 2952 2531 // Namespaced event handlers 2532 all = event.type.indexOf(".") < 0 && !event.exclusive; 2533 2534 if ( !all ) { 2535 namespaces = event.type.split("."); 2536 event.type = namespaces.shift(); 2537 namespace_sort = namespaces.slice(0).sort(); 2538 namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\.(?:.*\\.)?") + "(\\.|$)"); 2539 } 2540 2541 event.namespace = event.namespace || namespace_sort.join("."); 2542 2543 events = jQuery._data(this, "events"); 2544 2545 handlers = (events || {})[ event.type ]; 2546 2547 if ( events && handlers ) { 2548 // Clone the handlers to prevent manipulation 2549 handlers = handlers.slice(0); 2550 2551 for ( var j = 0, l = handlers.length; j < l; j++ ) { 2552 var handleObj = handlers[ j ]; 2553 2554 // Filter the functions by class 2555 if ( all || namespace_re.test( handleObj.namespace ) ) { 2556 // Pass in a reference to the handler function itself 2557 // So that we can later remove it 2558 event.handler = handleObj.handler; 2559 event.data = handleObj.data; 2560 event.handleObj = handleObj; 2561 2562 var ret = handleObj.handler.apply( this, args ); 2563 2564 if ( ret !== undefined ) { 2565 event.result = ret; 2566 if ( ret === false ) { 2567 event.preventDefault(); 2568 event.stopPropagation(); 2569 } 2953 for ( var j = 0, l = handlers.length; j < l; j++ ) { 2954 var handleObj = handlers[ j ]; 2955 2956 // Triggered event must 1) be non-exclusive and have no namespace, or 2957 // 2) have namespace(s) a subset or equal to those in the bound event. 2958 if ( run_all || event.namespace_re.test( handleObj.namespace ) ) { 2959 // Pass in a reference to the handler function itself 2960 // So that we can later remove it 2961 event.handler = handleObj.handler; 2962 event.data = handleObj.data; 2963 event.handleObj = handleObj; 2964 2965 var ret = handleObj.handler.apply( this, args ); 2966 2967 if ( ret !== undefined ) { 2968 event.result = ret; 2969 if ( ret === false ) { 2970 event.preventDefault(); 2971 event.stopPropagation(); 2570 2972 } 2571 2572 if ( event.isImmediatePropagationStopped() ) { 2573 break; 2574 } 2575 } 2576 } 2577 } 2578 2973 } 2974 2975 if ( event.isImmediatePropagationStopped() ) { 2976 break; 2977 } 2978 } 2979 } 2579 2980 return event.result; 2580 2981 }, … … 2615 3016 // Calculate pageX/Y if missing and clientX/Y available 2616 3017 if ( event.pageX == null && event.clientX != null ) { 2617 var doc = document.documentElement, 2618 body = document.body; 3018 var eventDocument = event.target.ownerDocument || document, 3019 doc = eventDocument.documentElement, 3020 body = eventDocument.body; 2619 3021 2620 3022 event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); … … 2695 3097 }; 2696 3098 2697 jQuery.Event = function( src ) {3099 jQuery.Event = function( src, props ) { 2698 3100 // Allow instantiation without the 'new' keyword 2699 3101 if ( !this.preventDefault ) { 2700 return new jQuery.Event( src );3102 return new jQuery.Event( src, props ); 2701 3103 } 2702 3104 … … 2714 3116 } else { 2715 3117 this.type = src; 3118 } 3119 3120 // Put explicitly provided properties onto the event object 3121 if ( props ) { 3122 jQuery.extend( this, props ); 2716 3123 } 2717 3124 … … 2777 3184 // Used in jQuery.event.special.mouseenter and mouseleave handlers 2778 3185 var withinElement = function( event ) { 3186 2779 3187 // Check if mouse(over|out) are still within the same parent element 2780 var parent = event.relatedTarget; 2781 2782 // Firefox sometimes assigns relatedTarget a XUL element 2783 // which we cannot access the parentNode property of 2784 try { 2785 2786 // Chrome does something similar, the parentNode property 2787 // can be accessed but is null. 2788 if ( parent !== document && !parent.parentNode ) { 2789 return; 2790 } 2791 // Traverse up the tree 2792 while ( parent && parent !== this ) { 2793 parent = parent.parentNode; 2794 } 2795 2796 if ( parent !== this ) { 2797 // set the correct event type 2798 event.type = event.data; 2799 2800 // handle event if we actually just moused on to a non sub-element 3188 var related = event.relatedTarget, 3189 inside = false, 3190 eventType = event.type; 3191 3192 event.type = event.data; 3193 3194 if ( related !== this ) { 3195 3196 if ( related ) { 3197 inside = jQuery.contains( this, related ); 3198 } 3199 3200 if ( !inside ) { 3201 2801 3202 jQuery.event.handle.apply( this, arguments ); 2802 } 2803 2804 // assuming we've left the element since we most likely mousedover a xul element2805 } catch(e) { }3203 3204 event.type = eventType; 3205 } 3206 } 2806 3207 }, 2807 3208 … … 2833 3234 jQuery.event.special.submit = { 2834 3235 setup: function( data, namespaces ) { 2835 if ( this.nodeName && this.nodeName.toLowerCase() !== "form") {3236 if ( !jQuery.nodeName( this, "form" ) ) { 2836 3237 jQuery.event.add(this, "click.specialSubmit", function( e ) { 2837 3238 var elem = e.target, … … 2882 3283 ""; 2883 3284 2884 } else if ( elem.nodeName.toLowerCase() === "select") {3285 } else if ( jQuery.nodeName( elem, "select" ) ) { 2885 3286 val = elem.selectedIndex; 2886 3287 } … … 2922 3323 2923 3324 click: function( e ) { 2924 var elem = e.target, type = elem.type;2925 2926 if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select") {3325 var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; 3326 3327 if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) { 2927 3328 testChange.call( this, e ); 2928 3329 } … … 2932 3333 // Keydown will be called before keypress, which is used in submit-event delegation 2933 3334 keydown: function( e ) { 2934 var elem = e.target, type = elem.type;2935 2936 if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") ||3335 var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; 3336 3337 if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) || 2937 3338 (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || 2938 3339 type === "select-multiple" ) { … … 2991 3392 2992 3393 // Create "bubbling" focus and blur events 2993 if ( document.addEventListener) {3394 if ( !jQuery.support.focusinBubbles ) { 2994 3395 jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { 3396 3397 // Attach a single capturing handler while someone wants focusin/focusout 3398 var attaches = 0; 3399 2995 3400 jQuery.event.special[ fix ] = { 2996 3401 setup: function() { 2997 this.addEventListener( orig, handler, true ); 3402 if ( attaches++ === 0 ) { 3403 document.addEventListener( orig, handler, true ); 3404 } 2998 3405 }, 2999 3406 teardown: function() { 3000 this.removeEventListener( orig, handler, true ); 3407 if ( --attaches === 0 ) { 3408 document.removeEventListener( orig, handler, true ); 3409 } 3001 3410 } 3002 3411 }; 3003 3412 3004 function handler( e ) { 3005 e = jQuery.event.fix( e ); 3413 function handler( donor ) { 3414 // Donor event is always a native one; fix it and switch its type. 3415 // Let focusin/out handler cancel the donor focus/blur event. 3416 var e = jQuery.event.fix( donor ); 3006 3417 e.type = fix; 3007 return jQuery.event.handle.call( this, e ); 3418 e.originalEvent = {}; 3419 jQuery.event.trigger( e, null, e.target ); 3420 if ( e.isDefaultPrevented() ) { 3421 donor.preventDefault(); 3422 } 3008 3423 } 3009 3424 }); … … 3012 3427 jQuery.each(["bind", "one"], function( i, name ) { 3013 3428 jQuery.fn[ name ] = function( type, data, fn ) { 3429 var handler; 3430 3014 3431 // Handle object literals 3015 3432 if ( typeof type === "object" ) { … … 3020 3437 } 3021 3438 3022 if ( jQuery.isFunction( data )|| data === false ) {3439 if ( arguments.length === 2 || data === false ) { 3023 3440 fn = data; 3024 3441 data = undefined; 3025 3442 } 3026 3443 3027 var handler = name === "one" ? jQuery.proxy( fn, function( event ) { 3028 jQuery( this ).unbind( event, handler ); 3029 return fn.apply( this, arguments ); 3030 }) : fn; 3444 if ( name === "one" ) { 3445 handler = function( event ) { 3446 jQuery( this ).unbind( event, handler ); 3447 return fn.apply( this, arguments ); 3448 }; 3449 handler.guid = fn.guid || jQuery.guid++; 3450 } else { 3451 handler = fn; 3452 } 3031 3453 3032 3454 if ( type === "unload" && name !== "one" ) { … … 3066 3488 undelegate: function( selector, types, fn ) { 3067 3489 if ( arguments.length === 0 ) { 3068 3490 return this.unbind( "live" ); 3069 3491 3070 3492 } else { … … 3081 3503 triggerHandler: function( type, data ) { 3082 3504 if ( this[0] ) { 3083 var event = jQuery.Event( type ); 3084 event.preventDefault(); 3085 event.stopPropagation(); 3086 jQuery.event.trigger( event, data, this[0] ); 3087 return event.result; 3505 return jQuery.event.trigger( type, data, this[0], true ); 3088 3506 } 3089 3507 }, … … 3092 3510 // Save reference to arguments for access in closure 3093 3511 var args = arguments, 3094 i = 1; 3512 guid = fn.guid || jQuery.guid++, 3513 i = 0, 3514 toggler = function( event ) { 3515 // Figure out which function to execute 3516 var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; 3517 jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); 3518 3519 // Make sure that clicks stop 3520 event.preventDefault(); 3521 3522 // and execute the function 3523 return args[ lastToggle ].apply( this, arguments ) || false; 3524 }; 3095 3525 3096 3526 // link all the functions, so any of them can unbind this click handler 3527 toggler.guid = guid; 3097 3528 while ( i < args.length ) { 3098 jQuery.proxy( fn, args[ i++ ] ); 3099 } 3100 3101 return this.click( jQuery.proxy( fn, function( event ) { 3102 // Figure out which function to execute 3103 var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; 3104 jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); 3105 3106 // Make sure that clicks stop 3107 event.preventDefault(); 3108 3109 // and execute the function 3110 return args[ lastToggle ].apply( this, arguments ) || false; 3111 })); 3529 args[ i++ ].guid = guid; 3530 } 3531 3532 return this.click( toggler ); 3112 3533 }, 3113 3534 … … 3138 3559 } 3139 3560 3140 if ( jQuery.isFunction( data ) ) { 3141 fn = data; 3561 if ( name === "die" && !types && 3562 origSelector && origSelector.charAt(0) === "." ) { 3563 3564 context.unbind( origSelector ); 3565 3566 return this; 3567 } 3568 3569 if ( data === false || jQuery.isFunction( data ) ) { 3570 fn = data || returnFalse; 3142 3571 data = undefined; 3143 3572 } … … 3161 3590 preType = type; 3162 3591 3163 if ( type === "focus" || type === "blur") {3592 if ( liveMap[ type ] ) { 3164 3593 types.push( liveMap[ type ] + namespaces ); 3165 3594 type = type + namespaces; … … 3232 3661 event.type = handleObj.preType; 3233 3662 related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; 3663 3664 // Make sure not to accidentally match a child element with the same selector 3665 if ( related && jQuery.contains( elem, related ) ) { 3666 related = elem; 3667 } 3234 3668 } 3235 3669 … … 3270 3704 3271 3705 function liveConvert( type, selector ) { 3272 return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspace , "&");3706 return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&"); 3273 3707 } 3274 3708 … … 3293 3727 } 3294 3728 }); 3729 3295 3730 3296 3731 … … 3919 4354 3920 4355 text: function( elem ) { 4356 var attr = elem.getAttribute( "type" ), type = elem.type; 3921 4357 // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) 3922 4358 // use getAttribute instead to test this case 3923 return "text" === elem.getAttribute( 'type');4359 return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); 3924 4360 }, 4361 3925 4362 radio: function( elem ) { 3926 return "radio" === elem.type;4363 return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; 3927 4364 }, 3928 4365 3929 4366 checkbox: function( elem ) { 3930 return "checkbox" === elem.type;4367 return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; 3931 4368 }, 3932 4369 3933 4370 file: function( elem ) { 3934 return "file" === elem.type;4371 return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; 3935 4372 }, 4373 3936 4374 password: function( elem ) { 3937 return "password" === elem.type;4375 return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; 3938 4376 }, 3939 4377 3940 4378 submit: function( elem ) { 3941 return "submit" === elem.type; 4379 var name = elem.nodeName.toLowerCase(); 4380 return (name === "input" || name === "button") && "submit" === elem.type; 3942 4381 }, 3943 4382 3944 4383 image: function( elem ) { 3945 return "image" === elem.type;4384 return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; 3946 4385 }, 3947 4386 3948 4387 reset: function( elem ) { 3949 return "reset" === elem.type; 4388 var name = elem.nodeName.toLowerCase(); 4389 return (name === "input" || name === "button") && "reset" === elem.type; 3950 4390 }, 3951 4391 3952 4392 button: function( elem ) { 3953 return "button" === elem.type || elem.nodeName.toLowerCase() === "button"; 4393 var name = elem.nodeName.toLowerCase(); 4394 return name === "input" && "button" === elem.type || name === "button"; 3954 4395 }, 3955 4396 3956 4397 input: function( elem ) { 3957 4398 return (/input|select|textarea|button/i).test( elem.nodeName ); 4399 }, 4400 4401 focus: function( elem ) { 4402 return elem === elem.ownerDocument.activeElement; 3958 4403 } 3959 4404 }, … … 4208 4653 } else { 4209 4654 sortOrder = function( a, b ) { 4655 // The nodes are identical, we can exit early 4656 if ( a === b ) { 4657 hasDuplicate = true; 4658 return 0; 4659 4660 // Fallback to using sourceIndex (in IE) if it's available on both nodes 4661 } else if ( a.sourceIndex && b.sourceIndex ) { 4662 return a.sourceIndex - b.sourceIndex; 4663 } 4664 4210 4665 var al, bl, 4211 4666 ap = [], … … 4215 4670 cur = aup; 4216 4671 4217 // The nodes are identical, we can exit early4218 if ( a === b ) {4219 hasDuplicate = true;4220 return 0;4221 4222 4672 // If the nodes are siblings (or identical) we can do a quick check 4223 } elseif ( aup === bup ) {4673 if ( aup === bup ) { 4224 4674 return siblingCheck( a, b ); 4225 4675 … … 4497 4947 (function(){ 4498 4948 var html = document.documentElement, 4499 matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector, 4500 pseudoWorks = false; 4501 4502 try { 4503 // This should fail with an exception 4504 // Gecko does not error, returns false instead 4505 matches.call( document.documentElement, "[test!='']:sizzle" ); 4949 matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; 4950 4951 if ( matches ) { 4952 // Check to see if it's possible to do matchesSelector 4953 // on a disconnected node (IE 9 fails this) 4954 var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), 4955 pseudoWorks = false; 4956 4957 try { 4958 // This should fail with an exception 4959 // Gecko does not error, returns false instead 4960 matches.call( document.documentElement, "[test!='']:sizzle" ); 4506 4961 4507 } catch( pseudoError ) { 4508 pseudoWorks = true; 4509 } 4510 4511 if ( matches ) { 4962 } catch( pseudoError ) { 4963 pseudoWorks = true; 4964 } 4965 4512 4966 Sizzle.matchesSelector = function( node, expr ) { 4513 4967 // Make sure that attribute selectors are quoted … … 4517 4971 try { 4518 4972 if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { 4519 return matches.call( node, expr ); 4973 var ret = matches.call( node, expr ); 4974 4975 // IE 9's matchesSelector returns false on disconnected nodes 4976 if ( ret || !disconnectedMatch || 4977 // As well, disconnected nodes are said to be in a document 4978 // fragment in IE 9, so check for that 4979 node.document && node.document.nodeType !== 11 ) { 4980 return ret; 4981 } 4520 4982 } 4521 4983 } catch(e) {} … … 4706 5168 jQuery.fn.extend({ 4707 5169 find: function( selector ) { 5170 var self = this, 5171 i, l; 5172 5173 if ( typeof selector !== "string" ) { 5174 return jQuery( selector ).filter(function() { 5175 for ( i = 0, l = self.length; i < l; i++ ) { 5176 if ( jQuery.contains( self[ i ], this ) ) { 5177 return true; 5178 } 5179 } 5180 }); 5181 } 5182 4708 5183 var ret = this.pushStack( "", "find", selector ), 4709 length = 0;4710 4711 for ( vari = 0, l = this.length; i < l; i++ ) {5184 length, n, r; 5185 5186 for ( i = 0, l = this.length; i < l; i++ ) { 4712 5187 length = ret.length; 4713 5188 jQuery.find( selector, this[i], ret ); … … 4715 5190 if ( i > 0 ) { 4716 5191 // Make sure that the results are unique 4717 for ( varn = length; n < ret.length; n++ ) {4718 for ( varr = 0; r < length; r++ ) {5192 for ( n = length; n < ret.length; n++ ) { 5193 for ( r = 0; r < length; r++ ) { 4719 5194 if ( ret[r] === ret[n] ) { 4720 5195 ret.splice(n--, 1); … … 4749 5224 4750 5225 is: function( selector ) { 4751 return !!selector && jQuery.filter( selector, this ).length > 0; 5226 return !!selector && ( typeof selector === "string" ? 5227 jQuery.filter( selector, this ).length > 0 : 5228 this.filter( selector ).length > 0 ); 4752 5229 }, 4753 5230 4754 5231 closest: function( selectors, context ) { 4755 5232 var ret = [], i, l, cur = this[0]; 4756 5233 5234 // Array 4757 5235 if ( jQuery.isArray( selectors ) ) { 4758 5236 var match, selector, … … 4764 5242 selector = selectors[i]; 4765 5243 4766 if ( !matches[ selector] ) {4767 matches[ selector] = jQuery.expr.match.POS.test( selector ) ?5244 if ( !matches[ selector ] ) { 5245 matches[ selector ] = POS.test( selector ) ? 4768 5246 jQuery( selector, context || this.context ) : 4769 5247 selector; … … 4773 5251 while ( cur && cur.ownerDocument && cur !== context ) { 4774 5252 for ( selector in matches ) { 4775 match = matches[ selector];4776 4777 if ( match.jquery ? match.index( cur) > -1 : jQuery(cur).is(match) ) {5253 match = matches[ selector ]; 5254 5255 if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) { 4778 5256 ret.push({ selector: selector, elem: cur, level: level }); 4779 5257 } … … 4788 5266 } 4789 5267 4790 var pos = POS.test( selectors ) ? 4791 jQuery( selectors, context || this.context ) : null; 5268 // String 5269 var pos = POS.test( selectors ) || typeof selectors !== "string" ? 5270 jQuery( selectors, context || this.context ) : 5271 0; 4792 5272 4793 5273 for ( i = 0, l = this.length; i < l; i++ ) { … … 4801 5281 } else { 4802 5282 cur = cur.parentNode; 4803 if ( !cur || !cur.ownerDocument || cur === context ) {5283 if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { 4804 5284 break; 4805 5285 } … … 4808 5288 } 4809 5289 4810 ret = ret.length > 1 ? jQuery.unique( ret) : ret;5290 ret = ret.length > 1 ? jQuery.unique( ret ) : ret; 4811 5291 4812 5292 return this.pushStack( ret, "closest", selectors ); … … 4831 5311 var set = typeof selector === "string" ? 4832 5312 jQuery( selector, context ) : 4833 jQuery.makeArray( selector ),5313 jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), 4834 5314 all = jQuery.merge( this.get(), set ); 4835 5315 … … 4969 5449 // Implement the identical functionality for filter and not 4970 5450 function winnow( elements, qualifier, keep ) { 5451 5452 // Can't pass null or undefined to indexOf in Firefox 4 5453 // Set to 0 to skip string check 5454 qualifier = qualifier || 0; 5455 4971 5456 if ( jQuery.isFunction( qualifier ) ) { 4972 5457 return jQuery.grep(elements, function( elem, i ) { … … 5009 5494 // checked="checked" or checked 5010 5495 rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, 5496 rscriptType = /\/(java|ecma)script/i, 5497 rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/, 5011 5498 wrapMap = { 5012 5499 option: [ 1, "<select multiple='multiple'>", "</select>" ], … … 5069 5556 5070 5557 return elem; 5071 }).append( this);5558 }).append( this ); 5072 5559 } 5073 5560 … … 5261 5748 }); 5262 5749 } else { 5263 return this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ); 5750 return this.length ? 5751 this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) : 5752 this; 5264 5753 } 5265 5754 }, … … 5375 5864 } 5376 5865 5377 function cloneFixAttributes(src, dest) { 5866 function cloneFixAttributes( src, dest ) { 5867 var nodeName; 5868 5378 5869 // We do not need to do anything for non-Elements 5379 5870 if ( dest.nodeType !== 1 ) { … … 5381 5872 } 5382 5873 5383 var nodeName = dest.nodeName.toLowerCase();5384 5385 5874 // clearAttributes removes the attributes, which we don't want, 5386 5875 // but also removes the attachEvent events, which we *do* want 5387 dest.clearAttributes(); 5876 if ( dest.clearAttributes ) { 5877 dest.clearAttributes(); 5878 } 5388 5879 5389 5880 // mergeAttributes, in contrast, only merges back on the 5390 5881 // original attributes, not the events 5391 dest.mergeAttributes(src); 5882 if ( dest.mergeAttributes ) { 5883 dest.mergeAttributes( src ); 5884 } 5885 5886 nodeName = dest.nodeName.toLowerCase(); 5392 5887 5393 5888 // IE6-8 fail to clone children inside object elements that use … … 5428 5923 5429 5924 jQuery.buildFragment = function( args, nodes, scripts ) { 5430 var fragment, cacheable, cacheresults, 5431 doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document); 5925 var fragment, cacheable, cacheresults, doc; 5926 5927 // nodes may contain either an explicit document object, 5928 // a jQuery collection or context object. 5929 // If nodes[0] contains a valid object to assign to doc 5930 if ( nodes && nodes[0] ) { 5931 doc = nodes[0].ownerDocument || nodes[0]; 5932 } 5933 5934 // Ensure that an attr object doesn't incorrectly stand in as a document object 5935 // Chrome and Firefox seem to allow this to occur and will throw exception 5936 // Fixes #8950 5937 if ( !doc.createDocumentFragment ) { 5938 doc = document; 5939 } 5432 5940 5433 5941 // Only cache "small" (1/2 KB) HTML strings that are associated with the main document … … 5439 5947 5440 5948 cacheable = true; 5949 5441 5950 cacheresults = jQuery.fragments[ args[0] ]; 5442 if ( cacheresults ) { 5443 if ( cacheresults !== 1 ) { 5444 fragment = cacheresults; 5445 } 5951 if ( cacheresults && cacheresults !== 1 ) { 5952 fragment = cacheresults; 5446 5953 } 5447 5954 } … … 5492 5999 if ( "getElementsByTagName" in elem ) { 5493 6000 return elem.getElementsByTagName( "*" ); 5494 6001 5495 6002 } else if ( "querySelectorAll" in elem ) { 5496 6003 return elem.querySelectorAll( "*" ); … … 5498 6005 } else { 5499 6006 return []; 6007 } 6008 } 6009 6010 // Used in clean, fixes the defaultChecked property 6011 function fixDefaultChecked( elem ) { 6012 if ( elem.type === "checkbox" || elem.type === "radio" ) { 6013 elem.defaultChecked = elem.checked; 6014 } 6015 } 6016 // Finds all inputs and passes them to fixDefaultChecked 6017 function findInputs( elem ) { 6018 if ( jQuery.nodeName( elem, "input" ) ) { 6019 fixDefaultChecked( elem ); 6020 } else if ( "getElementsByTagName" in elem ) { 6021 jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked ); 5500 6022 } 5501 6023 } … … 5545 6067 } 5546 6068 6069 srcElements = destElements = null; 6070 5547 6071 // Return the cloned set 5548 6072 return clone; 5549 }, 6073 }, 6074 5550 6075 clean: function( elems, context, fragment, scripts ) { 6076 var checkScriptType; 6077 5551 6078 context = context || document; 5552 6079 … … 5556 6083 } 5557 6084 5558 var ret = [] ;6085 var ret = [], j; 5559 6086 5560 6087 for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { … … 5568 6095 5569 6096 // Convert html string into DOM nodes 5570 if ( typeof elem === "string" && !rhtml.test( elem ) ) { 5571 elem = context.createTextNode( elem ); 5572 5573 } else if ( typeof elem === "string" ) { 5574 // Fix "XHTML"-style tags in all browsers 5575 elem = elem.replace(rxhtmlTag, "<$1></$2>"); 5576 5577 // Trim whitespace, otherwise indexOf won't work as expected 5578 var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(), 5579 wrap = wrapMap[ tag ] || wrapMap._default, 5580 depth = wrap[0], 5581 div = context.createElement("div"); 5582 5583 // Go to html and back, then peel off extra wrappers 5584 div.innerHTML = wrap[1] + elem + wrap[2]; 5585 5586 // Move to the right depth 5587 while ( depth-- ) { 5588 div = div.lastChild; 5589 } 5590 5591 // Remove IE's autoinserted <tbody> from table fragments 5592 if ( !jQuery.support.tbody ) { 5593 5594 // String was a <table>, *may* have spurious <tbody> 5595 var hasBody = rtbody.test(elem), 5596 tbody = tag === "table" && !hasBody ? 5597 div.firstChild && div.firstChild.childNodes : 5598 5599 // String was a bare <thead> or <tfoot> 5600 wrap[1] === "<table>" && !hasBody ? 5601 div.childNodes : 5602 []; 5603 5604 for ( var j = tbody.length - 1; j >= 0 ; --j ) { 5605 if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { 5606 tbody[ j ].parentNode.removeChild( tbody[ j ] ); 6097 if ( typeof elem === "string" ) { 6098 if ( !rhtml.test( elem ) ) { 6099 elem = context.createTextNode( elem ); 6100 } else { 6101 // Fix "XHTML"-style tags in all browsers 6102 elem = elem.replace(rxhtmlTag, "<$1></$2>"); 6103 6104 // Trim whitespace, otherwise indexOf won't work as expected 6105 var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(), 6106 wrap = wrapMap[ tag ] || wrapMap._default, 6107 depth = wrap[0], 6108 div = context.createElement("div"); 6109 6110 // Go to html and back, then peel off extra wrappers 6111 div.innerHTML = wrap[1] + elem + wrap[2]; 6112 6113 // Move to the right depth 6114 while ( depth-- ) { 6115 div = div.lastChild; 6116 } 6117 6118 // Remove IE's autoinserted <tbody> from table fragments 6119 if ( !jQuery.support.tbody ) { 6120 6121 // String was a <table>, *may* have spurious <tbody> 6122 var hasBody = rtbody.test(elem), 6123 tbody = tag === "table" && !hasBody ? 6124 div.firstChild && div.firstChild.childNodes : 6125 6126 // String was a bare <thead> or <tfoot> 6127 wrap[1] === "<table>" && !hasBody ? 6128 div.childNodes : 6129 []; 6130 6131 for ( j = tbody.length - 1; j >= 0 ; --j ) { 6132 if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { 6133 tbody[ j ].parentNode.removeChild( tbody[ j ] ); 6134 } 5607 6135 } 5608 6136 } 5609 6137 5610 } 5611 5612 // IE completely kills leading whitespace when innerHTML is used 5613 if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { 5614 div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); 5615 } 5616 5617 elem = div.childNodes; 6138 // IE completely kills leading whitespace when innerHTML is used 6139 if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { 6140 div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); 6141 } 6142 6143 elem = div.childNodes; 6144 } 6145 } 6146 6147 // Resets defaultChecked for any radios and checkboxes 6148 // about to be appended to the DOM in IE 6/7 (#8060) 6149 var len; 6150 if ( !jQuery.support.appendChecked ) { 6151 if ( elem[0] && typeof (len = elem.length) === "number" ) { 6152 for ( j = 0; j < len; j++ ) { 6153 findInputs( elem[j] ); 6154 } 6155 } else { 6156 findInputs( elem ); 6157 } 5618 6158 } 5619 6159 … … 5626 6166 5627 6167 if ( fragment ) { 6168 checkScriptType = function( elem ) { 6169 return !elem.type || rscriptType.test( elem.type ); 6170 }; 5628 6171 for ( i = 0; ret[i]; i++ ) { 5629 6172 if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { … … 5632 6175 } else { 5633 6176 if ( ret[i].nodeType === 1 ) { 5634 ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) ); 6177 var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType ); 6178 6179 ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); 5635 6180 } 5636 6181 fragment.appendChild( ret[i] ); … … 5694 6239 }); 5695 6240 } else { 5696 jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "");6241 jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) ); 5697 6242 } 5698 6243 … … 5704 6249 5705 6250 5706 5707 6251 var ralpha = /alpha\([^)]*\)/i, 5708 6252 ropacity = /opacity=([^)]*)/, 5709 rdashAlpha = /-([a-z])/ig,5710 rupper = /([A-Z] )/g,6253 // fixed for IE9, see #8346 6254 rupper = /([A-Z]|^ms)/g, 5711 6255 rnumpx = /^-?\d+(?:px)?$/i, 5712 6256 rnum = /^-?\d/, 6257 rrelNum = /^[+\-]=/, 6258 rrelNumFilter = /[^+\-\.\de]+/g, 5713 6259 5714 6260 cssShow = { position: "absolute", visibility: "hidden", display: "block" }, … … 5718 6264 5719 6265 getComputedStyle, 5720 currentStyle, 5721 5722 fcamelCase = function( all, letter ) { 5723 return letter.toUpperCase(); 5724 }; 6266 currentStyle; 5725 6267 5726 6268 jQuery.fn.css = function( name, value ) { … … 5757 6299 // Exclude the following css properties to add px 5758 6300 cssNumber: { 6301 "fillOpacity": true, 6302 "fontWeight": true, 6303 "lineHeight": true, 6304 "opacity": true, 6305 "orphans": true, 6306 "widows": true, 5759 6307 "zIndex": true, 5760 "fontWeight": true, 5761 "opacity": true, 5762 "zoom": true, 5763 "lineHeight": true 6308 "zoom": true 5764 6309 }, 5765 6310 … … 5779 6324 5780 6325 // Make sure that we're working with the right name 5781 var ret, origName = jQuery.camelCase( name ),6326 var ret, type, origName = jQuery.camelCase( name ), 5782 6327 style = elem.style, hooks = jQuery.cssHooks[ origName ]; 5783 6328 … … 5786 6331 // Check if we're setting a value 5787 6332 if ( value !== undefined ) { 6333 type = typeof value; 6334 5788 6335 // Make sure that NaN and null values aren't set. See: #7116 5789 if ( type of value=== "number" && isNaN( value ) || value == null ) {6336 if ( type === "number" && isNaN( value ) || value == null ) { 5790 6337 return; 5791 6338 } 5792 6339 6340 // convert relative number strings (+= or -=) to relative numbers. #7345 6341 if ( type === "string" && rrelNum.test( value ) ) { 6342 value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) ); 6343 // Fixes bug #9237 6344 type = "number"; 6345 } 6346 5793 6347 // If a number was passed in, add 'px' to the (except for certain CSS properties) 5794 if ( type of value=== "number" && !jQuery.cssNumber[ origName ] ) {6348 if ( type === "number" && !jQuery.cssNumber[ origName ] ) { 5795 6349 value += "px"; 5796 6350 } … … 5817 6371 5818 6372 css: function( elem, name, extra ) { 6373 var ret, hooks; 6374 5819 6375 // Make sure that we're working with the right name 5820 var ret, origName = jQuery.camelCase( name ), 5821 hooks = jQuery.cssHooks[ origName ]; 5822 5823 name = jQuery.cssProps[ origName ] || origName; 6376 name = jQuery.camelCase( name ); 6377 hooks = jQuery.cssHooks[ name ]; 6378 name = jQuery.cssProps[ name ] || name; 6379 6380 // cssFloat needs a special treatment 6381 if ( name === "cssFloat" ) { 6382 name = "float"; 6383 } 5824 6384 5825 6385 // If a hook was provided get the computed value from there … … 5829 6389 // Otherwise, if a way to get the computed value exists, use that 5830 6390 } else if ( curCSS ) { 5831 return curCSS( elem, name , origName);6391 return curCSS( elem, name ); 5832 6392 } 5833 6393 }, … … 5849 6409 elem.style[ name ] = old[ name ]; 5850 6410 } 5851 },5852 5853 camelCase: function( string ) {5854 return string.replace( rdashAlpha, fcamelCase );5855 6411 } 5856 6412 }); … … 5866 6422 if ( computed ) { 5867 6423 if ( elem.offsetWidth !== 0 ) { 5868 val = getWH( elem, name, extra ); 5869 6424 return getWH( elem, name, extra ); 5870 6425 } else { 5871 6426 jQuery.swap( elem, cssShow, function() { … … 5874 6429 } 5875 6430 5876 if ( val <= 0 ) { 5877 val = curCSS( elem, name, name ); 5878 5879 if ( val === "0px" && currentStyle ) { 5880 val = currentStyle( elem, name, name ); 5881 } 5882 5883 if ( val != null ) { 5884 // Should return "auto" instead of 0, use 0 for 5885 // temporary backwards-compat 5886 return val === "" || val === "auto" ? "0px" : val; 5887 } 5888 } 5889 5890 if ( val < 0 || val == null ) { 5891 val = elem.style[ name ]; 5892 5893 // Should return "auto" instead of 0, use 0 for 5894 // temporary backwards-compat 5895 return val === "" || val === "auto" ? "0px" : val; 5896 } 5897 5898 return typeof val === "string" ? val : val + "px"; 6431 return val; 5899 6432 } 5900 6433 }, … … 5903 6436 if ( rnumpx.test( value ) ) { 5904 6437 // ignore negative width and height values #1599 5905 value = parseFloat( value);6438 value = parseFloat( value ); 5906 6439 5907 6440 if ( value >= 0 ) { … … 5920 6453 get: function( elem, computed ) { 5921 6454 // IE uses filters for opacity 5922 return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "") ?5923 ( parseFloat(RegExp.$1) / 100) + "" :6455 return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ? 6456 ( parseFloat( RegExp.$1 ) / 100 ) + "" : 5924 6457 computed ? "1" : ""; 5925 6458 }, 5926 6459 5927 6460 set: function( elem, value ) { 5928 var style = elem.style; 6461 var style = elem.style, 6462 currentStyle = elem.currentStyle; 5929 6463 5930 6464 // IE has trouble with opacity if it does not have layout … … 5933 6467 5934 6468 // Set the alpha filter to set the opacity 5935 var opacity = jQuery.isNaN( value) ?6469 var opacity = jQuery.isNaN( value ) ? 5936 6470 "" : 5937 6471 "alpha(opacity=" + value * 100 + ")", 5938 filter = style.filter || "";5939 5940 style.filter = ralpha.test( filter) ?5941 filter.replace( ralpha, opacity) :5942 style.filter + ' '+ opacity;6472 filter = currentStyle && currentStyle.filter || style.filter || ""; 6473 6474 style.filter = ralpha.test( filter ) ? 6475 filter.replace( ralpha, opacity ) : 6476 filter + " " + opacity; 5943 6477 } 5944 6478 }; 5945 6479 } 5946 6480 6481 jQuery(function() { 6482 // This hook cannot be added until DOM ready because the support test 6483 // for it is not run until after DOM ready 6484 if ( !jQuery.support.reliableMarginRight ) { 6485 jQuery.cssHooks.marginRight = { 6486 get: function( elem, computed ) { 6487 // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right 6488 // Work around by temporarily setting element display to inline-block 6489 var ret; 6490 jQuery.swap( elem, { "display": "inline-block" }, function() { 6491 if ( computed ) { 6492 ret = curCSS( elem, "margin-right", "marginRight" ); 6493 } else { 6494 ret = elem.style.marginRight; 6495 } 6496 }); 6497 return ret; 6498 } 6499 }; 6500 } 6501 }); 6502 5947 6503 if ( document.defaultView && document.defaultView.getComputedStyle ) { 5948 getComputedStyle = function( elem, n ewName, name ) {6504 getComputedStyle = function( elem, name ) { 5949 6505 var ret, defaultView, computedStyle; 5950 6506 … … 6003 6559 6004 6560 function getWH( elem, name, extra ) { 6005 var which = name === "width" ? cssWidth : cssHeight, 6006 val = name === "width" ? elem.offsetWidth : elem.offsetHeight; 6007 6008 if ( extra === "border" ) { 6009 return val; 6010 } 6011 6012 jQuery.each( which, function() { 6013 if ( !extra ) { 6014 val -= parseFloat(jQuery.css( elem, "padding" + this )) || 0; 6015 } 6016 6017 if ( extra === "margin" ) { 6018 val += parseFloat(jQuery.css( elem, "margin" + this )) || 0; 6019 6020 } else { 6021 val -= parseFloat(jQuery.css( elem, "border" + this + "Width" )) || 0; 6022 } 6023 }); 6024 6025 return val; 6561 6562 // Start with offset property 6563 var val = name === "width" ? elem.offsetWidth : elem.offsetHeight, 6564 which = name === "width" ? cssWidth : cssHeight; 6565 6566 if ( val > 0 ) { 6567 if ( extra !== "border" ) { 6568 jQuery.each( which, function() { 6569 if ( !extra ) { 6570 val -= parseFloat( jQuery.css( elem, "padding" + this ) ) || 0; 6571 } 6572 if ( extra === "margin" ) { 6573 val += parseFloat( jQuery.css( elem, extra + this ) ) || 0; 6574 } else { 6575 val -= parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0; 6576 } 6577 }); 6578 } 6579 6580 return val + "px"; 6581 } 6582 6583 // Fall back to computed then uncomputed css if necessary 6584 val = curCSS( elem, name, name ); 6585 if ( val < 0 || val == null ) { 6586 val = elem.style[ name ] || 0; 6587 } 6588 // Normalize "", auto, and prepare for extra 6589 val = parseFloat( val ) || 0; 6590 6591 // Add padding, border, margin 6592 if ( extra ) { 6593 jQuery.each( which, function() { 6594 val += parseFloat( jQuery.css( elem, "padding" + this ) ) || 0; 6595 if ( extra !== "padding" ) { 6596 val += parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0; 6597 } 6598 if ( extra === "margin" ) { 6599 val += parseFloat( jQuery.css( elem, extra + this ) ) || 0; 6600 } 6601 }); 6602 } 6603 6604 return val + "px"; 6026 6605 } 6027 6606 … … 6049 6628 rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, 6050 6629 // #7653, #8125, #8152: local protocol detection 6051 rlocalProtocol = / (?:^file|^widget|\-extension):$/,6630 rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|widget):$/, 6052 6631 rnoContent = /^(?:GET|HEAD)$/, 6053 6632 rprotocol = /^\/\//, … … 6057 6636 rspacesAjax = /\s+/, 6058 6637 rts = /([?&])_=[^&]*/, 6059 rucHeaders = /(^|\-)([a-z])/g, 6060 rucHeadersFunc = function( _, $1, $2 ) { 6061 return $1 + $2.toUpperCase(); 6062 }, 6063 rurl = /^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/, 6638 rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/, 6064 6639 6065 6640 // Keep a copy of the old load method … … 6091 6666 6092 6667 // #8138, IE may throw an exception when accessing 6093 // a field from document.location if document.domain has been set6668 // a field from window.location if document.domain has been set 6094 6669 try { 6095 ajaxLocation = document.location.href;6670 ajaxLocation = location.href; 6096 6671 } catch( e ) { 6097 6672 // Use the href attribute of an A element … … 6103 6678 6104 6679 // Segment location into parts 6105 ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) ;6680 ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; 6106 6681 6107 6682 // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport … … 6141 6716 } 6142 6717 6143 // Base inspection function for prefilters and transports6718 // Base inspection function for prefilters and transports 6144 6719 function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR, 6145 6720 dataType /* internal */, inspected /* internal */ ) { … … 6290 6865 return this.bind( o, f ); 6291 6866 }; 6292 } 6867 }); 6293 6868 6294 6869 jQuery.each( [ "get", "post" ], function( i, method ) { … … 6309 6884 }); 6310 6885 }; 6311 } 6886 }); 6312 6887 6313 6888 jQuery.extend({ … … 6361 6936 traditional: false, 6362 6937 headers: {}, 6363 crossDomain: null,6364 6938 */ 6365 6939 … … 6436 7010 // Headers (they are sent all at once) 6437 7011 requestHeaders = {}, 7012 requestHeadersNames = {}, 6438 7013 // Response headers 6439 7014 responseHeadersString, … … 6459 7034 setRequestHeader: function( name, value ) { 6460 7035 if ( !state ) { 6461 requestHeaders[ name.toLowerCase().replace( rucHeaders, rucHeadersFunc ) ] = value; 7036 var lname = name.toLowerCase(); 7037 name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; 7038 requestHeaders[ name ] = value; 6462 7039 } 6463 7040 return this; … … 6646 7223 6647 7224 // Determine if a cross-domain request is in order 6648 if ( !s.crossDomain) {7225 if ( s.crossDomain == null ) { 6649 7226 parts = rurl.exec( s.url.toLowerCase() ); 6650 7227 s.crossDomain = !!( parts && … … 6707 7284 // Set the correct header, if data is being sent 6708 7285 if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { 6709 requestHeaders[ "Content-Type" ] = s.contentType;7286 jqXHR.setRequestHeader( "Content-Type", s.contentType ); 6710 7287 } 6711 7288 … … 6714 7291 ifModifiedKey = ifModifiedKey || s.url; 6715 7292 if ( jQuery.lastModified[ ifModifiedKey ] ) { 6716 requestHeaders[ "If-Modified-Since" ] = jQuery.lastModified[ ifModifiedKey ];7293 jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] ); 6717 7294 } 6718 7295 if ( jQuery.etag[ ifModifiedKey ] ) { 6719 requestHeaders[ "If-None-Match" ] = jQuery.etag[ ifModifiedKey ];7296 jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] ); 6720 7297 } 6721 7298 } 6722 7299 6723 7300 // Set the Accepts header for the server, depending on the dataType 6724 requestHeaders.Accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? 6725 s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : 6726 s.accepts[ "*" ]; 7301 jqXHR.setRequestHeader( 7302 "Accept", 7303 s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? 7304 s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : 7305 s.accepts[ "*" ] 7306 ); 6727 7307 6728 7308 // Check for headers option … … 6800 7380 jQuery.each( a, function() { 6801 7381 add( this.name, this.value ); 6802 } 7382 }); 6803 7383 6804 7384 } else { … … 6816 7396 6817 7397 function buildParams( prefix, obj, traditional, add ) { 6818 if ( jQuery.isArray( obj ) && obj.length) {7398 if ( jQuery.isArray( obj ) ) { 6819 7399 // Serialize array item. 6820 7400 jQuery.each( obj, function( i, v ) { … … 6836 7416 6837 7417 } else if ( !traditional && obj != null && typeof obj === "object" ) { 6838 // If we see an array here, it is empty and should be treated as an empty6839 // object6840 if ( jQuery.isArray( obj ) || jQuery.isEmptyObject( obj ) ) {6841 add( prefix, "" );6842 6843 7418 // Serialize object item. 6844 } else { 6845 for ( var name in obj ) { 6846 buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); 6847 } 7419 for ( var name in obj ) { 7420 buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); 6848 7421 } 6849 7422 … … 7025 7598 7026 7599 var jsc = jQuery.now(), 7027 jsre = /(\=)\?(&|$)| ()\?\?()/i;7600 jsre = /(\=)\?(&|$)|\?\?/i; 7028 7601 7029 7602 // Default jsonp settings … … 7038 7611 jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { 7039 7612 7040 var dataIsString = ( typeof s.data === "string" ); 7613 var inspectData = s.contentType === "application/x-www-form-urlencoded" && 7614 ( typeof s.data === "string" ); 7041 7615 7042 7616 if ( s.dataTypes[ 0 ] === "jsonp" || 7043 originalSettings.jsonpCallback ||7044 originalSettings.jsonp != null ||7045 7617 s.jsonp !== false && ( jsre.test( s.url ) || 7046 dataIsString&& jsre.test( s.data ) ) ) {7618 inspectData && jsre.test( s.data ) ) ) { 7047 7619 7048 7620 var responseContainer, … … 7052 7624 url = s.url, 7053 7625 data = s.data, 7054 replace = "$1" + jsonpCallback + "$2", 7055 cleanUp = function() { 7056 // Set callback back to previous value 7057 window[ jsonpCallback ] = previous; 7058 // Call if it was a function and we have a response 7059 if ( responseContainer && jQuery.isFunction( previous ) ) { 7060 window[ jsonpCallback ]( responseContainer[ 0 ] ); 7061 } 7062 }; 7626 replace = "$1" + jsonpCallback + "$2"; 7063 7627 7064 7628 if ( s.jsonp !== false ) { 7065 7629 url = url.replace( jsre, replace ); 7066 7630 if ( s.url === url ) { 7067 if ( dataIsString) {7631 if ( inspectData ) { 7068 7632 data = data.replace( jsre, replace ); 7069 7633 } … … 7083 7647 }; 7084 7648 7085 // Install cleanUp function 7086 jqXHR.then( cleanUp, cleanUp ); 7649 // Clean-up function 7650 jqXHR.always(function() { 7651 // Set callback back to previous value 7652 window[ jsonpCallback ] = previous; 7653 // Call if it was a function and we have a response 7654 if ( responseContainer && jQuery.isFunction( previous ) ) { 7655 window[ jsonpCallback ]( responseContainer[ 0 ] ); 7656 } 7657 }); 7087 7658 7088 7659 // Use data converter to retrieve json after script execution … … 7100 7671 return "script"; 7101 7672 } 7102 } 7673 }); 7103 7674 7104 7675 … … 7130 7701 s.global = false; 7131 7702 } 7132 } 7703 }); 7133 7704 7134 7705 // Bind script tag hack transport … … 7158 7729 script.onload = script.onreadystatechange = function( _, isAbort ) { 7159 7730 7160 if ( !script.readyState || /loaded|complete/.test( script.readyState ) ) {7731 if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) { 7161 7732 7162 7733 // Handle memory leak in IE … … 7189 7760 }; 7190 7761 } 7191 } ); 7192 7193 7194 7195 7196 var // #5280: next active xhr id and list of active xhrs' callbacks 7197 xhrId = jQuery.now(), 7198 xhrCallbacks, 7199 7200 // XHR used to determine supports properties 7201 testXHR; 7202 7203 // #5280: Internet Explorer will keep connections alive if we don't abort on unload 7204 function xhrOnUnloadAbort() { 7205 jQuery( window ).unload(function() { 7762 }); 7763 7764 7765 7766 7767 var // #5280: Internet Explorer will keep connections alive if we don't abort on unload 7768 xhrOnUnloadAbort = window.ActiveXObject ? function() { 7206 7769 // Abort all pending requests 7207 7770 for ( var key in xhrCallbacks ) { 7208 7771 xhrCallbacks[ key ]( 0, 1 ); 7209 7772 } 7210 }); 7211 } 7773 } : false, 7774 xhrId = 0, 7775 xhrCallbacks; 7212 7776 7213 7777 // Functions to create xhrs … … 7239 7803 createStandardXHR; 7240 7804 7241 // Test if we can create an xhr object 7242 testXHR = jQuery.ajaxSettings.xhr(); 7243 jQuery.support.ajax = !!testXHR; 7244 7245 // Does this browser support crossDomain XHR requests 7246 jQuery.support.cors = testXHR && ( "withCredentials" in testXHR ); 7247 7248 // No need for the temporary xhr anymore 7249 testXHR = undefined; 7805 // Determine support properties 7806 (function( xhr ) { 7807 jQuery.extend( jQuery.support, { 7808 ajax: !!xhr, 7809 cors: !!xhr && ( "withCredentials" in xhr ) 7810 }); 7811 })( jQuery.ajaxSettings.xhr() ); 7250 7812 7251 7813 // Create transport if the browser can provide an xhr … … 7286 7848 } 7287 7849 7288 // Requested-With header 7289 // Not set for crossDomain requests with no content 7290 // (see why at http://trac.dojotoolkit.org/ticket/9486) 7291 // Won't change header if already provided 7292 if ( !( s.crossDomain && !s.hasContent ) && !headers["X-Requested-With"] ) { 7850 // X-Requested-With header 7851 // For cross-domain requests, seeing as conditions for a preflight are 7852 // akin to a jigsaw puzzle, we simply never set it to be sure. 7853 // (it can always be set on a per-request basis or even using ajaxSetup) 7854 // For same-domain requests, won't change header if already provided. 7855 if ( !s.crossDomain && !headers["X-Requested-With"] ) { 7293 7856 headers[ "X-Requested-With" ] = "XMLHttpRequest"; 7294 7857 } … … 7329 7892 if ( handle ) { 7330 7893 xhr.onreadystatechange = jQuery.noop; 7331 delete xhrCallbacks[ handle ]; 7894 if ( xhrOnUnloadAbort ) { 7895 delete xhrCallbacks[ handle ]; 7896 } 7332 7897 } 7333 7898 … … 7390 7955 callback(); 7391 7956 } else { 7392 // Create the active xhrs callbacks list if needed 7393 // and attach the unload handler 7394 if ( !xhrCallbacks ) { 7395 xhrCallbacks = {}; 7396 xhrOnUnloadAbort(); 7957 handle = ++xhrId; 7958 if ( xhrOnUnloadAbort ) { 7959 // Create the active xhrs callbacks list if needed 7960 // and attach the unload handler 7961 if ( !xhrCallbacks ) { 7962 xhrCallbacks = {}; 7963 jQuery( window ).unload( xhrOnUnloadAbort ); 7964 } 7965 // Add to list of active xhrs callbacks 7966 xhrCallbacks[ handle ] = callback; 7397 7967 } 7398 // Add to list of active xhrs callbacks 7399 handle = xhrId++; 7400 xhr.onreadystatechange = xhrCallbacks[ handle ] = callback; 7968 xhr.onreadystatechange = callback; 7401 7969 } 7402 7970 }, … … 7416 7984 7417 7985 var elemdisplay = {}, 7986 iframe, iframeDoc, 7418 7987 rfxtypes = /^(?:toggle|show|hide)$/, 7419 7988 rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i, … … 7426 7995 // opacity animations 7427 7996 [ "opacity" ] 7428 ]; 7997 ], 7998 fxNow, 7999 requestAnimationFrame = window.webkitRequestAnimationFrame || 8000 window.mozRequestAnimationFrame || 8001 window.oRequestAnimationFrame; 7429 8002 7430 8003 jQuery.fn.extend({ … … 7438 8011 for ( var i = 0, j = this.length; i < j; i++ ) { 7439 8012 elem = this[i]; 7440 display = elem.style.display; 7441 7442 // Reset the inline display of this element to learn if it is 7443 // being hidden by cascaded rules or not 7444 if ( !jQuery._data(elem, "olddisplay") && display === "none" ) { 7445 display = elem.style.display = ""; 7446 } 7447 7448 // Set elements which have been overridden with display: none 7449 // in a stylesheet to whatever the default browser style is 7450 // for such an element 7451 if ( display === "" && jQuery.css( elem, "display" ) === "none" ) { 7452 jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName)); 8013 8014 if ( elem.style ) { 8015 display = elem.style.display; 8016 8017 // Reset the inline display of this element to learn if it is 8018 // being hidden by cascaded rules or not 8019 if ( !jQuery._data(elem, "olddisplay") && display === "none" ) { 8020 display = elem.style.display = ""; 8021 } 8022 8023 // Set elements which have been overridden with display: none 8024 // in a stylesheet to whatever the default browser style is 8025 // for such an element 8026 if ( display === "" && jQuery.css( elem, "display" ) === "none" ) { 8027 jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName)); 8028 } 7453 8029 } 7454 8030 } … … 7458 8034 for ( i = 0; i < j; i++ ) { 7459 8035 elem = this[i]; 7460 display = elem.style.display; 7461 7462 if ( display === "" || display === "none" ) { 7463 elem.style.display = jQuery._data(elem, "olddisplay") || ""; 8036 8037 if ( elem.style ) { 8038 display = elem.style.display; 8039 8040 if ( display === "" || display === "none" ) { 8041 elem.style.display = jQuery._data(elem, "olddisplay") || ""; 8042 } 7464 8043 } 7465 8044 } … … 7475 8054 } else { 7476 8055 for ( var i = 0, j = this.length; i < j; i++ ) { 7477 var display = jQuery.css( this[i], "display" ); 7478 7479 if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) { 7480 jQuery._data( this[i], "olddisplay", display ); 8056 if ( this[i].style ) { 8057 var display = jQuery.css( this[i], "display" ); 8058 8059 if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) { 8060 jQuery._data( this[i], "olddisplay", display ); 8061 } 7481 8062 } 7482 8063 } … … 7485 8066 // to avoid the constant reflow 7486 8067 for ( i = 0; i < j; i++ ) { 7487 this[i].style.display = "none"; 8068 if ( this[i].style ) { 8069 this[i].style.display = "none"; 8070 } 7488 8071 } 7489 8072 … … 7523 8106 7524 8107 if ( jQuery.isEmptyObject( prop ) ) { 7525 return this.each( optall.complete ); 7526 } 8108 return this.each( optall.complete, [ false ] ); 8109 } 8110 8111 // Do not change referenced properties as per-property easing will be lost 8112 prop = jQuery.extend( {}, prop ); 7527 8113 7528 8114 return this[ optall.queue === false ? "each" : "queue" ](function() { … … 7530 8116 // test suite 7531 8117 7532 var opt = jQuery.extend({}, optall), p, 8118 if ( optall.queue === false ) { 8119 jQuery._mark( this ); 8120 } 8121 8122 var opt = jQuery.extend( {}, optall ), 7533 8123 isElement = this.nodeType === 1, 7534 8124 hidden = isElement && jQuery(this).is(":hidden"), 7535 self = this; 8125 name, val, p, 8126 display, e, 8127 parts, start, end, unit; 8128 8129 // will store per property easing and be used to determine when an animation is complete 8130 opt.animatedProperties = {}; 7536 8131 7537 8132 for ( p in prop ) { 7538 var name = jQuery.camelCase( p ); 7539 8133 8134 // property name normalization 8135 name = jQuery.camelCase( p ); 7540 8136 if ( p !== name ) { 7541 8137 prop[ name ] = prop[ p ]; 7542 8138 delete prop[ p ]; 7543 p = name; 7544 } 7545 7546 if ( prop[p] === "hide" && hidden || prop[p] === "show" && !hidden ) { 7547 return opt.complete.call(this); 7548 } 7549 7550 if ( isElement && ( p === "height" || p === "width" ) ) { 8139 } 8140 8141 val = prop[ name ]; 8142 8143 // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default) 8144 if ( jQuery.isArray( val ) ) { 8145 opt.animatedProperties[ name ] = val[ 1 ]; 8146 val = prop[ name ] = val[ 0 ]; 8147 } else { 8148 opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing'; 8149 } 8150 8151 if ( val === "hide" && hidden || val === "show" && !hidden ) { 8152 return opt.complete.call( this ); 8153 } 8154 8155 if ( isElement && ( name === "height" || name === "width" ) ) { 7551 8156 // Make sure that nothing sneaks out 7552 8157 // Record all 3 overflow attributes because IE does not … … 7564 8169 7565 8170 } else { 7566 var display = defaultDisplay(this.nodeName);8171 display = defaultDisplay( this.nodeName ); 7567 8172 7568 8173 // inline-level elements accept inline-block; … … 7578 8183 } 7579 8184 } 7580 7581 if ( jQuery.isArray( prop[p] ) ) {7582 // Create (if needed) and add to specialEasing7583 (opt.specialEasing = opt.specialEasing || {})[p] = prop[p][1];7584 prop[p] = prop[p][0];7585 }7586 8185 } 7587 8186 … … 7590 8189 } 7591 8190 7592 opt.curAnim = jQuery.extend({}, prop); 7593 7594 jQuery.each( prop, function( name, val ) { 7595 var e = new jQuery.fx( self, opt, name ); 8191 for ( p in prop ) { 8192 e = new jQuery.fx( this, opt, p ); 8193 val = prop[ p ]; 7596 8194 7597 8195 if ( rfxtypes.test(val) ) { 7598 e[ val === "toggle" ? hidden ? "show" : "hide" : val ]( prop);8196 e[ val === "toggle" ? hidden ? "show" : "hide" : val ](); 7599 8197 7600 8198 } else { 7601 var parts = rfxnum.exec(val),7602 8199 parts = rfxnum.exec( val ); 8200 start = e.cur(); 7603 8201 7604 8202 if ( parts ) { 7605 var end = parseFloat( parts[2] ),7606 unit = parts[3] || ( jQuery.cssNumber[ name] ? "" : "px" );8203 end = parseFloat( parts[2] ); 8204 unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" ); 7607 8205 7608 8206 // We need to compute starting value 7609 8207 if ( unit !== "px" ) { 7610 jQuery.style( self, name, (end || 1) + unit);8208 jQuery.style( this, p, (end || 1) + unit); 7611 8209 start = ((end || 1) / e.cur()) * start; 7612 jQuery.style( self, name, start + unit);8210 jQuery.style( this, p, start + unit); 7613 8211 } 7614 8212 7615 8213 // If a +=/-= token was provided, we're doing a relative animation 7616 8214 if ( parts[1] ) { 7617 end = ( (parts[1] === "-=" ? -1 : 1) * end) + start;8215 end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start; 7618 8216 } 7619 8217 … … 7624 8222 } 7625 8223 } 7626 } );8224 } 7627 8225 7628 8226 // For JS strict compliance … … 7632 8230 7633 8231 stop: function( clearQueue, gotoEnd ) { 7634 var timers = jQuery.timers;7635 7636 8232 if ( clearQueue ) { 7637 8233 this.queue([]); … … 7639 8235 7640 8236 this.each(function() { 7641 // go in reverse order so anything added to the queue during the loop is ignored 7642 for ( var i = timers.length - 1; i >= 0; i-- ) { 8237 var timers = jQuery.timers, 8238 i = timers.length; 8239 // clear marker counters if we know they won't be 8240 if ( !gotoEnd ) { 8241 jQuery._unmark( true, this ); 8242 } 8243 while ( i-- ) { 7643 8244 if ( timers[i].elem === this ) { 7644 8245 if (gotoEnd) { … … 7662 8263 }); 7663 8264 8265 // Animations created synchronously will run synchronously 8266 function createFxNow() { 8267 setTimeout( clearFxNow, 0 ); 8268 return ( fxNow = jQuery.now() ); 8269 } 8270 8271 function clearFxNow() { 8272 fxNow = undefined; 8273 } 8274 8275 // Generate parameters to create a standard animation 7664 8276 function genFx( type, num ) { 7665 8277 var obj = {}; … … 7700 8312 // Queueing 7701 8313 opt.old = opt.complete; 7702 opt.complete = function() { 7703 if ( opt.queue !== false ) { 7704 jQuery(this).dequeue(); 7705 } 8314 opt.complete = function( noUnmark ) { 7706 8315 if ( jQuery.isFunction( opt.old ) ) { 7707 8316 opt.old.call( this ); 8317 } 8318 8319 if ( opt.queue !== false ) { 8320 jQuery.dequeue( this ); 8321 } else if ( noUnmark !== false ) { 8322 jQuery._unmark( this ); 7708 8323 } 7709 8324 }; … … 7728 8343 this.prop = prop; 7729 8344 7730 if ( !options.orig ) { 7731 options.orig = {}; 7732 } 8345 options.orig = options.orig || {}; 7733 8346 } 7734 8347 … … 7762 8375 custom: function( from, to, unit ) { 7763 8376 var self = this, 7764 fx = jQuery.fx; 7765 7766 this.startTime = jQuery.now(); 8377 fx = jQuery.fx, 8378 raf; 8379 8380 this.startTime = fxNow || createFxNow(); 7767 8381 this.start = from; 7768 8382 this.end = to; … … 7778 8392 7779 8393 if ( t() && jQuery.timers.push(t) && !timerId ) { 7780 timerId = setInterval(fx.tick, fx.interval); 8394 // Use requestAnimationFrame instead of setInterval if available 8395 if ( requestAnimationFrame ) { 8396 timerId = true; 8397 raf = function() { 8398 // When timerId gets set to null at any point, this stops 8399 if ( timerId ) { 8400 requestAnimationFrame( raf ); 8401 fx.tick(); 8402 } 8403 }; 8404 requestAnimationFrame( raf ); 8405 } else { 8406 timerId = setInterval( fx.tick, fx.interval ); 8407 } 7781 8408 } 7782 8409 }, … … 7809 8436 // Each step of an animation 7810 8437 step: function( gotoEnd ) { 7811 var t = jQuery.now(), done = true; 7812 7813 if ( gotoEnd || t >= this.options.duration + this.startTime ) { 8438 var t = fxNow || createFxNow(), 8439 done = true, 8440 elem = this.elem, 8441 options = this.options, 8442 i, n; 8443 8444 if ( gotoEnd || t >= options.duration + this.startTime ) { 7814 8445 this.now = this.end; 7815 8446 this.pos = this.state = 1; 7816 8447 this.update(); 7817 8448 7818 this.options.curAnim[ this.prop ] = true;7819 7820 for ( var i in this.options.curAnim) {7821 if ( this.options.curAnim[i] !== true ) {8449 options.animatedProperties[ this.prop ] = true; 8450 8451 for ( i in options.animatedProperties ) { 8452 if ( options.animatedProperties[i] !== true ) { 7822 8453 done = false; 7823 8454 } … … 7826 8457 if ( done ) { 7827 8458 // Reset the overflow 7828 if ( this.options.overflow != null && !jQuery.support.shrinkWrapBlocks ) { 7829 var elem = this.elem, 7830 options = this.options; 8459 if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) { 7831 8460 7832 8461 jQuery.each( [ "", "X", "Y" ], function (index, value) { 7833 8462 elem.style[ "overflow" + value ] = options.overflow[index]; 7834 } 8463 }); 7835 8464 } 7836 8465 7837 8466 // Hide the element if the "hide" operation was done 7838 if ( this.options.hide ) {7839 jQuery( this.elem).hide();8467 if ( options.hide ) { 8468 jQuery(elem).hide(); 7840 8469 } 7841 8470 7842 8471 // Reset the properties, if the item has been hidden or shown 7843 if ( this.options.hide || this.options.show ) {7844 for ( var p in this.options.curAnim) {7845 jQuery.style( this.elem, p, this.options.orig[p] );8472 if ( options.hide || options.show ) { 8473 for ( var p in options.animatedProperties ) { 8474 jQuery.style( elem, p, options.orig[p] ); 7846 8475 } 7847 8476 } 7848 8477 7849 8478 // Execute the complete function 7850 this.options.complete.call( this.elem );8479 options.complete.call( elem ); 7851 8480 } 7852 8481 … … 7854 8483 7855 8484 } else { 7856 var n = t - this.startTime; 7857 this.state = n / this.options.duration; 7858 7859 // Perform the easing function, defaults to swing 7860 var specialEasing = this.options.specialEasing && this.options.specialEasing[this.prop]; 7861 var defaultEasing = this.options.easing || (jQuery.easing.swing ? "swing" : "linear"); 7862 this.pos = jQuery.easing[specialEasing || defaultEasing](this.state, n, 0, 1, this.options.duration); 7863 this.now = this.start + ((this.end - this.start) * this.pos); 7864 8485 // classical easing cannot be used with an Infinity duration 8486 if ( options.duration == Infinity ) { 8487 this.now = t; 8488 } else { 8489 n = t - this.startTime; 8490 this.state = n / options.duration; 8491 8492 // Perform the easing function, defaults to swing 8493 this.pos = jQuery.easing[ options.animatedProperties[ this.prop ] ]( this.state, n, 0, 1, options.duration ); 8494 this.now = this.start + ((this.end - this.start) * this.pos); 8495 } 7865 8496 // Perform the next step of the animation 7866 8497 this.update(); … … 7873 8504 jQuery.extend( jQuery.fx, { 7874 8505 tick: function() { 7875 var timers = jQuery.timers; 7876 7877 for ( var i = 0; i < timers.length; i++ ) { 8506 for ( var timers = jQuery.timers, i = 0 ; i < timers.length ; ++i ) { 7878 8507 if ( !timers[i]() ) { 7879 8508 timers.splice(i--, 1); … … 7923 8552 } 7924 8553 8554 // Try to restore the default display value of an element 7925 8555 function defaultDisplay( nodeName ) { 8556 7926 8557 if ( !elemdisplay[ nodeName ] ) { 7927 var elem = jQuery("<" + nodeName + ">").appendTo("body"), 7928 display = elem.css("display"); 8558 8559 var body = document.body, 8560 elem = jQuery( "<" + nodeName + ">" ).appendTo( body ), 8561 display = elem.css( "display" ); 7929 8562 7930 8563 elem.remove(); 7931 8564 8565 // If the simple way fails, 8566 // get element's real default display by attaching it to a temp iframe 7932 8567 if ( display === "none" || display === "" ) { 7933 display = "block"; 7934 } 7935 8568 // No iframe to use yet, so create it 8569 if ( !iframe ) { 8570 iframe = document.createElement( "iframe" ); 8571 iframe.frameBorder = iframe.width = iframe.height = 0; 8572 } 8573 8574 body.appendChild( iframe ); 8575 8576 // Create a cacheable copy of the iframe document on first call. 8577 // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML 8578 // document to it; WebKit & Firefox won't allow reusing the iframe document. 8579 if ( !iframeDoc || !iframe.createElement ) { 8580 iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document; 8581 iframeDoc.write( ( document.compatMode === "CSS1Compat" ? "<!doctype html>" : "" ) + "<html><body>" ); 8582 iframeDoc.close(); 8583 } 8584 8585 elem = iframeDoc.createElement( nodeName ); 8586 8587 iframeDoc.body.appendChild( elem ); 8588 8589 display = jQuery.css( elem, "display" ); 8590 8591 body.removeChild( iframe ); 8592 } 8593 8594 // Store the correct default display 7936 8595 elemdisplay[ nodeName ] = display; 7937 8596 } … … 7980 8639 clientTop = docElem.clientTop || body.clientTop || 0, 7981 8640 clientLeft = docElem.clientLeft || body.clientLeft || 0, 7982 scrollTop = (win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop ),7983 scrollLeft = (win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft),8641 scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop, 8642 scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft, 7984 8643 top = box.top + scrollTop - clientTop, 7985 8644 left = box.left + scrollLeft - clientLeft; … … 8094 8753 8095 8754 body.removeChild( container ); 8096 body = container = innerDiv = checkDiv = table = td = null;8097 8755 jQuery.offset.initialize = jQuery.noop; 8098 8756 }, … … 8124 8782 curCSSTop = jQuery.css( elem, "top" ), 8125 8783 curCSSLeft = jQuery.css( elem, "left" ), 8126 calculatePosition = (position === "absolute" && jQuery.inArray('auto', [curCSSTop, curCSSLeft]) > -1),8784 calculatePosition = (position === "absolute" || position === "fixed") && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1, 8127 8785 props = {}, curPosition = {}, curTop, curLeft; 8128 8786 8129 // need to be able to calculate position if either top or left is auto and position is absolute8787 // need to be able to calculate position if either top or left is auto and position is either absolute or fixed 8130 8788 if ( calculatePosition ) { 8131 8789 curPosition = curElem.position(); 8132 } 8133 8134 curTop = calculatePosition ? curPosition.top : parseInt( curCSSTop, 10 ) || 0; 8135 curLeft = calculatePosition ? curPosition.left : parseInt( curCSSLeft, 10 ) || 0; 8790 curTop = curPosition.top; 8791 curLeft = curPosition.left; 8792 } else { 8793 curTop = parseFloat( curCSSTop ) || 0; 8794 curLeft = parseFloat( curCSSLeft ) || 0; 8795 } 8136 8796 8137 8797 if ( jQuery.isFunction( options ) ) { … … 8203 8863 var method = "scroll" + name; 8204 8864 8205 jQuery.fn[ method ] = function(val) { 8206 var elem = this[0], win; 8207 8208 if ( !elem ) { 8209 return null; 8210 } 8211 8212 if ( val !== undefined ) { 8213 // Set the scroll offset 8214 return this.each(function() { 8215 win = getWindow( this ); 8216 8217 if ( win ) { 8218 win.scrollTo( 8219 !i ? val : jQuery(win).scrollLeft(), 8220 i ? val : jQuery(win).scrollTop() 8221 ); 8222 8223 } else { 8224 this[ method ] = val; 8225 } 8226 }); 8227 } else { 8865 jQuery.fn[ method ] = function( val ) { 8866 var elem, win; 8867 8868 if ( val === undefined ) { 8869 elem = this[ 0 ]; 8870 8871 if ( !elem ) { 8872 return null; 8873 } 8874 8228 8875 win = getWindow( elem ); 8229 8876 … … 8234 8881 elem[ method ]; 8235 8882 } 8883 8884 // Set the scroll offset 8885 return this.each(function() { 8886 win = getWindow( this ); 8887 8888 if ( win ) { 8889 win.scrollTo( 8890 !i ? val : jQuery( win ).scrollLeft(), 8891 i ? val : jQuery( win ).scrollTop() 8892 ); 8893 8894 } else { 8895 this[ method ] = val; 8896 } 8897 }); 8236 8898 }; 8237 8899 }); … … 8248 8910 8249 8911 8250 // Create innerHeight, innerWidth, outerHeight and outerWidth methods8912 // Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods 8251 8913 jQuery.each([ "Height", "Width" ], function( i, name ) { 8252 8914 … … 8254 8916 8255 8917 // innerHeight and innerWidth 8256 jQuery.fn["inner" + name] = function() { 8257 return this[0] ? 8258 parseFloat( jQuery.css( this[0], type, "padding" ) ) : 8918 jQuery.fn[ "inner" + name ] = function() { 8919 var elem = this[0]; 8920 return elem && elem.style ? 8921 parseFloat( jQuery.css( elem, type, "padding" ) ) : 8259 8922 null; 8260 8923 }; 8261 8924 8262 8925 // outerHeight and outerWidth 8263 jQuery.fn["outer" + name] = function( margin ) { 8264 return this[0] ? 8265 parseFloat( jQuery.css( this[0], type, margin ? "margin" : "border" ) ) : 8926 jQuery.fn[ "outer" + name ] = function( margin ) { 8927 var elem = this[0]; 8928 return elem && elem.style ? 8929 parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) : 8266 8930 null; 8267 8931 }; … … 8313 8977 8314 8978 8979 // Expose jQuery to the global object 8315 8980 window.jQuery = window.$ = jQuery; 8316 8981 })(window); -
trunk/themes/default/js/jquery.min.js
r9553 r12040 1 1 /*! 2 * jQuery JavaScript Library v1. 5.12 * jQuery JavaScript Library v1.6.2 3 3 * http://jquery.com/ 4 4 * … … 12 12 * Released under the MIT, BSD, and GPL Licenses. 13 13 * 14 * Date: Wed Feb 23 13:55:29 2011 -050014 * Date: Thu Jun 30 14:16:56 2011 -0400 15 15 */ 16 (function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bP(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bO(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bq.test(a)?e(a,f):bO(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bO(a+"["+f+"]",b[f],c,e)}function bN(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bH,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bN(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bN(a,c,d,e,"*",g));return l}function bM(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bB),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bo(a,b,c){var e=b==="width"?bi:bj,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function ba(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function _(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function $(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function Z(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function Y(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function O(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(J.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(p,"")===a.type?r.push(g.selector):t.splice(i--,1);f=d(a.target).closest(r,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&q.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=q.length;j<k;j++){f=q[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:F?function(a){return a==null?"":F.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?D.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){c=1;try{while(a[0])a.shift().apply(d,f)}catch(g){throw g}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(d.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),e;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a){if(a==null){if(e)return e;e=a={}}var c=z.length;while(c--)a[z[c]]=b[z[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){var b=arguments.length,c=b<=1&&a&&d.isFunction(a.promise)?a:d.Deferred(),e=c.promise();if(b>1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i<j;i++)h=g[i].name,h.indexOf("data-")===0&&(h=h.substr(5),f(this[0],h,e[h]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=f(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var h=/[\n\t\r]/g,i=/\s+/,j=/\r/g,k=/^(?:href|src|style)$/,l=/^(?:button|input)$/i,m=/^(?:button|input|object|select|textarea)$/i,n=/^a(?:rea)?$/i,o=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(i);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",h=f.className;for(var j=0,k=b.length;j<k;j++)g.indexOf(" "+b[j]+" ")<0&&(h+=" "+b[j]);f.className=d.trim(h)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(i);for(var e=0,f=this.length;e<f;e++){var g=this[e];if(g.nodeType===1&&g.className)if(a){var j=(" "+g.className+" ").replace(h," ");for(var k=0,l=c.length;k<l;k++)j=j.replace(" "+c[k]+" "," ");g.className=d.trim(j)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,h=d(this),j=b,k=a.split(i);while(f=k[g++])j=e?j:!h.hasClass(f),h[j?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(h," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k<l;k++){var m=h[k];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(i)return a;g.push(a)}}if(i&&!g.length&&h.length)return d(h[f]).val();return g}if(o.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(j,"")}return b}var n=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){n&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&o.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete t[h]}if(d.isEmptyObject(t)){var w=s.handle;w&&(w.elem=null),delete s.events,delete s.handle,d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,F(a.origType,a.selector),d.extend({},a,{handler:E,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,F(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?w:v):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=w;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=w;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=w,this.stopPropagation()},isDefaultPrevented:v,isPropagationStopped:v,isImmediatePropagationStopped:v};var x=function(a){var b=a.relatedTarget;try{if(b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(e){}},y=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?y:x,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?y:x)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,b){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&d(b).closest("form").length&&C("submit",this,arguments)}),d.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&d(b).closest("form").length&&a.keyCode===13&&C("submit",this,arguments)});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var z,A=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var D={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var o in a)n[c](o,e,a[o],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=p.exec(h),k="",j&&(k=j[0],h=h.replace(p,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(D[h]+k),h=h+k):h=(D[h]||h)+k;if(c==="live")for(var q=0,r=n.length;q<r;q++)d.event.add(n[q],"live."+F(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+F(h,m),f)}return this}}),d.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!=="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.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|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};d.find=k,d.expr=k.selectors,d.expr[":"]=d.expr.filters,d.unique=k.uniqueSort,d.text=k.getText,d.isXMLDoc=k.isXML,d.contains=k.contains}();var G=/Until$/,H=/^(?:parents|prevUntil|prevAll)/,I=/,/,J=/^.[^:#\[\.,]*$/,K=Array.prototype.slice,L=d.expr.match.POS,M={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(O(this,a,!1),"not",a)},filter:function(a){return this.pushStack(O(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/<tbody/i,U=/<|&#?\w+;/,V=/<(?:script|object|embed|option|style)/i,W=/checked\s*(?:[^=]|=\s*.checked.)/i,X={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&W.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?Y(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,ba)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!V.test(a[0])&&(d.support.checkClone||!W.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1></$2>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("<div>").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",cd(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cc("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(cc("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=cd(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(b$.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=b_.exec(e),j=f.cur();if(i){var k=parseFloat(i[2]),l=i[3]||(d.cssNumber[c]?"":"px");l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(ca),ca=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var ce=/^t(?:able|d|h)$/i,cf=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=cg(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!ce.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<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>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); 16 (function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bC.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bR,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bX(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bX(a,c,d,e,"*",g));return l}function bW(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bN),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bA(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bv:bw;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bg(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function W(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(R.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(x,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(H)return H.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:|^on/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i. 17 shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,N(a.origType,a.selector),f.extend({},a,{handler:M,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,N(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?E:D):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=E;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=E;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=E,this.stopPropagation()},isDefaultPrevented:D,isPropagationStopped:D,isImmediatePropagationStopped:D};var F=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},G=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?G:F,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?G:F)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&K("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&K("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var H,I=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var L={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||D,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=x.exec(h),k="",j&&(k=j[0],h=h.replace(x,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,L[h]?(a.push(L[h]+k),h=h+k):h=(L[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+N(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+N(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.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|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var O=/Until$/,P=/^(?:parents|prevUntil|prevAll)/,Q=/,/,R=/^.[^:#\[\.,]*$/,S=Array.prototype.slice,T=f.expr.match.POS,U={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(W(this,a,!1),"not",a)},filter:function(a){return this.pushStack(W(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=T.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/<tbody/i,ba=/<|&#?\w+;/,bb=/<(?:script|object|embed|option|style)/i,bc=/checked\s*(?:[^=]|=\s*.checked.)/i,bd=/\/(java|ecma)script/i,be=/^\s*<!(?:\[CDATA\[|\-\-)/,bf={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bc.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bg(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bm)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bb.test(a[0])&&(f.support.checkClone||!bc.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j 18 )}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1></$2>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bl(k[i]);else bl(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bd.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bn=/alpha\([^)]*\)/i,bo=/opacity=([^)]*)/,bp=/([A-Z]|^ms)/g,bq=/^-?\d+(?:px)?$/i,br=/^-?\d/,bs=/^[+\-]=/,bt=/[^+\-\.\de]+/g,bu={position:"absolute",visibility:"hidden",display:"block"},bv=["Left","Right"],bw=["Top","Bottom"],bx,by,bz;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bx(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bs.test(d)&&(d=+d.replace(bt,"")+parseFloat(f.css(a,c)),h="number"),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bx)return bx(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bA(a,b,d);f.swap(a,bu,function(){e=bA(a,b,d)});return e}},set:function(a,b){if(!bq.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cs(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cr("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cr("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cs(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cr("show",1),slideUp:cr("hide",1),slideToggle:cr("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cn||cp(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!cl&&(co?(cl=!0,g=function(){cl&&(co(g),e.tick())},co(g)):cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||cp(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var ct=/^t(?:able|d|h)$/i,cu=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cv(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!ct.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<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>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
Note: See TracChangeset
for help on using the changeset viewer.