Changeset 9172
- Timestamp:
- Feb 11, 2011, 4:57:04 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 155 added
- 82 deleted
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/admin/themes/default/template/admin.tpl
r9057 r9172 1 {combine_script id='jquery.ui' load='header' require='jquery' path='themes/default/js/ ui/packed/ui.core.packed.js' }2 {combine_script id='jquery.ui.accordion' load='header' require='jquery.ui' path='themes/default/js/ui/ packed/ui.accordion.packed.js' }1 {combine_script id='jquery.ui' load='header' require='jquery' path='themes/default/js/jquery.ui.min.js' } 2 {combine_script id='jquery.ui.accordion' load='header' require='jquery.ui' path='themes/default/js/ui/minified/jquery.ui.accordion.min.js' } 3 3 {footer_script require='jquery.ui.accordion'} 4 4 jQuery(document).ready(function(){ldelim} -
trunk/admin/themes/default/template/cat_list.tpl
r8727 r9172 1 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ ui/packed/ui.core.packed.js' }2 {combine_script id='jquery.ui.sortable' load='async' require='jquery.ui' path='themes/default/js/ui/ packed/ui.sortable.packed.js' }1 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/jquery.ui.min.js' } 2 {combine_script id='jquery.ui.sortable' load='async' require='jquery.ui' path='themes/default/js/ui/minified/jquery.ui.sortable.min.js' } 3 3 {footer_script require='jquery.ui.sortable'} 4 4 jQuery(document).ready(function(){ldelim} -
trunk/admin/themes/default/template/element_set_ranks.tpl
r9051 r9172 1 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ ui/packed/ui.core.packed.js' }2 {combine_script id='jquery.ui.sortable' load='async' require='jquery.ui' path='themes/default/js/ui/ packed/ui.sortable.packed.js' }1 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/jquery.ui.min.js' } 2 {combine_script id='jquery.ui.sortable' load='async' require='jquery.ui' path='themes/default/js/ui/minified/jquery.ui.sortable.min.js' } 3 3 {footer_script require='jquery.ui.sortable'}{literal} 4 4 jQuery(document).ready(function() { -
trunk/admin/themes/default/template/include/datepicker.inc.tpl
r8162 r9172 1 1 {combine_script id='jquery' load='footer' path='themes/default/js/jquery.min.js'} 2 {combine_script id='jquery.ui' load='footer' require='jquery' path='themes/default/js/ ui/packed/ui.core.packed.js'}3 {combine_script id='jquery.ui.datepicker' load='footer' require='jquery.ui' path='themes/default/js/ui/ packed/ui.datepicker.packed.js'}2 {combine_script id='jquery.ui' load='footer' require='jquery' path='themes/default/js/jquery.ui.min.js'} 3 {combine_script id='jquery.ui.datepicker' load='footer' require='jquery.ui' path='themes/default/js/ui/minified/jquery.ui.datepicker.min.js'} 4 4 {combine_script id='datepicker.js' load='footer' require='jquery.ui.datepicker' path='themes/default/js/datepicker.js'} 5 5 6 {assign var="datepicker_language" value="themes/default/js/ui/i18n/ ui.datepicker-`$lang_info.code`.js"}6 {assign var="datepicker_language" value="themes/default/js/ui/i18n/jquery.ui.datepicker-`$lang_info.code`.js"} 7 7 8 8 {if "PHPWG_ROOT_PATH"|@constant|@cat:$datepicker_language|@file_exists} … … 10 10 {/if} 11 11 12 {html_head} 13 <link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/default/js/ui/theme/ui.datepicker.css"> 14 {/html_head} 12 {combine_css path="themes/default/js/ui/theme/jquery.ui.datepicker.css"} 15 13 16 14 {footer_script} -
trunk/admin/themes/default/template/include/dbselect.inc.tpl
r8162 r9172 1 1 {combine_script id='jquery' load='async' path='themes/default/js/jquery.min.js'} 2 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ ui/packed/ui.core.packed.js' }3 {combine_script id='jquery.ui.resizable' load='async' require='jquery.ui' path='themes/default/js/ui/ packed/ui.resizable.packed.js' }2 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/jquery.ui.min.js' } 3 {combine_script id='jquery.ui.resizable' load='async' require='jquery.ui' path='themes/default/js/ui/minified/jquery.ui.resizable.min.js' } 4 4 {footer_script require='jquery.ui.resizable'}{literal} 5 5 jQuery(document).ready(function(){ -
trunk/admin/themes/default/template/include/resize.inc.tpl
r8162 r9172 1 1 {combine_script id='jquery' load='async' path='themes/default/js/jquery.min.js'} 2 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ ui/packed/ui.core.packed.js'}3 {combine_script id='jquery.ui.resizable' load='async' require='jquery.ui' path='themes/default/js/ui/ packed/ui.resizable.packed.js'}2 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/jquery.ui.min.js'} 3 {combine_script id='jquery.ui.resizable' load='async' require='jquery.ui' path='themes/default/js/ui/minified/jquery.ui.resizable.min.js'} 4 4 5 5 {* Resize possible *} -
trunk/admin/themes/default/template/menubar.tpl
r8128 r9172 1 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ ui/packed/ui.core.packed.js' }2 {combine_script id='jquery.ui.sortable' load='async' require='jquery.ui' path='themes/default/js/ui/ packed/ui.sortable.packed.js' }1 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/jquery.ui.min.js' } 2 {combine_script id='jquery.ui.sortable' load='async' require='jquery.ui' path='themes/default/js/ui/minified/jquery.ui.sortable.min.js' } 3 3 {footer_script require='jquery.ui.sortable'} 4 4 jQuery(document).ready(function(){ldelim} -
trunk/admin/themes/default/template/plugins_new.tpl
r7995 r9172 1 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ ui/packed/ui.core.packed.js' }2 {combine_script id='jquery.ui.effects' load='async' require='jquery.ui' path='themes/default/js/ui/ packed/effects.core.packed.js' }3 {combine_script id='jquery.ui.effects.blind' load='async' require='jquery.ui.effects' path='themes/default/js/ui/ packed/effects.blind.packed.js' }1 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/jquery.ui.min.js' } 2 {combine_script id='jquery.ui.effects' load='async' require='jquery.ui' path='themes/default/js/ui/minified/jquery.effects.core.min.js' } 3 {combine_script id='jquery.ui.effects.blind' load='async' require='jquery.ui.effects' path='themes/default/js/ui/minified/jquery.effects.blind.min.js' } 4 4 5 5 {footer_script require='jquery.ui.effects.blind'} -
trunk/include/template.class.php
r8728 r9172 903 903 'core.scripts' => 'themes/default/js/scripts.js', 904 904 'jquery' => 'themes/default/js/jquery.min.js', 905 'jquery.ui' => 'themes/default/js/ ui/packed/ui.core.packed.js'905 'jquery.ui' => 'themes/default/js/jquery.ui.min.js' 906 906 ); 907 907 -
trunk/themes/default/js/jquery.js
r8162 r9172 1 1 /*! 2 * jQuery JavaScript Library v1. 4.42 * jQuery JavaScript Library v1.5 3 3 * http://jquery.com/ 4 4 * 5 * Copyright 201 0, John Resig5 * Copyright 2011, John Resig 6 6 * Dual licensed under the MIT or GPL Version 2 licenses. 7 7 * http://jquery.org/license … … 9 9 * Includes Sizzle.js 10 10 * http://sizzlejs.com/ 11 * Copyright 201 0, The Dojo Foundation11 * Copyright 2011, The Dojo Foundation 12 12 * Released under the MIT, BSD, and GPL Licenses. 13 13 * 14 * Date: Thu Nov 11 19:04:53 2010-050014 * Date: Mon Jan 31 08:31:29 2011 -0500 15 15 */ 16 16 (function( window, undefined ) { … … 23 23 var jQuery = function( selector, context ) { 24 24 // The jQuery object is actually just the init constructor 'enhanced' 25 return new jQuery.fn.init( selector, context );25 return new jQuery.fn.init( selector, context, rootjQuery ); 26 26 }, 27 27 … … 39 39 quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/, 40 40 41 // Is it a simple selector42 isSimple = /^.[^:#\[\.,]*$/,43 44 41 // Check if a string has a non-whitespace character in it 45 42 rnotwhite = /\S/, 46 rwhite = /\s/,47 43 48 44 // Used for trimming whitespace 49 45 trimLeft = /^\s+/, 50 46 trimRight = /\s+$/, 51 52 // Check for non-word characters53 rnonword = /\W/,54 47 55 48 // Check for digits … … 76 69 // For matching the engine and version of the browser 77 70 browserMatch, 78 71 79 72 // Has the ready events already been bound? 80 73 readyBound = false, 81 82 // The functions to execute on DOM ready 83 readyList = [], 74 75 // The deferred used on DOM ready 76 readyList, 77 78 // Promise methods 79 promiseMethods = "then done fail isResolved isRejected promise".split( " " ), 84 80 85 81 // The ready event handler … … 93 89 trim = String.prototype.trim, 94 90 indexOf = Array.prototype.indexOf, 95 91 96 92 // [[Class]] -> type pairs 97 93 class2type = {}; 98 94 99 95 jQuery.fn = jQuery.prototype = { 100 init: function( selector, context ) { 96 constructor: jQuery, 97 init: function( selector, context, rootjQuery ) { 101 98 var match, elem, ret, doc; 102 99 … … 112 109 return this; 113 110 } 114 111 115 112 // The body element only exists once, optimize finding it 116 113 if ( selector === "body" && !context && document.body ) { … … 132 129 // HANDLE: $(html) -> $(array) 133 130 if ( match[1] ) { 131 context = context instanceof jQuery ? context[0] : context; 134 132 doc = (context ? context.ownerDocument || context : document); 135 133 … … 149 147 } else { 150 148 ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); 151 selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes;152 } 153 149 selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes; 150 } 151 154 152 return jQuery.merge( this, selector ); 155 153 156 154 // HANDLE: $("#id") 157 155 } else { … … 177 175 } 178 176 179 // HANDLE: $("TAG")180 } else if ( !context && !rnonword.test( selector ) ) {181 this.selector = selector;182 this.context = document;183 selector = document.getElementsByTagName( selector );184 return jQuery.merge( this, selector );185 186 177 // HANDLE: $(expr, $(...)) 187 178 } else if ( !context || context.jquery ) { … … 191 182 // (which is just equivalent to: $(context).find(expr) 192 183 } else { 193 return jQuery( context ).find( selector );184 return this.constructor( context ).find( selector ); 194 185 } 195 186 … … 212 203 213 204 // The current version of jQuery being used 214 jquery: "1. 4.4",205 jquery: "1.5", 215 206 216 207 // The default length of a jQuery object is 0 … … 235 226 236 227 // Return just the object 237 ( num < 0 ? this .slice(num)[ 0] : this[ num ] );228 ( num < 0 ? this[ this.length + num ] : this[ num ] ); 238 229 }, 239 230 … … 242 233 pushStack: function( elems, name, selector ) { 243 234 // Build a new jQuery matched element set 244 var ret = jQuery();235 var ret = this.constructor(); 245 236 246 237 if ( jQuery.isArray( elems ) ) { 247 238 push.apply( ret, elems ); 248 239 249 240 } else { 250 241 jQuery.merge( ret, elems ); … … 272 263 return jQuery.each( this, callback, args ); 273 264 }, 274 265 275 266 ready: function( fn ) { 276 267 // Attach the listeners 277 268 jQuery.bindReady(); 278 269 279 // If the DOM is already ready 280 if ( jQuery.isReady ) { 281 // Execute the function immediately 282 fn.call( document, jQuery ); 283 284 // Otherwise, remember the function for later 285 } else if ( readyList ) { 286 // Add the function to the wait list 287 readyList.push( fn ); 288 } 270 // Add the callback 271 readyList.done( fn ); 289 272 290 273 return this; 291 274 }, 292 275 293 276 eq: function( i ) { 294 277 return i === -1 ? … … 315 298 })); 316 299 }, 317 300 318 301 end: function() { 319 return this.prevObject || jQuery(null);302 return this.prevObject || this.constructor(null); 320 303 }, 321 304 … … 404 387 return jQuery; 405 388 }, 406 389 407 390 // Is the DOM ready to be used? Set to true once it occurs. 408 391 isReady: false, … … 411 394 // the ready event fires. See #6781 412 395 readyWait: 1, 413 396 414 397 // Handle when the DOM is ready 415 398 ready: function( wait ) { … … 435 418 436 419 // If there are functions bound, to execute 437 if ( readyList ) { 438 // Execute all of them 439 var fn, 440 i = 0, 441 ready = readyList; 442 443 // Reset the list of functions 444 readyList = null; 445 446 while ( (fn = ready[ i++ ]) ) { 447 fn.call( document, jQuery ); 448 } 449 450 // Trigger any bound ready events 451 if ( jQuery.fn.trigger ) { 452 jQuery( document ).trigger( "ready" ).unbind( "ready" ); 453 } 454 } 455 } 456 }, 457 420 readyList.resolveWith( document, [ jQuery ] ); 421 422 // Trigger any bound ready events 423 if ( jQuery.fn.trigger ) { 424 jQuery( document ).trigger( "ready" ).unbind( "ready" ); 425 } 426 } 427 }, 428 458 429 bindReady: function() { 459 430 if ( readyBound ) { … … 474 445 // Use the handy event callback 475 446 document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); 476 447 477 448 // A fallback to window.onload, that will always work 478 449 window.addEventListener( "load", jQuery.ready, false ); … … 483 454 // maybe late but safe also for iframes 484 455 document.attachEvent("onreadystatechange", DOMContentLoaded); 485 456 486 457 // A fallback to window.onload, that will always work 487 458 window.attachEvent( "onload", jQuery.ready ); … … 534 505 return false; 535 506 } 536 507 537 508 // Not own constructor property must be Object 538 509 if ( obj.constructor && … … 541 512 return false; 542 513 } 543 514 544 515 // Own properties are enumerated firstly, so to speed up, 545 516 // if last one is own, then all properties are own. 546 517 547 518 var key; 548 519 for ( key in obj ) {} 549 520 550 521 return key === undefined || hasOwn.call( obj, key ); 551 522 }, … … 557 528 return true; 558 529 }, 559 530 560 531 error: function( msg ) { 561 532 throw msg; 562 533 }, 563 534 564 535 parseJSON: function( data ) { 565 536 if ( typeof data !== "string" || !data ) { … … 569 540 // Make sure leading/trailing whitespace is removed (IE can't handle it) 570 541 data = jQuery.trim( data ); 571 542 572 543 // Make sure the incoming data is actual JSON 573 544 // Logic borrowed from http://json.org/json2.js … … 584 555 jQuery.error( "Invalid JSON: " + data ); 585 556 } 557 }, 558 559 // Cross-browser xml parsing 560 // (xml & tmp used internally) 561 parseXML: function( data , xml , tmp ) { 562 563 if ( window.DOMParser ) { // Standard 564 tmp = new DOMParser(); 565 xml = tmp.parseFromString( data , "text/xml" ); 566 } else { // IE 567 xml = new ActiveXObject( "Microsoft.XMLDOM" ); 568 xml.async = "false"; 569 xml.loadXML( data ); 570 } 571 572 tmp = xml.documentElement; 573 574 if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { 575 jQuery.error( "Invalid XML: " + data ); 576 } 577 578 return xml; 586 579 }, 587 580 … … 598 591 script.type = "text/javascript"; 599 592 600 if ( jQuery.support.scriptEval ) {593 if ( jQuery.support.scriptEval() ) { 601 594 script.appendChild( document.createTextNode( data ) ); 602 595 } else { … … 711 704 first[ i++ ] = second[ j ]; 712 705 } 713 706 714 707 } else { 715 708 while ( second[j] !== undefined ) { … … 753 746 } 754 747 748 // Flatten any nested arrays 755 749 return ret.concat.apply( [], ret ); 756 750 }, … … 791 785 access: function( elems, key, value, exec, fn, pass ) { 792 786 var length = elems.length; 793 787 794 788 // Setting many attributes 795 789 if ( typeof key === "object" ) { … … 799 793 return elems; 800 794 } 801 795 802 796 // Setting one attribute 803 797 if ( value !== undefined ) { 804 798 // Optionally, function values get executed if exec is true 805 799 exec = !pass && exec && jQuery.isFunction(value); 806 800 807 801 for ( var i = 0; i < length; i++ ) { 808 802 fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); 809 803 } 810 804 811 805 return elems; 812 806 } 813 807 814 808 // Getting an attribute 815 809 return length ? fn( elems[0], key ) : undefined; … … 818 812 now: function() { 819 813 return (new Date()).getTime(); 814 }, 815 816 // Create a simple deferred (one callbacks list) 817 _Deferred: function() { 818 var // callbacks list 819 callbacks = [], 820 // stored [ context , args ] 821 fired, 822 // to avoid firing when already doing so 823 firing, 824 // flag to know if the deferred has been cancelled 825 cancelled, 826 // the deferred itself 827 deferred = { 828 829 // done( f1, f2, ...) 830 done: function() { 831 if ( !cancelled ) { 832 var args = arguments, 833 i, 834 length, 835 elem, 836 type, 837 _fired; 838 if ( fired ) { 839 _fired = fired; 840 fired = 0; 841 } 842 for ( i = 0, length = args.length; i < length; i++ ) { 843 elem = args[ i ]; 844 type = jQuery.type( elem ); 845 if ( type === "array" ) { 846 deferred.done.apply( deferred, elem ); 847 } else if ( type === "function" ) { 848 callbacks.push( elem ); 849 } 850 } 851 if ( _fired ) { 852 deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); 853 } 854 } 855 return this; 856 }, 857 858 // resolve with given context and args 859 resolveWith: function( context, args ) { 860 if ( !cancelled && !fired && !firing ) { 861 firing = 1; 862 try { 863 while( callbacks[ 0 ] ) { 864 callbacks.shift().apply( context, args ); 865 } 866 } 867 finally { 868 fired = [ context, args ]; 869 firing = 0; 870 } 871 } 872 return this; 873 }, 874 875 // resolve with this as context and given arguments 876 resolve: function() { 877 deferred.resolveWith( jQuery.isFunction( this.promise ) ? this.promise() : this, arguments ); 878 return this; 879 }, 880 881 // Has this deferred been resolved? 882 isResolved: function() { 883 return !!( firing || fired ); 884 }, 885 886 // Cancel 887 cancel: function() { 888 cancelled = 1; 889 callbacks = []; 890 return this; 891 } 892 }; 893 894 return deferred; 895 }, 896 897 // Full fledged deferred (two callbacks list) 898 Deferred: function( func ) { 899 var deferred = jQuery._Deferred(), 900 failDeferred = jQuery._Deferred(), 901 promise; 902 // Add errorDeferred methods, then and promise 903 jQuery.extend( deferred, { 904 then: function( doneCallbacks, failCallbacks ) { 905 deferred.done( doneCallbacks ).fail( failCallbacks ); 906 return this; 907 }, 908 fail: failDeferred.done, 909 rejectWith: failDeferred.resolveWith, 910 reject: failDeferred.resolve, 911 isRejected: failDeferred.isResolved, 912 // Get a promise for this deferred 913 // If obj is provided, the promise aspect is added to the object 914 promise: function( obj , i /* internal */ ) { 915 if ( obj == null ) { 916 if ( promise ) { 917 return promise; 918 } 919 promise = obj = {}; 920 } 921 i = promiseMethods.length; 922 while( i-- ) { 923 obj[ promiseMethods[ i ] ] = deferred[ promiseMethods[ i ] ]; 924 } 925 return obj; 926 } 927 } ); 928 // Make sure only one callback list will be used 929 deferred.then( failDeferred.cancel, deferred.cancel ); 930 // Unexpose cancel 931 delete deferred.cancel; 932 // Call given func if any 933 if ( func ) { 934 func.call( deferred, deferred ); 935 } 936 return deferred; 937 }, 938 939 // Deferred helper 940 when: function( object ) { 941 var args = arguments, 942 length = args.length, 943 deferred = length <= 1 && object && jQuery.isFunction( object.promise ) ? 944 object : 945 jQuery.Deferred(), 946 promise = deferred.promise(), 947 resolveArray; 948 949 if ( length > 1 ) { 950 resolveArray = new Array( length ); 951 jQuery.each( args, function( index, element ) { 952 jQuery.when( element ).then( function( value ) { 953 resolveArray[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value; 954 if( ! --length ) { 955 deferred.resolveWith( promise, resolveArray ); 956 } 957 }, deferred.reject ); 958 } ); 959 } else if ( deferred !== object ) { 960 deferred.resolve( object ); 961 } 962 return promise; 820 963 }, 821 964 … … 834 977 }, 835 978 979 sub: function() { 980 function jQuerySubclass( selector, context ) { 981 return new jQuerySubclass.fn.init( selector, context ); 982 } 983 jQuery.extend( true, jQuerySubclass, this ); 984 jQuerySubclass.superclass = this; 985 jQuerySubclass.fn = jQuerySubclass.prototype = this(); 986 jQuerySubclass.fn.constructor = jQuerySubclass; 987 jQuerySubclass.subclass = this.subclass; 988 jQuerySubclass.fn.init = function init( selector, context ) { 989 if ( context && context instanceof jQuery && !(context instanceof jQuerySubclass) ) { 990 context = jQuerySubclass(context); 991 } 992 993 return jQuery.fn.init.call( this, selector, context, rootjQuerySubclass ); 994 }; 995 jQuerySubclass.fn.init.prototype = jQuerySubclass.fn; 996 var rootjQuerySubclass = jQuerySubclass(document); 997 return jQuerySubclass; 998 }, 999 836 1000 browser: {} 837 1001 }); 1002 1003 // Create readyList deferred 1004 readyList = jQuery._Deferred(); 838 1005 839 1006 // Populate the class2type map … … 859 1026 } 860 1027 861 // Verify that \s matches non-breaking spaces 862 // (IE fails on this test) 863 if ( !rwhite.test( "\xA0" ) ) { 1028 // IE doesn't match non-breaking spaces with \s 1029 if ( rnotwhite.test( "\xA0" ) ) { 864 1030 trimLeft = /^[\s\xA0]+/; 865 1031 trimRight = /[\s\xA0]+$/; … … 915 1081 jQuery.support = {}; 916 1082 917 var root = document.documentElement, 918 script = document.createElement("script"), 919 div = document.createElement("div"), 920 id = "script" + jQuery.now(); 1083 var div = document.createElement("div"); 921 1084 922 1085 div.style.display = "none"; … … 975 1138 optDisabled: false, 976 1139 checkClone: false, 977 scriptEval: false,1140 _scriptEval: null, 978 1141 noCloneEvent: true, 979 1142 boxModel: null, … … 988 1151 jQuery.support.optDisabled = !opt.disabled; 989 1152 990 script.type = "text/javascript"; 991 try { 992 script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); 993 } catch(e) {} 994 995 root.insertBefore( script, root.firstChild ); 996 997 // Make sure that the execution of code works by injecting a script 998 // tag with appendChild/createTextNode 999 // (IE doesn't support this, fails, and uses .text instead) 1000 if ( window[ id ] ) { 1001 jQuery.support.scriptEval = true; 1002 delete window[ id ]; 1003 } 1153 jQuery.support.scriptEval = function() { 1154 if ( jQuery.support._scriptEval === null ) { 1155 var root = document.documentElement, 1156 script = document.createElement("script"), 1157 id = "script" + jQuery.now(); 1158 1159 script.type = "text/javascript"; 1160 try { 1161 script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); 1162 } catch(e) {} 1163 1164 root.insertBefore( script, root.firstChild ); 1165 1166 // Make sure that the execution of code works by injecting a script 1167 // tag with appendChild/createTextNode 1168 // (IE doesn't support this, fails, and uses .text instead) 1169 if ( window[ id ] ) { 1170 jQuery.support._scriptEval = true; 1171 delete window[ id ]; 1172 } else { 1173 jQuery.support._scriptEval = false; 1174 } 1175 1176 root.removeChild( script ); 1177 // release memory in IE 1178 root = script = id = null; 1179 } 1180 1181 return jQuery.support._scriptEval; 1182 }; 1004 1183 1005 1184 // Test to see if it's possible to delete an expando from an element 1006 1185 // Fails in Internet Explorer 1007 1186 try { 1008 delete script.test;1187 delete div.test; 1009 1188 1010 1189 } catch(e) { 1011 1190 jQuery.support.deleteExpando = false; 1012 1191 } 1013 1014 root.removeChild( script );1015 1192 1016 1193 if ( div.attachEvent && div.fireEvent ) { … … 1036 1213 // document.body must exist before we can do this 1037 1214 jQuery(function() { 1038 var div = document.createElement("div"); 1215 var div = document.createElement("div"), 1216 body = document.getElementsByTagName("body")[0]; 1217 1218 // Frameset documents with no body should not run this code 1219 if ( !body ) { 1220 return; 1221 } 1222 1039 1223 div.style.width = div.style.paddingLeft = "1px"; 1040 1041 document.body.appendChild( div ); 1224 body.appendChild( div ); 1042 1225 jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; 1043 1226 … … 1058 1241 } 1059 1242 1060 div.innerHTML = "<table><tr><td style='padding:0; display:none'></td><td>t</td></tr></table>";1243 div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>"; 1061 1244 var tds = div.getElementsByTagName("td"); 1062 1245 … … 1078 1261 div.innerHTML = ""; 1079 1262 1080 document.body.removeChild( div ).style.display = "none";1263 body.removeChild( div ).style.display = "none"; 1081 1264 div = tds = null; 1082 1265 }); … … 1088 1271 eventName = "on" + eventName; 1089 1272 1273 // We only care about the case where non-standard event systems 1274 // are used, namely in IE. Short-circuiting here helps us to 1275 // avoid an eval call (in setAttribute) which can cause CSP 1276 // to go haywire. See: https://developer.mozilla.org/en/Security/CSP 1277 if ( !el.attachEvent ) { 1278 return true; 1279 } 1280 1090 1281 var isSupported = (eventName in el); 1091 1282 if ( !isSupported ) { … … 1102 1293 1103 1294 // release memory in IE 1104 root = script =div = all = a = null;1295 div = all = a = null; 1105 1296 })(); 1106 1297 1107 1298 1108 1299 1109 var windowData = {}, 1110 rbrace = /^(?:\{.*\}|\[.*\])$/; 1300 var rbrace = /^(?:\{.*\}|\[.*\])$/; 1111 1301 1112 1302 jQuery.extend({ … … 1116 1306 uuid: 0, 1117 1307 1118 // Unique for each copy of jQuery on the page 1119 expando: "jQuery" + jQuery.now(), 1308 // Unique for each copy of jQuery on the page 1309 // Non-digits removed to match rinlinejQuery 1310 expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), 1120 1311 1121 1312 // The following elements throw uncatchable exceptions if you … … 1128 1319 }, 1129 1320 1130 data: function( elem, name, data ) { 1321 hasData: function( elem ) { 1322 elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; 1323 1324 return !!elem && !jQuery.isEmptyObject(elem); 1325 }, 1326 1327 data: function( elem, name, data, pvt /* Internal Use Only */ ) { 1131 1328 if ( !jQuery.acceptData( elem ) ) { 1132 1329 return; 1133 1330 } 1134 1331 1135 elem = elem == window ? 1136 windowData : 1137 elem; 1138 1139 var isNode = elem.nodeType, 1140 id = isNode ? elem[ jQuery.expando ] : null, 1141 cache = jQuery.cache, thisCache; 1142 1143 if ( isNode && !id && typeof name === "string" && data === undefined ) { 1332 var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache, 1333 1334 // We have to handle DOM nodes and JS objects differently because IE6-7 1335 // can't GC object references properly across the DOM-JS boundary 1336 isNode = elem.nodeType, 1337 1338 // Only DOM nodes need the global jQuery cache; JS object data is 1339 // attached directly to the object so GC can occur automatically 1340 cache = isNode ? jQuery.cache : elem, 1341 1342 // Only defining an ID for JS objects if its cache already exists allows 1343 // the code to shortcut on the same path as a DOM node with no cache 1344 id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando; 1345 1346 // Avoid doing any more work than we need to when trying to get data on an 1347 // object that has no data at all 1348 if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) { 1144 1349 return; 1145 1350 } 1146 1351 1147 // Get the data from the object directly 1148 if ( !isNode ) { 1149 cache = elem; 1150 1151 // Compute a unique ID for the element 1152 } else if ( !id ) { 1153 elem[ jQuery.expando ] = id = ++jQuery.uuid; 1154 } 1155 1156 // Avoid generating a new cache unless none exists and we 1157 // want to manipulate it. 1352 if ( !id ) { 1353 // Only DOM nodes need a new unique ID for each element since their data 1354 // ends up in the global cache 1355 if ( isNode ) { 1356 elem[ jQuery.expando ] = id = ++jQuery.uuid; 1357 } else { 1358 id = jQuery.expando; 1359 } 1360 } 1361 1362 if ( !cache[ id ] ) { 1363 cache[ id ] = {}; 1364 } 1365 1366 // An object can be passed to jQuery.data instead of a key/value pair; this gets 1367 // shallow copied over onto the existing cache 1158 1368 if ( typeof name === "object" ) { 1159 if ( isNode ) { 1369 if ( pvt ) { 1370 cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name); 1371 } else { 1160 1372 cache[ id ] = jQuery.extend(cache[ id ], name); 1161 1162 } else { 1163 jQuery.extend( cache, name ); 1164 } 1165 1166 } else if ( isNode && !cache[ id ] ) { 1167 cache[ id ] = {}; 1168 } 1169 1170 thisCache = isNode ? cache[ id ] : cache; 1171 1172 // Prevent overriding the named cache with undefined values 1373 } 1374 } 1375 1376 thisCache = cache[ id ]; 1377 1378 // Internal jQuery data is stored in a separate object inside the object's data 1379 // cache in order to avoid key collisions between internal data and user-defined 1380 // data 1381 if ( pvt ) { 1382 if ( !thisCache[ internalKey ] ) { 1383 thisCache[ internalKey ] = {}; 1384 } 1385 1386 thisCache = thisCache[ internalKey ]; 1387 } 1388 1173 1389 if ( data !== undefined ) { 1174 1390 thisCache[ name ] = data; 1175 1391 } 1176 1392 1177 return typeof name === "string" ? thisCache[ name ] : thisCache; 1178 }, 1179 1180 removeData: function( elem, name ) { 1393 // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should 1394 // not attempt to inspect the internal events object using jQuery.data, as this 1395 // internal data object is undocumented and subject to change. 1396 if ( name === "events" && !thisCache[name] ) { 1397 return thisCache[ internalKey ] && thisCache[ internalKey ].events; 1398 } 1399 1400 return getByName ? thisCache[ name ] : thisCache; 1401 }, 1402 1403 removeData: function( elem, name, pvt /* Internal Use Only */ ) { 1181 1404 if ( !jQuery.acceptData( elem ) ) { 1182 1405 return; 1183 1406 } 1184 1407 1185 elem = elem == window ? 1186 windowData : 1187 elem; 1188 1189 var isNode = elem.nodeType, 1190 id = isNode ? elem[ jQuery.expando ] : elem, 1191 cache = jQuery.cache, 1192 thisCache = isNode ? cache[ id ] : id; 1193 1194 // If we want to remove a specific section of the element's data 1408 var internalKey = jQuery.expando, isNode = elem.nodeType, 1409 1410 // See jQuery.data for more information 1411 cache = isNode ? jQuery.cache : elem, 1412 1413 // See jQuery.data for more information 1414 id = isNode ? elem[ jQuery.expando ] : jQuery.expando; 1415 1416 // If there is already no cache entry for this object, there is no 1417 // purpose in continuing 1418 if ( !cache[ id ] ) { 1419 return; 1420 } 1421 1195 1422 if ( name ) { 1423 var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; 1424 1196 1425 if ( thisCache ) { 1197 // Remove the section of cache data1198 1426 delete thisCache[ name ]; 1199 1427 1200 // If we've removed all the data, remove the element's cache 1201 if ( isNode && jQuery.isEmptyObject(thisCache) ) { 1202 jQuery.removeData( elem ); 1203 } 1204 } 1205 1206 // Otherwise, we want to remove all of the element's data 1428 // If there is no data left in the cache, we want to continue 1429 // and let the cache object itself get destroyed 1430 if ( !jQuery.isEmptyObject(thisCache) ) { 1431 return; 1432 } 1433 } 1434 } 1435 1436 // See jQuery.data for more information 1437 if ( pvt ) { 1438 delete cache[ id ][ internalKey ]; 1439 1440 // Don't destroy the parent cache unless the internal data object 1441 // had been the only thing left in it 1442 if ( !jQuery.isEmptyObject(cache[ id ]) ) { 1443 return; 1444 } 1445 } 1446 1447 var internalCache = cache[ id ][ internalKey ]; 1448 1449 // Browsers that fail expando deletion also refuse to delete expandos on 1450 // the window, but it will allow it on all other JS objects; other browsers 1451 // don't care 1452 if ( jQuery.support.deleteExpando || cache != window ) { 1453 delete cache[ id ]; 1207 1454 } else { 1208 if ( isNode && jQuery.support.deleteExpando ) { 1455 cache[ id ] = null; 1456 } 1457 1458 // We destroyed the entire user cache at once because it's faster than 1459 // iterating through each key, but we need to continue to persist internal 1460 // data if it existed 1461 if ( internalCache ) { 1462 cache[ id ] = {}; 1463 cache[ id ][ internalKey ] = internalCache; 1464 1465 // Otherwise, we need to eliminate the expando on the node to avoid 1466 // false lookups in the cache for entries that no longer exist 1467 } else if ( isNode ) { 1468 // IE does not allow us to delete expando properties from nodes, 1469 // nor does it have a removeAttribute function on Document nodes; 1470 // we must handle all of these cases 1471 if ( jQuery.support.deleteExpando ) { 1209 1472 delete elem[ jQuery.expando ]; 1210 1211 1473 } else if ( elem.removeAttribute ) { 1212 1474 elem.removeAttribute( jQuery.expando ); 1213 1214 // Completely remove the data cache1215 } else if ( isNode ) {1216 delete cache[ id ];1217 1218 // Remove all fields from the object1219 1475 } else { 1220 for ( var n in elem ) { 1221 delete elem[ n ]; 1222 } 1223 } 1224 } 1476 elem[ jQuery.expando ] = null; 1477 } 1478 } 1479 }, 1480 1481 // For internal use only. 1482 _data: function( elem, name, data ) { 1483 return jQuery.data( elem, name, data, true ); 1225 1484 }, 1226 1485 … … 1245 1504 if ( typeof key === "undefined" ) { 1246 1505 if ( this.length ) { 1247 var attr = this[0].attributes, name;1248 1506 data = jQuery.data( this[0] ); 1249 1507 1250 for ( var i = 0, l = attr.length; i < l; i++ ) { 1251 name = attr[i].name; 1252 1253 if ( name.indexOf( "data-" ) === 0 ) { 1254 name = name.substr( 5 ); 1255 dataAttr( this[0], name, data[ name ] ); 1508 if ( this[0].nodeType === 1 ) { 1509 var attr = this[0].attributes, name; 1510 for ( var i = 0, l = attr.length; i < l; i++ ) { 1511 name = attr[i].name; 1512 1513 if ( name.indexOf( "data-" ) === 0 ) { 1514 name = name.substr( 5 ); 1515 dataAttr( this[0], name, data[ name ] ); 1516 } 1256 1517 } 1257 1518 } … … 1338 1599 1339 1600 type = (type || "fx") + "queue"; 1340 var q = jQuery. data( elem, type );1601 var q = jQuery._data( elem, type ); 1341 1602 1342 1603 // Speed up dequeue by getting out quickly if this is just a lookup … … 1346 1607 1347 1608 if ( !q || jQuery.isArray(data) ) { 1348 q = jQuery. data( elem, type, jQuery.makeArray(data) );1609 q = jQuery._data( elem, type, jQuery.makeArray(data) ); 1349 1610 1350 1611 } else { … … 1376 1637 jQuery.dequeue(elem, type); 1377 1638 }); 1639 } 1640 1641 if ( !queue.length ) { 1642 jQuery.removeData( elem, type + "queue", true ); 1378 1643 } 1379 1644 } … … 1426 1691 1427 1692 1428 var rclass = /[\n\t ]/g,1693 var rclass = /[\n\t\r]/g, 1429 1694 rspaces = /\s+/, 1430 1695 rreturn = /\r/g, … … 1559 1824 if ( this.className ) { 1560 1825 // store className if set 1561 jQuery. data( this, "__className__", this.className );1826 jQuery._data( this, "__className__", this.className ); 1562 1827 } 1563 1828 1564 1829 // toggle whole className 1565 this.className = this.className || value === false ? "" : jQuery. data( this, "__className__" ) || "";1830 this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; 1566 1831 } 1567 1832 }); … … 1608 1873 1609 1874 // Don't return options that are disabled or in a disabled optgroup 1610 if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && 1875 if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && 1611 1876 (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { 1612 1877 … … 1631 1896 return elem.getAttribute("value") === null ? "on" : elem.value; 1632 1897 } 1633 1634 1898 1635 1899 // Everything else, we just grab the value … … 1697 1961 offset: true 1698 1962 }, 1699 1963 1700 1964 attr: function( elem, name, value, pass ) { 1701 // don't set attributes on text and commentnodes1702 if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {1965 // don't get/set attributes on text, comment and attribute nodes 1966 if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || elem.nodeType === 2 ) { 1703 1967 return undefined; 1704 1968 } … … 1715 1979 name = notxml && jQuery.props[ name ] || name; 1716 1980 1717 // These attributes require special treatment 1718 var special = rspecialurl.test( name ); 1719 1720 // Safari mis-reports the default selected property of an option 1721 // Accessing the parent's selectedIndex property fixes it 1722 if ( name === "selected" && !jQuery.support.optSelected ) { 1723 var parent = elem.parentNode; 1724 if ( parent ) { 1725 parent.selectedIndex; 1726 1727 // Make sure that it also works with optgroups, see #5701 1728 if ( parent.parentNode ) { 1729 parent.parentNode.selectedIndex; 1730 } 1731 } 1732 } 1733 1734 // If applicable, access the attribute via the DOM 0 way 1735 // 'in' checks fail in Blackberry 4.7 #6931 1736 if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) { 1981 // Only do all the following if this is a node (faster for style) 1982 if ( elem.nodeType === 1 ) { 1983 // These attributes require special treatment 1984 var special = rspecialurl.test( name ); 1985 1986 // Safari mis-reports the default selected property of an option 1987 // Accessing the parent's selectedIndex property fixes it 1988 if ( name === "selected" && !jQuery.support.optSelected ) { 1989 var parent = elem.parentNode; 1990 if ( parent ) { 1991 parent.selectedIndex; 1992 1993 // Make sure that it also works with optgroups, see #5701 1994 if ( parent.parentNode ) { 1995 parent.parentNode.selectedIndex; 1996 } 1997 } 1998 } 1999 2000 // If applicable, access the attribute via the DOM 0 way 2001 // 'in' checks fail in Blackberry 4.7 #6931 2002 if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) { 2003 if ( set ) { 2004 // We can't allow the type property to be changed (since it causes problems in IE) 2005 if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { 2006 jQuery.error( "type property can't be changed" ); 2007 } 2008 2009 if ( value === null ) { 2010 if ( elem.nodeType === 1 ) { 2011 elem.removeAttribute( name ); 2012 } 2013 2014 } else { 2015 elem[ name ] = value; 2016 } 2017 } 2018 2019 // browsers index elements by id/name on forms, give priority to attributes. 2020 if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { 2021 return elem.getAttributeNode( name ).nodeValue; 2022 } 2023 2024 // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set 2025 // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ 2026 if ( name === "tabIndex" ) { 2027 var attributeNode = elem.getAttributeNode( "tabIndex" ); 2028 2029 return attributeNode && attributeNode.specified ? 2030 attributeNode.value : 2031 rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? 2032 0 : 2033 undefined; 2034 } 2035 2036 return elem[ name ]; 2037 } 2038 2039 if ( !jQuery.support.style && notxml && name === "style" ) { 2040 if ( set ) { 2041 elem.style.cssText = "" + value; 2042 } 2043 2044 return elem.style.cssText; 2045 } 2046 1737 2047 if ( set ) { 1738 // We can't allow the type property to be changed (since it causes problems in IE) 1739 if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { 1740 jQuery.error( "type property can't be changed" ); 1741 } 1742 1743 if ( value === null ) { 1744 if ( elem.nodeType === 1 ) { 1745 elem.removeAttribute( name ); 1746 } 1747 1748 } else { 1749 elem[ name ] = value; 1750 } 1751 } 1752 1753 // browsers index elements by id/name on forms, give priority to attributes. 1754 if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { 1755 return elem.getAttributeNode( name ).nodeValue; 1756 } 1757 1758 // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set 1759 // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ 1760 if ( name === "tabIndex" ) { 1761 var attributeNode = elem.getAttributeNode( "tabIndex" ); 1762 1763 return attributeNode && attributeNode.specified ? 1764 attributeNode.value : 1765 rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? 1766 0 : 1767 undefined; 1768 } 1769 1770 return elem[ name ]; 1771 } 1772 1773 if ( !jQuery.support.style && notxml && name === "style" ) { 1774 if ( set ) { 1775 elem.style.cssText = "" + value; 1776 } 1777 1778 return elem.style.cssText; 1779 } 1780 2048 // convert the value to a string (all browsers do this but IE) see #1070 2049 elem.setAttribute( name, "" + value ); 2050 } 2051 2052 // Ensure that missing attributes return undefined 2053 // Blackberry 4.7 returns "" from getAttribute #6938 2054 if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) { 2055 return undefined; 2056 } 2057 2058 var attr = !jQuery.support.hrefNormalized && notxml && special ? 2059 // Some attributes require a special call on IE 2060 elem.getAttribute( name, 2 ) : 2061 elem.getAttribute( name ); 2062 2063 // Non-existent attributes return null, we normalize to undefined 2064 return attr === null ? undefined : attr; 2065 } 2066 // Handle everything which isn't a DOM element node 1781 2067 if ( set ) { 1782 // convert the value to a string (all browsers do this but IE) see #1070 1783 elem.setAttribute( name, "" + value ); 1784 } 1785 1786 // Ensure that missing attributes return undefined 1787 // Blackberry 4.7 returns "" from getAttribute #6938 1788 if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) { 1789 return undefined; 1790 } 1791 1792 var attr = !jQuery.support.hrefNormalized && notxml && special ? 1793 // Some attributes require a special call on IE 1794 elem.getAttribute( name, 2 ) : 1795 elem.getAttribute( name ); 1796 1797 // Non-existent attributes return null, we normalize to undefined 1798 return attr === null ? undefined : attr; 2068 elem[ name ] = value; 2069 } 2070 return elem[ name ]; 1799 2071 } 1800 2072 }); … … 1811 2083 return nm.replace(rescape, "\\$&"); 1812 2084 }, 1813 focusCounts = { focusin: 0, focusout: 0 };2085 eventKey = "events"; 1814 2086 1815 2087 /* … … 1853 2125 1854 2126 // Init the element's event structure 1855 var elemData = jQuery. data( elem );2127 var elemData = jQuery._data( elem ); 1856 2128 1857 2129 // If no elemData is found then we must be trying to bind to one of the … … 1861 2133 } 1862 2134 1863 // Use a key less likely to result in collisions for plain JS objects. 1864 // Fixes bug #7150. 1865 var eventKey = elem.nodeType ? "events" : "__events__", 1866 events = elemData[ eventKey ], 2135 var events = elemData[ eventKey ], 1867 2136 eventHandle = elemData.handle; 1868 2137 1869 2138 if ( typeof events === "function" ) { 1870 2139 // On plain objects events is a fn that holds the the data … … 1946 2215 } 1947 2216 } 1948 1949 if ( special.add ) { 1950 special.add.call( elem, handleObj ); 2217 2218 if ( special.add ) { 2219 special.add.call( elem, handleObj ); 1951 2220 1952 2221 if ( !handleObj.handler.guid ) { … … 1980 2249 1981 2250 var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, 1982 eventKey = elem.nodeType ? "events" : "__events__", 1983 elemData = jQuery.data( elem ), 2251 elemData = jQuery.hasData( elem ) && jQuery._data( elem ), 1984 2252 events = elemData && elemData[ eventKey ]; 1985 2253 … … 1987 2255 return; 1988 2256 } 1989 2257 1990 2258 if ( typeof events === "function" ) { 1991 2259 elemData = events; … … 2025 2293 type = namespaces.shift(); 2026 2294 2027 namespace = new RegExp("(^|\\.)" + 2295 namespace = new RegExp("(^|\\.)" + 2028 2296 jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)"); 2029 2297 } … … 2093 2361 2094 2362 if ( typeof elemData === "function" ) { 2095 jQuery.removeData( elem, eventKey );2363 jQuery.removeData( elem, eventKey, true ); 2096 2364 2097 2365 } else if ( jQuery.isEmptyObject( elemData ) ) { 2098 jQuery.removeData( elem );2366 jQuery.removeData( elem, undefined, true ); 2099 2367 } 2100 2368 } … … 2128 2396 // Only trigger if we've ever bound an event for it 2129 2397 if ( jQuery.event.global[ type ] ) { 2398 // XXX This code smells terrible. event.js should not be directly 2399 // inspecting the data cache 2130 2400 jQuery.each( jQuery.cache, function() { 2131 if ( this.events && this.events[type] ) { 2132 jQuery.event.trigger( event, data, this.handle.elem ); 2401 // internalKey variable is just used to make it easier to find 2402 // and potentially change this stuff later; currently it just 2403 // points to jQuery.expando 2404 var internalKey = jQuery.expando, 2405 internalCache = this[ internalKey ]; 2406 if ( internalCache && internalCache.events && internalCache.events[type] ) { 2407 jQuery.event.trigger( event, data, internalCache.handle.elem ); 2133 2408 } 2134 2409 }); … … 2156 2431 // Trigger the event, it is assumed that "handle" is a function 2157 2432 var handle = elem.nodeType ? 2158 jQuery. data( elem, "handle" ) :2159 (jQuery. data( elem, "__events__") || {}).handle;2433 jQuery._data( elem, "handle" ) : 2434 (jQuery._data( elem, eventKey ) || {}).handle; 2160 2435 2161 2436 if ( handle ) { … … 2187 2462 special = jQuery.event.special[ targetType ] || {}; 2188 2463 2189 if ( (!special._default || special._default.call( elem, event ) === false) && 2464 if ( (!special._default || special._default.call( elem, event ) === false) && 2190 2465 !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) { 2191 2466 … … 2235 2510 event.namespace = event.namespace || namespace_sort.join("."); 2236 2511 2237 events = jQuery. data(this, this.nodeType ? "events" : "__events__");2512 events = jQuery._data(this, eventKey); 2238 2513 2239 2514 if ( typeof events === "function" ) { … … 2257 2532 event.data = handleObj.data; 2258 2533 event.handleObj = handleObj; 2259 2534 2260 2535 var ret = handleObj.handler.apply( this, args ); 2261 2536 … … 2356 2631 jQuery.event.add( this, 2357 2632 liveConvert( handleObj.origType, handleObj.selector ), 2358 jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); 2633 jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); 2359 2634 }, 2360 2635 … … 2386 2661 elem.removeEventListener( type, handle, false ); 2387 2662 } 2388 } : 2663 } : 2389 2664 function( elem, type, handle ) { 2390 2665 if ( elem.detachEvent ) { … … 2403 2678 this.originalEvent = src; 2404 2679 this.type = src.type; 2680 2681 // Events bubbling up the document may have been marked as prevented 2682 // by a handler lower down the tree; reflect the correct value. 2683 this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || 2684 src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse; 2685 2405 2686 // Event type 2406 2687 } else { … … 2433 2714 return; 2434 2715 } 2435 2716 2436 2717 // if preventDefault exists run it on the original event 2437 2718 if ( e.preventDefault ) { … … 2519 2800 jQuery.event.special.submit = { 2520 2801 setup: function( data, namespaces ) { 2521 if ( this.nodeName .toLowerCase() !== "form" ) {2802 if ( this.nodeName && this.nodeName.toLowerCase() !== "form" ) { 2522 2803 jQuery.event.add(this, "click.specialSubmit", function( e ) { 2523 2804 var elem = e.target, … … 2529 2810 } 2530 2811 }); 2531 2812 2532 2813 jQuery.event.add(this, "keypress.specialSubmit", function( e ) { 2533 2814 var elem = e.target, … … 2584 2865 } 2585 2866 2586 data = jQuery. data( elem, "_change_data" );2867 data = jQuery._data( elem, "_change_data" ); 2587 2868 val = getVal(elem); 2588 2869 2589 2870 // the current data will be also retrieved by beforeactivate 2590 2871 if ( e.type !== "focusout" || elem.type !== "radio" ) { 2591 jQuery. data( elem, "_change_data", val );2592 } 2593 2872 jQuery._data( elem, "_change_data", val ); 2873 } 2874 2594 2875 if ( data === undefined || val === data ) { 2595 2876 return; … … 2605 2886 jQuery.event.special.change = { 2606 2887 filters: { 2607 focusout: testChange, 2888 focusout: testChange, 2608 2889 2609 2890 beforedeactivate: testChange, … … 2634 2915 beforeactivate: function( e ) { 2635 2916 var elem = e.target; 2636 jQuery. data( elem, "_change_data", getVal(elem) );2917 jQuery._data( elem, "_change_data", getVal(elem) ); 2637 2918 } 2638 2919 }, … … 2673 2954 jQuery.event.special[ fix ] = { 2674 2955 setup: function() { 2675 if ( focusCounts[fix]++ === 0 ) { 2676 document.addEventListener( orig, handler, true ); 2677 } 2956 this.addEventListener( orig, handler, true ); 2678 2957 }, 2679 2958 teardown: function() { 2680 if ( --focusCounts[fix] === 0 ) { 2681 document.removeEventListener( orig, handler, true ); 2682 } 2959 this.removeEventListener( orig, handler, true ); 2683 2960 } 2684 2961 }; 2685 2962 2686 function handler( e ) { 2963 function handler( e ) { 2687 2964 e = jQuery.event.fix( e ); 2688 2965 e.type = fix; 2689 return jQuery.event. trigger( e, null, e.target);2966 return jQuery.event.handle.call( this, e ); 2690 2967 } 2691 2968 }); … … 2701 2978 return this; 2702 2979 } 2703 2980 2704 2981 if ( jQuery.isFunction( data ) || data === false ) { 2705 2982 fn = data; … … 2741 3018 return this; 2742 3019 }, 2743 3020 2744 3021 delegate: function( selector, types, data, fn ) { 2745 3022 return this.live( types, data, fn, selector ); 2746 3023 }, 2747 3024 2748 3025 undelegate: function( selector, types, fn ) { 2749 3026 if ( arguments.length === 0 ) { 2750 3027 return this.unbind( "live" ); 2751 3028 2752 3029 } else { 2753 3030 return this.die( types, null, fn, selector ); 2754 3031 } 2755 3032 }, 2756 3033 2757 3034 trigger: function( type, data ) { 2758 3035 return this.each(function() { … … 2783 3060 return this.click( jQuery.proxy( fn, function( event ) { 2784 3061 // Figure out which function to execute 2785 var lastToggle = ( jQuery. data( this, "lastToggle" + fn.guid ) || 0 ) % i;2786 jQuery. data( this, "lastToggle" + fn.guid, lastToggle + 1 );3062 var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; 3063 jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); 2787 3064 2788 3065 // Make sure that clicks stop … … 2811 3088 selector = origSelector || this.selector, 2812 3089 context = origSelector ? this : jQuery( this.context ); 2813 3090 2814 3091 if ( typeof types === "object" && !types.preventDefault ) { 2815 3092 for ( var key in types ) { 2816 3093 context[ name ]( key, data, types[key], selector ); 2817 3094 } 2818 3095 2819 3096 return this; 2820 3097 } … … 2863 3140 } 2864 3141 } 2865 3142 2866 3143 return this; 2867 3144 }; … … 2872 3149 elems = [], 2873 3150 selectors = [], 2874 events = jQuery. data( this, this.nodeType ? "events" : "__events__");3151 events = jQuery._data( this, eventKey ); 2875 3152 2876 3153 if ( typeof events === "function" ) { … … 2878 3155 } 2879 3156 2880 // Make sure we avoid non-left-click bubbling in Firefox (#3861) 2881 if ( event.liveFired === this || !events || !events.live || event. button && event.type === "click" ) {3157 // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911) 3158 if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) { 2882 3159 return; 2883 3160 } 2884 3161 2885 3162 if ( event.namespace ) { 2886 3163 namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)"); … … 2980 3257 }); 2981 3258 2982 // Prevent memory leaks in IE2983 // Window isn't included so as not to unbind existing unload events2984 // More info:2985 // - http://isaacschlueter.com/2006/10/msie-memory-leaks/2986 if ( window.attachEvent && !window.addEventListener ) {2987 jQuery(window).bind("unload", function() {2988 for ( var id in jQuery.cache ) {2989 if ( jQuery.cache[ id ].handle ) {2990 // Try/Catch is to handle iframes being unloaded, see #42802991 try {2992 jQuery.event.remove( jQuery.cache[ id ].handle.elem );2993 } catch(e) {}2994 }2995 }2996 });2997 }2998 2999 3259 3000 3260 /*! 3001 * Sizzle CSS Selector Engine - v1.03002 * Copyright 20 09, The Dojo Foundation3261 * Sizzle CSS Selector Engine 3262 * Copyright 2011, The Dojo Foundation 3003 3263 * Released under the MIT, BSD, and GPL Licenses. 3004 3264 * More information: http://sizzlejs.com/ … … 3221 3481 3222 3482 if ( !set ) { 3223 set = context.getElementsByTagName( "*" ); 3483 set = typeof context.getElementsByTagName !== "undefined" ? 3484 context.getElementsByTagName( "*" ) : 3485 []; 3224 3486 } 3225 3487 … … 3329 3591 CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, 3330 3592 NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, 3331 ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*( ['"]*)(.*?)\3|)\s*\]/,3593 ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, 3332 3594 TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, 3333 CHILD: /:(only|nth|last|first)-child(?:\( (even|odd|[\dn+\-]*)\))?/,3595 CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, 3334 3596 POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, 3335 3597 PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ … … 3464 3726 3465 3727 TAG: function( match, context ) { 3466 return context.getElementsByTagName( match[1] ); 3728 if ( typeof context.getElementsByTagName !== "undefined" ) { 3729 return context.getElementsByTagName( match[1] ); 3730 } 3467 3731 } 3468 3732 }, … … 3477 3741 for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { 3478 3742 if ( elem ) { 3479 if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n ]/g, " ").indexOf(match) >= 0) ) {3743 if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { 3480 3744 if ( !inplace ) { 3481 3745 result.push( elem ); … … 3501 3765 CHILD: function( match ) { 3502 3766 if ( match[1] === "nth" ) { 3767 if ( !match[2] ) { 3768 Sizzle.error( match[0] ); 3769 } 3770 3771 match[2] = match[2].replace(/^\+|\s*/g, ''); 3772 3503 3773 // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' 3504 var test = /(-?)(\d*) n((?:\+|-)?\d*)/.exec(3774 var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( 3505 3775 match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || 3506 3776 !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); … … 3510 3780 match[3] = test[3] - 0; 3511 3781 } 3782 else if ( match[2] ) { 3783 Sizzle.error( match[0] ); 3784 } 3512 3785 3513 3786 // TODO: Move to normal caching system … … 3518 3791 3519 3792 ATTR: function( match, curLoop, inplace, result, not, isXML ) { 3520 var name = match[1] .replace(/\\/g, "");3793 var name = match[1] = match[1].replace(/\\/g, ""); 3521 3794 3522 3795 if ( !isXML && Expr.attrMap[name] ) { 3523 3796 match[1] = Expr.attrMap[name]; 3524 3797 } 3798 3799 // Handle if an un-quoted value was used 3800 match[4] = ( match[4] || match[5] || "" ).replace(/\\/g, ""); 3525 3801 3526 3802 if ( match[2] === "~=" ) { … … 3692 3968 3693 3969 } else { 3694 Sizzle.error( "Syntax error, unrecognized expression: " +name );3970 Sizzle.error( name ); 3695 3971 } 3696 3972 }, … … 4082 4358 context = context || document; 4083 4359 4084 // Make sure that attribute selectors are quoted4085 query = query.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");4086 4087 4360 // Only use querySelectorAll on non-XML documents 4088 4361 // (ID selectors don't work in non-HTML documents) 4089 4362 if ( !seed && !Sizzle.isXML(context) ) { 4363 // See if we find a selector to speed up 4364 var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); 4365 4366 if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { 4367 // Speed-up: Sizzle("TAG") 4368 if ( match[1] ) { 4369 return makeArray( context.getElementsByTagName( query ), extra ); 4370 4371 // Speed-up: Sizzle(".CLASS") 4372 } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { 4373 return makeArray( context.getElementsByClassName( match[2] ), extra ); 4374 } 4375 } 4376 4090 4377 if ( context.nodeType === 9 ) { 4378 // Speed-up: Sizzle("body") 4379 // The body element only exists once, optimize finding it 4380 if ( query === "body" && context.body ) { 4381 return makeArray( [ context.body ], extra ); 4382 4383 // Speed-up: Sizzle("#ID") 4384 } else if ( match && match[3] ) { 4385 var elem = context.getElementById( match[3] ); 4386 4387 // Check parentNode to catch when Blackberry 4.6 returns 4388 // nodes that are no longer in the document #6963 4389 if ( elem && elem.parentNode ) { 4390 // Handle the case where IE and Opera return items 4391 // by name instead of ID 4392 if ( elem.id === match[3] ) { 4393 return makeArray( [ elem ], extra ); 4394 } 4395 4396 } else { 4397 return makeArray( [], extra ); 4398 } 4399 } 4400 4091 4401 try { 4092 4402 return makeArray( context.querySelectorAll(query), extra ); … … 4099 4409 } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { 4100 4410 var old = context.getAttribute( "id" ), 4101 nid = old || id; 4411 nid = old || id, 4412 hasParent = context.parentNode, 4413 relativeHierarchySelector = /^\s*[+~]/.test( query ); 4102 4414 4103 4415 if ( !old ) { 4104 4416 context.setAttribute( "id", nid ); 4417 } else { 4418 nid = nid.replace( /'/g, "\\$&" ); 4419 } 4420 if ( relativeHierarchySelector && hasParent ) { 4421 context = context.parentNode; 4105 4422 } 4106 4423 4107 4424 try { 4108 return makeArray( context.querySelectorAll( "#" + nid + " " + query ), extra ); 4425 if ( !relativeHierarchySelector || hasParent ) { 4426 return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); 4427 } 4109 4428 4110 4429 } catch(pseudoError) { … … 4329 4648 isSimple = /^.[^:#\[\.,]*$/, 4330 4649 slice = Array.prototype.slice, 4331 POS = jQuery.expr.match.POS; 4650 POS = jQuery.expr.match.POS, 4651 // methods guaranteed to produce a unique set when starting from a unique set 4652 guaranteedUnique = { 4653 children: true, 4654 contents: true, 4655 next: true, 4656 prev: true 4657 }; 4332 4658 4333 4659 jQuery.fn.extend({ … … 4374 4700 return this.pushStack( winnow(this, selector, true), "filter", selector ); 4375 4701 }, 4376 4702 4377 4703 is: function( selector ) { 4378 4704 return !!selector && jQuery.filter( selector, this ).length > 0; … … 4392 4718 4393 4719 if ( !matches[selector] ) { 4394 matches[selector] = jQuery.expr.match.POS.test( selector ) ? 4720 matches[selector] = jQuery.expr.match.POS.test( selector ) ? 4395 4721 jQuery( selector, context || this.context ) : 4396 4722 selector; … … 4415 4741 } 4416 4742 4417 var pos = POS.test( selectors ) ? 4743 var pos = POS.test( selectors ) ? 4418 4744 jQuery( selectors, context || this.context ) : null; 4419 4745 … … 4436 4762 4437 4763 ret = ret.length > 1 ? jQuery.unique(ret) : ret; 4438 4764 4439 4765 return this.pushStack( ret, "closest", selectors ); 4440 4766 }, 4441 4767 4442 4768 // Determine the position of an element within 4443 4769 // the matched set of elements … … 4457 4783 add: function( selector, context ) { 4458 4784 var set = typeof selector === "string" ? 4459 jQuery( selector, context || this.context) :4785 jQuery( selector, context ) : 4460 4786 jQuery.makeArray( selector ), 4461 4787 all = jQuery.merge( this.get(), set ); … … 4519 4845 }, function( name, fn ) { 4520 4846 jQuery.fn[ name ] = function( until, selector ) { 4521 var ret = jQuery.map( this, fn, until ); 4522 4847 var ret = jQuery.map( this, fn, until ), 4848 // The variable 'args' was introduced in 4849 // https://github.com/jquery/jquery/commit/52a0238 4850 // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. 4851 // http://code.google.com/p/v8/issues/detail?id=1050 4852 args = slice.call(arguments); 4853 4523 4854 if ( !runtil.test( name ) ) { 4524 4855 selector = until; … … 4529 4860 } 4530 4861 4531 ret = this.length > 1 ? jQuery.unique( ret ) : ret;4862 ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; 4532 4863 4533 4864 if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { … … 4535 4866 } 4536 4867 4537 return this.pushStack( ret, name, slice.call(arguments).join(",") );4868 return this.pushStack( ret, name, args.join(",") ); 4538 4869 }; 4539 4870 }); … … 4549 4880 jQuery.find.matches(expr, elems); 4550 4881 }, 4551 4882 4552 4883 dir: function( elem, dir, until ) { 4553 4884 var matched = [], … … 4631 4962 // checked="checked" or checked (html5) 4632 4963 rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, 4633 raction = /\=([^="'>\s]+\/)>/g,4634 4964 wrapMap = { 4635 4965 option: [ 1, "<select multiple='multiple'>", "</select>" ], … … 4771 5101 } 4772 5102 }, 4773 5103 4774 5104 // keepData is for internal use only--do not document 4775 5105 remove: function( selector, keepData ) { … … 4786 5116 } 4787 5117 } 4788 5118 4789 5119 return this; 4790 5120 }, … … 4802 5132 } 4803 5133 } 4804 5134 4805 5135 return this; 4806 5136 }, 4807 5137 4808 clone: function( events ) { 4809 // Do the clone 4810 var ret = this.map(function() { 4811 if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { 4812 // IE copies events bound via attachEvent when 4813 // using cloneNode. Calling detachEvent on the 4814 // clone will also remove the events from the orignal 4815 // In order to get around this, we use innerHTML. 4816 // Unfortunately, this means some modifications to 4817 // attributes in IE that are actually only stored 4818 // as properties will not be copied (such as the 4819 // the name attribute on an input). 4820 var html = this.outerHTML, 4821 ownerDocument = this.ownerDocument; 4822 4823 if ( !html ) { 4824 var div = ownerDocument.createElement("div"); 4825 div.appendChild( this.cloneNode(true) ); 4826 html = div.innerHTML; 4827 } 4828 4829 return jQuery.clean([html.replace(rinlinejQuery, "") 4830 // Handle the case in IE 8 where action=/test/> self-closes a tag 4831 .replace(raction, '="$1">') 4832 .replace(rleadingWhitespace, "")], ownerDocument)[0]; 4833 } else { 4834 return this.cloneNode(true); 4835 } 5138 clone: function( dataAndEvents, deepDataAndEvents ) { 5139 dataAndEvents = dataAndEvents == null ? true : dataAndEvents; 5140 deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; 5141 5142 return this.map( function () { 5143 return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); 4836 5144 }); 4837 4838 // Copy the events from the original to the clone4839 if ( events === true ) {4840 cloneCopyEvent( this, ret );4841 cloneCopyEvent( this.find("*"), ret.find("*") );4842 }4843 4844 // Return the cloned set4845 return ret;4846 5145 }, 4847 5146 … … 4953 5252 results = jQuery.buildFragment( args, this, scripts ); 4954 5253 } 4955 5254 4956 5255 fragment = results.fragment; 4957 5256 4958 5257 if ( fragment.childNodes.length === 1 ) { 4959 5258 first = fragment = fragment.firstChild; … … 4965 5264 table = table && jQuery.nodeName( first, "tr" ); 4966 5265 4967 for ( var i = 0, l = this.length ; i < l; i++ ) {5266 for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) { 4968 5267 callback.call( 4969 5268 table ? 4970 5269 root(this[i], first) : 4971 5270 this[i], 4972 i > 0 || results.cacheable || this.length > 1 ? 4973 fragment.cloneNode(true) : 5271 // Make sure that we do not leak memory by inadvertently discarding 5272 // the original fragment (which might have attached data) instead of 5273 // using it; in addition, use the original fragment object for the last 5274 // item instead of first because it can end up being emptied incorrectly 5275 // in certain situations (Bug #8070). 5276 // Fragments from the fragment cache must always be cloned and never used 5277 // in place. 5278 results.cacheable || (l > 1 && i < lastIndex) ? 5279 jQuery.clone( fragment, true, true ) : 4974 5280 fragment 4975 5281 ); … … 4993 5299 } 4994 5300 4995 function cloneCopyEvent(orig, ret) { 4996 var i = 0; 4997 4998 ret.each(function() { 4999 if ( this.nodeName !== (orig[i] && orig[i].nodeName) ) { 5000 return; 5001 } 5002 5003 var oldData = jQuery.data( orig[i++] ), 5004 curData = jQuery.data( this, oldData ), 5005 events = oldData && oldData.events; 5301 function cloneCopyEvent( src, dest ) { 5302 5303 if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { 5304 return; 5305 } 5306 5307 var internalKey = jQuery.expando, 5308 oldData = jQuery.data( src ), 5309 curData = jQuery.data( dest, oldData ); 5310 5311 // Switch to use the internal data object, if it exists, for the next 5312 // stage of data copying 5313 if ( (oldData = oldData[ internalKey ]) ) { 5314 var events = oldData.events; 5315 curData = curData[ internalKey ] = jQuery.extend({}, oldData); 5006 5316 5007 5317 if ( events ) { … … 5010 5320 5011 5321 for ( var type in events ) { 5012 for ( var handler in events[ type ] ) { 5013 jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); 5014 } 5015 } 5016 } 5017 }); 5322 for ( var i = 0, l = events[ type ].length; i < l; i++ ) { 5323 jQuery.event.add( dest, type, events[ type ][ i ], events[ type ][ i ].data ); 5324 } 5325 } 5326 } 5327 } 5328 } 5329 5330 function cloneFixAttributes(src, dest) { 5331 // We do not need to do anything for non-Elements 5332 if ( dest.nodeType !== 1 ) { 5333 return; 5334 } 5335 5336 var nodeName = dest.nodeName.toLowerCase(); 5337 5338 // clearAttributes removes the attributes, which we don't want, 5339 // but also removes the attachEvent events, which we *do* want 5340 dest.clearAttributes(); 5341 5342 // mergeAttributes, in contrast, only merges back on the 5343 // original attributes, not the events 5344 dest.mergeAttributes(src); 5345 5346 // IE6-8 fail to clone children inside object elements that use 5347 // the proprietary classid attribute value (rather than the type 5348 // attribute) to identify the type of content to display 5349 if ( nodeName === "object" ) { 5350 dest.outerHTML = src.outerHTML; 5351 5352 } else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) { 5353 // IE6-8 fails to persist the checked state of a cloned checkbox 5354 // or radio button. Worse, IE6-7 fail to give the cloned element 5355 // a checked appearance if the defaultChecked value isn't also set 5356 if ( src.checked ) { 5357 dest.defaultChecked = dest.checked = src.checked; 5358 } 5359 5360 // IE6-7 get confused and end up setting the value of a cloned 5361 // checkbox/radio button to an empty string instead of "on" 5362 if ( dest.value !== src.value ) { 5363 dest.value = src.value; 5364 } 5365 5366 // IE6-8 fails to return the selected option to the default selected 5367 // state when cloning options 5368 } else if ( nodeName === "option" ) { 5369 dest.selected = src.defaultSelected; 5370 5371 // IE6-8 fails to set the defaultValue to the correct value when 5372 // cloning other types of input fields 5373 } else if ( nodeName === "input" || nodeName === "textarea" ) { 5374 dest.defaultValue = src.defaultValue; 5375 } 5376 5377 // Event data gets referenced instead of copied if the expando 5378 // gets copied too 5379 dest.removeAttribute( jQuery.expando ); 5018 5380 } 5019 5381 … … 5022 5384 doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document); 5023 5385 5024 // Only cache "small" (1/2 KB) strings that are associated with the main document5386 // Only cache "small" (1/2 KB) HTML strings that are associated with the main document 5025 5387 // Cloning options loses the selected state, so don't cache them 5026 5388 // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment 5027 5389 // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache 5028 5390 if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document && 5029 !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {5391 args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) { 5030 5392 5031 5393 cacheable = true; … … 5063 5425 insert = jQuery( selector ), 5064 5426 parent = this.length === 1 && this[0].parentNode; 5065 5427 5066 5428 if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { 5067 5429 insert[ original ]( this[0] ); 5068 5430 return this; 5069 5431 5070 5432 } else { 5071 5433 for ( var i = 0, l = insert.length; i < l; i++ ) { … … 5074 5436 ret = ret.concat( elems ); 5075 5437 } 5076 5438 5077 5439 return this.pushStack( ret, name, insert.selector ); 5078 5440 } … … 5081 5443 5082 5444 jQuery.extend({ 5445 clone: function( elem, dataAndEvents, deepDataAndEvents ) { 5446 var clone = elem.cloneNode(true), 5447 srcElements, 5448 destElements, 5449 i; 5450 5451 if ( !jQuery.support.noCloneEvent && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { 5452 // IE copies events bound via attachEvent when using cloneNode. 5453 // Calling detachEvent on the clone will also remove the events 5454 // from the original. In order to get around this, we use some 5455 // proprietary methods to clear the events. Thanks to MooTools 5456 // guys for this hotness. 5457 5458 // Using Sizzle here is crazy slow, so we use getElementsByTagName 5459 // instead 5460 srcElements = elem.getElementsByTagName("*"); 5461 destElements = clone.getElementsByTagName("*"); 5462 5463 // Weird iteration because IE will replace the length property 5464 // with an element if you are cloning the body and one of the 5465 // elements on the page has a name or id of "length" 5466 for ( i = 0; srcElements[i]; ++i ) { 5467 cloneFixAttributes( srcElements[i], destElements[i] ); 5468 } 5469 5470 cloneFixAttributes( elem, clone ); 5471 } 5472 5473 // Copy the events from the original to the clone 5474 if ( dataAndEvents ) { 5475 5476 cloneCopyEvent( elem, clone ); 5477 5478 if ( deepDataAndEvents && "getElementsByTagName" in elem ) { 5479 5480 srcElements = elem.getElementsByTagName("*"); 5481 destElements = clone.getElementsByTagName("*"); 5482 5483 if ( srcElements.length ) { 5484 for ( i = 0; srcElements[i]; ++i ) { 5485 cloneCopyEvent( srcElements[i], destElements[i] ); 5486 } 5487 } 5488 } 5489 } 5490 // Return the cloned set 5491 return clone; 5492 }, 5083 5493 clean: function( elems, context, fragment, scripts ) { 5084 5494 context = context || document; … … 5162 5572 if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { 5163 5573 scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); 5164 5574 5165 5575 } else { 5166 5576 if ( ret[i].nodeType === 1 ) { … … 5174 5584 return ret; 5175 5585 }, 5176 5586 5177 5587 cleanData: function( elems ) { 5178 var data, id, cache = jQuery.cache, 5179 special = jQuery.event.special, 5588 var data, id, cache = jQuery.cache, internalKey = jQuery.expando, special = jQuery.event.special, 5180 5589 deleteExpando = jQuery.support.deleteExpando; 5181 5590 5182 5591 for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { 5183 5592 if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { … … 5186 5595 5187 5596 id = elem[ jQuery.expando ]; 5188 5597 5189 5598 if ( id ) { 5190 data = cache[ id ] ;5191 5599 data = cache[ id ] && cache[ id ][ internalKey ]; 5600 5192 5601 if ( data && data.events ) { 5193 5602 for ( var type in data.events ) { … … 5195 5604 jQuery.event.remove( elem, type ); 5196 5605 5606 // This is a shortcut to avoid jQuery.event.remove's overhead 5197 5607 } else { 5198 5608 jQuery.removeEvent( elem, type, data.handle ); 5199 5609 } 5200 5610 } 5201 } 5202 5611 5612 // Null the DOM reference to avoid IE6/7/8 leak (#7054) 5613 if ( data.handle ) { 5614 data.handle.elem = null; 5615 } 5616 } 5617 5203 5618 if ( deleteExpando ) { 5204 5619 delete elem[ jQuery.expando ]; … … 5207 5622 elem.removeAttribute( jQuery.expando ); 5208 5623 } 5209 5624 5210 5625 delete cache[ id ]; 5211 5626 } … … 5496 5911 if ( document.documentElement.currentStyle ) { 5497 5912 currentStyle = function( elem, name ) { 5498 var left, rsLeft,5913 var left, 5499 5914 ret = elem.currentStyle && elem.currentStyle[ name ], 5915 rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ], 5500 5916 style = elem.style; 5501 5917 … … 5508 5924 // Remember the original values 5509 5925 left = style.left; 5510 rsLeft = elem.runtimeStyle.left;5511 5926 5512 5927 // Put in the new values to get a computed value out 5513 elem.runtimeStyle.left = elem.currentStyle.left; 5928 if ( rsLeft ) { 5929 elem.runtimeStyle.left = elem.currentStyle.left; 5930 } 5514 5931 style.left = name === "fontSize" ? "1em" : (ret || 0); 5515 5932 ret = style.pixelLeft + "px"; … … 5517 5934 // Revert the changed values 5518 5935 style.left = left; 5519 elem.runtimeStyle.left = rsLeft; 5936 if ( rsLeft ) { 5937 elem.runtimeStyle.left = rsLeft; 5938 } 5520 5939 } 5521 5940 … … 5566 5985 5567 5986 5568 var jsc = jQuery.now(), 5987 var r20 = /%20/g, 5988 rbracket = /\[\]$/, 5989 rCRLF = /\r?\n/g, 5990 rhash = /#.*$/, 5991 rheaders = /^(.*?):\s*(.*?)\r?$/mg, // IE leaves an \r character at EOL 5992 rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, 5993 rnoContent = /^(?:GET|HEAD)$/, 5994 rprotocol = /^\/\//, 5995 rquery = /\?/, 5569 5996 rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, 5570 5997 rselectTextarea = /^(?:select|textarea)/i, 5571 rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, 5572 rnoContent = /^(?:GET|HEAD)$/, 5573 rbracket = /\[\]$/, 5574 jsre = /\=\?(&|$)/, 5575 rquery = /\?/, 5998 rspacesAjax = /\s+/, 5576 5999 rts = /([?&])_=[^&]*/, 5577 rurl = /^(\w+:)?\/\/([^\/?#]+)/, 5578 r20 = /%20/g, 5579 rhash = /#.*$/, 6000 rurl = /^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/, 5580 6001 5581 6002 // Keep a copy of the old load method 5582 _load = jQuery.fn.load; 6003 _load = jQuery.fn.load, 6004 6005 /* Prefilters 6006 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) 6007 * 2) These are called: 6008 * - BEFORE asking for a transport 6009 * - AFTER param serialization (s.data is a string if s.processData is true) 6010 * 3) key is the dataType 6011 * 4) the catchall symbol "*" can be used 6012 * 5) execution will start with transport dataType and THEN continue down to "*" if needed 6013 */ 6014 prefilters = {}, 6015 6016 /* Transports bindings 6017 * 1) key is the dataType 6018 * 2) the catchall symbol "*" can be used 6019 * 3) selection will start with transport dataType and THEN go to "*" if needed 6020 */ 6021 transports = {}; 6022 6023 // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport 6024 function addToPrefiltersOrTransports( structure ) { 6025 6026 // dataTypeExpression is optional and defaults to "*" 6027 return function( dataTypeExpression, func ) { 6028 6029 if ( typeof dataTypeExpression !== "string" ) { 6030 func = dataTypeExpression; 6031 dataTypeExpression = "*"; 6032 } 6033 6034 if ( jQuery.isFunction( func ) ) { 6035 var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ), 6036 i = 0, 6037 length = dataTypes.length, 6038 dataType, 6039 list, 6040 placeBefore; 6041 6042 // For each dataType in the dataTypeExpression 6043 for(; i < length; i++ ) { 6044 dataType = dataTypes[ i ]; 6045 // We control if we're asked to add before 6046 // any existing element 6047 placeBefore = /^\+/.test( dataType ); 6048 if ( placeBefore ) { 6049 dataType = dataType.substr( 1 ) || "*"; 6050 } 6051 list = structure[ dataType ] = structure[ dataType ] || []; 6052 // then we add to the structure accordingly 6053 list[ placeBefore ? "unshift" : "push" ]( func ); 6054 } 6055 } 6056 }; 6057 } 6058 6059 //Base inspection function for prefilters and transports 6060 function inspectPrefiltersOrTransports( structure, options, originalOptions, jXHR, 6061 dataType /* internal */, inspected /* internal */ ) { 6062 6063 dataType = dataType || options.dataTypes[ 0 ]; 6064 inspected = inspected || {}; 6065 6066 inspected[ dataType ] = true; 6067 6068 var list = structure[ dataType ], 6069 i = 0, 6070 length = list ? list.length : 0, 6071 executeOnly = ( structure === prefilters ), 6072 selection; 6073 6074 for(; i < length && ( executeOnly || !selection ); i++ ) { 6075 selection = list[ i ]( options, originalOptions, jXHR ); 6076 // If we got redirected to another dataType 6077 // we try there if not done already 6078 if ( typeof selection === "string" ) { 6079 if ( inspected[ selection ] ) { 6080 selection = undefined; 6081 } else { 6082 options.dataTypes.unshift( selection ); 6083 selection = inspectPrefiltersOrTransports( 6084 structure, options, originalOptions, jXHR, selection, inspected ); 6085 } 6086 } 6087 } 6088 // If we're only executing or nothing was selected 6089 // we try the catchall dataType if not done already 6090 if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) { 6091 selection = inspectPrefiltersOrTransports( 6092 structure, options, originalOptions, jXHR, "*", inspected ); 6093 } 6094 // unnecessary when only executing (prefilters) 6095 // but it'll be ignored by the caller in that case 6096 return selection; 6097 } 5583 6098 5584 6099 jQuery.fn.extend({ … … 5592 6107 } 5593 6108 5594 var off = url.indexOf( " ");6109 var off = url.indexOf( " " ); 5595 6110 if ( off >= 0 ) { 5596 var selector = url.slice( off, url.length);5597 url = url.slice( 0, off);6111 var selector = url.slice( off, url.length ); 6112 url = url.slice( 0, off ); 5598 6113 } 5599 6114 … … 5624 6139 dataType: "html", 5625 6140 data: params, 5626 complete: function( res, status ) { 6141 // Complete callback (responseText is used internally) 6142 complete: function( jXHR, status, responseText ) { 6143 // Store the response as specified by the jXHR object 6144 responseText = jXHR.responseText; 5627 6145 // If successful, inject the HTML into all the matched elements 5628 if ( status === "success" || status === "notmodified" ) { 6146 if ( jXHR.isResolved() ) { 6147 // #4825: Get the actual response in case 6148 // a dataFilter is present in ajaxSettings 6149 jXHR.done(function( r ) { 6150 responseText = r; 6151 }); 5629 6152 // See if a selector was specified 5630 6153 self.html( selector ? … … 5633 6156 // inject the contents of the document in, removing the scripts 5634 6157 // to avoid any 'Permission Denied' errors in IE 5635 .append(res .responseText.replace(rscript, ""))6158 .append(responseText.replace(rscript, "")) 5636 6159 5637 6160 // Locate the specified elements … … 5639 6162 5640 6163 // If not, just inject the full result 5641 res .responseText );6164 responseText ); 5642 6165 } 5643 6166 5644 6167 if ( callback ) { 5645 self.each( callback, [ res.responseText, status, res] );6168 self.each( callback, [ responseText, status, jXHR ] ); 5646 6169 } 5647 6170 } … … 5652 6175 5653 6176 serialize: function() { 5654 return jQuery.param( this.serializeArray());6177 return jQuery.param( this.serializeArray() ); 5655 6178 }, 5656 6179 5657 6180 serializeArray: function() { 5658 return this.map(function() 5659 return this.elements ? jQuery.makeArray( this.elements) : this;6181 return this.map(function(){ 6182 return this.elements ? jQuery.makeArray( this.elements ) : this; 5660 6183 }) 5661 .filter(function() 6184 .filter(function(){ 5662 6185 return this.name && !this.disabled && 5663 ( this.checked || rselectTextarea.test(this.nodeName) ||5664 rinput.test( this.type));6186 ( this.checked || rselectTextarea.test( this.nodeName ) || 6187 rinput.test( this.type ) ); 5665 6188 }) 5666 .map(function( i, elem ) 5667 var val = jQuery( this).val();6189 .map(function( i, elem ){ 6190 var val = jQuery( this ).val(); 5668 6191 5669 6192 return val == null ? 5670 6193 null : 5671 jQuery.isArray( val) ?5672 jQuery.map( val, function( val, i ) 5673 return { name: elem.name, value: val };6194 jQuery.isArray( val ) ? 6195 jQuery.map( val, function( val, i ){ 6196 return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; 5674 6197 }) : 5675 { name: elem.name, value: val };6198 { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; 5676 6199 }).get(); 5677 6200 } … … 5679 6202 5680 6203 // Attach a bunch of functions for handling common AJAX events 5681 jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " "), function( i, o ){5682 jQuery.fn[ o] = function( f ){5683 return this.bind( o, f);6204 jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){ 6205 jQuery.fn[ o ] = function( f ){ 6206 return this.bind( o, f ); 5684 6207 }; 5685 } );5686 5687 jQuery.e xtend({5688 get:function( url, data, callback, type ) {5689 // shift arguments if data argument was omit ed6208 } ); 6209 6210 jQuery.each( [ "get", "post" ], function( i, method ) { 6211 jQuery[ method ] = function( url, data, callback, type ) { 6212 // shift arguments if data argument was omitted 5690 6213 if ( jQuery.isFunction( data ) ) { 5691 6214 type = type || callback; … … 5695 6218 5696 6219 return jQuery.ajax({ 5697 type: "GET",6220 type: method, 5698 6221 url: url, 5699 6222 data: data, … … 5701 6224 dataType: type 5702 6225 }); 5703 }, 6226 }; 6227 } ); 6228 6229 jQuery.extend({ 5704 6230 5705 6231 getScript: function( url, callback ) { 5706 return jQuery.get( url, null, callback, "script");6232 return jQuery.get( url, null, callback, "script" ); 5707 6233 }, 5708 6234 5709 6235 getJSON: function( url, data, callback ) { 5710 return jQuery.get(url, data, callback, "json"); 5711 }, 5712 5713 post: function( url, data, callback, type ) { 5714 // shift arguments if data argument was omited 5715 if ( jQuery.isFunction( data ) ) { 5716 type = type || callback; 5717 callback = data; 5718 data = {}; 5719 } 5720 5721 return jQuery.ajax({ 5722 type: "POST", 5723 url: url, 5724 data: data, 5725 success: callback, 5726 dataType: type 5727 }); 6236 return jQuery.get( url, data, callback, "json" ); 5728 6237 }, 5729 6238 5730 6239 ajaxSetup: function( settings ) { 5731 jQuery.extend( jQuery.ajaxSettings, settings ); 6240 jQuery.extend( true, jQuery.ajaxSettings, settings ); 6241 if ( settings.context ) { 6242 jQuery.ajaxSettings.context = settings.context; 6243 } 5732 6244 }, 5733 6245 … … 5742 6254 timeout: 0, 5743 6255 data: null, 6256 dataType: null, 5744 6257 username: null, 5745 6258 password: null, 6259 cache: null, 5746 6260 traditional: false, 6261 headers: {}, 6262 crossDomain: null, 5747 6263 */ 5748 // This function can be overriden by calling jQuery.ajaxSetup 5749 xhr: function() { 5750 return new window.XMLHttpRequest(); 5751 }, 6264 5752 6265 accepts: { 5753 6266 xml: "application/xml, text/xml", 5754 6267 html: "text/html", 5755 script: "text/javascript, application/javascript",6268 text: "text/plain", 5756 6269 json: "application/json, text/javascript", 5757 text: "text/plain", 5758 _default: "*/*" 5759 } 5760 }, 5761 5762 ajax: function( origSettings ) { 5763 var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings), 5764 jsonp, status, data, type = s.type.toUpperCase(), noContent = rnoContent.test(type); 5765 5766 s.url = s.url.replace( rhash, "" ); 5767 5768 // Use original (not extended) context object if it was provided 5769 s.context = origSettings && origSettings.context != null ? origSettings.context : s; 5770 5771 // convert data if not already a string 6270 "*": "*/*" 6271 }, 6272 6273 contents: { 6274 xml: /xml/, 6275 html: /html/, 6276 json: /json/ 6277 }, 6278 6279 responseFields: { 6280 xml: "responseXML", 6281 text: "responseText" 6282 }, 6283 6284 // List of data converters 6285 // 1) key format is "source_type destination_type" (a single space in-between) 6286 // 2) the catchall symbol "*" can be used for source_type 6287 converters: { 6288 6289 // Convert anything to text 6290 "* text": window.String, 6291 6292 // Text to html (true = no transformation) 6293 "text html": true, 6294 6295 // Evaluate text as a json expression 6296 "text json": jQuery.parseJSON, 6297 6298 // Parse text as xml 6299 "text xml": jQuery.parseXML 6300 } 6301 }, 6302 6303 ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), 6304 ajaxTransport: addToPrefiltersOrTransports( transports ), 6305 6306 // Main method 6307 ajax: function( url, options ) { 6308 6309 // If options is not an object, 6310 // we simulate pre-1.5 signature 6311 if ( typeof options !== "object" ) { 6312 options = url; 6313 url = undefined; 6314 } 6315 6316 // Force options to be an object 6317 options = options || {}; 6318 6319 var // Create the final options object 6320 s = jQuery.extend( true, {}, jQuery.ajaxSettings, options ), 6321 // Callbacks contexts 6322 // We force the original context if it exists 6323 // or take it from jQuery.ajaxSettings otherwise 6324 // (plain objects used as context get extended) 6325 callbackContext = 6326 ( s.context = ( "context" in options ? options : jQuery.ajaxSettings ).context ) || s, 6327 globalEventContext = callbackContext === s ? jQuery.event : jQuery( callbackContext ), 6328 // Deferreds 6329 deferred = jQuery.Deferred(), 6330 completeDeferred = jQuery._Deferred(), 6331 // Status-dependent callbacks 6332 statusCode = s.statusCode || {}, 6333 // Headers (they are sent all at once) 6334 requestHeaders = {}, 6335 // Response headers 6336 responseHeadersString, 6337 responseHeaders, 6338 // transport 6339 transport, 6340 // timeout handle 6341 timeoutTimer, 6342 // Cross-domain detection vars 6343 loc = document.location, 6344 protocol = loc.protocol || "http:", 6345 parts, 6346 // The jXHR state 6347 state = 0, 6348 // Loop variable 6349 i, 6350 // Fake xhr 6351 jXHR = { 6352 6353 readyState: 0, 6354 6355 // Caches the header 6356 setRequestHeader: function( name, value ) { 6357 if ( state === 0 ) { 6358 requestHeaders[ name.toLowerCase() ] = value; 6359 } 6360 return this; 6361 }, 6362 6363 // Raw string 6364 getAllResponseHeaders: function() { 6365 return state === 2 ? responseHeadersString : null; 6366 }, 6367 6368 // Builds headers hashtable if needed 6369 getResponseHeader: function( key ) { 6370 var match; 6371 if ( state === 2 ) { 6372 if ( !responseHeaders ) { 6373 responseHeaders = {}; 6374 while( ( match = rheaders.exec( responseHeadersString ) ) ) { 6375 responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; 6376 } 6377 } 6378 match = responseHeaders[ key.toLowerCase() ]; 6379 } 6380 return match || null; 6381 }, 6382 6383 // Cancel the request 6384 abort: function( statusText ) { 6385 statusText = statusText || "abort"; 6386 if ( transport ) { 6387 transport.abort( statusText ); 6388 } 6389 done( 0, statusText ); 6390 return this; 6391 } 6392 }; 6393 6394 // Callback for when everything is done 6395 // It is defined here because jslint complains if it is declared 6396 // at the end of the function (which would be more logical and readable) 6397 function done( status, statusText, responses, headers) { 6398 6399 // Called once 6400 if ( state === 2 ) { 6401 return; 6402 } 6403 6404 // State is "done" now 6405 state = 2; 6406 6407 // Clear timeout if it exists 6408 if ( timeoutTimer ) { 6409 clearTimeout( timeoutTimer ); 6410 } 6411 6412 // Dereference transport for early garbage collection 6413 // (no matter how long the jXHR object will be used) 6414 transport = undefined; 6415 6416 // Cache response headers 6417 responseHeadersString = headers || ""; 6418 6419 // Set readyState 6420 jXHR.readyState = status ? 4 : 0; 6421 6422 var isSuccess, 6423 success, 6424 error, 6425 response = responses ? ajaxHandleResponses( s, jXHR, responses ) : undefined, 6426 lastModified, 6427 etag; 6428 6429 // If successful, handle type chaining 6430 if ( status >= 200 && status < 300 || status === 304 ) { 6431 6432 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 6433 if ( s.ifModified ) { 6434 6435 if ( ( lastModified = jXHR.getResponseHeader( "Last-Modified" ) ) ) { 6436 jQuery.lastModified[ s.url ] = lastModified; 6437 } 6438 if ( ( etag = jXHR.getResponseHeader( "Etag" ) ) ) { 6439 jQuery.etag[ s.url ] = etag; 6440 } 6441 } 6442 6443 // If not modified 6444 if ( status === 304 ) { 6445 6446 statusText = "notmodified"; 6447 isSuccess = true; 6448 6449 // If we have data 6450 } else { 6451 6452 try { 6453 success = ajaxConvert( s, response ); 6454 statusText = "success"; 6455 isSuccess = true; 6456 } catch(e) { 6457 // We have a parsererror 6458 statusText = "parsererror"; 6459 error = e; 6460 } 6461 } 6462 } else { 6463 // We extract error from statusText 6464 // then normalize statusText and status for non-aborts 6465 error = statusText; 6466 if( status ) { 6467 statusText = "error"; 6468 if ( status < 0 ) { 6469 status = 0; 6470 } 6471 } 6472 } 6473 6474 // Set data for the fake xhr object 6475 jXHR.status = status; 6476 jXHR.statusText = statusText; 6477 6478 // Success/Error 6479 if ( isSuccess ) { 6480 deferred.resolveWith( callbackContext, [ success, statusText, jXHR ] ); 6481 } else { 6482 deferred.rejectWith( callbackContext, [ jXHR, statusText, error ] ); 6483 } 6484 6485 // Status-dependent callbacks 6486 jXHR.statusCode( statusCode ); 6487 statusCode = undefined; 6488 6489 if ( s.global ) { 6490 globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ), 6491 [ jXHR, s, isSuccess ? success : error ] ); 6492 } 6493 6494 // Complete 6495 completeDeferred.resolveWith( callbackContext, [ jXHR, statusText ] ); 6496 6497 if ( s.global ) { 6498 globalEventContext.trigger( "ajaxComplete", [ jXHR, s] ); 6499 // Handle the global AJAX counter 6500 if ( !( --jQuery.active ) ) { 6501 jQuery.event.trigger( "ajaxStop" ); 6502 } 6503 } 6504 } 6505 6506 // Attach deferreds 6507 deferred.promise( jXHR ); 6508 jXHR.success = jXHR.done; 6509 jXHR.error = jXHR.fail; 6510 jXHR.complete = completeDeferred.done; 6511 6512 // Status-dependent callbacks 6513 jXHR.statusCode = function( map ) { 6514 if ( map ) { 6515 var tmp; 6516 if ( state < 2 ) { 6517 for( tmp in map ) { 6518 statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ]; 6519 } 6520 } else { 6521 tmp = map[ jXHR.status ]; 6522 jXHR.then( tmp, tmp ); 6523 } 6524 } 6525 return this; 6526 }; 6527 6528 // Remove hash character (#7531: and string promotion) 6529 // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) 6530 // We also use the url parameter if available 6531 s.url = ( "" + ( url || s.url ) ).replace( rhash, "" ).replace( rprotocol, protocol + "//" ); 6532 6533 // Extract dataTypes list 6534 s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax ); 6535 6536 // Determine if a cross-domain request is in order 6537 if ( !s.crossDomain ) { 6538 parts = rurl.exec( s.url.toLowerCase() ); 6539 s.crossDomain = !!( parts && 6540 ( parts[ 1 ] != protocol || parts[ 2 ] != loc.hostname || 6541 ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) != 6542 ( loc.port || ( protocol === "http:" ? 80 : 443 ) ) ) 6543 ); 6544 } 6545 6546 // Convert data if not already a string 5772 6547 if ( s.data && s.processData && typeof s.data !== "string" ) { 5773 6548 s.data = jQuery.param( s.data, s.traditional ); 5774 6549 } 5775 6550 5776 // Handle JSONP Parameter Callbacks 5777 if ( s.dataType === "jsonp" ) { 5778 if ( type === "GET" ) { 5779 if ( !jsre.test( s.url ) ) { 5780 s.url += (rquery.test( s.url ) ? "&" : "?") + (s.jsonp || "callback") + "=?"; 5781 } 5782 } else if ( !s.data || !jsre.test(s.data) ) { 5783 s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?"; 5784 } 5785 s.dataType = "json"; 5786 } 5787 5788 // Build temporary JSONP function 5789 if ( s.dataType === "json" && (s.data && jsre.test(s.data) || jsre.test(s.url)) ) { 5790 jsonp = s.jsonpCallback || ("jsonp" + jsc++); 5791 5792 // Replace the =? sequence both in the query string and the data 5793 if ( s.data ) { 5794 s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1"); 5795 } 5796 5797 s.url = s.url.replace(jsre, "=" + jsonp + "$1"); 5798 5799 // We need to make sure 5800 // that a JSONP style response is executed properly 5801 s.dataType = "script"; 5802 5803 // Handle JSONP-style loading 5804 var customJsonp = window[ jsonp ]; 5805 5806 window[ jsonp ] = function( tmp ) { 5807 if ( jQuery.isFunction( customJsonp ) ) { 5808 customJsonp( tmp ); 5809 5810 } else { 5811 // Garbage collect 5812 window[ jsonp ] = undefined; 5813 5814 try { 5815 delete window[ jsonp ]; 5816 } catch( jsonpError ) {} 5817 } 5818 5819 data = tmp; 5820 jQuery.handleSuccess( s, xhr, status, data ); 5821 jQuery.handleComplete( s, xhr, status, data ); 5822 5823 if ( head ) { 5824 head.removeChild( script ); 5825 } 5826 }; 5827 } 5828 5829 if ( s.dataType === "script" && s.cache === null ) { 5830 s.cache = false; 5831 } 5832 5833 if ( s.cache === false && noContent ) { 5834 var ts = jQuery.now(); 5835 5836 // try replacing _= if it is there 5837 var ret = s.url.replace(rts, "$1_=" + ts); 5838 5839 // if nothing was replaced, add timestamp to the end 5840 s.url = ret + ((ret === s.url) ? (rquery.test(s.url) ? "&" : "?") + "_=" + ts : ""); 5841 } 5842 5843 // If data is available, append data to url for GET/HEAD requests 5844 if ( s.data && noContent ) { 5845 s.url += (rquery.test(s.url) ? "&" : "?") + s.data; 5846 } 6551 // Apply prefilters 6552 inspectPrefiltersOrTransports( prefilters, s, options, jXHR ); 6553 6554 // Uppercase the type 6555 s.type = s.type.toUpperCase(); 6556 6557 // Determine if request has content 6558 s.hasContent = !rnoContent.test( s.type ); 5847 6559 5848 6560 // Watch for a new set of requests … … 5851 6563 } 5852 6564 5853 // Matches an absolute URL, and saves the domain 5854 var parts = rurl.exec( s.url ), 5855 remote = parts && (parts[1] && parts[1].toLowerCase() !== location.protocol || parts[2].toLowerCase() !== location.host); 5856 5857 // If we're requesting a remote document 5858 // and trying to load JSON or Script with a GET 5859 if ( s.dataType === "script" && type === "GET" && remote ) { 5860 var head = document.getElementsByTagName("head")[0] || document.documentElement; 5861 var script = document.createElement("script"); 5862 if ( s.scriptCharset ) { 5863 script.charset = s.scriptCharset; 5864 } 5865 script.src = s.url; 5866 5867 // Handle Script loading 5868 if ( !jsonp ) { 5869 var done = false; 5870 5871 // Attach handlers for all browsers 5872 script.onload = script.onreadystatechange = function() { 5873 if ( !done && (!this.readyState || 5874 this.readyState === "loaded" || this.readyState === "complete") ) { 5875 done = true; 5876 jQuery.handleSuccess( s, xhr, status, data ); 5877 jQuery.handleComplete( s, xhr, status, data ); 5878 5879 // Handle memory leak in IE 5880 script.onload = script.onreadystatechange = null; 5881 if ( head && script.parentNode ) { 5882 head.removeChild( script ); 5883 } 5884 } 5885 }; 5886 } 5887 5888 // Use insertBefore instead of appendChild to circumvent an IE6 bug. 5889 // This arises when a base node is used (#2709 and #4378). 5890 head.insertBefore( script, head.firstChild ); 5891 5892 // We handle everything using the script element injection 5893 return undefined; 5894 } 5895 5896 var requestDone = false; 5897 5898 // Create the request object 5899 var xhr = s.xhr(); 5900 5901 if ( !xhr ) { 5902 return; 5903 } 5904 5905 // Open the socket 5906 // Passing null username, generates a login popup on Opera (#2865) 5907 if ( s.username ) { 5908 xhr.open(type, s.url, s.async, s.username, s.password); 6565 // More options handling for requests with no content 6566 if ( !s.hasContent ) { 6567 6568 // If data is available, append data to url 6569 if ( s.data ) { 6570 s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data; 6571 } 6572 6573 // Add anti-cache in url if needed 6574 if ( s.cache === false ) { 6575 6576 var ts = jQuery.now(), 6577 // try replacing _= if it is there 6578 ret = s.url.replace( rts, "$1_=" + ts ); 6579 6580 // if nothing was replaced, add timestamp to the end 6581 s.url = ret + ( (ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" ); 6582 } 6583 } 6584 6585 // Set the correct header, if data is being sent 6586 if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { 6587 requestHeaders[ "content-type" ] = s.contentType; 6588 } 6589 6590 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 6591 if ( s.ifModified ) { 6592 if ( jQuery.lastModified[ s.url ] ) { 6593 requestHeaders[ "if-modified-since" ] = jQuery.lastModified[ s.url ]; 6594 } 6595 if ( jQuery.etag[ s.url ] ) { 6596 requestHeaders[ "if-none-match" ] = jQuery.etag[ s.url ]; 6597 } 6598 } 6599 6600 // Set the Accepts header for the server, depending on the dataType 6601 requestHeaders.accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? 6602 s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : 6603 s.accepts[ "*" ]; 6604 6605 // Check for headers option 6606 for ( i in s.headers ) { 6607 requestHeaders[ i.toLowerCase() ] = s.headers[ i ]; 6608 } 6609 6610 // Allow custom headers/mimetypes and early abort 6611 if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jXHR, s ) === false || state === 2 ) ) { 6612 // Abort if not done already 6613 done( 0, "abort" ); 6614 // Return false 6615 jXHR = false; 6616 5909 6617 } else { 5910 xhr.open(type, s.url, s.async); 5911 } 5912 5913 // Need an extra try/catch for cross domain requests in Firefox 3 5914 try { 5915 // Set content-type if data specified and content-body is valid for this type 5916 if ( (s.data != null && !noContent) || (origSettings && origSettings.contentType) ) { 5917 xhr.setRequestHeader("Content-Type", s.contentType); 5918 } 5919 5920 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 5921 if ( s.ifModified ) { 5922 if ( jQuery.lastModified[s.url] ) { 5923 xhr.setRequestHeader("If-Modified-Since", jQuery.lastModified[s.url]); 5924 } 5925 5926 if ( jQuery.etag[s.url] ) { 5927 xhr.setRequestHeader("If-None-Match", jQuery.etag[s.url]); 5928 } 5929 } 5930 5931 // Set header so the called script knows that it's an XMLHttpRequest 5932 // Only send the header if it's not a remote XHR 5933 if ( !remote ) { 5934 xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); 5935 } 5936 5937 // Set the Accepts header for the server, depending on the dataType 5938 xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ? 5939 s.accepts[ s.dataType ] + ", */*; q=0.01" : 5940 s.accepts._default ); 5941 } catch( headerError ) {} 5942 5943 // Allow custom headers/mimetypes and early abort 5944 if ( s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false ) { 5945 // Handle the global AJAX counter 5946 if ( s.global && jQuery.active-- === 1 ) { 5947 jQuery.event.trigger( "ajaxStop" ); 5948 } 5949 5950 // close opended socket 5951 xhr.abort(); 5952 return false; 5953 } 5954 5955 if ( s.global ) { 5956 jQuery.triggerGlobal( s, "ajaxSend", [xhr, s] ); 5957 } 5958 5959 // Wait for a response to come back 5960 var onreadystatechange = xhr.onreadystatechange = function( isTimeout ) { 5961 // The request was aborted 5962 if ( !xhr || xhr.readyState === 0 || isTimeout === "abort" ) { 5963 // Opera doesn't call onreadystatechange before this point 5964 // so we simulate the call 5965 if ( !requestDone ) { 5966 jQuery.handleComplete( s, xhr, status, data ); 5967 } 5968 5969 requestDone = true; 5970 if ( xhr ) { 5971 xhr.onreadystatechange = jQuery.noop; 5972 } 5973 5974 // The transfer is complete and the data is available, or the request timed out 5975 } else if ( !requestDone && xhr && (xhr.readyState === 4 || isTimeout === "timeout") ) { 5976 requestDone = true; 5977 xhr.onreadystatechange = jQuery.noop; 5978 5979 status = isTimeout === "timeout" ? 5980 "timeout" : 5981 !jQuery.httpSuccess( xhr ) ? 5982 "error" : 5983 s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? 5984 "notmodified" : 5985 "success"; 5986 5987 var errMsg; 5988 5989 if ( status === "success" ) { 5990 // Watch for, and catch, XML document parse errors 5991 try { 5992 // process the data (runs the xml through httpData regardless of callback) 5993 data = jQuery.httpData( xhr, s.dataType, s ); 5994 } catch( parserError ) { 5995 status = "parsererror"; 5996 errMsg = parserError; 5997 } 5998 } 5999 6000 // Make sure that the request was successful or notmodified 6001 if ( status === "success" || status === "notmodified" ) { 6002 // JSONP handles its own success callback 6003 if ( !jsonp ) { 6004 jQuery.handleSuccess( s, xhr, status, data ); 6005 } 6006 } else { 6007 jQuery.handleError( s, xhr, status, errMsg ); 6008 } 6009 6010 // Fire the complete handlers 6011 if ( !jsonp ) { 6012 jQuery.handleComplete( s, xhr, status, data ); 6013 } 6014 6015 if ( isTimeout === "timeout" ) { 6016 xhr.abort(); 6017 } 6018 6019 // Stop memory leaks 6020 if ( s.async ) { 6021 xhr = null; 6022 } 6023 } 6024 }; 6025 6026 // Override the abort handler, if we can (IE 6 doesn't allow it, but that's OK) 6027 // Opera doesn't fire onreadystatechange at all on abort 6028 try { 6029 var oldAbort = xhr.abort; 6030 xhr.abort = function() { 6031 if ( xhr ) { 6032 // oldAbort has no call property in IE7 so 6033 // just do it this way, which works in all 6034 // browsers 6035 Function.prototype.call.call( oldAbort, xhr ); 6036 } 6037 6038 onreadystatechange( "abort" ); 6039 }; 6040 } catch( abortError ) {} 6041 6042 // Timeout checker 6043 if ( s.async && s.timeout > 0 ) { 6044 setTimeout(function() { 6045 // Check to see if the request is still happening 6046 if ( xhr && !requestDone ) { 6047 onreadystatechange( "timeout" ); 6048 } 6049 }, s.timeout); 6050 } 6051 6052 // Send the data 6053 try { 6054 xhr.send( noContent || s.data == null ? null : s.data ); 6055 6056 } catch( sendError ) { 6057 jQuery.handleError( s, xhr, null, sendError ); 6058 6059 // Fire the complete handlers 6060 jQuery.handleComplete( s, xhr, status, data ); 6061 } 6062 6063 // firefox 1.5 doesn't fire statechange for sync requests 6064 if ( !s.async ) { 6065 onreadystatechange(); 6066 } 6067 6068 // return XMLHttpRequest to allow aborting the request etc. 6069 return xhr; 6618 6619 // Install callbacks on deferreds 6620 for ( i in { success: 1, error: 1, complete: 1 } ) { 6621 jXHR[ i ]( s[ i ] ); 6622 } 6623 6624 // Get transport 6625 transport = inspectPrefiltersOrTransports( transports, s, options, jXHR ); 6626 6627 // If no transport, we auto-abort 6628 if ( !transport ) { 6629 done( -1, "No Transport" ); 6630 } else { 6631 // Set state as sending 6632 state = jXHR.readyState = 1; 6633 // Send global event 6634 if ( s.global ) { 6635 globalEventContext.trigger( "ajaxSend", [ jXHR, s ] ); 6636 } 6637 // Timeout 6638 if ( s.async && s.timeout > 0 ) { 6639 timeoutTimer = setTimeout( function(){ 6640 jXHR.abort( "timeout" ); 6641 }, s.timeout ); 6642 } 6643 6644 try { 6645 transport.send( requestHeaders, done ); 6646 } catch (e) { 6647 // Propagate exception as error if not done 6648 if ( status < 2 ) { 6649 done( -1, e ); 6650 // Simply rethrow otherwise 6651 } else { 6652 jQuery.error( e ); 6653 } 6654 } 6655 } 6656 } 6657 return jXHR; 6070 6658 }, 6071 6659 … … 6076 6664 add = function( key, value ) { 6077 6665 // If value is a function, invoke it and return its value 6078 value = jQuery.isFunction( value) ? value() : value;6079 s[ s.length ] = encodeURIComponent( key) + "=" + encodeURIComponent(value);6666 value = jQuery.isFunction( value ) ? value() : value; 6667 s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); 6080 6668 }; 6081 6669 6082 6670 // Set traditional to true for jQuery <= 1.3.2 behavior. 6083 6671 if ( traditional === undefined ) { 6084 6672 traditional = jQuery.ajaxSettings.traditional; 6085 6673 } 6086 6674 6087 6675 // If an array was passed in, assume that it is an array of form elements. 6088 if ( jQuery.isArray( a) || a.jquery ) {6676 if ( jQuery.isArray( a ) || a.jquery ) { 6089 6677 // Serialize the form elements 6090 6678 jQuery.each( a, function() { 6091 6679 add( this.name, this.value ); 6092 } );6093 6680 } ); 6681 6094 6682 } else { 6095 6683 // If traditional, encode the "old" way (the way 1.3.2 or older 6096 6684 // did it), otherwise encode params recursively. 6097 6685 for ( var prefix in a ) { 6098 buildParams( prefix, a[ prefix], traditional, add );6686 buildParams( prefix, a[ prefix ], traditional, add ); 6099 6687 } 6100 6688 } 6101 6689 6102 6690 // Return the resulting serialization 6103 return s.join( "&").replace(r20, "+");6691 return s.join( "&" ).replace( r20, "+" ); 6104 6692 } 6105 6693 }); 6106 6694 6107 6695 function buildParams( prefix, obj, traditional, add ) { 6108 if ( jQuery.isArray( obj) && obj.length ) {6696 if ( jQuery.isArray( obj ) && obj.length ) { 6109 6697 // Serialize array item. 6110 6698 jQuery.each( obj, function( i, v ) { … … 6124 6712 } 6125 6713 }); 6126 6714 6127 6715 } else if ( !traditional && obj != null && typeof obj === "object" ) { 6128 if ( jQuery.isEmptyObject( obj ) ) { 6716 // If we see an array here, it is empty and should be treated as an empty 6717 // object 6718 if ( jQuery.isArray( obj ) || jQuery.isEmptyObject( obj ) ) { 6129 6719 add( prefix, "" ); 6130 6720 … … 6135 6725 }); 6136 6726 } 6137 6727 6138 6728 } else { 6139 6729 // Serialize scalar item. … … 6151 6741 // Last-Modified header cache for next request 6152 6742 lastModified: {}, 6153 etag: {}, 6154 6155 handleError: function( s, xhr, status, e ) { 6156 // If a local callback was specified, fire it 6157 if ( s.error ) { 6158 s.error.call( s.context, xhr, status, e ); 6159 } 6160 6161 // Fire the global callback 6162 if ( s.global ) { 6163 jQuery.triggerGlobal( s, "ajaxError", [xhr, s, e] ); 6164 } 6165 }, 6166 6167 handleSuccess: function( s, xhr, status, data ) { 6168 // If a local callback was specified, fire it and pass it the data 6169 if ( s.success ) { 6170 s.success.call( s.context, data, status, xhr ); 6171 } 6172 6173 // Fire the global callback 6174 if ( s.global ) { 6175 jQuery.triggerGlobal( s, "ajaxSuccess", [xhr, s] ); 6176 } 6177 }, 6178 6179 handleComplete: function( s, xhr, status ) { 6180 // Process result 6181 if ( s.complete ) { 6182 s.complete.call( s.context, xhr, status ); 6183 } 6184 6185 // The request was completed 6186 if ( s.global ) { 6187 jQuery.triggerGlobal( s, "ajaxComplete", [xhr, s] ); 6188 } 6189 6190 // Handle the global AJAX counter 6191 if ( s.global && jQuery.active-- === 1 ) { 6192 jQuery.event.trigger( "ajaxStop" ); 6193 } 6194 }, 6195 6196 triggerGlobal: function( s, type, args ) { 6197 (s.context && s.context.url == null ? jQuery(s.context) : jQuery.event).trigger(type, args); 6198 }, 6199 6200 // Determines if an XMLHttpRequest was successful or not 6201 httpSuccess: function( xhr ) { 6202 try { 6203 // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450 6204 return !xhr.status && location.protocol === "file:" || 6205 xhr.status >= 200 && xhr.status < 300 || 6206 xhr.status === 304 || xhr.status === 1223; 6207 } catch(e) {} 6208 6209 return false; 6210 }, 6211 6212 // Determines if an XMLHttpRequest returns NotModified 6213 httpNotModified: function( xhr, url ) { 6214 var lastModified = xhr.getResponseHeader("Last-Modified"), 6215 etag = xhr.getResponseHeader("Etag"); 6216 6217 if ( lastModified ) { 6218 jQuery.lastModified[url] = lastModified; 6219 } 6220 6221 if ( etag ) { 6222 jQuery.etag[url] = etag; 6223 } 6224 6225 return xhr.status === 304; 6226 }, 6227 6228 httpData: function( xhr, type, s ) { 6229 var ct = xhr.getResponseHeader("content-type") || "", 6230 xml = type === "xml" || !type && ct.indexOf("xml") >= 0, 6231 data = xml ? xhr.responseXML : xhr.responseText; 6232 6233 if ( xml && data.documentElement.nodeName === "parsererror" ) { 6234 jQuery.error( "parsererror" ); 6235 } 6236 6237 // Allow a pre-filtering function to sanitize the response 6238 // s is checked to keep backwards compatibility 6239 if ( s && s.dataFilter ) { 6240 data = s.dataFilter( data, type ); 6241 } 6242 6243 // The filter can actually parse the response 6244 if ( typeof data === "string" ) { 6245 // Get the JavaScript object, if JSON is used. 6246 if ( type === "json" || !type && ct.indexOf("json") >= 0 ) { 6247 data = jQuery.parseJSON( data ); 6248 6249 // If the type is "script", eval it in global context 6250 } else if ( type === "script" || !type && ct.indexOf("javascript") >= 0 ) { 6251 jQuery.globalEval( data ); 6252 } 6253 } 6254 6255 return data; 6256 } 6743 etag: {} 6257 6744 6258 6745 }); 6259 6746 6260 /* 6261 * Create the request object; Microsoft failed to properly 6262 * implement the XMLHttpRequest in IE7 (can't request local files), 6263 * so we use the ActiveXObject when it is available 6264 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so 6265 * we need a fallback. 6747 /* Handles responses to an ajax request: 6748 * - sets all responseXXX fields accordingly 6749 * - finds the right dataType (mediates between content-type and expected dataType) 6750 * - returns the corresponding response 6266 6751 */ 6267 if ( window.ActiveXObject ) { 6268 jQuery.ajaxSettings.xhr = function() { 6752 function ajaxHandleResponses( s, jXHR, responses ) { 6753 6754 var contents = s.contents, 6755 dataTypes = s.dataTypes, 6756 responseFields = s.responseFields, 6757 ct, 6758 type, 6759 finalDataType, 6760 firstDataType; 6761 6762 // Fill responseXXX fields 6763 for( type in responseFields ) { 6764 if ( type in responses ) { 6765 jXHR[ responseFields[type] ] = responses[ type ]; 6766 } 6767 } 6768 6769 // Remove auto dataType and get content-type in the process 6770 while( dataTypes[ 0 ] === "*" ) { 6771 dataTypes.shift(); 6772 if ( ct === undefined ) { 6773 ct = jXHR.getResponseHeader( "content-type" ); 6774 } 6775 } 6776 6777 // Check if we're dealing with a known content-type 6778 if ( ct ) { 6779 for ( type in contents ) { 6780 if ( contents[ type ] && contents[ type ].test( ct ) ) { 6781 dataTypes.unshift( type ); 6782 break; 6783 } 6784 } 6785 } 6786 6787 // Check to see if we have a response for the expected dataType 6788 if ( dataTypes[ 0 ] in responses ) { 6789 finalDataType = dataTypes[ 0 ]; 6790 } else { 6791 // Try convertible dataTypes 6792 for ( type in responses ) { 6793 if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { 6794 finalDataType = type; 6795 break; 6796 } 6797 if ( !firstDataType ) { 6798 firstDataType = type; 6799 } 6800 } 6801 // Or just use first one 6802 finalDataType = finalDataType || firstDataType; 6803 } 6804 6805 // If we found a dataType 6806 // We add the dataType to the list if needed 6807 // and return the corresponding response 6808 if ( finalDataType ) { 6809 if ( finalDataType !== dataTypes[ 0 ] ) { 6810 dataTypes.unshift( finalDataType ); 6811 } 6812 return responses[ finalDataType ]; 6813 } 6814 } 6815 6816 // Chain conversions given the request and the original response 6817 function ajaxConvert( s, response ) { 6818 6819 // Apply the dataFilter if provided 6820 if ( s.dataFilter ) { 6821 response = s.dataFilter( response, s.dataType ); 6822 } 6823 6824 var dataTypes = s.dataTypes, 6825 converters = s.converters, 6826 i, 6827 length = dataTypes.length, 6828 tmp, 6829 // Current and previous dataTypes 6830 current = dataTypes[ 0 ], 6831 prev, 6832 // Conversion expression 6833 conversion, 6834 // Conversion function 6835 conv, 6836 // Conversion functions (transitive conversion) 6837 conv1, 6838 conv2; 6839 6840 // For each dataType in the chain 6841 for( i = 1; i < length; i++ ) { 6842 6843 // Get the dataTypes 6844 prev = current; 6845 current = dataTypes[ i ]; 6846 6847 // If current is auto dataType, update it to prev 6848 if( current === "*" ) { 6849 current = prev; 6850 // If no auto and dataTypes are actually different 6851 } else if ( prev !== "*" && prev !== current ) { 6852 6853 // Get the converter 6854 conversion = prev + " " + current; 6855 conv = converters[ conversion ] || converters[ "* " + current ]; 6856 6857 // If there is no direct converter, search transitively 6858 if ( !conv ) { 6859 conv2 = undefined; 6860 for( conv1 in converters ) { 6861 tmp = conv1.split( " " ); 6862 if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) { 6863 conv2 = converters[ tmp[1] + " " + current ]; 6864 if ( conv2 ) { 6865 conv1 = converters[ conv1 ]; 6866 if ( conv1 === true ) { 6867 conv = conv2; 6868 } else if ( conv2 === true ) { 6869 conv = conv1; 6870 } 6871 break; 6872 } 6873 } 6874 } 6875 } 6876 // If we found no converter, dispatch an error 6877 if ( !( conv || conv2 ) ) { 6878 jQuery.error( "No conversion from " + conversion.replace(" "," to ") ); 6879 } 6880 // If found converter is not an equivalence 6881 if ( conv !== true ) { 6882 // Convert with 1 or 2 converters accordingly 6883 response = conv ? conv( response ) : conv2( conv1(response) ); 6884 } 6885 } 6886 } 6887 return response; 6888 } 6889 6890 6891 6892 6893 var jsc = jQuery.now(), 6894 jsre = /(\=)\?(&|$)|()\?\?()/i; 6895 6896 // Default jsonp settings 6897 jQuery.ajaxSetup({ 6898 jsonp: "callback", 6899 jsonpCallback: function() { 6900 return jQuery.expando + "_" + ( jsc++ ); 6901 } 6902 }); 6903 6904 // Detect, normalize options and install callbacks for jsonp requests 6905 jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, dataIsString /* internal */ ) { 6906 6907 dataIsString = ( typeof s.data === "string" ); 6908 6909 if ( s.dataTypes[ 0 ] === "jsonp" || 6910 originalSettings.jsonpCallback || 6911 originalSettings.jsonp != null || 6912 s.jsonp !== false && ( jsre.test( s.url ) || 6913 dataIsString && jsre.test( s.data ) ) ) { 6914 6915 var responseContainer, 6916 jsonpCallback = s.jsonpCallback = 6917 jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback, 6918 previous = window[ jsonpCallback ], 6919 url = s.url, 6920 data = s.data, 6921 replace = "$1" + jsonpCallback + "$2"; 6922 6923 if ( s.jsonp !== false ) { 6924 url = url.replace( jsre, replace ); 6925 if ( s.url === url ) { 6926 if ( dataIsString ) { 6927 data = data.replace( jsre, replace ); 6928 } 6929 if ( s.data === data ) { 6930 // Add callback manually 6931 url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback; 6932 } 6933 } 6934 } 6935 6936 s.url = url; 6937 s.data = data; 6938 6939 window[ jsonpCallback ] = function( response ) { 6940 responseContainer = [ response ]; 6941 }; 6942 6943 s.complete = [ function() { 6944 6945 // Set callback back to previous value 6946 window[ jsonpCallback ] = previous; 6947 6948 // Call if it was a function and we have a response 6949 if ( previous) { 6950 if ( responseContainer && jQuery.isFunction( previous ) ) { 6951 window[ jsonpCallback ] ( responseContainer[ 0 ] ); 6952 } 6953 } else { 6954 // else, more memory leak avoidance 6955 try{ 6956 delete window[ jsonpCallback ]; 6957 } catch( e ) {} 6958 } 6959 6960 }, s.complete ]; 6961 6962 // Use data converter to retrieve json after script execution 6963 s.converters["script json"] = function() { 6964 if ( ! responseContainer ) { 6965 jQuery.error( jsonpCallback + " was not called" ); 6966 } 6967 return responseContainer[ 0 ]; 6968 }; 6969 6970 // force json dataType 6971 s.dataTypes[ 0 ] = "json"; 6972 6973 // Delegate to script 6974 return "script"; 6975 } 6976 } ); 6977 6978 6979 6980 6981 // Install script dataType 6982 jQuery.ajaxSetup({ 6983 accepts: { 6984 script: "text/javascript, application/javascript" 6985 }, 6986 contents: { 6987 script: /javascript/ 6988 }, 6989 converters: { 6990 "text script": function( text ) { 6991 jQuery.globalEval( text ); 6992 return text; 6993 } 6994 } 6995 }); 6996 6997 // Handle cache's special case and global 6998 jQuery.ajaxPrefilter( "script", function( s ) { 6999 if ( s.cache === undefined ) { 7000 s.cache = false; 7001 } 7002 if ( s.crossDomain ) { 7003 s.type = "GET"; 7004 s.global = false; 7005 } 7006 } ); 7007 7008 // Bind script tag hack transport 7009 jQuery.ajaxTransport( "script", function(s) { 7010 7011 // This transport only deals with cross domain requests 7012 if ( s.crossDomain ) { 7013 7014 var script, 7015 head = document.getElementsByTagName( "head" )[ 0 ] || document.documentElement; 7016 7017 return { 7018 7019 send: function( _, callback ) { 7020 7021 script = document.createElement( "script" ); 7022 7023 script.async = "async"; 7024 7025 if ( s.scriptCharset ) { 7026 script.charset = s.scriptCharset; 7027 } 7028 7029 script.src = s.url; 7030 7031 // Attach handlers for all browsers 7032 script.onload = script.onreadystatechange = function( _, isAbort ) { 7033 7034 if ( !script.readyState || /loaded|complete/.test( script.readyState ) ) { 7035 7036 // Handle memory leak in IE 7037 script.onload = script.onreadystatechange = null; 7038 7039 // Remove the script 7040 if ( head && script.parentNode ) { 7041 head.removeChild( script ); 7042 } 7043 7044 // Dereference the script 7045 script = undefined; 7046 7047 // Callback if not abort 7048 if ( !isAbort ) { 7049 callback( 200, "success" ); 7050 } 7051 } 7052 }; 7053 // Use insertBefore instead of appendChild to circumvent an IE6 bug. 7054 // This arises when a base node is used (#2709 and #4378). 7055 head.insertBefore( script, head.firstChild ); 7056 }, 7057 7058 abort: function() { 7059 if ( script ) { 7060 script.onload( 0, 1 ); 7061 } 7062 } 7063 }; 7064 } 7065 } ); 7066 7067 7068 7069 7070 var // Next active xhr id 7071 xhrId = jQuery.now(), 7072 7073 // active xhrs 7074 xhrs = {}, 7075 7076 // #5280: see below 7077 xhrUnloadAbortInstalled, 7078 7079 // XHR used to determine supports properties 7080 testXHR; 7081 7082 // Create the request object 7083 // (This is still attached to ajaxSettings for backward compatibility) 7084 jQuery.ajaxSettings.xhr = window.ActiveXObject ? 7085 /* Microsoft failed to properly 7086 * implement the XMLHttpRequest in IE7 (can't request local files), 7087 * so we use the ActiveXObject when it is available 7088 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so 7089 * we need a fallback. 7090 */ 7091 function() { 6269 7092 if ( window.location.protocol !== "file:" ) { 6270 7093 try { 6271 7094 return new window.XMLHttpRequest(); 6272 } catch( xhrError) {}7095 } catch( xhrError ) {} 6273 7096 } 6274 7097 6275 7098 try { 6276 7099 return new window.ActiveXObject("Microsoft.XMLHTTP"); 6277 } catch(activeError) {} 7100 } catch( activeError ) {} 7101 } : 7102 // For all other browsers, use the standard XMLHttpRequest object 7103 function() { 7104 return new window.XMLHttpRequest(); 6278 7105 }; 7106 7107 // Test if we can create an xhr object 7108 try { 7109 testXHR = jQuery.ajaxSettings.xhr(); 7110 } catch( xhrCreationException ) {} 7111 7112 //Does this browser support XHR requests? 7113 jQuery.support.ajax = !!testXHR; 7114 7115 // Does this browser support crossDomain XHR requests 7116 jQuery.support.cors = testXHR && ( "withCredentials" in testXHR ); 7117 7118 // No need for the temporary xhr anymore 7119 testXHR = undefined; 7120 7121 // Create transport if the browser can provide an xhr 7122 if ( jQuery.support.ajax ) { 7123 7124 jQuery.ajaxTransport(function( s ) { 7125 // Cross domain only allowed if supported through XMLHttpRequest 7126 if ( !s.crossDomain || jQuery.support.cors ) { 7127 7128 var callback; 7129 7130 return { 7131 send: function( headers, complete ) { 7132 7133 // #5280: we need to abort on unload or IE will keep connections alive 7134 if ( !xhrUnloadAbortInstalled ) { 7135 7136 xhrUnloadAbortInstalled = 1; 7137 7138 jQuery(window).bind( "unload", function() { 7139 7140 // Abort all pending requests 7141 jQuery.each( xhrs, function( _, xhr ) { 7142 if ( xhr.onreadystatechange ) { 7143 xhr.onreadystatechange( 1 ); 7144 } 7145 } ); 7146 7147 } ); 7148 } 7149 7150 // Get a new xhr 7151 var xhr = s.xhr(), 7152 handle; 7153 7154 // Open the socket 7155 // Passing null username, generates a login popup on Opera (#2865) 7156 if ( s.username ) { 7157 xhr.open( s.type, s.url, s.async, s.username, s.password ); 7158 } else { 7159 xhr.open( s.type, s.url, s.async ); 7160 } 7161 7162 // Requested-With header 7163 // Not set for crossDomain requests with no content 7164 // (see why at http://trac.dojotoolkit.org/ticket/9486) 7165 // Won't change header if already provided 7166 if ( !( s.crossDomain && !s.hasContent ) && !headers["x-requested-with"] ) { 7167 headers[ "x-requested-with" ] = "XMLHttpRequest"; 7168 } 7169 7170 // Need an extra try/catch for cross domain requests in Firefox 3 7171 try { 7172 jQuery.each( headers, function( key, value ) { 7173 xhr.setRequestHeader( key, value ); 7174 } ); 7175 } catch( _ ) {} 7176 7177 // Do send the request 7178 // This may raise an exception which is actually 7179 // handled in jQuery.ajax (so no try/catch here) 7180 xhr.send( ( s.hasContent && s.data ) || null ); 7181 7182 // Listener 7183 callback = function( _, isAbort ) { 7184 7185 // Was never called and is aborted or complete 7186 if ( callback && ( isAbort || xhr.readyState === 4 ) ) { 7187 7188 // Only called once 7189 callback = 0; 7190 7191 // Do not keep as active anymore 7192 if ( handle ) { 7193 xhr.onreadystatechange = jQuery.noop; 7194 delete xhrs[ handle ]; 7195 } 7196 7197 // If it's an abort 7198 if ( isAbort ) { 7199 // Abort it manually if needed 7200 if ( xhr.readyState !== 4 ) { 7201 xhr.abort(); 7202 } 7203 } else { 7204 // Get info 7205 var status = xhr.status, 7206 statusText, 7207 responseHeaders = xhr.getAllResponseHeaders(), 7208 responses = {}, 7209 xml = xhr.responseXML; 7210 7211 // Construct response list 7212 if ( xml && xml.documentElement /* #4958 */ ) { 7213 responses.xml = xml; 7214 } 7215 responses.text = xhr.responseText; 7216 7217 // Firefox throws an exception when accessing 7218 // statusText for faulty cross-domain requests 7219 try { 7220 statusText = xhr.statusText; 7221 } catch( e ) { 7222 // We normalize with Webkit giving an empty statusText 7223 statusText = ""; 7224 } 7225 7226 // Filter status for non standard behaviours 7227 status = 7228 // Opera returns 0 when it should be 304 7229 // Webkit returns 0 for failing cross-domain no matter the real status 7230 status === 0 ? 7231 ( 7232 // Webkit, Firefox: filter out faulty cross-domain requests 7233 !s.crossDomain || statusText ? 7234 ( 7235 // Opera: filter out real aborts #6060 7236 responseHeaders ? 7237 304 : 7238 0 7239 ) : 7240 // We assume 302 but could be anything cross-domain related 7241 302 7242 ) : 7243 ( 7244 // IE sometimes returns 1223 when it should be 204 (see #1450) 7245 status == 1223 ? 7246 204 : 7247 status 7248 ); 7249 7250 // Call complete 7251 complete( status, statusText, responses, responseHeaders ); 7252 } 7253 } 7254 }; 7255 7256 // if we're in sync mode or it's in cache 7257 // and has been retrieved directly (IE6 & IE7) 7258 // we need to manually fire the callback 7259 if ( !s.async || xhr.readyState === 4 ) { 7260 callback(); 7261 } else { 7262 // Add to list of active xhrs 7263 handle = xhrId++; 7264 xhrs[ handle ] = xhr; 7265 xhr.onreadystatechange = callback; 7266 } 7267 }, 7268 7269 abort: function() { 7270 if ( callback ) { 7271 callback(0,1); 7272 } 7273 } 7274 }; 7275 } 7276 }); 6279 7277 } 6280 6281 // Does this browser support XHR requests?6282 jQuery.support.ajax = !!jQuery.ajaxSettings.xhr();6283 7278 6284 7279 … … 6287 7282 var elemdisplay = {}, 6288 7283 rfxtypes = /^(?:toggle|show|hide)$/, 6289 rfxnum = /^([+\-]=)?([\d+.\-]+)( .*)$/,7284 rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i, 6290 7285 timerId, 6291 7286 fxAttrs = [ … … 6312 7307 // Reset the inline display of this element to learn if it is 6313 7308 // being hidden by cascaded rules or not 6314 if ( !jQuery. data(elem, "olddisplay") && display === "none" ) {7309 if ( !jQuery._data(elem, "olddisplay") && display === "none" ) { 6315 7310 display = elem.style.display = ""; 6316 7311 } … … 6320 7315 // for such an element 6321 7316 if ( display === "" && jQuery.css( elem, "display" ) === "none" ) { 6322 jQuery. data(elem, "olddisplay", defaultDisplay(elem.nodeName));7317 jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName)); 6323 7318 } 6324 7319 } … … 6331 7326 6332 7327 if ( display === "" || display === "none" ) { 6333 elem.style.display = jQuery. data(elem, "olddisplay") || "";7328 elem.style.display = jQuery._data(elem, "olddisplay") || ""; 6334 7329 } 6335 7330 } … … 6347 7342 var display = jQuery.css( this[i], "display" ); 6348 7343 6349 if ( display !== "none" ) {6350 jQuery. data( this[i], "olddisplay", display );7344 if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) { 7345 jQuery._data( this[i], "olddisplay", display ); 6351 7346 } 6352 7347 } … … 6622 7617 6623 7618 var r = parseFloat( jQuery.css( this.elem, this.prop ) ); 6624 return r && r > -10000 ? r :0;7619 return r || 0; 6625 7620 }, 6626 7621 … … 6816 7811 var elem = this[0], box; 6817 7812 6818 if ( options ) { 7813 if ( options ) { 6819 7814 return this.each(function( i ) { 6820 7815 jQuery.offset.setOffset( this, options, i ); … … 6839 7834 // Make sure we're not dealing with a disconnected DOM node 6840 7835 if ( !box || !jQuery.contains( docElem, elem ) ) { 6841 return box ||{ top: 0, left: 0 };7836 return box ? { top: box.top, left: box.left } : { top: 0, left: 0 }; 6842 7837 } 6843 7838 … … 6858 7853 var elem = this[0]; 6859 7854 6860 if ( options ) { 7855 if ( options ) { 6861 7856 return this.each(function( i ) { 6862 7857 jQuery.offset.setOffset( this, options, i ); … … 6977 7972 return { top: top, left: left }; 6978 7973 }, 6979 7974 6980 7975 setOffset: function( elem, options, i ) { 6981 7976 var position = jQuery.css( elem, "position" ); … … 7011 8006 props.left = (options.left - curOffset.left) + curLeft; 7012 8007 } 7013 8008 7014 8009 if ( "using" in options ) { 7015 8010 options.using.call( elem, props ); … … 7071 8066 jQuery.fn[ method ] = function(val) { 7072 8067 var elem = this[0], win; 7073 8068 7074 8069 if ( !elem ) { 7075 8070 return null; … … 7139 8134 return size == null ? null : this; 7140 8135 } 7141 8136 7142 8137 if ( jQuery.isFunction( size ) ) { 7143 8138 return this.each(function( i ) { … … 7149 8144 if ( jQuery.isWindow( elem ) ) { 7150 8145 // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode 7151 return elem.document.compatMode === "CSS1Compat" && elem.document.documentElement[ "client" + name ] || 7152 elem.document.body[ "client" + name ]; 8146 // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat 8147 var docElemProp = elem.document.documentElement[ "client" + name ]; 8148 return elem.document.compatMode === "CSS1Compat" && docElemProp || 8149 elem.document.body[ "client" + name ] || docElemProp; 7153 8150 7154 8151 // Get document width or height -
trunk/themes/default/js/jquery.min.js
r8162 r9172 1 1 /*! 2 * jQuery JavaScript Library v1. 4.42 * jQuery JavaScript Library v1.5 3 3 * http://jquery.com/ 4 4 * 5 * Copyright 201 0, John Resig5 * Copyright 2011, John Resig 6 6 * Dual licensed under the MIT or GPL Version 2 licenses. 7 7 * http://jquery.org/license … … 9 9 * Includes Sizzle.js 10 10 * http://sizzlejs.com/ 11 * Copyright 201 0, The Dojo Foundation11 * Copyright 2011, The Dojo Foundation 12 12 * Released under the MIT, BSD, and GPL Licenses. 13 13 * 14 * Date: Thu Nov 11 19:04:53 2010-050014 * Date: Mon Jan 31 08:31:29 2011 -0500 15 15 */ 16 (function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= 17 h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"|| 18 h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, 19 "`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, 20 e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, 21 "margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ 22 a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, 23 C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, 24 s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, 25 j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, 26 toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== 27 -1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; 28 if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--; 29 if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", 30 b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& 31 !F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& 32 l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z], 33 z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j, 34 s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v= 35 s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)|| 36 [];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u, 37 false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), 38 k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, 39 scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= 40 false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= 41 1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= 42 "none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= 43 c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); 44 else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this, 45 a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e= 46 c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this, 47 a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan", 48 colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType=== 49 1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "), 50 l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this, 51 "__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; 52 if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r= 53 a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, 54 attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& 55 b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; 56 c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, 57 arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= 58 d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ 59 c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b= 60 w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== 61 8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== 62 "click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ 63 d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.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(" "), 64 fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| 65 d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!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:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this, 66 Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp= 67 c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U}; 68 var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!== 69 "form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V, 70 xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= 71 B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== 72 "file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== 73 0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d, 74 a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d= 75 1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d=== 76 "object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}}); 77 c.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){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); 78 (function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i, 79 [y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; 80 break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, 81 q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= 82 l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*")); 83 return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!== 84 B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=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|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/, 85 POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()=== 86 i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m= 87 i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g, 88 "")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, 89 m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== 90 true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== 91 g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]- 92 0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n=== 93 "first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== 94 i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; 95 if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, 96 g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1; 97 for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"), 98 i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); 99 n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& 100 function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| 101 p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= 102 t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? 103 function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML; 104 c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})}, 105 not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= 106 h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): 107 c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, 108 2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, 109 b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& 110 e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1, 111 "<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,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= 112 c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, 113 wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, 114 prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(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,false,function(b){this.parentNode.insertBefore(b, 115 this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); 116 return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; 117 else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d= 118 c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a, 119 b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")): 120 this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", 121 prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| 122 b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length- 123 1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); 124 d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, 125 jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, 126 zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), 127 h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); 128 if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= 129 d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; 130 e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, 131 ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== 132 "object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& 133 !this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, 134 getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", 135 script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| 136 !T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= 137 false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; 138 A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", 139 b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& 140 c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| 141 c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= 142 encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", 143 [b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), 144 e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); 145 if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", 146 3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay", 147 d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b, 148 d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)=== 149 "inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L|| 150 1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, 151 d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* 152 Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.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=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} 153 var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; 154 this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| 155 this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= 156 c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(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;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a=== 157 b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&& 158 h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle; 159 for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+= 160 parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px", 161 height:"1px",visibility:"hidden"});b.innerHTML="<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>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells= 162 f.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!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a, 163 "marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, 164 e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& 165 c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); 166 c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ 167 b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); 16 (function(a,b){function b$(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function bX(a){if(!bR[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bR[a]=c}return bR[a]}function bW(a,b){var c={};d.each(bV.concat.apply([],bV.slice(0,b)),function(){c[this]=a});return c}function bJ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f=a.converters,g,h=e.length,i,j=e[0],k,l,m,n,o;for(g=1;g<h;g++){k=j,j=e[g];if(j==="*")j=k;else if(k!=="*"&&k!==j){l=k+" "+j,m=f[l]||f["* "+j];if(!m){o=b;for(n in f){i=n.split(" ");if(i[0]===k||i[0]==="*"){o=f[i[1]+" "+j];if(o){n=f[n],n===!0?m=o:o===!0&&(m=n);break}}}}!m&&!o&&d.error("No conversion from "+l.replace(" "," to ")),m!==!0&&(c=m?m(c):o(n(c)))}}return c}function bI(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=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 bH(a,b,c,e){d.isArray(b)&&b.length?d.each(b,function(b,f){c||bp.test(a)?e(a,f):bH(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)}):c||b==null||typeof b!=="object"?e(a,b):d.isArray(b)||d.isEmptyObject(b)?e(a,""):d.each(b,function(b,d){bH(a+"["+b+"]",d,c,e)})}function bG(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===bD,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(g[l]?l=b:(c.dataTypes.unshift(l),l=bG(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bG(a,c,d,e,"*",g));return l}function bF(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bz),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 bn(a,b,c){var e=b==="width"?bh:bi,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 _(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,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],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(q,"`").replace(r,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,p,q=[],r=[],s=d._data(this,u);typeof s==="function"&&(s=s.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(o,"")===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))){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,p=f.handleObj.origHandler.apply(f.elem,arguments);if(p===!1||a.isPropagationStopped()){c=f.level,p===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,b,c){c[0].type=a;return d.event.handle.apply(b,c)}function w(){return!0}function v(){return!1}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",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.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");e.type="text/javascript",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)}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,c){if(a==null){if(e)return e;e=a={}}c=z.length;while(c--)a[z[c]]=b[z[c]];return a}}),b.then(c.cancel,b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){var b=arguments,c=b.length,e=c<=1&&a&&d.isFunction(a.promise)?a:d.Deferred(),f=e.promise(),g;c>1?(g=Array(c),d.each(b,function(a,b){d.when(b).then(function(b){g[a]=arguments.length>1?E.call(arguments,0):b,--c||e.resolveWith(f,g)},e.reject)})):e!==a&&e.resolve(a);return f},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 a.jQuery=a.$=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"));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:b.getElementsByTagName("input")[0].value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,_scriptEval:null,noCloneEvent:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},g.disabled=!0,d.support.optDisabled=!h.disabled,d.support.scriptEval=function(){if(d.support._scriptEval===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();e.type="text/javascript";try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(d.support._scriptEval=!0,delete a[f]):d.support._scriptEval=!1,b.removeChild(e),b=e=f=null}return d.support._scriptEval};try{delete b.test}catch(i){d.support.deleteExpando=!1}b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function j(){d.support.noCloneEvent=!1,b.detachEvent("onclick",j)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var k=c.createDocumentFragment();k.appendChild(b.firstChild),d.support.checkClone=k.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 l=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=l("submit"),d.support.changeBubbles=l("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&&!d.isEmptyObject(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]={}),typeof c==="object"&&(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,g=b.nodeType,h=g?d.cache:b,i=g?b[d.expando]:d.expando;if(!h[i])return;if(c){var j=e?h[i][f]:h[i];if(j){delete j[c];if(!d.isEmptyObject(j))return}}if(e){delete h[i][f];if(!d.isEmptyObject(h[i]))return}var k=h[i][f];d.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},h[i][f]=k):g&&(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 g=/[\n\t\r]/g,h=/\s+/,i=/\r/g,j=/^(?:href|src|style)$/,k=/^(?:button|input)$/i,l=/^(?:button|input|object|select|textarea)$/i,m=/^a(?:rea)?$/i,n=/^(?: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(h);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+" ",i=f.className;for(var j=0,k=b.length;j<k;j++)g.indexOf(" "+b[j]+" ")<0&&(i+=" "+b[j]);f.className=d.trim(i)}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(h);for(var e=0,f=this.length;e<f;e++){var i=this[e];if(i.nodeType===1&&i.className)if(a){var j=(" "+i.className+" ").replace(g," ");for(var k=0,l=c.length;k<l;k++)j=j.replace(" "+c[k]+" "," ");i.className=d.trim(j)}else i.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,i=d(this),j=b,k=a.split(h);while(f=k[g++])j=e?j:!i.hasClass(f),i[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(g," ").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,j=c.type==="select-one";if(f<0)return null;for(var k=j?f:0,l=j?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(j)return a;g.push(a)}}return g}if(n.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(i,"")}return b}var o=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){o&&(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)&&n.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=j.test(c);if(c==="selected"&&!d.support.optSelected){var n=a.parentNode;n&&(n.selectedIndex,n.parentNode&&n.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&k.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:l.test(a.nodeName)||m.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 o=/\.(.*)$/,p=/^(?:textarea|input|select)$/i,q=/\./g,r=/ /g,s=/[^\w\s.|`]/g,t=function(a){return a.replace(s,"\\$&")},u="events";d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a);if(f===!1)f=v;else if(!f)return;var h,i;f.handler&&(h=f,f=h.handler),f.guid||(f.guid=d.guid++);var j=d._data(c);if(!j)return;var k=j[u],l=j.handle;typeof k==="function"?(l=k.handle,k=k.events):k||(c.nodeType||(j[u]=j=function(){}),j.events=k={}),l||(j.handle=l=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(l.elem,arguments):b}),l.elem=c,e=e.split(" ");var m,n=0,o;while(m=e[n++]){i=h?d.extend({},h):{handler:f,data:g},m.indexOf(".")>-1?(o=m.split("."),m=o.shift(),i.namespace=o.slice(0).sort().join(".")):(o=[],i.namespace=""),i.type=m,i.guid||(i.guid=f.guid);var p=k[m],q=d.event.special[m]||{};if(!p){p=k[m]=[];if(!q.setup||q.setup.call(c,g,o,l)===!1)c.addEventListener?c.addEventListener(m,l,!1):c.attachEvent&&c.attachEvent("on"+m,l)}q.add&&(q.add.call(c,i),i.handler.guid||(i.handler.guid=f.guid)),p.push(i),d.event.global[m]=!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),w=s&&s[u];if(!s||!w)return;typeof w==="function"&&(s=w,w=w.events),c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in w)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(),t).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=w[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 w[h]}if(d.isEmptyObject(w)){var x=s.handle;x&&(x.elem=null),delete s.events,delete s.handle,typeof s==="function"?d.removeData(a,u,!0):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=e.nodeType?d._data(e,"handle"):(d._data(e,u)||{}).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(o,""),n=d.nodeName(l,"a")&&m==="click",p=d.event.special[m]||{};if((!p._default||p._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,u),typeof i==="function"&&(i=i.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{while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(c){}},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,c){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var c=a.target,e=c.type;if((e==="submit"||e==="image")&&d(c).closest("form").length){a.liveFired=b;return C("submit",this,arguments)}}),d.event.add(this,"keypress.specialSubmit",function(a){var c=a.target,e=c.type;if((e==="text"||e==="password")&&d(c).closest("form").length&&a.keyCode===13){a.liveFired=b;return 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(p.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;return 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;if(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")return B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")return 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 p.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return p.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 p in a)n[c](p,e,a[p],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=o.exec(h),k="",j&&(k=j[0],h=h.replace(o,""));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 s(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var j=d[g];if(j){var k=!1;j=j[a];while(j){if(j.sizcache===c){k=d[j.sizset];break}if(j.nodeType===1){f||(j.sizcache=c,j.sizset=g);if(typeof b!=="string"){if(j===b){k=!0;break}}else if(i.filter(b,[j]).length>0){k=j;break}}j=j[a]}d[g]=k}}}function r(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;[0,0].sort(function(){h=!1;return 0});var i=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 l,m,o,p,q,r,s,u,v=!0,w=i.isXML(d),x=[],y=b;do{a.exec(""),l=a.exec(y);if(l){y=l[3],x.push(l[1]);if(l[2]){p=l[3];break}}}while(l);if(x.length>1&&k.exec(b))if(x.length===2&&j.relative[x[0]])m=t(x[0]+x[1],d);else{m=j.relative[x[0]]?[d]:i(x.shift(),d);while(x.length)b=x.shift(),j.relative[b]&&(b+=x.shift()),m=t(b,m)}else{!g&&x.length>1&&d.nodeType===9&&!w&&j.match.ID.test(x[0])&&!j.match.ID.test(x[x.length-1])&&(q=i.find(x.shift(),d,w),d=q.expr?i.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:n(g)}:i.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),m=q.expr?i.filter(q.expr,q.set):q.set,x.length>0?o=n(m):v=!1;while(x.length)r=x.pop(),s=r,j.relative[r]?s=x.pop():r="",s==null&&(s=d),j.relative[r](o,s,w)}else o=x=[]}o||(o=m),o||i.error(r||b);if(f.call(o)==="[object Array]")if(v)if(d&&d.nodeType===1)for(u=0;o[u]!=null;u++)o[u]&&(o[u]===!0||o[u].nodeType===1&&i.contains(d,o[u]))&&e.push(m[u]);else for(u=0;o[u]!=null;u++)o[u]&&o[u].nodeType===1&&e.push(m[u]);else e.push.apply(e,o);else n(o,e);p&&(i(p,h,e,g),i.uniqueSort(e));return e};i.uniqueSort=function(a){if(p){g=h,a.sort(p);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},i.matches=function(a,b){return i(a,null,null,b)},i.matchesSelector=function(a,b){return i(b,null,null,[a]).length>0},i.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=j.order.length;e<f;e++){var g,h=j.order[e];if(g=j.leftMatch[h].exec(a)){var i=g[1];g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(/\\/g,""),d=j.find[h](g,b,c);if(d!=null){a=a.replace(j.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},i.filter=function(a,c,d,e){var f,g,h=a,k=[],l=c,m=c&&c[0]&&i.isXML(c[0]);while(a&&c.length){for(var n in j.filter)if((f=j.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=j.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;l===k&&(k=[]);if(j.preFilter[n]){f=j.preFilter[n](f,l,d,k,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=l[s])!=null;s++)if(p){o=q(p,f,s,l);var t=e^!!o;d&&o!=null?t?g=!0:l[s]=!1:t&&(k.push(p),g=!0)}if(o!==b){d||(l=k),a=a.replace(j.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)i.error(a);else break;h=a}return l},i.error=function(a){throw"Syntax error, unrecognized expression: "+a};var j=i.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")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!/\W/.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&&i.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!/\W/.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&&i.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=s;typeof b==="string"&&!/\W/.test(b)&&(b=b.toLowerCase(),d=b,g=r),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=s;typeof b==="string"&&!/\W/.test(b)&&(b=b.toLowerCase(),d=b,g=r),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(/\\/g,"")+" ";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(/\\/g,"")},TAG:function(a,b){return a[1].toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||i.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]&&i.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(/\\/g,"");!f&&j.attrMap[g]&&(a[1]=j.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(/\\/g,""),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]=i(b[3],null,null,c);else{var g=i.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(j.match.POS.test(b[0])||j.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.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!i(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.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=j.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||i.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,k=g.length;h<k;h++)if(g[h]===a)return!1;return!0}i.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=j.attrHandle[c]?j.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=j.setFilters[e];if(f)return f(a,c,b,d)}}},k=j.match.POS,l=function(a,b){return"\\"+(b-0+1)};for(var m in j.match)j.match[m]=new RegExp(j.match[m].source+/(?![^\[]*\])(?![^\(]*\))/.source),j.leftMatch[m]=new RegExp(/(^(?:.|\r|\n)*?)/.source+j.match[m].source.replace(/\\(\d+)/g,l));var n=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(o){n=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 p,q;c.documentElement.compareDocumentPosition?p=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}:(p=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 q(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 q(e[k],f[k]);return k===c?q(a,f[k],-1):q(e[k],b,1)},q=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}),i.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+=i.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)&&(j.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:[]}},j.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&&(j.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")!=="#"&&(j.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=i,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){i=function(b,e,f,g){e=e||c;if(!g&&!i.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return n(e.getElementsByTagName(b),f);if(h[2]&&j.find.CLASS&&e.getElementsByClassName)return n(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return n([e.body],f);if(h&&h[3]){var k=e.getElementById(h[3]);if(!k||!k.parentNode)return n([],f);if(k.id===h[3])return n([k],f)}try{return n(e.querySelectorAll(b),f)}catch(l){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e.getAttribute("id"),o=m||d,p=e.parentNode,q=/^\s*[+~]/.test(b);m?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),q&&p&&(e=e.parentNode);try{if(!q||p)return n(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(r){}finally{m||e.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)i[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&&(i.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!i.isXML(a))try{if(d||!j.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return i(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;j.order.splice(1,0,"CLASS"),j.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?i.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?i.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains=function(){return!1},i.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var t=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=j.match.PSEUDO.exec(a))e+=c[0],a=a.replace(j.match.PSEUDO,"");a=j.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)i(a,f[g],d);return i.filter(e,d)};d.find=i,d.expr=i.selectors,d.expr[":"]=d.expr.filters,d.unique=i.uniqueSort,d.text=i.getText,d.isXMLDoc=i.isXML,d.contains=i.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?!0: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,_)}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&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){f=a.getElementsByTagName("*"),g=e.getElementsByTagName("*");for(h=0;f[h];++h)$(f[h],g[h]);$(a,e)}if(b){Z(a,e);if(c&&"getElementsByTagName"in a){f=a.getElementsByTagName("*"),g=e.getElementsByTagName("*");if(f.length)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 ba=/alpha\([^)]*\)/i,bb=/opacity=([^)]*)/,bc=/-([a-z])/ig,bd=/([A-Z])/g,be=/^-?\d+(?:px)?$/i,bf=/^-?\d/,bg={position:"absolute",visibility:"hidden",display:"block"},bh=["Left","Right"],bi=["Top","Bottom"],bj,bk,bl,bm=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=bj(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(bj)return bj(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(bc,bm)}}),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=bn(a,b,e):d.swap(a,bg,function(){f=bn(a,b,e)});if(f<=0){f=bj(a,b,b),f==="0px"&&bl&&(f=bl(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(!be.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bb.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=ba.test(f)?f.replace(ba,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bk=function(a,c,e){var f,g,h;e=e.replace(bd,"-$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&&(bl=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!be.test(d)&&bf.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}),bj=bk||bl,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 bo=/%20/g,bp=/\[\]$/,bq=/\r?\n/g,br=/#.*$/,bs=/^(.*?):\s*(.*?)\r?$/mg,bt=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bu=/^(?:GET|HEAD)$/,bv=/^\/\//,bw=/\?/,bx=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,by=/^(?:select|textarea)/i,bz=/\s+/,bA=/([?&])_=[^&]*/,bB=/^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/,bC=d.fn.load,bD={},bE={};d.fn.extend({load:function(a,b,c){if(typeof a!=="string"&&bC)return bC.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}var g="GET";b&&(d.isFunction(b)?(c=b,b=null):typeof b==="object"&&(b=d.param(b,d.ajaxSettings.traditional),g="POST"));var h=this;d.ajax({url:a,type:g,dataType:"html",data:b,complete:function(a,b,e){e=a.responseText,a.isResolved()&&(a.done(function(a){e=a}),h.html(f?d("<div>").append(e.replace(bx,"")).find(f):e)),c&&h.each(c,[e,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||by.test(this.nodeName)||bt.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(bq,"\r\n")}}):{name:b.name,value:c.replace(bq,"\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,b){d[b]=function(a,c,e,f){d.isFunction(c)&&(f=f||e,e=c,c=null);return d.ajax({type:b,url:a,data:c,success:e,dataType:f})}}),d.extend({getScript:function(a,b){return d.get(a,null,b,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a){d.extend(!0,d.ajaxSettings,a),a.context&&(d.ajaxSettings.context=a.context)},ajaxSettings:{url:location.href,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:bF(bD),ajaxTransport:bF(bE),ajax:function(a,e){function w(a,c,e,l){if(t!==2){t=2,p&&clearTimeout(p),o=b,m=l||"",v.readyState=a?4:0;var n,q,r,s=e?bI(f,v,e):b,u,w;if(a>=200&&a<300||a===304){if(f.ifModified){if(u=v.getResponseHeader("Last-Modified"))d.lastModified[f.url]=u;if(w=v.getResponseHeader("Etag"))d.etag[f.url]=w}if(a===304)c="notmodified",n=!0;else try{q=bJ(f,s),c="success",n=!0}catch(x){c="parsererror",r=x}}else r=c,a&&(c="error",a<0&&(a=0));v.status=a,v.statusText=c,n?i.resolveWith(g,[q,c,v]):i.rejectWith(g,[v,c,r]),v.statusCode(k),k=b,f.global&&h.trigger("ajax"+(n?"Success":"Error"),[v,f,n?q:r]),j.resolveWith(g,[v,c]),f.global&&(h.trigger("ajaxComplete",[v,f]),--d.active||d.event.trigger("ajaxStop"))}}typeof e!=="object"&&(e=a,a=b),e=e||{};var f=d.extend(!0,{},d.ajaxSettings,e),g=(f.context=("context"in e?e:d.ajaxSettings).context)||f,h=g===f?d.event:d(g),i=d.Deferred(),j=d._Deferred(),k=f.statusCode||{},l={},m,n,o,p,q=c.location,r=q.protocol||"http:",s,t=0,u,v={readyState:0,setRequestHeader:function(a,b){t===0&&(l[a.toLowerCase()]=b);return this},getAllResponseHeaders:function(){return t===2?m:null},getResponseHeader:function(a){var b;if(t===2){if(!n){n={};while(b=bs.exec(m))n[b[1].toLowerCase()]=b[2]}b=n[a.toLowerCase()]}return b||null},abort:function(a){a=a||"abort",o&&o.abort(a),w(0,a);return this}};i.promise(v),v.success=v.done,v.error=v.fail,v.complete=j.done,v.statusCode=function(a){if(a){var b;if(t<2)for(b in a)k[b]=[k[b],a[b]];else b=a[v.status],v.then(b,b)}return this},f.url=(""+(a||f.url)).replace(br,"").replace(bv,r+"//"),f.dataTypes=d.trim(f.dataType||"*").toLowerCase().split(bz),f.crossDomain||(s=bB.exec(f.url.toLowerCase()),f.crossDomain=s&&(s[1]!=r||s[2]!=q.hostname||(s[3]||(s[1]==="http:"?80:443))!=(q.port||(r==="http:"?80:443)))),f.data&&f.processData&&typeof f.data!=="string"&&(f.data=d.param(f.data,f.traditional)),bG(bD,f,e,v),f.type=f.type.toUpperCase(),f.hasContent=!bu.test(f.type),f.global&&d.active++===0&&d.event.trigger("ajaxStart");if(!f.hasContent){f.data&&(f.url+=(bw.test(f.url)?"&":"?")+f.data);if(f.cache===!1){var x=d.now(),y=f.url.replace(bA,"$1_="+x);f.url=y+(y===f.url?(bw.test(f.url)?"&":"?")+"_="+x:"")}}if(f.data&&f.hasContent&&f.contentType!==!1||e.contentType)l["content-type"]=f.contentType;f.ifModified&&(d.lastModified[f.url]&&(l["if-modified-since"]=d.lastModified[f.url]),d.etag[f.url]&&(l["if-none-match"]=d.etag[f.url])),l.accept=f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+(f.dataTypes[0]!=="*"?", */*; q=0.01":""):f.accepts["*"];for(u in f.headers)l[u.toLowerCase()]=f.headers[u];if(!f.beforeSend||f.beforeSend.call(g,v,f)!==!1&&t!==2){for(u in {success:1,error:1,complete:1})v[u](f[u]);o=bG(bE,f,e,v);if(o){t=v.readyState=1,f.global&&h.trigger("ajaxSend",[v,f]),f.async&&f.timeout>0&&(p=setTimeout(function(){v.abort("timeout")},f.timeout));try{o.send(l,w)}catch(z){status<2?w(-1,z):d.error(z)}}else w(-1,"No Transport")}else w(0,"abort"),v=!1;return v},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.each(a,function(){f(this.name,this.value)});else for(var g in a)bH(g,a[g],c,f);return e.join("&").replace(bo,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bK=d.now(),bL=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bK++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){e=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bL.test(b.url)||e&&bL.test(b.data))){var f,g=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h=a[g],i=b.url,j=b.data,k="$1"+g+"$2";b.jsonp!==!1&&(i=i.replace(bL,k),b.url===i&&(e&&(j=j.replace(bL,k)),b.data===j&&(i+=(/\?/.test(i)?"&":"?")+b.jsonp+"="+g))),b.url=i,b.data=j,a[g]=function(a){f=[a]},b.complete=[function(){a[g]=h;if(h)f&&d.isFunction(h)&&a[g](f[0]);else try{delete a[g]}catch(b){}},b.complete],b.converters["script json"]=function(){f||d.error(g+" was not called");return f[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript"},contents:{script:/javascript/},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.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 bM=d.now(),bN={},bO,bP;d.ajaxSettings.xhr=a.ActiveXObject?function(){if(a.location.protocol!=="file:")try{return new a.XMLHttpRequest}catch(b){}try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(c){}}:function(){return new a.XMLHttpRequest};try{bP=d.ajaxSettings.xhr()}catch(bQ){}d.support.ajax=!!bP,d.support.cors=bP&&"withCredentials"in bP,bP=b,d.support.ajax&&d.ajaxTransport(function(b){if(!b.crossDomain||d.support.cors){var c;return{send:function(e,f){bO||(bO=1,d(a).bind("unload",function(){d.each(bN,function(a,b){b.onreadystatechange&&b.onreadystatechange(1)})}));var g=b.xhr(),h;b.username?g.open(b.type,b.url,b.async,b.username,b.password):g.open(b.type,b.url,b.async),(!b.crossDomain||b.hasContent)&&!e["x-requested-with"]&&(e["x-requested-with"]="XMLHttpRequest");try{d.each(e,function(a,b){g.setRequestHeader(a,b)})}catch(i){}g.send(b.hasContent&&b.data||null),c=function(a,e){if(c&&(e||g.readyState===4)){c=0,h&&(g.onreadystatechange=d.noop,delete bN[h]);if(e)g.readyState!==4&&g.abort();else{var i=g.status,j,k=g.getAllResponseHeaders(),l={},m=g.responseXML;m&&m.documentElement&&(l.xml=m),l.text=g.responseText;try{j=g.statusText}catch(n){j=""}i=i===0?!b.crossDomain||j?k?304:0:302:i==1223?204:i,f(i,j,l,k)}}},b.async&&g.readyState!==4?(h=bM++,bN[h]=g,g.onreadystatechange=c):c()},abort:function(){c&&c(0,1)}}}});var bR={},bS=/^(?:toggle|show|hide)$/,bT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,bU,bV=[["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(bW("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",bX(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(bW("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(bW("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=bX(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(bS.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=bT.exec(e),j=f.cur()||0;if(i){var k=parseFloat(i[2]),l=i[3]||"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:bW("show",1),slideUp:bW("hide",1),slideToggle:bW("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=parseFloat(d.css(this.elem,this.prop));return a||0},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||"px",this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!bU&&(bU=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(bU),bU=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 bY=/^t(?:able|d|h)$/i,bZ=/^(?: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=b$(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||!bY.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=bZ.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&&(!bZ.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=b$(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=b$(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")}})})(window); -
trunk/themes/default/template/include/datepicker.inc.tpl
r8162 r9172 1 1 2 2 {combine_script id='jquery' load='footer' path='themes/default/js/jquery.min.js'} 3 {combine_script id='jquery.ui' load='footer' require='jquery' path='themes/default/js/ui/ packed/ui.core.packed.js'}4 {combine_script id='jquery.ui.datepicker' load='footer' require='jquery.ui' path='themes/default/js/ui/ packed/ui.datepicker.packed.js'}3 {combine_script id='jquery.ui' load='footer' require='jquery' path='themes/default/js/ui/jquery.ui.min.js'} 4 {combine_script id='jquery.ui.datepicker' load='footer' require='jquery.ui' path='themes/default/js/ui/minified/jquery.ui.datepicker.min.js'} 5 5 {combine_script id='datepicker.js' load='footer' require='jquery.ui.datepicker' path='themes/default/js/datepicker.js'} 6 6 7 {assign var="datepicker_language" value="themes/default/js/ui/i18n/ ui.datepicker-`$lang_info.code`.js"}7 {assign var="datepicker_language" value="themes/default/js/ui/i18n/jquery.ui.datepicker-`$lang_info.code`.js"} 8 8 9 9 {if "PHPWG_ROOT_PATH"|@constant|@cat:$datepicker_language|@file_exists} … … 11 11 {/if} 12 12 13 {combine_css path="themes/default/js/ui/theme/ ui.datepicker.css"}13 {combine_css path="themes/default/js/ui/theme/jquery.ui.datepicker.css"} 14 14 15 15 {footer_script} -
trunk/themes/default/template/include/resize.inc.tpl
r8162 r9172 1 1 {combine_script id='jquery' load='async' path='themes/default/js/jquery.min.js'} 2 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ui/ packed/ui.core.packed.js'}3 {combine_script id='jquery.ui.resizable' load='async' require='jquery.ui' path='themes/default/js/ui/ packed/ui.resizable.packed.js'}2 {combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ui/jquery.ui.min.js'} 3 {combine_script id='jquery.ui.resizable' load='async' require='jquery.ui' path='themes/default/js/ui/minified/jquery.ui.resizable.min.js'} 4 4 5 5 {* Resize possible *}
Note: See TracChangeset
for help on using the changeset viewer.