約 4,233,612 件
https://w.atwiki.jp/kakis/pages/8469.html
elsa /// / 躁な 2 \ 17 seren klel els \ 躁 \ [ iyuan ] \ 躁な \
https://w.atwiki.jp/kraftwerk_wiki/pages/30.html
歌詞 英語 We re charging our battery And now we re full of energy we are the robots We re functioning automatik And we are dancing mechanik we are the robots Ja tvoi sluga Ja tvoi rabotnik We are programmed just to do anything you want us to we are the robots We re functioning automatic and we are dancing mechanic we are the robots Ja tvoi sluga Ja tvoi rabotnik We are the robots 独逸語 Wir laden unsre Batterie jetzt sind wir voller Energie Wir sind die Roboter Wir funktioniern automatik jetzt wolln wir tanzen mechanik Wir sind die Roboter ja tvoi sluga ja tvoi rabotnik Wir sind auf alles programmiert und was du willst wird ausgeführt Wir sind die Roboter Wir funktioniern automatik jetzt wolln wir tanzen mechanik Wir sind die Roboter
https://w.atwiki.jp/psmovie/pages/554.html
Hotel HigeNekoCV Hotel HigeNekoCV 主催:HigeNeko 編集:HigeNeko 公開日:2009.1.22 出演者 hondana Riz. Maid Bob kUzu Eel(ValieaL) ED(Jako) HigeNeko SEVEN Saizen(Fujimura) Earth
https://w.atwiki.jp/hpbot/pages/153.html
暴れ柳<自動> URL:https //twitter.com/WhompingWbot 説明書:http //nanos.jp/sukumo/page/11/ 注意:捏造です。説明書を読んでからフォローお願いします。 (製作者:@somei0318)
https://w.atwiki.jp/fattencho/pages/29.html
/*! * jQuery JavaScript Library v1.4.3 * http //jquery.com/ * * Copyright 2010, John Resig * Dual licensed under the MIT or GPL Version 2 licenses. * http //jquery.org/license * * Includes Sizzle.js * http //sizzlejs.com/ * Copyright 2010, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * * Date Thu Oct 14 23 10 06 2010 -0400 */ (function( window, undefined ) { // Use the correct document accordingly with window argument (sandbox) var document = window.document; var jQuery = (function() { // Define a local copy of jQuery var jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor enhanced return new jQuery.fn.init( selector, context ); }, // Map over jQuery in case of overwrite _jQuery = window.jQuery, // Map over the $ in case of overwrite _$ = window.$, // A central reference to the root jQuery(document) rootjQuery, // A simple way to check for HTML strings or ID strings // (both of which we optimize for) quickExpr = /^(? [^ ]*( [\w\W]+ )[^ ]*$|#([\w\-]+)$)/, // Is it a simple selector isSimple = /^.[^ #\[\.,]*$/, // Check if a string has a non-whitespace character in it rnotwhite = /\S/, rwhite = /\s/, // Used for trimming whitespace trimLeft = /^\s+/, trimRight = /\s+$/, // Check for non-word characters rnonword = /\W/, // Check for digits rdigit = /\d/, // Match a standalone tag rsingleTag = /^ (\w+)\s*\/? (? \/\1 )?$/, // JSON RegExp rvalidchars = /^[\], {}\s]*$/, rvalidescape = /\\(? ["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(? \.\d*)?(? [eE][+\-]?\d+)?/g, rvalidbraces = /(? ^| |,)(? \s*\[)+/g, // Useragent RegExp rwebkit = /(webkit)[ \/]([\w.]+)/, ropera = /(opera)(? .*version)?[ \/]([\w.]+)/, rmsie = /(msie) ([\w.]+)/, rmozilla = /(mozilla)(? .*? rv ([\w.]+))?/, // Keep a UserAgent string for use with jQuery.browser userAgent = navigator.userAgent, // For matching the engine and version of the browser browserMatch, // Has the ready events already been bound? readyBound = false, // The functions to execute on DOM ready readyList = [], // The ready event handler DOMContentLoaded, // Save a reference to some core methods toString = Object.prototype.toString, hasOwn = Object.prototype.hasOwnProperty, push = Array.prototype.push, slice = Array.prototype.slice, trim = String.prototype.trim, indexOf = Array.prototype.indexOf, // [[Class]] - type pairs class2type = {}; jQuery.fn = jQuery.prototype = { init function( selector, context ) { var match, elem, ret, doc; // Handle $(""), $(null), or $(undefined) if ( !selector ) { return this; } // Handle $(DOMElement) if ( selector.nodeType ) { this.context = this[0] = selector; this.length = 1; return this; } // The body element only exists once, optimize finding it if ( selector === "body" !context document.body ) { this.context = document; this[0] = document.body; this.selector = "body"; this.length = 1; return this; } // Handle HTML strings if ( typeof selector === "string" ) { // Are we dealing with HTML string or an ID? match = quickExpr.exec( selector ); // Verify a match, and that no context was specified for #id if ( match (match[1] || !context) ) { // HANDLE $(html) - $(array) if ( match[1] ) { doc = (context ? context.ownerDocument || context document); // If a single string is passed in and it s a single tag // just do a createElement and skip the rest ret = rsingleTag.exec( selector ); if ( ret ) { if ( jQuery.isPlainObject( context ) ) { selector = [ document.createElement( ret[1] ) ]; jQuery.fn.attr.call( selector, context, true ); } else { selector = [ doc.createElement( ret[1] ) ]; } } else { ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); selector = (ret.cacheable ? ret.fragment.cloneNode(true) ret.fragment).childNodes; } return jQuery.merge( this, selector ); // HANDLE $("#id") } else { elem = document.getElementById( match[2] ); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 if ( elem elem.parentNode ) { // Handle the case where IE and Opera return items // by name instead of ID if ( elem.id !== match[2] ) { return rootjQuery.find( selector ); } // Otherwise, we inject the element directly into the jQuery object this.length = 1; this[0] = elem; } this.context = document; this.selector = selector; return this; } // HANDLE $("TAG") } else if ( !context !rnonword.test( selector ) ) { this.selector = selector; this.context = document; selector = document.getElementsByTagName( selector ); return jQuery.merge( this, selector ); // HANDLE $(expr, $(...)) } else if ( !context || context.jquery ) { return (context || rootjQuery).find( selector ); // HANDLE $(expr, context) // (which is just equivalent to $(context).find(expr) } else { return jQuery( context ).find( selector ); } // HANDLE $(function) // Shortcut for document ready } else if ( jQuery.isFunction( selector ) ) { return rootjQuery.ready( selector ); } if (selector.selector !== undefined) { this.selector = selector.selector; this.context = selector.context; } return jQuery.makeArray( selector, this ); }, // Start with an empty selector selector "", // The current version of jQuery being used jquery "1.4.3", // The default length of a jQuery object is 0 length 0, // The number of elements contained in the matched element set size function() { return this.length; }, toArray function() { return slice.call( this, 0 ); }, // Get the Nth element in the matched element set OR // Get the whole matched element set as a clean array get function( num ) { return num == null ? // Return a clean array this.toArray() // Return just the object ( num 0 ? this.slice(num)[ 0 ] this[ num ] ); }, // Take an array of elements and push it onto the stack // (returning the new matched element set) pushStack function( elems, name, selector ) { // Build a new jQuery matched element set var ret = jQuery(); if ( jQuery.isArray( elems ) ) { push.apply( ret, elems ); } else { jQuery.merge( ret, elems ); } // Add the old object onto the stack (as a reference) ret.prevObject = this; ret.context = this.context; if ( name === "find" ) { ret.selector = this.selector + (this.selector ? " " "") + selector; } else if ( name ) { ret.selector = this.selector + "." + name + "(" + selector + ")"; } // Return the newly-formed element set return ret; }, // Execute a callback for every element in the matched set. // (You can seed the arguments with an array of args, but this is // only used internally.) each function( callback, args ) { return jQuery.each( this, callback, args ); }, ready function( fn ) { // Attach the listeners jQuery.bindReady(); // If the DOM is already ready if ( jQuery.isReady ) { // Execute the function immediately fn.call( document, jQuery ); // Otherwise, remember the function for later } else if ( readyList ) { // Add the function to the wait list readyList.push( fn ); } return this; }, eq function( i ) { return i === -1 ? this.slice( i ) this.slice( i, +i + 1 ); }, first function() { return this.eq( 0 ); }, last function() { return this.eq( -1 ); }, slice function() { return this.pushStack( slice.apply( this, arguments ), "slice", slice.call(arguments).join(",") ); }, map function( callback ) { return this.pushStack( jQuery.map(this, function( elem, i ) { return callback.call( elem, i, elem ); })); }, end function() { return this.prevObject || jQuery(null); }, // For internal use only. // Behaves like an Array s method, not like a jQuery method. push push, sort [].sort, splice [].splice }; // Give the init function the jQuery prototype for later instantiation jQuery.fn.init.prototype = jQuery.fn; jQuery.extend = jQuery.fn.extend = function() { // copy reference to target object var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options, name, src, copy, copyIsArray; // Handle a deep copy situation if ( typeof target === "boolean" ) { deep = target; target = arguments[1] || {}; // skip the boolean and the target i = 2; } // Handle case when target is a string or something (possible in deep copy) if ( typeof target !== "object" !jQuery.isFunction(target) ) { target = {}; } // extend jQuery itself if only one argument is passed if ( length === i ) { target = this; --i; } for ( ; i length; i++ ) { // Only deal with non-null/undefined values if ( (options = arguments[ i ]) != null ) { // Extend the base object for ( name in options ) { src = target[ name ]; copy = options[ name ]; // Prevent never-ending loop if ( target === copy ) { continue; } // Recurse if we re merging plain objects or arrays if ( deep copy ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { if ( copyIsArray ) { copyIsArray = false; clone = src jQuery.isArray(src) ? src []; } else { clone = src jQuery.isPlainObject(src) ? src {}; } // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); // Don t bring in undefined values } else if ( copy !== undefined ) { target[ name ] = copy; } } } } // Return the modified object return target; }; jQuery.extend({ noConflict function( deep ) { window.$ = _$; if ( deep ) { window.jQuery = _jQuery; } return jQuery; }, // Is the DOM ready to be used? Set to true once it occurs. isReady false, // A counter to track how many items to wait for before // the ready event fires. See #6781 readyWait 1, // Handle when the DOM is ready ready function( wait ) { // A third-party is pushing the ready event forwards if ( wait === true ) { jQuery.readyWait--; } // Make sure that the DOM is not already loaded if ( !jQuery.readyWait || (wait !== true !jQuery.isReady) ) { // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). if ( !document.body ) { return setTimeout( jQuery.ready, 1 ); } // Remember that the DOM is ready jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be if ( wait !== true --jQuery.readyWait 0 ) { return; } // If there are functions bound, to execute if ( readyList ) { // Execute all of them var fn, i = 0; while ( (fn = readyList[ i++ ]) ) { fn.call( document, jQuery ); } // Reset the list of functions readyList = null; } // Trigger any bound ready events if ( jQuery.fn.triggerHandler ) { jQuery( document ).triggerHandler( "ready" ); } } }, bindReady function() { if ( readyBound ) { return; } readyBound = true; // Catch cases where $(document).ready() is called after the // browser event has already occurred. if ( document.readyState === "complete" ) { // Handle it asynchronously to allow scripts the opportunity to delay ready return setTimeout( jQuery.ready, 1 ); } // Mozilla, Opera and webkit nightlies currently support this event if ( document.addEventListener ) { // Use the handy event callback document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); // A fallback to window.onload, that will always work window.addEventListener( "load", jQuery.ready, false ); // If IE event model is used } else if ( document.attachEvent ) { // ensure firing before onload, // maybe late but safe also for iframes document.attachEvent("onreadystatechange", DOMContentLoaded); // A fallback to window.onload, that will always work window.attachEvent( "onload", jQuery.ready ); // If IE and not a frame // continually check to see if the document is ready var toplevel = false; try { toplevel = window.frameElement == null; } catch(e) {} if ( document.documentElement.doScroll toplevel ) { doScrollCheck(); } } }, // See test/unit/core.js for details concerning isFunction. // Since version 1.3, DOM methods and functions like alert // aren t supported. They return false on IE (#2968). isFunction function( obj ) { return jQuery.type(obj) === "function"; }, isArray Array.isArray || function( obj ) { return jQuery.type(obj) === "array"; }, // A crude way of determining if an object is a window isWindow function( obj ) { return obj typeof obj === "object" "setInterval" in obj; }, isNaN function( obj ) { return obj == null || !rdigit.test( obj ) || isNaN( obj ); }, type function( obj ) { return obj == null ? String( obj ) class2type[ toString.call(obj) ] || "object"; }, isPlainObject function( obj ) { // Must be an Object. // Because of IE, we also have to check the presence of the constructor property. // Make sure that DOM nodes and window objects don t pass through, as well if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { return false; } // Not own constructor property must be Object if ( obj.constructor !hasOwn.call(obj, "constructor") !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { return false; } // Own properties are enumerated firstly, so to speed up, // if last one is own, then all properties are own. var key; for ( key in obj ) {} return key === undefined || hasOwn.call( obj, key ); }, isEmptyObject function( obj ) { for ( var name in obj ) { return false; } return true; }, error function( msg ) { throw msg; }, parseJSON function( data ) { if ( typeof data !== "string" || !data ) { return null; } // Make sure leading/trailing whitespace is removed (IE can t handle it) data = jQuery.trim( data ); // Make sure the incoming data is actual JSON // Logic borrowed from http //json.org/json2.js if ( rvalidchars.test(data.replace(rvalidescape, "@") .replace(rvalidtokens, "]") .replace(rvalidbraces, "")) ) { // Try to use the native JSON parser first return window.JSON window.JSON.parse ? window.JSON.parse( data ) (new Function("return " + data))(); } else { jQuery.error( "Invalid JSON " + data ); } }, noop function() {}, // Evalulates a script in a global context globalEval function( data ) { if ( data rnotwhite.test(data) ) { // Inspired by code by Andrea Giammarchi // http //webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html var head = document.getElementsByTagName("head")[0] || document.documentElement, script = document.createElement("script"); script.type = "text/javascript"; if ( jQuery.support.scriptEval ) { script.appendChild( document.createTextNode( data ) ); } else { script.text = data; } // Use insertBefore instead of appendChild to circumvent an IE6 bug. // This arises when a base node is used (#2709). head.insertBefore( script, head.firstChild ); head.removeChild( script ); } }, nodeName function( elem, name ) { return elem.nodeName elem.nodeName.toUpperCase() === name.toUpperCase(); }, // args is for internal usage only each function( object, callback, args ) { var name, i = 0, length = object.length, isObj = length === undefined || jQuery.isFunction(object); if ( args ) { if ( isObj ) { for ( name in object ) { if ( callback.apply( object[ name ], args ) === false ) { break; } } } else { for ( ; i length; ) { if ( callback.apply( object[ i++ ], args ) === false ) { break; } } } // A special, fast, case for the most common use of each } else { if ( isObj ) { for ( name in object ) { if ( callback.call( object[ name ], name, object[ name ] ) === false ) { break; } } } else { for ( var value = object[0]; i length callback.call( value, i, value ) !== false; value = object[++i] ) {} } } return object; }, // Use native String.trim function wherever possible trim trim ? function( text ) { return text == null ? "" trim.call( text ); } // Otherwise use our own trimming functionality function( text ) { return text == null ? "" text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); }, // results is for internal usage only makeArray function( array, results ) { var ret = results || []; if ( array != null ) { // The window, strings (and functions) also have length // The extra typeof function check is to prevent crashes // in Safari 2 (See #3039) // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 var type = jQuery.type(array); if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { push.call( ret, array ); } else { jQuery.merge( ret, array ); } } return ret; }, inArray function( elem, array ) { if ( array.indexOf ) { return array.indexOf( elem ); } for ( var i = 0, length = array.length; i length; i++ ) { if ( array[ i ] === elem ) { return i; } } return -1; }, merge function( first, second ) { var i = first.length, j = 0; if ( typeof second.length === "number" ) { for ( var l = second.length; j l; j++ ) { first[ i++ ] = second[ j ]; } } else { while ( second[j] !== undefined ) { first[ i++ ] = second[ j++ ]; } } first.length = i; return first; }, grep function( elems, callback, inv ) { var ret = [], retVal; inv = !!inv; // Go through the array, only saving the items // that pass the validator function for ( var i = 0, length = elems.length; i length; i++ ) { retVal = !!callback( elems[ i ], i ); if ( inv !== retVal ) { ret.push( elems[ i ] ); } } return ret; }, // arg is for internal usage only map function( elems, callback, arg ) { var ret = [], value; // Go through the array, translating each of the items to their // new value (or values). for ( var i = 0, length = elems.length; i length; i++ ) { value = callback( elems[ i ], i, arg ); if ( value != null ) { ret[ ret.length ] = value; } } return ret.concat.apply( [], ret ); }, // A global GUID counter for objects guid 1, proxy function( fn, proxy, thisObject ) { if ( arguments.length === 2 ) { if ( typeof proxy === "string" ) { thisObject = fn; fn = thisObject[ proxy ]; proxy = undefined; } else if ( proxy !jQuery.isFunction( proxy ) ) { thisObject = proxy; proxy = undefined; } } if ( !proxy fn ) { proxy = function() { return fn.apply( thisObject || this, arguments ); }; } // Set the guid of unique handler to the same of original handler, so it can be removed if ( fn ) { proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; } // So proxy can be declared as an argument return proxy; }, // Mutifunctional method to get and set values to a collection // The value/s can be optionally by executed if its a function access function( elems, key, value, exec, fn, pass ) { var length = elems.length; // Setting many attributes if ( typeof key === "object" ) { for ( var k in key ) { jQuery.access( elems, k, key[k], exec, fn, value ); } return elems; } // Setting one attribute if ( value !== undefined ) { // Optionally, function values get executed if exec is true exec = !pass exec jQuery.isFunction(value); for ( var i = 0; i length; i++ ) { fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) value, pass ); } return elems; } // Getting an attribute return length ? fn( elems[0], key ) undefined; }, now function() { return (new Date()).getTime(); }, // Use of jQuery.browser is frowned upon. // More details http //docs.jquery.com/Utilities/jQuery.browser uaMatch function( ua ) { ua = ua.toLowerCase(); var match = rwebkit.exec( ua ) || ropera.exec( ua ) || rmsie.exec( ua ) || ua.indexOf("compatible") 0 rmozilla.exec( ua ) || []; return { browser match[1] || "", version match[2] || "0" }; }, browser {} }); // Populate the class2type map jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); }); browserMatch = jQuery.uaMatch( userAgent ); if ( browserMatch.browser ) { jQuery.browser[ browserMatch.browser ] = true; jQuery.browser.version = browserMatch.version; } // Deprecated, use jQuery.browser.webkit instead if ( jQuery.browser.webkit ) { jQuery.browser.safari = true; } if ( indexOf ) { jQuery.inArray = function( elem, array ) { return indexOf.call( array, elem ); }; } // Verify that \s matches non-breaking spaces // (IE fails on this test) if ( !rwhite.test( "\xA0" ) ) { trimLeft = /^[\s\xA0]+/; trimRight = /[\s\xA0]+$/; } // All jQuery objects should point back to these rootjQuery = jQuery(document); // Cleanup functions for the document ready method if ( document.addEventListener ) { DOMContentLoaded = function() { document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); jQuery.ready(); }; } else if ( document.attachEvent ) { DOMContentLoaded = function() { // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). if ( document.readyState === "complete" ) { document.detachEvent( "onreadystatechange", DOMContentLoaded ); jQuery.ready(); } }; } // The DOM ready check for Internet Explorer function doScrollCheck() { if ( jQuery.isReady ) { return; } try { // If IE is used, use the trick by Diego Perini // http //javascript.nwbox.com/IEContentLoaded/ document.documentElement.doScroll("left"); } catch(e) { setTimeout( doScrollCheck, 1 ); return; } // and execute any waiting functions jQuery.ready(); } // Expose jQuery to the global object return (window.jQuery = window.$ = jQuery); })(); (function() { jQuery.support = {}; var root = document.documentElement, script = document.createElement("script"), div = document.createElement("div"), id = "script" + jQuery.now(); div.style.display = "none"; div.innerHTML = " link/ table /table a href= /a style= color red;float left;opacity .55; a /a input type= checkbox / "; var all = div.getElementsByTagName("*"), a = div.getElementsByTagName("a")[0], select = document.createElement("select"), opt = select.appendChild( document.createElement("option") ); // Can t get basic test support if ( !all || !all.length || !a ) { return; } jQuery.support = { // IE strips leading whitespace when .innerHTML is used leadingWhitespace div.firstChild.nodeType === 3, // Make sure that tbody elements aren t automatically inserted // IE will insert them into empty tables tbody !div.getElementsByTagName("tbody").length, // Make sure that link elements get serialized correctly by innerHTML // This requires a wrapper element in IE htmlSerialize !!div.getElementsByTagName("link").length, // Get the style information from getAttribute // (IE uses .cssText insted) style /red/.test( a.getAttribute("style") ), // Make sure that URLs aren t manipulated // (IE normalizes it by default) hrefNormalized a.getAttribute("href") === "/a", // Make sure that element opacity exists // (IE uses filter instead) // Use a regex to work around a WebKit issue. See #5145 opacity /^0.55$/.test( a.style.opacity ), // Verify style float existence // (IE uses styleFloat instead of cssFloat) cssFloat !!a.style.cssFloat, // Make sure that if no value is specified for a checkbox // that it defaults to "on". // (WebKit defaults to "" instead) checkOn div.getElementsByTagName("input")[0].value === "on", // Make sure that a selected-by-default option has a working selected property. // (WebKit defaults to false instead of true, IE too, if it s in an optgroup) optSelected opt.selected, // Will be defined later optDisabled false, checkClone false, scriptEval false, noCloneEvent true, boxModel null, inlineBlockNeedsLayout false, shrinkWrapBlocks false, reliableHiddenOffsets true }; // Make sure that the options inside disabled selects aren t marked as disabled // (WebKit marks them as diabled) select.disabled = true; jQuery.support.optDisabled = !opt.disabled; script.type = "text/javascript"; try { script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); } catch(e) {} root.insertBefore( script, root.firstChild ); // Make sure that the execution of code works by injecting a script // tag with appendChild/createTextNode // (IE doesn t support this, fails, and uses .text instead) if ( window[ id ] ) { jQuery.support.scriptEval = true; delete window[ id ]; } root.removeChild( script ); if ( div.attachEvent div.fireEvent ) { div.attachEvent("onclick", function click() { // Cloning a node shouldn t copy over any // bound event handlers (IE does this) jQuery.support.noCloneEvent = false; div.detachEvent("onclick", click); }); div.cloneNode(true).fireEvent("onclick"); } div = document.createElement("div"); div.innerHTML = " input type= radio name= radiotest checked= checked / "; var fragment = document.createDocumentFragment(); fragment.appendChild( div.firstChild ); // WebKit doesn t clone checked state correctly in fragments jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked; // Figure out if the W3C box model works as expected // document.body must exist before we can do this jQuery(function() { var div = document.createElement("div"); div.style.width = div.style.paddingLeft = "1px"; document.body.appendChild( div ); jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; if ( "zoom" in div.style ) { // Check if natively block-level elements act like inline-block // elements when setting their display to inline and giving // them layout // (IE 8 does this) div.style.display = "inline"; div.style.zoom = 1; jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2; // Check if elements with layout shrink-wrap their children // (IE 6 does this) div.style.display = ""; div.innerHTML = " div style= width 4px; /div "; jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2; } div.innerHTML = " table tr td style= padding 0;display none /td td t /td /tr /table "; var tds = div.getElementsByTagName("td"); // Check if table cells still have offsetWidth/Height when they are set // to display none and there are still other visible table cells in a // table row; if so, offsetWidth/Height are not reliable for use when // determining if an element has been hidden directly using // display none (it is still safe to use offsets if a parent element is // hidden; don safety goggles and see bug #4512 for more information). // (only IE 8 fails this test) jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0; tds[0].style.display = ""; tds[1].style.display = "none"; // Check if empty table cells still have offsetWidth/Height // (IE 8 fail this test) jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets tds[0].offsetHeight === 0; div.innerHTML = ""; document.body.removeChild( div ).style.display = "none"; div = tds = null; }); // Technique from Juriy Zaytsev // http //thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ var eventSupported = function( eventName ) { var el = document.createElement("div"); eventName = "on" + eventName; var isSupported = (eventName in el); if ( !isSupported ) { el.setAttribute(eventName, "return;"); isSupported = typeof el[eventName] === "function"; } el = null; return isSupported; }; jQuery.support.submitBubbles = eventSupported("submit"); jQuery.support.changeBubbles = eventSupported("change"); // release memory in IE root = script = div = all = a = null; })(); jQuery.props = { "for" "htmlFor", "class" "className", readonly "readOnly", maxlength "maxLength", cellspacing "cellSpacing", rowspan "rowSpan", colspan "colSpan", tabindex "tabIndex", usemap "useMap", frameborder "frameBorder" }; var windowData = {}, rbrace = /^(? \{.*\}|\[.*\])$/; jQuery.extend({ cache {}, // Please use with caution uuid 0, // Unique for each copy of jQuery on the page expando "jQuery" + jQuery.now(), // The following elements throw uncatchable exceptions if you // attempt to add expando properties to them. noData { "embed" true, // Ban all objects except for Flash (which handle expandos) "object" "clsid D27CDB6E-AE6D-11cf-96B8-444553540000", "applet" true }, data function( elem, name, data ) { if ( !jQuery.acceptData( elem ) ) { return; } elem = elem == window ? windowData elem; var isNode = elem.nodeType, id = isNode ? elem[ jQuery.expando ] null, cache = jQuery.cache, thisCache; if ( isNode !id typeof name === "string" data === undefined ) { return; } // Get the data from the object directly if ( !isNode ) { cache = elem; // Compute a unique ID for the element } else if ( !id ) { elem[ jQuery.expando ] = id = ++jQuery.uuid; } // Avoid generating a new cache unless none exists and we // want to manipulate it. if ( typeof name === "object" ) { if ( isNode ) { cache[ id ] = jQuery.extend(cache[ id ], name); } else { jQuery.extend( cache, name ); } } else if ( isNode !cache[ id ] ) { cache[ id ] = {}; } thisCache = isNode ? cache[ id ] cache; // Prevent overriding the named cache with undefined values if ( data !== undefined ) { thisCache[ name ] = data; } return typeof name === "string" ? thisCache[ name ] thisCache; }, removeData function( elem, name ) { if ( !jQuery.acceptData( elem ) ) { return; } elem = elem == window ? windowData elem; var isNode = elem.nodeType, id = isNode ? elem[ jQuery.expando ] elem, cache = jQuery.cache, thisCache = isNode ? cache[ id ] id; // If we want to remove a specific section of the element s data if ( name ) { if ( thisCache ) { // Remove the section of cache data delete thisCache[ name ]; // If we ve removed all the data, remove the element s cache if ( isNode jQuery.isEmptyObject(thisCache) ) { jQuery.removeData( elem ); } } // Otherwise, we want to remove all of the element s data } else { if ( isNode jQuery.support.deleteExpando ) { delete elem[ jQuery.expando ]; } else if ( elem.removeAttribute ) { elem.removeAttribute( jQuery.expando ); // Completely remove the data cache } else if ( isNode ) { delete cache[ id ]; // Remove all fields from the object } else { for ( var n in elem ) { delete elem[ n ]; } } } }, // A method for determining if a DOM node can handle the data expando acceptData function( elem ) { if ( elem.nodeName ) { var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; if ( match ) { return !(match === true || elem.getAttribute("classid") !== match); } } return true; } }); jQuery.fn.extend({ data function( key, value ) { if ( typeof key === "undefined" ) { return this.length ? jQuery.data( this[0] ) null; } else if ( typeof key === "object" ) { return this.each(function() { jQuery.data( this, key ); }); } var parts = key.split("."); parts[1] = parts[1] ? "." + parts[1] ""; if ( value === undefined ) { var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); // Try to fetch any internally stored data first if ( data === undefined this.length ) { data = jQuery.data( this[0], key ); // If nothing was found internally, try to fetch any // data from the HTML5 data-* attribute if ( data === undefined this[0].nodeType === 1 ) { data = this[0].getAttribute( "data-" + key ); if ( typeof data === "string" ) { try { data = data === "true" ? true data === "false" ? false data === "null" ? null !jQuery.isNaN( data ) ? parseFloat( data ) rbrace.test( data ) ? jQuery.parseJSON( data ) data; } catch( e ) {} } else { data = undefined; } } } return data === undefined parts[1] ? this.data( parts[0] ) data; } else { return this.each(function() { var $this = jQuery( this ), args = [ parts[0], value ]; $this.triggerHandler( "setData" + parts[1] + "!", args ); jQuery.data( this, key, value ); $this.triggerHandler( "changeData" + parts[1] + "!", args ); }); } }, removeData function( key ) { return this.each(function() { jQuery.removeData( this, key ); }); } }); jQuery.extend({ queue function( elem, type, data ) { if ( !elem ) { return; } type = (type || "fx") + "queue"; var q = jQuery.data( elem, type ); // Speed up dequeue by getting out quickly if this is just a lookup if ( !data ) { return q || []; } if ( !q || jQuery.isArray(data) ) { q = jQuery.data( elem, type, jQuery.makeArray(data) ); } else { q.push( data ); } return q; }, dequeue function( elem, type ) { type = type || "fx"; var queue = jQuery.queue( elem, type ), fn = queue.shift(); // If the fx queue is dequeued, always remove the progress sentinel if ( fn === "inprogress" ) { fn = queue.shift(); } if ( fn ) { // Add a progress sentinel to prevent the fx queue from being // automatically dequeued if ( type === "fx" ) { queue.unshift("inprogress"); } fn.call(elem, function() { jQuery.dequeue(elem, type); }); } } }); jQuery.fn.extend({ queue function( type, data ) { if ( typeof type !== "string" ) { data = type; type = "fx"; } if ( data === undefined ) { return jQuery.queue( this[0], type ); } return this.each(function( i ) { var queue = jQuery.queue( this, type, data ); if ( type === "fx" queue[0] !== "inprogress" ) { jQuery.dequeue( this, type ); } }); }, dequeue function( type ) { return this.each(function() { jQuery.dequeue( this, type ); }); }, // Based off of the plugin by Clint Helfers, with permission. // http //blindsignals.com/index.php/2009/07/jquery-delay/ delay function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[time] || time time; type = type || "fx"; return this.queue( type, function() { var elem = this; setTimeout(function() { jQuery.dequeue( elem, type ); }, time ); }); }, clearQueue function( type ) { return this.queue( type || "fx", [] ); } }); var rclass = /[\n\t]/g, rspaces = /\s+/, rreturn = /\r/g, rspecialurl = /^(? href|src|style)$/, rtype = /^(? button|input)$/i, rfocusable = /^(? button|input|object|select|textarea)$/i, rclickable = /^a(? rea)?$/i, rradiocheck = /^(? radio|checkbox)$/i; jQuery.fn.extend({ attr function( name, value ) { return jQuery.access( this, name, value, true, jQuery.attr ); }, removeAttr function( name, fn ) { return this.each(function(){ jQuery.attr( this, name, "" ); if ( this.nodeType === 1 ) { this.removeAttribute( name ); } }); }, addClass function( value ) { if ( jQuery.isFunction(value) ) { return this.each(function(i) { var self = jQuery(this); self.addClass( value.call(this, i, self.attr("class")) ); }); } if ( value typeof value === "string" ) { var classNames = (value || "").split( rspaces ); for ( var i = 0, l = this.length; i l; i++ ) { var elem = this[i]; if ( elem.nodeType === 1 ) { if ( !elem.className ) { elem.className = value; } else { var className = " " + elem.className + " ", setClass = elem.className; for ( var c = 0, cl = classNames.length; c cl; c++ ) { if ( className.indexOf( " " + classNames[c] + " " ) 0 ) { setClass += " " + classNames[c]; } } elem.className = jQuery.trim( setClass ); } } } } return this; }, removeClass function( value ) { if ( jQuery.isFunction(value) ) { return this.each(function(i) { var self = jQuery(this); self.removeClass( value.call(this, i, self.attr("class")) ); }); } if ( (value typeof value === "string") || value === undefined ) { var classNames = (value || "").split( rspaces ); for ( var i = 0, l = this.length; i l; i++ ) { var elem = this[i]; if ( elem.nodeType === 1 elem.className ) { if ( value ) { var className = (" " + elem.className + " ").replace(rclass, " "); for ( var c = 0, cl = classNames.length; c cl; c++ ) { className = className.replace(" " + classNames[c] + " ", " "); } elem.className = jQuery.trim( className ); } else { elem.className = ""; } } } } return this; }, toggleClass function( value, stateVal ) { var type = typeof value, isBool = typeof stateVal === "boolean"; if ( jQuery.isFunction( value ) ) { return this.each(function(i) { var self = jQuery(this); self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal ); }); } return this.each(function() { if ( type === "string" ) { // toggle individual class names var className, i = 0, self = jQuery(this), state = stateVal, classNames = value.split( rspaces ); while ( (className = classNames[ i++ ]) ) { // check each className given, space seperated list state = isBool ? state !self.hasClass( className ); self[ state ? "addClass" "removeClass" ]( className ); } } else if ( type === "undefined" || type === "boolean" ) { if ( this.className ) { // store className if set jQuery.data( this, "__className__", this.className ); } // toggle whole className this.className = this.className || value === false ? "" jQuery.data( this, "__className__" ) || ""; } }); }, hasClass function( selector ) { var className = " " + selector + " "; for ( var i = 0, l = this.length; i l; i++ ) { if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) -1 ) { return true; } } return false; }, val function( value ) { if ( !arguments.length ) { var elem = this[0]; if ( elem ) { if ( jQuery.nodeName( elem, "option" ) ) { // attributes.value is undefined in Blackberry 4.7 but // uses .value. See #6932 var val = elem.attributes.value; return !val || val.specified ? elem.value elem.text; } // We need to handle select boxes special if ( jQuery.nodeName( elem, "select" ) ) { var index = elem.selectedIndex, values = [], options = elem.options, one = elem.type === "select-one"; // Nothing was selected if ( index 0 ) { return null; } // Loop through all the selected options for ( var i = one ? index 0, max = one ? index + 1 options.length; i max; i++ ) { var option = options[ i ]; // Don t return options that are disabled or in a disabled optgroup if ( option.selected (jQuery.support.optDisabled ? !option.disabled option.getAttribute("disabled") === null) (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { // Get the specific value for the option value = jQuery(option).val(); // We don t need an array for one selects if ( one ) { return value; } // Multi-Selects return an array values.push( value ); } } return values; } // Handle the case where in Webkit "" is returned instead of "on" if a value isn t specified if ( rradiocheck.test( elem.type ) !jQuery.support.checkOn ) { return elem.getAttribute("value") === null ? "on" elem.value; } // Everything else, we just grab the value return (elem.value || "").replace(rreturn, ""); } return undefined; } var isFunction = jQuery.isFunction(value); return this.each(function(i) { var self = jQuery(this), val = value; if ( this.nodeType !== 1 ) { return; } if ( isFunction ) { val = value.call(this, i, self.val()); } // Treat null/undefined as ""; convert numbers to string if ( val == null ) { val = ""; } else if ( typeof val === "number" ) { val += ""; } else if ( jQuery.isArray(val) ) { val = jQuery.map(val, function (value) { return value == null ? "" value + ""; }); } if ( jQuery.isArray(val) rradiocheck.test( this.type ) ) { this.checked = jQuery.inArray( self.val(), val ) = 0; } else if ( jQuery.nodeName( this, "select" ) ) { var values = jQuery.makeArray(val); jQuery( "option", this ).each(function() { this.selected = jQuery.inArray( jQuery(this).val(), values ) = 0; }); if ( !values.length ) { this.selectedIndex = -1; } } else { this.value = val; } }); } }); jQuery.extend({ attrFn { val true, css true, html true, text true, data true, width true, height true, offset true }, attr function( elem, name, value, pass ) { // don t set attributes on text and comment nodes if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { return undefined; } if ( pass name in jQuery.attrFn ) { return jQuery(elem)[name](value); } var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ), // Whether we are setting (or getting) set = value !== undefined; // Try to normalize/fix the name name = notxml jQuery.props[ name ] || name; // Only do all the following if this is a node (faster for style) if ( elem.nodeType === 1 ) { // These attributes require special treatment var special = rspecialurl.test( name ); // Safari mis-reports the default selected property of an option // Accessing the parent s selectedIndex property fixes it if ( name === "selected" !jQuery.support.optSelected ) { var parent = elem.parentNode; if ( parent ) { parent.selectedIndex; // Make sure that it also works with optgroups, see #5701 if ( parent.parentNode ) { parent.parentNode.selectedIndex; } } } // If applicable, access the attribute via the DOM 0 way // in checks fail in Blackberry 4.7 #6931 if ( (name in elem || elem[ name ] !== undefined) notxml !special ) { if ( set ) { // We can t allow the type property to be changed (since it causes problems in IE) if ( name === "type" rtype.test( elem.nodeName ) elem.parentNode ) { jQuery.error( "type property can t be changed" ); } if ( value === null ) { if ( elem.nodeType === 1 ) { elem.removeAttribute( name ); } } else { elem[ name ] = value; } } // browsers index elements by id/name on forms, give priority to attributes. if ( jQuery.nodeName( elem, "form" ) elem.getAttributeNode(name) ) { return elem.getAttributeNode( name ).nodeValue; } // elem.tabIndex doesn t always return the correct value when it hasn t been explicitly set // http //fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ if ( name === "tabIndex" ) { var attributeNode = elem.getAttributeNode( "tabIndex" ); return attributeNode attributeNode.specified ? attributeNode.value rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) elem.href ? 0 undefined; } return elem[ name ]; } if ( !jQuery.support.style notxml name === "style" ) { if ( set ) { elem.style.cssText = "" + value; } return elem.style.cssText; } if ( set ) { // convert the value to a string (all browsers do this but IE) see #1070 elem.setAttribute( name, "" + value ); } // Ensure that missing attributes return undefined // Blackberry 4.7 returns "" from getAttribute #6938 if ( !elem.attributes[ name ] (elem.hasAttribute !elem.hasAttribute( name )) ) { return undefined; } var attr = !jQuery.support.hrefNormalized notxml special ? // Some attributes require a special call on IE elem.getAttribute( name, 2 ) elem.getAttribute( name ); // Non-existent attributes return null, we normalize to undefined return attr === null ? undefined attr; } } }); var rnamespaces = /\.(.*)$/, rformElems = /^(? textarea|input|select)$/i, rperiod = /\./g, rspace = / /g, rescape = /[^\w\s.|`]/g, fcleanup = function( nm ) { return nm.replace(rescape, "\\$ "); }, focusCounts = { focusin 0, focusout 0 }; /* * A number of helper functions used for managing events. * Many of the ideas behind this code originated from * Dean Edwards addEvent library. */ jQuery.event = { // Bind an event to an element // Original by Dean Edwards add function( elem, types, handler, data ) { if ( elem.nodeType === 3 || elem.nodeType === 8 ) { return; } // For whatever reason, IE has trouble passing the window object // around, causing it to be cloned in the process if ( jQuery.isWindow( elem ) ( elem !== window !elem.frameElement ) ) { elem = window; } if ( handler === false ) { handler = returnFalse; } var handleObjIn, handleObj; if ( handler.handler ) { handleObjIn = handler; handler = handleObjIn.handler; } // Make sure that the function being executed has a unique ID if ( !handler.guid ) { handler.guid = jQuery.guid++; } // Init the element s event structure var elemData = jQuery.data( elem ); // If no elemData is found then we must be trying to bind to one of the // banned noData elements if ( !elemData ) { return; } // Use a key less likely to result in collisions for plain JS objects. // Fixes bug #7150. var eventKey = elem.nodeType ? "events" "__events__", events = elemData[ eventKey ], eventHandle = elemData.handle; if ( typeof events === "function" ) { // On plain objects events is a fn that holds the the data // which prevents this data from being JSON serialized // the function does not need to be called, it just contains the data eventHandle = events.handle; events = events.events; } else if ( !events ) { if ( !elem.nodeType ) { // On plain objects, create a fn that acts as the holder // of the values to avoid JSON serialization of event data elemData[ eventKey ] = elemData = function(){}; } elemData.events = events = {}; } if ( !eventHandle ) { elemData.handle = eventHandle = function() { // Handle the second event of a trigger and when // an event is called after a page has unloaded return typeof jQuery !== "undefined" !jQuery.event.triggered ? jQuery.event.handle.apply( eventHandle.elem, arguments ) undefined; }; } // Add elem as a property of the handle function // This is to prevent a memory leak with non-native events in IE. eventHandle.elem = elem; // Handle multiple events separated by a space // jQuery(...).bind("mouseover mouseout", fn); types = types.split(" "); var type, i = 0, namespaces; while ( (type = types[ i++ ]) ) { handleObj = handleObjIn ? jQuery.extend({}, handleObjIn) { handler handler, data data }; // Namespaced event handlers if ( type.indexOf(".") -1 ) { namespaces = type.split("."); type = namespaces.shift(); handleObj.namespace = namespaces.slice(0).sort().join("."); } else { namespaces = []; handleObj.namespace = ""; } handleObj.type = type; if ( !handleObj.guid ) { handleObj.guid = handler.guid; } // Get the current list of functions bound to this event var handlers = events[ type ], special = jQuery.event.special[ type ] || {}; // Init the event handler queue if ( !handlers ) { handlers = events[ type ] = []; // Check for a special event handler // Only use addEventListener/attachEvent if the special // events handler returns false if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { // Bind the global event handler to the element if ( elem.addEventListener ) { elem.addEventListener( type, eventHandle, false ); } else if ( elem.attachEvent ) { elem.attachEvent( "on" + type, eventHandle ); } } } if ( special.add ) { special.add.call( elem, handleObj ); if ( !handleObj.handler.guid ) { handleObj.handler.guid = handler.guid; } } // Add the function to the element s handler list handlers.push( handleObj ); // Keep track of which events have been used, for global triggering jQuery.event.global[ type ] = true; } // Nullify elem to prevent memory leaks in IE elem = null; }, global {}, // Detach an event or set of events from an element remove function( elem, types, handler, pos ) { // don t do events on text and comment nodes if ( elem.nodeType === 3 || elem.nodeType === 8 ) { return; } if ( handler === false ) { handler = returnFalse; } var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, eventKey = elem.nodeType ? "events" "__events__", elemData = jQuery.data( elem ), events = elemData elemData[ eventKey ]; if ( !elemData || !events ) { return; } if ( typeof events === "function" ) { elemData = events; events = events.events; } // types is actually an event object here if ( types types.type ) { handler = types.handler; types = types.type; } // Unbind all events for the element if ( !types || typeof types === "string" types.charAt(0) === "." ) { types = types || ""; for ( type in events ) { jQuery.event.remove( elem, type + types ); } return; } // Handle multiple events separated by a space // jQuery(...).unbind("mouseover mouseout", fn); types = types.split(" "); while ( (type = types[ i++ ]) ) { origType = type; handleObj = null; all = type.indexOf(".") 0; namespaces = []; if ( !all ) { // Namespaced event handlers namespaces = type.split("."); type = namespaces.shift(); namespace = new RegExp("(^|\\.)" + jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(? .*\\.)?") + "(\\.|$)"); } eventType = events[ type ]; if ( !eventType ) { continue; } if ( !handler ) { for ( j = 0; j eventType.length; j++ ) { handleObj = eventType[ j ]; if ( all || namespace.test( handleObj.namespace ) ) { jQuery.event.remove( elem, origType, handleObj.handler, j ); eventType.splice( j--, 1 ); } } continue; } special = jQuery.event.special[ type ] || {}; for ( j = pos || 0; j eventType.length; j++ ) { handleObj = eventType[ j ]; if ( handler.guid === handleObj.guid ) { // remove the given handler for the given type if ( all || namespace.test( handleObj.namespace ) ) { if ( pos == null ) { eventType.splice( j--, 1 ); } if ( special.remove ) { special.remove.call( elem, handleObj ); } } if ( pos != null ) { break; } } } // remove generic event handler if no more handlers exist if ( eventType.length === 0 || pos != null eventType.length === 1 ) { if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { jQuery.removeEvent( elem, type, elemData.handle ); } ret = null; delete events[ type ]; } } // Remove the expando if it s no longer used if ( jQuery.isEmptyObject( events ) ) { var handle = elemData.handle; if ( handle ) { handle.elem = null; } delete elemData.events; delete elemData.handle; if ( typeof elemData === "function" ) { jQuery.removeData( elem, eventKey ); } else if ( jQuery.isEmptyObject( elemData ) ) { jQuery.removeData( elem ); } } }, // bubbling is internal trigger function( event, data, elem /*, bubbling */ ) { // Event object or event type var type = event.type || event, bubbling = arguments[3]; if ( !bubbling ) { event = typeof event === "object" ? // jQuery.Event object event[ jQuery.expando ] ? event // Object literal jQuery.extend( jQuery.Event(type), event ) // Just the event type (string) jQuery.Event(type); if ( type.indexOf("!") = 0 ) { event.type = type = type.slice(0, -1); event.exclusive = true; } // Handle a global trigger if ( !elem ) { // Don t bubble custom events when global (to avoid too much overhead) event.stopPropagation(); // Only trigger if we ve ever bound an event for it if ( jQuery.event.global[ type ] ) { jQuery.each( jQuery.cache, function() { if ( this.events this.events[type] ) { jQuery.event.trigger( event, data, this.handle.elem ); } }); } } // Handle triggering a single element // don t do events on text and comment nodes if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { return undefined; } // Clean up in case it is reused event.result = undefined; event.target = elem; // Clone the incoming data, if any data = jQuery.makeArray( data ); data.unshift( event ); } event.currentTarget = elem; // Trigger the event, it is assumed that "handle" is a function var handle = elem.nodeType ? jQuery.data( elem, "handle" ) (jQuery.data( elem, "__events__" ) || {}).handle; if ( handle ) { handle.apply( elem, data ); } var parent = elem.parentNode || elem.ownerDocument; // Trigger an inline bound script try { if ( !(elem elem.nodeName jQuery.noData[elem.nodeName.toLowerCase()]) ) { if ( elem[ "on" + type ] elem[ "on" + type ].apply( elem, data ) === false ) { event.result = false; event.preventDefault(); } } // prevent IE from throwing an error for some elements with some event types, see #3533 } catch (inlineError) {} if ( !event.isPropagationStopped() parent ) { jQuery.event.trigger( event, data, parent, true ); } else if ( !event.isDefaultPrevented() ) { var target = event.target, old, targetType = type.replace(rnamespaces, ""), isClick = jQuery.nodeName(target, "a") targetType === "click", special = jQuery.event.special[ targetType ] || {}; if ( (!special._default || special._default.call( elem, event ) === false) !isClick !(target target.nodeName jQuery.noData[target.nodeName.toLowerCase()]) ) { try { if ( target[ targetType ] ) { // Make sure that we don t accidentally re-trigger the onFOO events old = target[ "on" + targetType ]; if ( old ) { target[ "on" + targetType ] = null; } jQuery.event.triggered = true; target[ targetType ](); } // prevent IE from throwing an error for some elements with some event types, see #3533 } catch (triggerError) {} if ( old ) { target[ "on" + targetType ] = old; } jQuery.event.triggered = false; } } }, handle function( event ) { var all, handlers, namespaces, namespace_sort = [], namespace_re, events, args = jQuery.makeArray( arguments ); event = args[0] = jQuery.event.fix( event || window.event ); event.currentTarget = this; // Namespaced event handlers all = event.type.indexOf(".") 0 !event.exclusive; if ( !all ) { namespaces = event.type.split("."); event.type = namespaces.shift(); namespace_sort = namespaces.slice(0).sort(); namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\.(? .*\\.)?") + "(\\.|$)"); } event.namespace = event.namespace || namespace_sort.join("."); events = jQuery.data(this, this.nodeType ? "events" "__events__"); if ( typeof events === "function" ) { events = events.events; } handlers = (events || {})[ event.type ]; if ( events handlers ) { // Clone the handlers to prevent manipulation handlers = handlers.slice(0); for ( var j = 0, l = handlers.length; j l; j++ ) { var handleObj = handlers[ j ]; // Filter the functions by class if ( all || namespace_re.test( handleObj.namespace ) ) { // Pass in a reference to the handler function itself // So that we can later remove it event.handler = handleObj.handler; event.data = handleObj.data; event.handleObj = handleObj; var ret = handleObj.handler.apply( this, args ); if ( ret !== undefined ) { event.result = ret; if ( ret === false ) { event.preventDefault(); event.stopPropagation(); } } if ( event.isImmediatePropagationStopped() ) { break; } } } } return event.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( event ) { if ( event[ jQuery.expando ] ) { return event; } // store a copy of the original event object // and "clone" to set read-only properties var originalEvent = event; event = jQuery.Event( originalEvent ); for ( var i = this.props.length, prop; i; ) { prop = this.props[ --i ]; event[ prop ] = originalEvent[ prop ]; } // Fix target property, if necessary if ( !event.target ) { event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either } // check if target is a textnode (safari) if ( event.target.nodeType === 3 ) { event.target = event.target.parentNode; } // Add relatedTarget, if necessary if ( !event.relatedTarget event.fromElement ) { event.relatedTarget = event.fromElement === event.target ? event.toElement event.fromElement; } // Calculate pageX/Y if missing and clientX/Y available if ( event.pageX == null event.clientX != null ) { var doc = document.documentElement, body = document.body; event.pageX = event.clientX + (doc doc.scrollLeft || body body.scrollLeft || 0) - (doc doc.clientLeft || body body.clientLeft || 0); event.pageY = event.clientY + (doc doc.scrollTop || body body.scrollTop || 0) - (doc doc.clientTop || body body.clientTop || 0); } // Add which for key events if ( event.which == null (event.charCode != null || event.keyCode != null) ) { event.which = event.charCode != null ? event.charCode event.keyCode; } // Add metaKey to non-Mac browsers (use ctrl for PC s and Meta for Macs) if ( !event.metaKey event.ctrlKey ) { event.metaKey = event.ctrlKey; } // Add which for click 1 === left; 2 === middle; 3 === right // Note button is not normalized, so don t use it if ( !event.which event.button !== undefined ) { event.which = (event.button 1 ? 1 ( event.button 2 ? 3 ( event.button 4 ? 2 0 ) )); } return event; }, // Deprecated, use jQuery.guid instead guid 1E8, // Deprecated, use jQuery.proxy instead proxy jQuery.proxy, special { ready { // Make sure the ready event is setup setup jQuery.bindReady, teardown jQuery.noop }, live { add function( handleObj ) { jQuery.event.add( this, liveConvert( handleObj.origType, handleObj.selector ), jQuery.extend({}, handleObj, {handler liveHandler, guid handleObj.handler.guid}) ); }, remove function( handleObj ) { jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj ); } }, beforeunload { setup function( data, namespaces, eventHandle ) { // We only want to do this special case on windows if ( jQuery.isWindow( this ) ) { this.onbeforeunload = eventHandle; } }, teardown function( namespaces, eventHandle ) { if ( this.onbeforeunload === eventHandle ) { this.onbeforeunload = null; } } } } }; jQuery.removeEvent = document.removeEventListener ? function( elem, type, handle ) { if ( elem.removeEventListener ) { elem.removeEventListener( type, handle, false ); } } function( elem, type, handle ) { if ( elem.detachEvent ) { elem.detachEvent( "on" + type, handle ); } }; jQuery.Event = function( src ) { // Allow instantiation without the new keyword if ( !this.preventDefault ) { return new jQuery.Event( src ); } // Event object if ( src src.type ) { this.originalEvent = src; this.type = src.type; // Event type } else { this.type = src; } // timeStamp is buggy for some events on Firefox(#3843) // So we won t rely on the native value this.timeStamp = jQuery.now(); // Mark it as fixed this[ jQuery.expando ] = true; }; function returnFalse() { return false; } function returnTrue() { return true; } // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding // http //www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html jQuery.Event.prototype = { preventDefault function() { this.isDefaultPrevented = returnTrue; var e = this.originalEvent; if ( !e ) { return; } // if preventDefault exists run it on the original event if ( e.preventDefault ) { e.preventDefault(); // otherwise set the returnValue property of the original event to false (IE) } else { e.returnValue = false; } }, stopPropagation function() { this.isPropagationStopped = returnTrue; var e = this.originalEvent; if ( !e ) { return; } // if stopPropagation exists run it on the original event if ( e.stopPropagation ) { e.stopPropagation(); } // otherwise set the cancelBubble property of the original event to true (IE) e.cancelBubble = true; }, stopImmediatePropagation function() { this.isImmediatePropagationStopped = returnTrue; this.stopPropagation(); }, isDefaultPrevented returnFalse, isPropagationStopped returnFalse, isImmediatePropagationStopped returnFalse }; // Checks if an event happened on an element within another element // Used in jQuery.event.special.mouseenter and mouseleave handlers var withinElement = function( event ) { // Check if mouse(over|out) are still within the same parent element var parent = event.relatedTarget; // Firefox sometimes assigns relatedTarget a XUL element // which we cannot access the parentNode property of try { // Traverse up the tree while ( parent parent !== this ) { parent = parent.parentNode; } if ( parent !== this ) { // set the correct event type event.type = event.data; // handle event if we actually just moused on to a non sub-element jQuery.event.handle.apply( this, arguments ); } // assuming we ve left the element since we most likely mousedover a xul element } catch(e) { } }, // In case of event delegation, we only need to rename the event.type, // liveHandler will take care of the rest. delegate = function( event ) { event.type = event.data; jQuery.event.handle.apply( this, arguments ); }; // Create mouseenter and mouseleave events jQuery.each({ mouseenter "mouseover", mouseleave "mouseout" }, function( orig, fix ) { jQuery.event.special[ orig ] = { setup function( data ) { jQuery.event.add( this, fix, data data.selector ? delegate withinElement, orig ); }, teardown function( data ) { jQuery.event.remove( this, fix, data data.selector ? delegate withinElement ); } }; }); // submit delegation if ( !jQuery.support.submitBubbles ) { jQuery.event.special.submit = { setup function( data, namespaces ) { if ( this.nodeName.toLowerCase() !== "form" ) { jQuery.event.add(this, "click.specialSubmit", function( e ) { var elem = e.target, type = elem.type; if ( (type === "submit" || type === "image") jQuery( elem ).closest("form").length ) { e.liveFired = undefined; return trigger( "submit", this, arguments ); } }); jQuery.event.add(this, "keypress.specialSubmit", function( e ) { var elem = e.target, type = elem.type; if ( (type === "text" || type === "password") jQuery( elem ).closest("form").length e.keyCode === 13 ) { e.liveFired = undefined; return trigger( "submit", this, arguments ); } }); } else { return false; } }, teardown function( namespaces ) { jQuery.event.remove( this, ".specialSubmit" ); } }; } // change delegation, happens here so we have bind. if ( !jQuery.support.changeBubbles ) { var changeFilters, getVal = function( elem ) { var type = elem.type, val = elem.value; if ( type === "radio" || type === "checkbox" ) { val = elem.checked; } else if ( type === "select-multiple" ) { val = elem.selectedIndex -1 ? jQuery.map( elem.options, function( elem ) { return elem.selected; }).join("-") ""; } else if ( elem.nodeName.toLowerCase() === "select" ) { val = elem.selectedIndex; } return val; }, testChange = function testChange( e ) { var elem = e.target, data, val; if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) { return; } data = jQuery.data( elem, "_change_data" ); val = getVal(elem); // the current data will be also retrieved by beforeactivate if ( e.type !== "focusout" || elem.type !== "radio" ) { jQuery.data( elem, "_change_data", val ); } if ( data === undefined || val === data ) { return; } if ( data != null || val ) { e.type = "change"; e.liveFired = undefined; return jQuery.event.trigger( e, arguments[1], elem ); } }; jQuery.event.special.change = { filters { focusout testChange, beforedeactivate testChange, click function( e ) { var elem = e.target, type = elem.type; if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) { return testChange.call( this, e ); } }, // Change has to be called before submit // Keydown will be called before keypress, which is used in submit-event delegation keydown function( e ) { var elem = e.target, type = elem.type; if ( (e.keyCode === 13 elem.nodeName.toLowerCase() !== "textarea") || (e.keyCode === 32 (type === "checkbox" || type === "radio")) || type === "select-multiple" ) { return testChange.call( this, e ); } }, // Beforeactivate happens also before the previous element is blurred // with this event you can t trigger a change event, but you can store // information beforeactivate function( e ) { var elem = e.target; jQuery.data( elem, "_change_data", getVal(elem) ); } }, setup function( data, namespaces ) { if ( this.type === "file" ) { return false; } for ( var type in changeFilters ) { jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); } return rformElems.test( this.nodeName ); }, teardown function( namespaces ) { jQuery.event.remove( this, ".specialChange" ); return rformElems.test( this.nodeName ); } }; changeFilters = jQuery.event.special.change.filters; // Handle when the input is .focus() d changeFilters.focus = changeFilters.beforeactivate; } function trigger( type, elem, args ) { args[0].type = type; return jQuery.event.handle.apply( elem, args ); } // Create "bubbling" focus and blur events if ( document.addEventListener ) { jQuery.each({ focus "focusin", blur "focusout" }, function( orig, fix ) { jQuery.event.special[ fix ] = { setup function() { if ( focusCounts[fix]++ === 0 ) { document.addEventListener( orig, handler, true ); } }, teardown function() { if ( --focusCounts[fix] === 0 ) { document.removeEventListener( orig, handler, true ); } } }; function handler( e ) { e = jQuery.event.fix( e ); e.type = fix; return jQuery.event.trigger( e, null, e.target ); } }); } jQuery.each(["bind", "one"], function( i, name ) { jQuery.fn[ name ] = function( type, data, fn ) { // Handle object literals if ( typeof type === "object" ) { for ( var key in type ) { this[ name ](key, data, type[key], fn); } return this; } if ( jQuery.isFunction( data ) || data === false ) { fn = data; data = undefined; } var handler = name === "one" ? jQuery.proxy( fn, function( event ) { jQuery( this ).unbind( event, handler ); return fn.apply( this, arguments ); }) fn; if ( type === "unload" name !== "one" ) { this.one( type, data, fn ); } else { for ( var i = 0, l = this.length; i l; i++ ) { jQuery.event.add( this[i], type, handler, data ); } } return this; }; }); jQuery.fn.extend({ unbind function( type, fn ) { // Handle object literals if ( typeof type === "object" !type.preventDefault ) { for ( var key in type ) { this.unbind(key, type[key]); } } else { for ( var i = 0, l = this.length; i l; i++ ) { jQuery.event.remove( this[i], type, fn ); } } return this; }, delegate function( selector, types, data, fn ) { return this.live( types, data, fn, selector ); }, undelegate function( selector, types, fn ) { if ( arguments.length === 0 ) { return this.unbind( "live" ); } else { return this.die( types, null, fn, selector ); } }, trigger function( type, data ) { return this.each(function() { jQuery.event.trigger( type, data, this ); }); }, triggerHandler function( type, data ) { if ( this[0] ) { var event = jQuery.Event( type ); event.preventDefault(); event.stopPropagation(); jQuery.event.trigger( event, data, this[0] ); return event.result; } }, toggle function( fn ) { // Save reference to arguments for access in closure var args = arguments, i = 1; // link all the functions, so any of them can unbind this click handler while ( i args.length ) { jQuery.proxy( fn, args[ i++ ] ); } return this.click( jQuery.proxy( fn, function( event ) { // Figure out which function to execute var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); // Make sure that clicks stop event.preventDefault(); // and execute the function return args[ lastToggle ].apply( this, arguments ) || false; })); }, hover function( fnOver, fnOut ) { return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); } }); var liveMap = { focus "focusin", blur "focusout", mouseenter "mouseover", mouseleave "mouseout" }; jQuery.each(["live", "die"], function( i, name ) { jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { var type, i = 0, match, namespaces, preType, selector = origSelector || this.selector, context = origSelector ? this jQuery( this.context ); if ( typeof types === "object" !types.preventDefault ) { for ( var key in types ) { context[ name ]( key, data, types[key], selector ); } return this; } if ( jQuery.isFunction( data ) ) { fn = data; data = undefined; } types = (types || "").split(" "); while ( (type = types[ i++ ]) != null ) { match = rnamespaces.exec( type ); namespaces = ""; if ( match ) { namespaces = match[0]; type = type.replace( rnamespaces, "" ); } if ( type === "hover" ) { types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); continue; } preType = type; if ( type === "focus" || type === "blur" ) { types.push( liveMap[ type ] + namespaces ); type = type + namespaces; } else { type = (liveMap[ type ] || type) + namespaces; } if ( name === "live" ) { // bind live handler for ( var j = 0, l = context.length; j l; j++ ) { jQuery.event.add( context[j], "live." + liveConvert( type, selector ), { data data, selector selector, handler fn, origType type, origHandler fn, preType preType } ); } } else { // unbind live handler context.unbind( "live." + liveConvert( type, selector ), fn ); } } return this; }; }); function liveHandler( event ) { var stop, maxLevel, elems = [], selectors = [], related, match, handleObj, elem, j, i, l, data, close, namespace, ret, events = jQuery.data( this, this.nodeType ? "events" "__events__" ); if ( typeof events === "function" ) { events = events.events; } // Make sure we avoid non-left-click bubbling in Firefox (#3861) if ( event.liveFired === this || !events || !events.live || event.button event.type === "click" ) { return; } if ( event.namespace ) { namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(? .*\\.)?") + "(\\.|$)"); } event.liveFired = this; var live = events.live.slice(0); for ( j = 0; j live.length; j++ ) { handleObj = live[j]; if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) { selectors.push( handleObj.selector ); } else { live.splice( j--, 1 ); } } match = jQuery( event.target ).closest( selectors, event.currentTarget ); for ( i = 0, l = match.length; i l; i++ ) { close = match[i]; for ( j = 0; j live.length; j++ ) { handleObj = live[j]; if ( close.selector === handleObj.selector (!namespace || namespace.test( handleObj.namespace )) ) { elem = close.elem; related = null; // Those two events require additional checking if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { event.type = handleObj.preType; related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; } if ( !related || related !== elem ) { elems.push({ elem elem, handleObj handleObj, level close.level }); } } } } for ( i = 0, l = elems.length; i l; i++ ) { match = elems[i]; if ( maxLevel match.level maxLevel ) { break; } event.currentTarget = match.elem; event.data = match.handleObj.data; event.handleObj = match.handleObj; ret = match.handleObj.origHandler.apply( match.elem, arguments ); if ( ret === false || event.isPropagationStopped() ) { maxLevel = match.level; if ( ret === false ) { stop = false; } } } return stop; } function liveConvert( type, selector ) { return (type type !== "*" ? type + "." "") + selector.replace(rperiod, "`").replace(rspace, " "); } jQuery.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( i, name ) { // Handle event binding jQuery.fn[ name ] = function( data, fn ) { if ( fn == null ) { fn = data; data = null; } return arguments.length 0 ? this.bind( name, data, fn ) this.trigger( name ); }; if ( jQuery.attrFn ) { jQuery.attrFn[ name ] = true; } }); // Prevent memory leaks in IE // Window isn t included so as not to unbind existing unload events // More info // - http //isaacschlueter.com/2006/10/msie-memory-leaks/ if ( window.attachEvent !window.addEventListener ) { jQuery(window).bind("unload", function() { for ( var id in jQuery.cache ) { if ( jQuery.cache[ id ].handle ) { // Try/Catch is to handle iframes being unloaded, see #4280 try { jQuery.event.remove( jQuery.cache[ id ].handle.elem ); } catch(e) {} } } }); } /*! * Sizzle CSS Selector Engine - v1.0 * Copyright 2009, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information http //sizzlejs.com/ */ (function(){ var chunker = /((? \((? \([^()]+\)|[^()]+)+\)|\[(? \[[^\[\]]*\]|[ "][^ "]*[ "]|[^\[\] "]+)+\]|\\.|[^ +~,(\[\\]+)+|[ +~])(\s*,\s*)?((? .|\r|\n)*)/g, done = 0, toString = Object.prototype.toString, hasDuplicate = false, baseHasDuplicate = true; // Here we check if the JavaScript engine is using some sort of // optimization where it does not always call our comparision // function. If that is the case, discard the hasDuplicate value. // Thus far that includes Google Chrome. [0, 0].sort(function(){ baseHasDuplicate = false; return 0; }); var Sizzle = function(selector, context, results, seed) { results = results || []; context = context || document; var origContext = context; if ( context.nodeType !== 1 context.nodeType !== 9 ) { return []; } if ( !selector || typeof selector !== "string" ) { return results; } var parts = [], m, set, checkSet, extra, prune = true, contextXML = Sizzle.isXML(context), soFar = selector, ret, cur, pop, i; // Reset the position of the chunker regexp (start from head) do { chunker.exec(""); m = chunker.exec(soFar); if ( m ) { soFar = m[3]; parts.push( m[1] ); if ( m[2] ) { extra = m[3]; break; } } } while ( m ); if ( parts.length 1 origPOS.exec( selector ) ) { if ( parts.length === 2 Expr.relative[ parts[0] ] ) { set = posProcess( parts[0] + parts[1], context ); } else { set = Expr.relative[ parts[0] ] ? [ context ] Sizzle( parts.shift(), context ); while ( parts.length ) { selector = parts.shift(); if ( Expr.relative[ selector ] ) { selector += parts.shift(); } set = posProcess( selector, set ); } } } else { // Take a shortcut and set the context if the root selector is an ID // (but not if it ll be faster if the inner selector is an ID) if ( !seed parts.length 1 context.nodeType === 9 !contextXML Expr.match.ID.test(parts[0]) !Expr.match.ID.test(parts[parts.length - 1]) ) { ret = Sizzle.find( parts.shift(), context, contextXML ); context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] ret.set[0]; } if ( context ) { ret = seed ? { expr parts.pop(), set makeArray(seed) } Sizzle.find( parts.pop(), parts.length === 1 (parts[0] === "~" || parts[0] === "+") context.parentNode ? context.parentNode context, contextXML ); set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) ret.set; if ( parts.length 0 ) { checkSet = makeArray(set); } else { prune = false; } while ( parts.length ) { cur = parts.pop(); pop = cur; if ( !Expr.relative[ cur ] ) { cur = ""; } else { pop = parts.pop(); } if ( pop == null ) { pop = context; } Expr.relative[ cur ]( checkSet, pop, contextXML ); } } else { checkSet = parts = []; } } if ( !checkSet ) { checkSet = set; } if ( !checkSet ) { Sizzle.error( cur || selector ); } if ( toString.call(checkSet) === "[object Array]" ) { if ( !prune ) { results.push.apply( results, checkSet ); } else if ( context context.nodeType === 1 ) { for ( i = 0; checkSet[i] != null; i++ ) { if ( checkSet[i] (checkSet[i] === true || checkSet[i].nodeType === 1 Sizzle.contains(context, checkSet[i])) ) { results.push( set[i] ); } } } else { for ( i = 0; checkSet[i] != null; i++ ) { if ( checkSet[i] checkSet[i].nodeType === 1 ) { results.push( set[i] ); } } } } else { makeArray( checkSet, results ); } if ( extra ) { Sizzle( extra, origContext, results, seed ); Sizzle.uniqueSort( results ); } return results; }; Sizzle.uniqueSort = function(results){ if ( sortOrder ) { hasDuplicate = baseHasDuplicate; results.sort(sortOrder); if ( hasDuplicate ) { for ( var i = 1; i results.length; i++ ) { if ( results[i] === results[i-1] ) { results.splice(i--, 1); } } } } return results; }; Sizzle.matches = function(expr, set){ return Sizzle(expr, null, null, set); }; Sizzle.matchesSelector = function(node, expr){ return Sizzle(expr, null, null, [node]).length 0; }; Sizzle.find = function(expr, context, isXML){ var set; if ( !expr ) { return []; } for ( var i = 0, l = Expr.order.length; i l; i++ ) { var type = Expr.order[i], match; if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { var left = match[1]; match.splice(1,1); if ( left.substr( left.length - 1 ) !== "\\" ) { match[1] = (match[1] || "").replace(/\\/g, ""); set = Expr.find[ type ]( match, context, isXML ); if ( set != null ) { expr = expr.replace( Expr.match[ type ], "" ); break; } } } } if ( !set ) { set = context.getElementsByTagName("*"); } return {set set, expr expr}; }; Sizzle.filter = function(expr, set, inplace, not){ var old = expr, result = [], curLoop = set, match, anyFound, isXMLFilter = set set[0] Sizzle.isXML(set[0]); while ( expr set.length ) { for ( var type in Expr.filter ) { if ( (match = Expr.leftMatch[ type ].exec( expr )) != null match[2] ) { var filter = Expr.filter[ type ], found, item, left = match[1]; anyFound = false; match.splice(1,1); if ( left.substr( left.length - 1 ) === "\\" ) { continue; } if ( curLoop === result ) { result = []; } if ( Expr.preFilter[ type ] ) { match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); if ( !match ) { anyFound = found = true; } else if ( match === true ) { continue; } } if ( match ) { for ( var i = 0; (item = curLoop[i]) != null; i++ ) { if ( item ) { found = filter( item, match, i, curLoop ); var pass = not ^ !!found; if ( inplace found != null ) { if ( pass ) { anyFound = true; } else { curLoop[i] = false; } } else if ( pass ) { result.push( item ); anyFound = true; } } } } if ( found !== undefined ) { if ( !inplace ) { curLoop = result; } expr = expr.replace( Expr.match[ type ], "" ); if ( !anyFound ) { return []; } break; } } } // Improper expression if ( expr === old ) { if ( anyFound == null ) { Sizzle.error( expr ); } else { break; } } old = expr; } return curLoop; }; Sizzle.error = function( msg ) { throw "Syntax error, unrecognized expression " + msg; }; var Expr = Sizzle.selectors = { order [ "ID", "NAME", "TAG" ], match { ID /#((? [\w\u00c0-\uFFFF\-]|\\.)+)/, CLASS /\.((? [\w\u00c0-\uFFFF\-]|\\.)+)/, NAME /\[name=[ "]*((? [\w\u00c0-\uFFFF\-]|\\.)+)[ "]*\]/, ATTR /\[\s*((? [\w\u00c0-\uFFFF\-]|\\.)+)\s*(? (\S?=)\s*([ "]*)(.*?)\3|)\s*\]/, TAG /^((? [\w\u00c0-\uFFFF\*\-]|\\.)+)/, CHILD / (only|nth|last|first)-child(? \((even|odd|[\dn+\-]*)\))?/, POS / (nth|eq|gt|lt|first|last|even|odd)(? \((\d*)\))?(?=[^\-]|$)/, PSEUDO / ((? [\w\u00c0-\uFFFF\-]|\\.)+)(? \(([ "]?)((? \([^\)]+\)|[^\(\)]*)+)\2\))?/ }, leftMatch {}, attrMap { "class" "className", "for" "htmlFor" }, attrHandle { href function(elem){ return elem.getAttribute("href"); } }, relative { "+" function(checkSet, part){ var isPartStr = typeof part === "string", isTag = isPartStr !/\W/.test(part), isPartStrNotTag = isPartStr !isTag; if ( isTag ) { part = part.toLowerCase(); } for ( var i = 0, l = checkSet.length, elem; i l; i++ ) { if ( (elem = checkSet[i]) ) { while ( (elem = elem.previousSibling) elem.nodeType !== 1 ) {} checkSet[i] = isPartStrNotTag || elem elem.nodeName.toLowerCase() === part ? elem || false elem === part; } } if ( isPartStrNotTag ) { Sizzle.filter( part, checkSet, true ); } }, " " function(checkSet, part){ var isPartStr = typeof part === "string", elem, i = 0, l = checkSet.length; if ( isPartStr !/\W/.test(part) ) { part = part.toLowerCase(); for ( ; i l; i++ ) { elem = checkSet[i]; if ( elem ) { var parent = elem.parentNode; checkSet[i] = parent.nodeName.toLowerCase() === part ? parent false; } } } else { for ( ; i l; i++ ) { elem = checkSet[i]; if ( elem ) { checkSet[i] = isPartStr ? elem.parentNode elem.parentNode === part; } } if ( isPartStr ) { Sizzle.filter( part, checkSet, true ); } } }, "" function(checkSet, part, isXML){ var doneName = done++, checkFn = dirCheck, nodeCheck; if ( typeof part === "string" !/\W/.test(part) ) { part = part.toLowerCase(); nodeCheck = part; checkFn = dirNodeCheck; } checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML); }, "~" function(checkSet, part, isXML){ var doneName = done++, checkFn = dirCheck, nodeCheck; if ( typeof part === "string" !/\W/.test(part) ) { part = part.toLowerCase(); nodeCheck = part; checkFn = dirNodeCheck; } checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML); } }, find { ID function(match, context, isXML){ if ( typeof context.getElementById !== "undefined" !isXML ) { var m = context.getElementById(match[1]); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 return m m.parentNode ? [m] []; } }, NAME function(match, context){ if ( typeof context.getElementsByName !== "undefined" ) { var ret = [], results = context.getElementsByName(match[1]); for ( var i = 0, l = results.length; i l; i++ ) { if ( results[i].getAttribute("name") === match[1] ) { ret.push( results[i] ); } } return ret.length === 0 ? null ret; } }, TAG function(match, context){ return context.getElementsByTagName(match[1]); } }, preFilter { CLASS function(match, curLoop, inplace, result, not, isXML){ match = " " + match[1].replace(/\\/g, "") + " "; if ( isXML ) { return match; } for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { if ( elem ) { if ( not ^ (elem.className (" " + elem.className + " ").replace(/[\t\n]/g, " ").indexOf(match) = 0) ) { if ( !inplace ) { result.push( elem ); } } else if ( inplace ) { curLoop[i] = false; } } } return false; }, ID function(match){ return match[1].replace(/\\/g, ""); }, TAG function(match, curLoop){ return match[1].toLowerCase(); }, CHILD function(match){ if ( match[1] === "nth" ) { // parse equations like even , odd , 5 , 2n , 3n+2 , 4n-1 , -n+6 var test = /(-?)(\d*)n((? \+|-)?\d*)/.exec( match[2] === "even" "2n" || match[2] === "odd" "2n+1" || !/\D/.test( match[2] ) "0n+" + match[2] || match[2]); // calculate the numbers (first)n+(last) including if they are negative match[2] = (test[1] + (test[2] || 1)) - 0; match[3] = test[3] - 0; } // TODO Move to normal caching system match[0] = done++; return match; }, ATTR function(match, curLoop, inplace, result, not, isXML){ var name = match[1].replace(/\\/g, ""); if ( !isXML Expr.attrMap[name] ) { match[1] = Expr.attrMap[name]; } if ( match[2] === "~=" ) { match[4] = " " + match[4] + " "; } return match; }, PSEUDO function(match, curLoop, inplace, result, not){ if ( match[1] === "not" ) { // If we re dealing with a complex expression, or a simple one if ( ( chunker.exec(match[3]) || "" ).length 1 || /^\w/.test(match[3]) ) { match[3] = Sizzle(match[3], null, null, curLoop); } else { var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); if ( !inplace ) { result.push.apply( result, ret ); } return false; } } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { return true; } return match; }, POS function(match){ match.unshift( true ); return match; } }, filters { enabled function(elem){ return elem.disabled === false elem.type !== "hidden"; }, disabled function(elem){ return elem.disabled === true; }, checked function(elem){ return elem.checked === true; }, selected function(elem){ // Accessing this property makes selected-by-default // options in Safari work properly elem.parentNode.selectedIndex; return elem.selected === true; }, parent function(elem){ return !!elem.firstChild; }, empty function(elem){ return !elem.firstChild; }, has function(elem, i, match){ return !!Sizzle( match[3], elem ).length; }, header function(elem){ return (/h\d/i).test( elem.nodeName ); }, text function(elem){ return "text" === elem.type; }, radio function(elem){ return "radio" === elem.type; }, checkbox function(elem){ return "checkbox" === elem.type; }, file function(elem){ return "file" === elem.type; }, password function(elem){ return "password" === elem.type; }, submit function(elem){ return "submit" === elem.type; }, image function(elem){ return "image" === elem.type; }, reset function(elem){ return "reset" === elem.type; }, button function(elem){ return "button" === elem.type || elem.nodeName.toLowerCase() === "button"; }, input function(elem){ return (/input|select|textarea|button/i).test(elem.nodeName); } }, setFilters { first function(elem, i){ return i === 0; }, last function(elem, i, match, array){ return i === array.length - 1; }, even function(elem, i){ return i % 2 === 0; }, odd function(elem, i){ return i % 2 === 1; }, lt function(elem, i, match){ return i match[3] - 0; }, gt function(elem, i, match){ return i match[3] - 0; }, nth function(elem, i, match){ return match[3] - 0 === i; }, eq function(elem, i, match){ return match[3] - 0 === i; } }, filter { PSEUDO function(elem, match, i, array){ var name = match[1], filter = Expr.filters[ name ]; if ( filter ) { return filter( elem, i, match, array ); } else if ( name === "contains" ) { return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) = 0; } else if ( name === "not" ) { var not = match[3]; for ( var j = 0, l = not.length; j l; j++ ) { if ( not[j] === elem ) { return false; } } return true; } else { Sizzle.error( "Syntax error, unrecognized expression " + name ); } }, CHILD function(elem, match){ var type = match[1], node = elem; switch (type) { case only case first while ( (node = node.previousSibling) ) { if ( node.nodeType === 1 ) { return false; } } if ( type === "first" ) { return true; } node = elem; case last while ( (node = node.nextSibling) ) { if ( node.nodeType === 1 ) { return false; } } return true; case nth var first = match[2], last = match[3]; if ( first === 1 last === 0 ) { return true; } var doneName = match[0], parent = elem.parentNode; if ( parent (parent.sizcache !== doneName || !elem.nodeIndex) ) { var count = 0; for ( node = parent.firstChild; node; node = node.nextSibling ) { if ( node.nodeType === 1 ) { node.nodeIndex = ++count; } } parent.sizcache = doneName; } var diff = elem.nodeIndex - last; if ( first === 0 ) { return diff === 0; } else { return ( diff % first === 0 diff / first = 0 ); } } }, ID function(elem, match){ return elem.nodeType === 1 elem.getAttribute("id") === match; }, TAG function(elem, match){ return (match === "*" elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; }, CLASS function(elem, match){ return (" " + (elem.className || elem.getAttribute("class")) + " ") .indexOf( match ) -1; }, ATTR function(elem, match){ var name = match[1], result = Expr.attrHandle[ name ] ? Expr.attrHandle[ name ]( elem ) elem[ name ] != null ? elem[ name ] elem.getAttribute( name ), value = result + "", type = match[2], check = match[4]; return result == null ? type === "!=" type === "=" ? value === check type === "*=" ? value.indexOf(check) = 0 type === "~=" ? (" " + value + " ").indexOf(check) = 0 !check ? value result !== false type === "!=" ? value !== check type === "^=" ? value.indexOf(check) === 0 type === "$=" ? value.substr(value.length - check.length) === check type === "|=" ? value === check || value.substr(0, check.length + 1) === check + "-" false; }, POS function(elem, match, i, array){ var name = match[2], filter = Expr.setFilters[ name ]; if ( filter ) { return filter( elem, i, match, array ); } } } }; var origPOS = Expr.match.POS, fescape = function(all, num){ return "\\" + (num - 0 + 1); }; for ( var type in Expr.match ) { Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); Expr.leftMatch[ type ] = new RegExp( /(^(? .|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); } var makeArray = function(array, results) { array = Array.prototype.slice.call( array, 0 ); if ( results ) { results.push.apply( results, array ); return results; } return array; }; // Perform a simple check to determine if the browser is capable of // converting a NodeList to an array using builtin methods. // Also verifies that the returned array holds DOM nodes // (which is not the case in the Blackberry browser) try { Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; // Provide a fallback method if it does not work } catch(e){ makeArray = function(array, results) { var ret = results || [], i = 0; if ( toString.call(array) === "[object Array]" ) { Array.prototype.push.apply( ret, array ); } else { if ( typeof array.length === "number" ) { for ( var l = array.length; i l; i++ ) { ret.push( array[i] ); } } else { for ( ; array[i]; i++ ) { ret.push( array[i] ); } } } return ret; }; } var sortOrder, siblingCheck; if ( document.documentElement.compareDocumentPosition ) { sortOrder = function( a, b ) { if ( a === b ) { hasDuplicate = true; return 0; } if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { return a.compareDocumentPosition ? -1 1; } return a.compareDocumentPosition(b) 4 ? -1 1; }; } else { sortOrder = function( a, b ) { var ap = [], bp = [], aup = a.parentNode, bup = b.parentNode, cur = aup, al, bl; // The nodes are identical, we can exit early if ( a === b ) { hasDuplicate = true; return 0; // If the nodes are siblings (or identical) we can do a quick check } else if ( aup === bup ) { return siblingCheck( a, b ); // If no parents were found then the nodes are disconnected } else if ( !aup ) { return -1; } else if ( !bup ) { return 1; } // Otherwise they re somewhere else in the tree so we need // to build up a full list of the parentNodes for comparison while ( cur ) { ap.unshift( cur ); cur = cur.parentNode; } cur = bup; while ( cur ) { bp.unshift( cur ); cur = cur.parentNode; } al = ap.length; bl = bp.length; // Start walking down the tree looking for a discrepancy for ( var i = 0; i al i bl; i++ ) { if ( ap[i] !== bp[i] ) { return siblingCheck( ap[i], bp[i] ); } } // We ended someplace up the tree so do a sibling check return i === al ? siblingCheck( a, bp[i], -1 ) siblingCheck( ap[i], b, 1 ); }; siblingCheck = function( a, b, ret ) { if ( a === b ) { return ret; } var cur = a.nextSibling; while ( cur ) { if ( cur === b ) { return -1; } cur = cur.nextSibling; } return 1; }; } // Utility function for retreiving the text value of an array of DOM nodes Sizzle.getText = function( elems ) { var ret = "", elem; for ( var i = 0; elems[i]; i++ ) { elem = elems[i]; // Get the text from text nodes and CDATA nodes if ( elem.nodeType === 3 || elem.nodeType === 4 ) { ret += elem.nodeValue; // Traverse everything else, except comment nodes } else if ( elem.nodeType !== 8 ) { ret += Sizzle.getText( elem.childNodes ); } } return ret; }; // Check to see if the browser returns elements by name when // querying by getElementById (and provide a workaround) (function(){ // We re going to inject a fake input element with a specified name var form = document.createElement("div"), id = "script" + (new Date()).getTime(); form.innerHTML = " a name= " + id + " / "; // Inject it into the root element, check its status, and remove it quickly var root = document.documentElement; root.insertBefore( form, root.firstChild ); // The workaround has to do additional checks after a getElementById // Which slows things down for other browsers (hence the branching) if ( document.getElementById( id ) ) { Expr.find.ID = function(match, context, isXML){ if ( typeof context.getElementById !== "undefined" !isXML ) { var m = context.getElementById(match[1]); return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" m.getAttributeNode("id").nodeValue === match[1] ? [m] undefined []; } }; Expr.filter.ID = function(elem, match){ var node = typeof elem.getAttributeNode !== "undefined" elem.getAttributeNode("id"); return elem.nodeType === 1 node node.nodeValue === match; }; } root.removeChild( form ); root = form = null; // release memory in IE })(); (function(){ // Check to see if the browser returns only elements // when doing getElementsByTagName("*") // Create a fake element var div = document.createElement("div"); div.appendChild( document.createComment("") ); // Make sure no comments are found if ( div.getElementsByTagName("*").length 0 ) { Expr.find.TAG = function(match, context){ var results = context.getElementsByTagName(match[1]); // Filter out possible comments if ( match[1] === "*" ) { var tmp = []; for ( var i = 0; results[i]; i++ ) { if ( results[i].nodeType === 1 ) { tmp.push( results[i] ); } } results = tmp; } return results; }; } // Check to see if an attribute returns normalized href attributes div.innerHTML = " a href= # /a "; if ( div.firstChild typeof div.firstChild.getAttribute !== "undefined" div.firstChild.getAttribute("href") !== "#" ) { Expr.attrHandle.href = function(elem){ return elem.getAttribute("href", 2); }; } div = null; // release memory in IE })(); if ( document.querySelectorAll ) { (function(){ var oldSizzle = Sizzle, div = document.createElement("div"); div.innerHTML = " p class= TEST /p "; // Safari can t handle uppercase or unicode characters when // in quirks mode. if ( div.querySelectorAll div.querySelectorAll(".TEST").length === 0 ) { return; } Sizzle = function(query, context, extra, seed){ context = context || document; // Only use querySelectorAll on non-XML documents // (ID selectors don t work in non-HTML documents) if ( !seed !Sizzle.isXML(context) ) { if ( context.nodeType === 9 ) { try { return makeArray( context.querySelectorAll(query), extra ); } catch(qsaError) {} // qSA works strangely on Element-rooted queries // We can work around this by specifying an extra ID on the root // and working up from there (Thanks to Andrew Dupont for the technique) // IE 8 doesn t work on object elements } else if ( context.nodeType === 1 context.nodeName.toLowerCase() !== "object" ) { var old = context.id, id = context.id = "__sizzle__"; try { return makeArray( context.querySelectorAll( "#" + id + " " + query ), extra ); } catch(pseudoError) { } finally { if ( old ) { context.id = old; } else { context.removeAttribute( "id" ); } } } } return oldSizzle(query, context, extra, seed); }; for ( var prop in oldSizzle ) { Sizzle[ prop ] = oldSizzle[ prop ]; } div = null; // release memory in IE })(); } (function(){ var html = document.documentElement, matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector, pseudoWorks = false; try { // This should fail with an exception // Gecko does not error, returns false instead matches.call( document.documentElement, " sizzle" ); } catch( pseudoError ) { pseudoWorks = true; } if ( matches ) { Sizzle.matchesSelector = function( node, expr ) { try { if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) ) { return matches.call( node, expr ); } } catch(e) {} return Sizzle(expr, null, null, [node]).length 0; }; } })(); (function(){ var div = document.createElement("div"); div.innerHTML = " div class= test e /div div class= test /div "; // Opera can t find a second classname (in 9.6) // Also, make sure that getElementsByClassName actually exists if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { return; } // Safari caches class attributes, doesn t catch changes (in 3.2) div.lastChild.className = "e"; if ( div.getElementsByClassName("e").length === 1 ) { return; } Expr.order.splice(1, 0, "CLASS"); Expr.find.CLASS = function(match, context, isXML) { if ( typeof context.getElementsByClassName !== "undefined" !isXML ) { return context.getElementsByClassName(match[1]); } }; div = null; // release memory in IE })(); function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { for ( var i = 0, l = checkSet.length; i l; i++ ) { var elem = checkSet[i]; if ( elem ) { elem = elem[dir]; var match = false; while ( elem ) { if ( elem.sizcache === doneName ) { match = checkSet[elem.sizset]; break; } if ( elem.nodeType === 1 !isXML ){ elem.sizcache = doneName; elem.sizset = i; } if ( elem.nodeName.toLowerCase() === cur ) { match = elem; break; } elem = elem[dir]; } checkSet[i] = match; } } } function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { for ( var i = 0, l = checkSet.length; i l; i++ ) { var elem = checkSet[i]; if ( elem ) { elem = elem[dir]; var match = false; while ( elem ) { if ( elem.sizcache === doneName ) { match = checkSet[elem.sizset]; break; } if ( elem.nodeType === 1 ) { if ( !isXML ) { elem.sizcache = doneName; elem.sizset = i; } if ( typeof cur !== "string" ) { if ( elem === cur ) { match = true; break; } } else if ( Sizzle.filter( cur, [elem] ).length 0 ) { match = elem; break; } } elem = elem[dir]; } checkSet[i] = match; } } } Sizzle.contains = document.documentElement.contains ? function(a, b){ return a !== b (a.contains ? a.contains(b) true); } function(a, b){ return !!(a.compareDocumentPosition(b) 16); }; Sizzle.isXML = function(elem){ // documentElement is verified for cases where it doesn t yet exist // (such as loading iframes in IE - #4833) var documentElement = (elem ? elem.ownerDocument || elem 0).documentElement; return documentElement ? documentElement.nodeName !== "HTML" false; }; var posProcess = function(selector, context){ var tmpSet = [], later = "", match, root = context.nodeType ? [context] context; // Position selectors must be done after the filter // And so must not(positional) so we move all PSEUDOs to the end while ( (match = Expr.match.PSEUDO.exec( selector )) ) { later += match[0]; selector = selector.replace( Expr.match.PSEUDO, "" ); } selector = Expr.relative[selector] ? selector + "*" selector; for ( var i = 0, l = root.length; i l; i++ ) { Sizzle( selector, root[i], tmpSet ); } return Sizzle.filter( later, tmpSet ); }; // EXPOSE jQuery.find = Sizzle; jQuery.expr = Sizzle.selectors; jQuery.expr[" "] = jQuery.expr.filters; jQuery.unique = Sizzle.uniqueSort; jQuery.text = Sizzle.getText; jQuery.isXMLDoc = Sizzle.isXML; jQuery.contains = Sizzle.contains; })(); var runtil = /Until$/, rparentsprev = /^(? parents|prevUntil|prevAll)/, // Note This RegExp should be improved, or likely pulled from Sizzle rmultiselector = /,/, isSimple = /^.[^ #\[\.,]*$/, slice = Array.prototype.slice, POS = jQuery.expr.match.POS; jQuery.fn.extend({ find function( selector ) { var ret = this.pushStack( "", "find", selector ), length = 0; for ( var i = 0, l = this.length; i l; i++ ) { length = ret.length; jQuery.find( selector, this[i], ret ); if ( i 0 ) { // Make sure that the results are unique for ( var n = length; n ret.length; n++ ) { for ( var r = 0; r length; r++ ) { if ( ret[r] === ret[n] ) { ret.splice(n--, 1); break; } } } } } return ret; }, has function( target ) { var targets = jQuery( target ); return this.filter(function() { for ( var i = 0, l = targets.length; i l; i++ ) { if ( jQuery.contains( this, targets[i] ) ) { return true; } } }); }, not function( selector ) { return this.pushStack( winnow(this, selector, false), "not", selector); }, filter function( selector ) { return this.pushStack( winnow(this, selector, true), "filter", selector ); }, is function( selector ) { return !!selector jQuery.filter( selector, this ).length 0; }, closest function( selectors, context ) { var ret = [], i, l, cur = this[0]; if ( jQuery.isArray( selectors ) ) { var match, matches = {}, selector, level = 1; if ( cur selectors.length ) { for ( i = 0, l = selectors.length; i l; i++ ) { selector = selectors[i]; if ( !matches[selector] ) { matches[selector] = jQuery.expr.match.POS.test( selector ) ? jQuery( selector, context || this.context ) selector; } } while ( cur cur.ownerDocument cur !== context ) { for ( selector in matches ) { match = matches[selector]; if ( match.jquery ? match.index(cur) -1 jQuery(cur).is(match) ) { ret.push({ selector selector, elem cur, level level }); } } cur = cur.parentNode; level++; } } return ret; } var pos = POS.test( selectors ) ? jQuery( selectors, context || this.context ) null; for ( i = 0, l = this.length; i l; i++ ) { cur = this[i]; while ( cur ) { if ( pos ? pos.index(cur) -1 jQuery.find.matchesSelector(cur, selectors) ) { ret.push( cur ); break; } else { cur = cur.parentNode; if ( !cur || !cur.ownerDocument || cur === context ) { break; } } } } ret = ret.length 1 ? jQuery.unique(ret) ret; return this.pushStack( ret, "closest", selectors ); }, // Determine the position of an element within // the matched set of elements index function( elem ) { if ( !elem || typeof elem === "string" ) { return jQuery.inArray( this[0], // If it receives a string, the selector is used // If it receives nothing, the siblings are used elem ? jQuery( elem ) this.parent().children() ); } // Locate the position of the desired element return jQuery.inArray( // If it receives a jQuery object, the first element is used elem.jquery ? elem[0] elem, this ); }, add function( selector, context ) { var set = typeof selector === "string" ? jQuery( selector, context || this.context ) jQuery.makeArray( selector ), all = jQuery.merge( this.get(), set ); return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? all jQuery.unique( all ) ); }, andSelf function() { return this.add( this.prevObject ); } }); // A painfully simple check to see if an element is disconnected // from a document (should be improved, where feasible). function isDisconnected( node ) { return !node || !node.parentNode || node.parentNode.nodeType === 11; } jQuery.each({ parent function( elem ) { var parent = elem.parentNode; return parent parent.nodeType !== 11 ? parent null; }, parents function( elem ) { return jQuery.dir( elem, "parentNode" ); }, parentsUntil function( elem, i, until ) { return jQuery.dir( elem, "parentNode", until ); }, next function( elem ) { return jQuery.nth( elem, 2, "nextSibling" ); }, prev function( elem ) { return jQuery.nth( elem, 2, "previousSibling" ); }, nextAll function( elem ) { return jQuery.dir( elem, "nextSibling" ); }, prevAll function( elem ) { return jQuery.dir( elem, "previousSibling" ); }, nextUntil function( elem, i, until ) { return jQuery.dir( elem, "nextSibling", until ); }, prevUntil function( elem, i, until ) { return jQuery.dir( elem, "previousSibling", until ); }, siblings function( elem ) { return jQuery.sibling( elem.parentNode.firstChild, elem ); }, children function( elem ) { return jQuery.sibling( elem.firstChild ); }, contents function( elem ) { return jQuery.nodeName( elem, "iframe" ) ? elem.contentDocument || elem.contentWindow.document jQuery.makeArray( elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length 1 ? jQuery.unique( ret ) ret; if ( (this.length 1 || rmultiselector.test( selector )) rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call(arguments).join(",") ); }; }); jQuery.extend({ filter function( expr, elems, not ) { if ( not ) { expr = " not(" + expr + ")"; } return elems.length === 1 ? jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] [] jQuery.find.matches(expr, elems); }, dir function( elem, dir, until ) { var matched = [], cur = elem[dir]; while ( cur cur.nodeType !== 9 (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { if ( cur.nodeType === 1 ) { matched.push( cur ); } cur = cur[dir]; } return matched; }, nth function( cur, result, dir, elem ) { result = result || 1; var num = 0; for ( ; cur; cur = cur[dir] ) { if ( cur.nodeType === 1 ++num === result ) { break; } } return cur; }, sibling function( n, elem ) { var r = []; for ( ; n; n = n.nextSibling ) { if ( n.nodeType === 1 n !== elem ) { r.push( n ); } } return r; } }); // Implement the identical functionality for filter and not function winnow( elements, qualifier, keep ) { if ( jQuery.isFunction( qualifier ) ) { return jQuery.grep(elements, function( elem, i ) { var retVal = !!qualifier.call( elem, i, elem ); return retVal === keep; }); } else if ( qualifier.nodeType ) { return jQuery.grep(elements, function( elem, i ) { return (elem === qualifier) === keep; }); } else if ( typeof qualifier === "string" ) { var filtered = jQuery.grep(elements, function( elem ) { return elem.nodeType === 1; }); if ( isSimple.test( qualifier ) ) { return jQuery.filter(qualifier, filtered, !keep); } else { qualifier = jQuery.filter( qualifier, filtered ); } } return jQuery.grep(elements, function( elem, i ) { return (jQuery.inArray( elem, qualifier ) = 0) === keep; }); } var rinlinejQuery = / jQuery\d+="(? \d+|null)"/g, rleadingWhitespace = /^\s+/, rxhtmlTag = / (?!area|br|col|embed|hr|img|input|link|meta|param)(([\w ]+)[^ ]*)\/ /ig, rtagName = / ([\w ]+)/, rtbody = / tbody/i, rhtml = / | #?\w+;/, rnocache = / (? script|object|embed|option|style)/i, rchecked = /checked\s*(? [^=]|=\s*.checked.)/i, // checked="checked" or checked (html5) raction = /\=([^=" \s]+\/) /g, wrapMap = { 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, "", "" ] }; wrapMap.optgroup = wrapMap.option; wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; // IE can t serialize link and script tags normally if ( !jQuery.support.htmlSerialize ) { wrapMap._default = [ 1, "div div ", " /div " ]; } jQuery.fn.extend({ text function( text ) { if ( jQuery.isFunction(text) ) { return this.each(function(i) { var self = jQuery(this); self.text( text.call(this, i, self.text()) ); }); } if ( typeof text !== "object" text !== undefined ) { return this.empty().append( (this[0] this[0].ownerDocument || document).createTextNode( text ) ); } return jQuery.text( this ); }, wrapAll function( html ) { if ( jQuery.isFunction( html ) ) { return this.each(function(i) { jQuery(this).wrapAll( html.call(this, i) ); }); } if ( this[0] ) { // The elements to wrap the target around var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); if ( this[0].parentNode ) { wrap.insertBefore( this[0] ); } wrap.map(function() { var elem = this; while ( elem.firstChild elem.firstChild.nodeType === 1 ) { elem = elem.firstChild; } return elem; }).append(this); } return this; }, wrapInner function( html ) { if ( jQuery.isFunction( html ) ) { return this.each(function(i) { jQuery(this).wrapInner( html.call(this, i) ); }); } return this.each(function() { var self = jQuery( this ), contents = self.contents(); if ( contents.length ) { contents.wrapAll( html ); } else { self.append( html ); } }); }, wrap function( html ) { return this.each(function() { jQuery( this ).wrapAll( html ); }); }, unwrap function() { return this.parent().each(function() { if ( !jQuery.nodeName( this, "body" ) ) { jQuery( this ).replaceWith( this.childNodes ); } }).end(); }, append function() { return this.domManip(arguments, true, function( elem ) { if ( this.nodeType === 1 ) { this.appendChild( elem ); } }); }, prepend function() { return this.domManip(arguments, true, function( elem ) { if ( this.nodeType === 1 ) { this.insertBefore( elem, this.firstChild ); } }); }, before function() { if ( this[0] this[0].parentNode ) { return this.domManip(arguments, false, function( elem ) { this.parentNode.insertBefore( elem, this ); }); } else if ( arguments.length ) { var set = jQuery(arguments[0]); set.push.apply( set, this.toArray() ); return this.pushStack( set, "before", arguments ); } }, after function() { if ( this[0] this[0].parentNode ) { return this.domManip(arguments, false, function( elem ) { this.parentNode.insertBefore( elem, this.nextSibling ); }); } else if ( arguments.length ) { var set = this.pushStack( this, "after", arguments ); set.push.apply( set, jQuery(arguments[0]).toArray() ); return set; } }, // keepData is for internal use only--do not document remove function( selector, keepData ) { for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { if ( !keepData elem.nodeType === 1 ) { jQuery.cleanData( elem.getElementsByTagName("*") ); jQuery.cleanData( [ elem ] ); } if ( elem.parentNode ) { elem.parentNode.removeChild( elem ); } } } return this; }, empty function() { for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { // Remove element nodes and prevent memory leaks if ( elem.nodeType === 1 ) { jQuery.cleanData( elem.getElementsByTagName("*") ); } // Remove any remaining nodes while ( elem.firstChild ) { elem.removeChild( elem.firstChild ); } } return this; }, clone function( events ) { // Do the clone var ret = this.map(function() { if ( !jQuery.support.noCloneEvent !jQuery.isXMLDoc(this) ) { // IE copies events bound via attachEvent when // using cloneNode. Calling detachEvent on the // clone will also remove the events from the orignal // In order to get around this, we use innerHTML. // Unfortunately, this means some modifications to // attributes in IE that are actually only stored // as properties will not be copied (such as the // the name attribute on an input). var html = this.outerHTML, ownerDocument = this.ownerDocument; if ( !html ) { var div = ownerDocument.createElement("div"); div.appendChild( this.cloneNode(true) ); html = div.innerHTML; } return jQuery.clean([html.replace(rinlinejQuery, "") // Handle the case in IE 8 where action=/test/ self-closes a tag .replace(raction, ="$1" ) .replace(rleadingWhitespace, "")], ownerDocument)[0]; } else { return this.cloneNode(true); } }); // Copy the events from the original to the clone if ( events === true ) { cloneCopyEvent( this, ret ); cloneCopyEvent( this.find("*"), ret.find("*") ); } // Return the cloned set return ret; }, html function( value ) { if ( value === undefined ) { return this[0] this[0].nodeType === 1 ? this[0].innerHTML.replace(rinlinejQuery, "") null; // See if we can take a shortcut and just use innerHTML } else if ( typeof value === "string" !rnocache.test( value ) (jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) { value = value.replace(rxhtmlTag, " $1 /$2 "); try { for ( var i = 0, l = this.length; i l; i++ ) { // Remove element nodes and prevent memory leaks if ( this[i].nodeType === 1 ) { jQuery.cleanData( this[i].getElementsByTagName("*") ); this[i].innerHTML = value; } } // If using innerHTML throws an exception, use the fallback method } catch(e) { this.empty().append( value ); } } else if ( jQuery.isFunction( value ) ) { this.each(function(i){ var self = jQuery(this); self.html( value.call(this, i, self.html()) ); }); } else { this.empty().append( value ); } return this; }, replaceWith function( value ) { if ( this[0] this[0].parentNode ) { // Make sure that the elements are removed from the DOM before they are inserted // this can help fix replacing a parent with child elements if ( jQuery.isFunction( value ) ) { return this.each(function(i) { var self = jQuery(this), old = self.html(); self.replaceWith( value.call( this, i, old ) ); }); } if ( typeof value !== "string" ) { value = jQuery(value).detach(); } return this.each(function() { var next = this.nextSibling, parent = this.parentNode; jQuery(this).remove(); if ( next ) { jQuery(next).before( value ); } else { jQuery(parent).append( value ); } }); } else { return this.pushStack( jQuery(jQuery.isFunction(value) ? value() value), "replaceWith", value ); } }, detach function( selector ) { return this.remove( selector, true ); }, domManip function( args, table, callback ) { var results, first, value = args[0], scripts = [], fragment, parent; // We can t cloneNode fragments that contain checked, in WebKit if ( !jQuery.support.checkClone arguments.length === 3 typeof value === "string" rchecked.test( value ) ) { return this.each(function() { jQuery(this).domManip( args, table, callback, true ); }); } if ( jQuery.isFunction(value) ) { return this.each(function(i) { var self = jQuery(this); args[0] = value.call(this, i, table ? self.html() undefined); self.domManip( args, table, callback ); }); } if ( this[0] ) { parent = value value.parentNode; // If we re in a fragment, just use that instead of building a new one if ( jQuery.support.parentNode parent parent.nodeType === 11 parent.childNodes.length === this.length ) { results = { fragment parent }; } else { results = jQuery.buildFragment( args, this, scripts ); } fragment = results.fragment; if ( fragment.childNodes.length === 1 ) { first = fragment = fragment.firstChild; } else { first = fragment.firstChild; } if ( first ) { table = table jQuery.nodeName( first, "tr" ); for ( var i = 0, l = this.length; i l; i++ ) { callback.call( table ? root(this[i], first) this[i], i 0 || results.cacheable || this.length 1 ? fragment.cloneNode(true) fragment ); } } if ( scripts.length ) { jQuery.each( scripts, evalScript ); } } return this; } }); function root( elem, cur ) { return jQuery.nodeName(elem, "table") ? (elem.getElementsByTagName("tbody")[0] || elem.appendChild(elem.ownerDocument.createElement("tbody"))) elem; } function cloneCopyEvent(orig, ret) { var i = 0; ret.each(function() { if ( this.nodeName !== (orig[i] orig[i].nodeName) ) { return; } var oldData = jQuery.data( orig[i++] ), curData = jQuery.data( this, oldData ), events = oldData oldData.events; if ( events ) { delete curData.handle; curData.events = {}; for ( var type in events ) { for ( var handler in events[ type ] ) { jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); } } } }); } jQuery.buildFragment = function( args, nodes, scripts ) { var fragment, cacheable, cacheresults, doc = (nodes nodes[0] ? nodes[0].ownerDocument || nodes[0] document); // Only cache "small" (1/2 KB) strings that are associated with the main document // Cloning options loses the selected state, so don t cache them // IE 6 doesn t like it when you put object or embed elements in a fragment // Also, WebKit does not clone checked attributes on cloneNode, so don t cache if ( args.length === 1 typeof args[0] === "string" args[0].length 512 doc === document !rnocache.test( args[0] ) (jQuery.support.checkClone || !rchecked.test( args[0] )) ) { cacheable = true; cacheresults = jQuery.fragments[ args[0] ]; if ( cacheresults ) { if ( cacheresults !== 1 ) { fragment = cacheresults; } } } if ( !fragment ) { fragment = doc.createDocumentFragment(); jQuery.clean( args, doc, fragment, scripts ); } if ( cacheable ) { jQuery.fragments[ args[0] ] = cacheresults ? fragment 1; } return { fragment fragment, cacheable cacheable }; }; jQuery.fragments = {}; jQuery.each({ appendTo "append", prependTo "prepend", insertBefore "before", insertAfter "after", replaceAll "replaceWith" }, function( name, original ) { jQuery.fn[ name ] = function( selector ) { var ret = [], insert = jQuery( selector ), parent = this.length === 1 this[0].parentNode; if ( parent parent.nodeType === 11 parent.childNodes.length === 1 insert.length === 1 ) { insert[ original ]( this[0] ); return this; } else { for ( var i = 0, l = insert.length; i l; i++ ) { var elems = (i 0 ? this.clone(true) this).get(); jQuery( insert[i] )[ original ]( elems ); ret = ret.concat( elems ); } return this.pushStack( ret, name, insert.selector ); } }; }); jQuery.extend({ clean function( elems, context, fragment, scripts ) { context = context || document; // !context.createElement fails in IE with an error but returns typeof object if ( typeof context.createElement === "undefined" ) { context = context.ownerDocument || context[0] context[0].ownerDocument || document; } var ret = []; for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { if ( typeof elem === "number" ) { elem += ""; } if ( !elem ) { continue; } // Convert html string into DOM nodes if ( typeof elem === "string" !rhtml.test( elem ) ) { elem = context.createTextNode( elem ); } else if ( typeof elem === "string" ) { // Fix "XHTML"-style tags in all browsers elem = elem.replace(rxhtmlTag, " $1 /$2 "); // Trim whitespace, otherwise indexOf won t work as expected var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(), wrap = wrapMap[ tag ] || wrapMap._default, depth = wrap[0], div = context.createElement("div"); // Go to html and back, then peel off extra wrappers div.innerHTML = wrap[1] + elem + wrap[2]; // Move to the right depth while ( depth-- ) { div = div.lastChild; } // Remove IE s autoinserted tbody from table fragments if ( !jQuery.support.tbody ) { // String was a table , *may* have spurious tbody var hasBody = rtbody.test(elem), tbody = tag === "table" !hasBody ? div.firstChild div.firstChild.childNodes // String was a bare thead or tfoot wrap[1] === " table " !hasBody ? div.childNodes []; for ( var j = tbody.length - 1; j = 0 ; --j ) { if ( jQuery.nodeName( tbody[ j ], "tbody" ) !tbody[ j ].childNodes.length ) { tbody[ j ].parentNode.removeChild( tbody[ j ] ); } } } // IE completely kills leading whitespace when innerHTML is used if ( !jQuery.support.leadingWhitespace rleadingWhitespace.test( elem ) ) { div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); } elem = div.childNodes; } if ( elem.nodeType ) { ret.push( elem ); } else { ret = jQuery.merge( ret, elem ); } } if ( fragment ) { for ( i = 0; ret[i]; i++ ) { if ( scripts jQuery.nodeName( ret[i], "script" ) (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) ret[i] ); } else { if ( ret[i].nodeType === 1 ) { ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) ); } fragment.appendChild( ret[i] ); } } } return ret; }, cleanData function( elems ) { var data, id, cache = jQuery.cache, special = jQuery.event.special, deleteExpando = jQuery.support.deleteExpando; for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { if ( elem.nodeName jQuery.noData[elem.nodeName.toLowerCase()] ) { continue; } id = elem[ jQuery.expando ]; if ( id ) { data = cache[ id ]; if ( data data.events ) { for ( var type in data.events ) { if ( special[ type ] ) { jQuery.event.remove( elem, type ); } else { jQuery.removeEvent( elem, type, data.handle ); } } } if ( deleteExpando ) { delete elem[ jQuery.expando ]; } else if ( elem.removeAttribute ) { elem.removeAttribute( jQuery.expando ); } delete cache[ id ]; } } } }); function evalScript( i, elem ) { if ( elem.src ) { jQuery.ajax({ url elem.src, async false, dataType "script" }); } else { jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); } if ( elem.parentNode ) { elem.parentNode.removeChild( elem ); } } var ralpha = /alpha\([^)]*\)/i, ropacity = /opacity=([^)]*)/, rdashAlpha = /-([a-z])/ig, rupper = /([A-Z])/g, rnumpx = /^-?\d+(? px)?$/i, rnum = /^-?\d/, cssShow = { position "absolute", visibility "hidden", display "block" }, cssWidth = [ "Left", "Right" ], cssHeight = [ "Top", "Bottom" ], curCSS, // cache check for defaultView.getComputedStyle getComputedStyle = document.defaultView document.defaultView.getComputedStyle, fcamelCase = function( all, letter ) { return letter.toUpperCase(); }; jQuery.fn.css = function( name, value ) { // Setting undefined is a no-op if ( arguments.length === 2 value === undefined ) { return this; } return jQuery.access( this, name, value, true, function( elem, name, value ) { return value !== undefined ? jQuery.style( elem, name, value ) jQuery.css( elem, name ); }); }; jQuery.extend({ // Add in style property hooks for overriding the default // behavior of getting and setting a style property cssHooks { opacity { get function( elem, computed ) { if ( computed ) { // We should always get a number back from opacity var ret = curCSS( elem, "opacity", "opacity" ); return ret === "" ? "1" ret; } else { return elem.style.opacity; } } } }, // Exclude the following css properties to add px cssNumber { "zIndex" true, "fontWeight" true, "opacity" true, "zoom" true, "lineHeight" true }, // Add in properties whose names you wish to fix before // setting or getting the value cssProps { // normalize float css property "float" jQuery.support.cssFloat ? "cssFloat" "styleFloat" }, // Get and set the style property on a DOM Node style function( elem, name, value, extra ) { // Don t set styles on text and comment nodes if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { return; } // Make sure that we re working with the right name var ret, origName = jQuery.camelCase( name ), style = elem.style, hooks = jQuery.cssHooks[ origName ]; name = jQuery.cssProps[ origName ] || origName; // Check if we re setting a value if ( value !== undefined ) { // Make sure that NaN and null values aren t set. See #7116 if ( typeof value === "number" isNaN( value ) || value == null ) { return; } // If a number was passed in, add px to the (except for certain CSS properties) if ( typeof value === "number" !jQuery.cssNumber[ origName ] ) { value += "px"; } // If a hook was provided, use that value, otherwise just set the specified value if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) { // Wrapped to prevent IE from throwing errors when invalid values are provided // Fixes bug #5509 try { style[ name ] = value; } catch(e) {} } } else { // If a hook was provided get the non-computed value from there if ( hooks "get" in hooks (ret = hooks.get( elem, false, extra )) !== undefined ) { return ret; } // Otherwise just get the value from the style object return style[ name ]; } }, css function( elem, name, extra ) { // Make sure that we re working with the right name var ret, origName = jQuery.camelCase( name ), hooks = jQuery.cssHooks[ origName ]; name = jQuery.cssProps[ origName ] || origName; // If a hook was provided get the computed value from there if ( hooks "get" in hooks (ret = hooks.get( elem, true, extra )) !== undefined ) { return ret; // Otherwise, if a way to get the computed value exists, use that } else if ( curCSS ) { return curCSS( elem, name, origName ); } }, // A method for quickly swapping in/out CSS properties to get correct calculations swap function( elem, options, callback ) { var old = {}; // Remember the old values, and insert the new ones for ( var name in options ) { old[ name ] = elem.style[ name ]; elem.style[ name ] = options[ name ]; } callback.call( elem ); // Revert the old values for ( name in options ) { elem.style[ name ] = old[ name ]; } }, camelCase function( string ) { return string.replace( rdashAlpha, fcamelCase ); } }); // DEPRECATED, Use jQuery.css() instead jQuery.curCSS = jQuery.css; jQuery.each(["height", "width"], function( i, name ) { jQuery.cssHooks[ name ] = { get function( elem, computed, extra ) { var val; if ( computed ) { if ( elem.offsetWidth !== 0 ) { val = getWH( elem, name, extra ); } else { jQuery.swap( elem, cssShow, function() { val = getWH( elem, name, extra ); }); } return val + "px"; } }, set function( elem, value ) { if ( rnumpx.test( value ) ) { // ignore negative width and height values #1599 value = parseFloat(value); if ( value = 0 ) { return value + "px"; } } else { return value; } } }; }); if ( !jQuery.support.opacity ) { jQuery.cssHooks.opacity = { get function( elem, computed ) { // IE uses filters for opacity return ropacity.test((computed elem.currentStyle ? elem.currentStyle.filter elem.style.filter) || "") ? (parseFloat(RegExp.$1) / 100) + "" computed ? "1" ""; }, set function( elem, value ) { var style = elem.style; // IE has trouble with opacity if it does not have layout // Force it by setting the zoom level style.zoom = 1; // Set the alpha filter to set the opacity var opacity = jQuery.isNaN(value) ? "" "alpha(opacity=" + value * 100 + ")", filter = style.filter || ""; style.filter = ralpha.test(filter) ? filter.replace(ralpha, opacity) style.filter + + opacity; } }; } if ( getComputedStyle ) { curCSS = function( elem, newName, name ) { var ret, defaultView, computedStyle; name = name.replace( rupper, "-$1" ).toLowerCase(); if ( !(defaultView = elem.ownerDocument.defaultView) ) { return undefined; } if ( (computedStyle = defaultView.getComputedStyle( elem, null )) ) { ret = computedStyle.getPropertyValue( name ); if ( ret === "" !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) { ret = jQuery.style( elem, name ); } } return ret; }; } else if ( document.documentElement.currentStyle ) { curCSS = function( elem, name ) { var left, rsLeft, ret = elem.currentStyle elem.currentStyle[ name ], style = elem.style; // From the awesome hack by Dean Edwards // http //erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 // If we re not dealing with a regular pixel number // but a number that has a weird ending, we need to convert it to pixels if ( !rnumpx.test( ret ) rnum.test( ret ) ) { // Remember the original values left = style.left; rsLeft = elem.runtimeStyle.left; // Put in the new values to get a computed value out elem.runtimeStyle.left = elem.currentStyle.left; style.left = name === "fontSize" ? "1em" (ret || 0); ret = style.pixelLeft + "px"; // Revert the changed values style.left = left; elem.runtimeStyle.left = rsLeft; } return ret; }; } function getWH( elem, name, extra ) { var which = name === "width" ? cssWidth cssHeight, val = name === "width" ? elem.offsetWidth elem.offsetHeight; if ( extra === "border" ) { return val; } jQuery.each( which, function() { if ( !extra ) { val -= parseFloat(jQuery.css( elem, "padding" + this )) || 0; } if ( extra === "margin" ) { val += parseFloat(jQuery.css( elem, "margin" + this )) || 0; } else { val -= parseFloat(jQuery.css( elem, "border" + this + "Width" )) || 0; } }); return val; } if ( jQuery.expr jQuery.expr.filters ) { jQuery.expr.filters.hidden = function( elem ) { var width = elem.offsetWidth, height = elem.offsetHeight; return (width === 0 height === 0) || (!jQuery.support.reliableHiddenOffsets (elem.style.display || jQuery.css( elem, "display" )) === "none"); }; jQuery.expr.filters.visible = function( elem ) { return !jQuery.expr.filters.hidden( elem ); }; } var jsc = jQuery.now(), rscript = / script\b[^ ]*(? (?! \/script ) [^ ]*)* \/script /gi, rselectTextarea = /^(? select|textarea)/i, rinput = /^(? color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, rnoContent = /^(? GET|HEAD|DELETE)$/, rbracket = /\[\]$/, jsre = /\=\?( |$)/, rquery = /\?/, rts = /([? ])_=[^ ]*/, rurl = /^(\w+ )?\/\/([^\/?#]+)/, r20 = /%20/g, rhash = /#.*$/, // Keep a copy of the old load method _load = jQuery.fn.load; jQuery.fn.extend({ load function( url, params, callback ) { if ( typeof url !== "string" _load ) { return _load.apply( this, arguments ); // Don t do a request if no elements are being requested } else if ( !this.length ) { return this; } var off = url.indexOf(" "); if ( off = 0 ) { var selector = url.slice(off, url.length); url = url.slice(0, off); } // Default to a GET request var type = "GET"; // If the second parameter was provided if ( params ) { // If it s a function if ( jQuery.isFunction( params ) ) { // We assume that it s the callback callback = params; params = null; // Otherwise, build a param string } else if ( typeof params === "object" ) { params = jQuery.param( params, jQuery.ajaxSettings.traditional ); type = "POST"; } } var self = this; // Request the remote document jQuery.ajax({ url url, type type, dataType "html", data params, complete function( res, status ) { // If successful, inject the HTML into all the matched elements if ( status === "success" || status === "notmodified" ) { // See if a selector was specified self.html( selector ? // Create a dummy div to hold the results jQuery(" div ") // inject the contents of the document in, removing the scripts // to avoid any Permission Denied errors in IE .append(res.responseText.replace(rscript, "")) // Locate the specified elements .find(selector) // If not, just inject the full result res.responseText ); } if ( callback ) { self.each( callback, [res.responseText, status, res] ); } } }); return this; }, serialize function() { return jQuery.param(this.serializeArray()); }, serializeArray function() { return this.map(function() { return this.elements ? jQuery.makeArray(this.elements) this; }) .filter(function() { return this.name !this.disabled (this.checked || rselectTextarea.test(this.nodeName) || rinput.test(this.type)); }) .map(function( i, elem ) { var val = jQuery(this).val(); return val == null ? null jQuery.isArray(val) ? jQuery.map( val, function( val, i ) { return { name elem.name, value val }; }) { name elem.name, value val }; }).get(); } }); // Attach a bunch of functions for handling common AJAX events jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function( i, o ) { jQuery.fn[o] = function( f ) { return this.bind(o, f); }; }); jQuery.extend({ get function( url, data, callback, type ) { // shift arguments if data argument was omited if ( jQuery.isFunction( data ) ) { type = type || callback; callback = data; data = null; } return jQuery.ajax({ type "GET", url url, data data, success callback, dataType type }); }, getScript function( url, callback ) { return jQuery.get(url, null, callback, "script"); }, getJSON function( url, data, callback ) { return jQuery.get(url, data, callback, "json"); }, post function( url, data, callback, type ) { // shift arguments if data argument was omited if ( jQuery.isFunction( data ) ) { type = type || callback; callback = data; data = {}; } return jQuery.ajax({ type "POST", url url, data data, success callback, dataType type }); }, ajaxSetup function( settings ) { jQuery.extend( jQuery.ajaxSettings, settings ); }, ajaxSettings { url location.href, global true, type "GET", contentType "application/x-www-form-urlencoded", processData true, async true, /* timeout 0, data null, username null, password null, traditional false, */ // This function can be overriden by calling jQuery.ajaxSetup xhr function() { return new window.XMLHttpRequest(); }, accepts { xml "application/xml, text/xml", html "text/html", script "text/javascript, application/javascript", json "application/json, text/javascript", text "text/plain", _default "*/*" } }, ajax function( origSettings ) { var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings), jsonp, status, data, type = s.type.toUpperCase(), noContent = rnoContent.test(type); s.url = s.url.replace( rhash, "" ); // Use original (not extended) context object if it was provided s.context = origSettings origSettings.context != null ? origSettings.context s; // convert data if not already a string if ( s.data s.processData typeof s.data !== "string" ) { s.data = jQuery.param( s.data, s.traditional ); } // Handle JSONP Parameter Callbacks if ( s.dataType === "jsonp" ) { if ( type === "GET" ) { if ( !jsre.test( s.url ) ) { s.url += (rquery.test( s.url ) ? " " "?") + (s.jsonp || "callback") + "=?"; } } else if ( !s.data || !jsre.test(s.data) ) { s.data = (s.data ? s.data + " " "") + (s.jsonp || "callback") + "=?"; } s.dataType = "json"; } // Build temporary JSONP function if ( s.dataType === "json" (s.data jsre.test(s.data) || jsre.test(s.url)) ) { jsonp = s.jsonpCallback || ("jsonp" + jsc++); // Replace the =? sequence both in the query string and the data if ( s.data ) { s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1"); } s.url = s.url.replace(jsre, "=" + jsonp + "$1"); // We need to make sure // that a JSONP style response is executed properly s.dataType = "script"; // Handle JSONP-style loading var customJsonp = window[ jsonp ]; window[ jsonp ] = function( tmp ) { data = tmp; jQuery.handleSuccess( s, xhr, status, data ); jQuery.handleComplete( s, xhr, status, data ); if ( jQuery.isFunction( customJsonp ) ) { customJsonp( tmp ); } else { // Garbage collect window[ jsonp ] = undefined; try { delete window[ jsonp ]; } catch( jsonpError ) {} } if ( head ) { head.removeChild( script ); } }; } if ( s.dataType === "script" s.cache === null ) { s.cache = false; } if ( s.cache === false type === "GET" ) { var ts = jQuery.now(); // try replacing _= if it is there var ret = s.url.replace(rts, "$1_=" + ts); // if nothing was replaced, add timestamp to the end s.url = ret + ((ret === s.url) ? (rquery.test(s.url) ? " " "?") + "_=" + ts ""); } // If data is available, append data to url for get requests if ( s.data type === "GET" ) { s.url += (rquery.test(s.url) ? " " "?") + s.data; } // Watch for a new set of requests if ( s.global jQuery.active++ === 0 ) { jQuery.event.trigger( "ajaxStart" ); } // Matches an absolute URL, and saves the domain var parts = rurl.exec( s.url ), remote = parts (parts[1] parts[1] !== location.protocol || parts[2] !== location.host); // If we re requesting a remote document // and trying to load JSON or Script with a GET if ( s.dataType === "script" type === "GET" remote ) { var head = document.getElementsByTagName("head")[0] || document.documentElement; var script = document.createElement("script"); if ( s.scriptCharset ) { script.charset = s.scriptCharset; } script.src = s.url; // Handle Script loading if ( !jsonp ) { var done = false; // Attach handlers for all browsers script.onload = script.onreadystatechange = function() { if ( !done (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") ) { done = true; jQuery.handleSuccess( s, xhr, status, data ); jQuery.handleComplete( s, xhr, status, data ); // Handle memory leak in IE script.onload = script.onreadystatechange = null; if ( head script.parentNode ) { head.removeChild( script ); } } }; } // Use insertBefore instead of appendChild to circumvent an IE6 bug. // This arises when a base node is used (#2709 and #4378). head.insertBefore( script, head.firstChild ); // We handle everything using the script element injection return undefined; } var requestDone = false; // Create the request object var xhr = s.xhr(); if ( !xhr ) { return; } // Open the socket // Passing null username, generates a login popup on Opera (#2865) if ( s.username ) { xhr.open(type, s.url, s.async, s.username, s.password); } else { xhr.open(type, s.url, s.async); } // Need an extra try/catch for cross domain requests in Firefox 3 try { // Set content-type if data specified and content-body is valid for this type if ( (s.data != null !noContent) || (origSettings origSettings.contentType) ) { xhr.setRequestHeader("Content-Type", s.contentType); } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { if ( jQuery.lastModified[s.url] ) { xhr.setRequestHeader("If-Modified-Since", jQuery.lastModified[s.url]); } if ( jQuery.etag[s.url] ) { xhr.setRequestHeader("If-None-Match", jQuery.etag[s.url]); } } // Set header so the called script knows that it s an XMLHttpRequest // Only send the header if it s not a remote XHR if ( !remote ) { xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); } // Set the Accepts header for the server, depending on the dataType xhr.setRequestHeader("Accept", s.dataType s.accepts[ s.dataType ] ? s.accepts[ s.dataType ] + ", */*; q=0.01" s.accepts._default ); } catch( headerError ) {} // Allow custom headers/mimetypes and early abort if ( s.beforeSend s.beforeSend.call(s.context, xhr, s) === false ) { // Handle the global AJAX counter if ( s.global jQuery.active-- === 1 ) { jQuery.event.trigger( "ajaxStop" ); } // close opended socket xhr.abort(); return false; } if ( s.global ) { jQuery.triggerGlobal( s, "ajaxSend", [xhr, s] ); } // Wait for a response to come back var onreadystatechange = xhr.onreadystatechange = function( isTimeout ) { // The request was aborted if ( !xhr || xhr.readyState === 0 || isTimeout === "abort" ) { // Opera doesn t call onreadystatechange before this point // so we simulate the call if ( !requestDone ) { jQuery.handleComplete( s, xhr, status, data ); } requestDone = true; if ( xhr ) { xhr.onreadystatechange = jQuery.noop; } // The transfer is complete and the data is available, or the request timed out } else if ( !requestDone xhr (xhr.readyState === 4 || isTimeout === "timeout") ) { requestDone = true; xhr.onreadystatechange = jQuery.noop; status = isTimeout === "timeout" ? "timeout" !jQuery.httpSuccess( xhr ) ? "error" s.ifModified jQuery.httpNotModified( xhr, s.url ) ? "notmodified" "success"; var errMsg; if ( status === "success" ) { // Watch for, and catch, XML document parse errors try { // process the data (runs the xml through httpData regardless of callback) data = jQuery.httpData( xhr, s.dataType, s ); } catch( parserError ) { status = "parsererror"; errMsg = parserError; } } // Make sure that the request was successful or notmodified if ( status === "success" || status === "notmodified" ) { // JSONP handles its own success callback if ( !jsonp ) { jQuery.handleSuccess( s, xhr, status, data ); } } else { jQuery.handleError( s, xhr, status, errMsg ); } // Fire the complete handlers if ( !jsonp ) { jQuery.handleComplete( s, xhr, status, data ); } if ( isTimeout === "timeout" ) { xhr.abort(); } // Stop memory leaks if ( s.async ) { xhr = null; } } }; // Override the abort handler, if we can (IE 6 doesn t allow it, but that s OK) // Opera doesn t fire onreadystatechange at all on abort try { var oldAbort = xhr.abort; xhr.abort = function() { // xhr.abort in IE7 is not a native JS function // and does not have a call property if ( xhr oldAbort.call ) { oldAbort.call( xhr ); } onreadystatechange( "abort" ); }; } catch( abortError ) {} // Timeout checker if ( s.async s.timeout 0 ) { setTimeout(function() { // Check to see if the request is still happening if ( xhr !requestDone ) { onreadystatechange( "timeout" ); } }, s.timeout); } // Send the data try { xhr.send( noContent || s.data == null ? null s.data ); } catch( sendError ) { jQuery.handleError( s, xhr, null, sendError ); // Fire the complete handlers jQuery.handleComplete( s, xhr, status, data ); } // firefox 1.5 doesn t fire statechange for sync requests if ( !s.async ) { onreadystatechange(); } // return XMLHttpRequest to allow aborting the request etc. return xhr; }, // Serialize an array of form elements or a set of // key/values into a query string param function( a, traditional ) { var s = [], add = function( key, value ) { // If value is a function, invoke it and return its value value = jQuery.isFunction(value) ? value() value; s[ s.length ] = encodeURIComponent(key) + "=" + encodeURIComponent(value); }; // Set traditional to true for jQuery = 1.3.2 behavior. if ( traditional === undefined ) { traditional = jQuery.ajaxSettings.traditional; } // If an array was passed in, assume that it is an array of form elements. if ( jQuery.isArray(a) || a.jquery ) { // Serialize the form elements jQuery.each( a, function() { add( this.name, this.value ); }); } else { // If traditional, encode the "old" way (the way 1.3.2 or older // did it), otherwise encode params recursively. for ( var prefix in a ) { buildParams( prefix, a[prefix], traditional, add ); } } // Return the resulting serialization return s.join(" ").replace(r20, "+"); } }); function buildParams( prefix, obj, traditional, add ) { if ( jQuery.isArray(obj) obj.length ) { // Serialize array item. jQuery.each( obj, function( i, v ) { if ( traditional || rbracket.test( prefix ) ) { // Treat each array item as a scalar. add( prefix, v ); } else { // If array item is non-scalar (array or object), encode its // numeric index to resolve deserialization ambiguity issues. // Note that rack (as of 1.0.0) can t currently deserialize // nested arrays properly, and attempting to do so may cause // a server error. Possible fixes are to modify rack s // deserialization algorithm or to provide an option or flag // to force array serialization to be shallow. buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i "" ) + "]", v, traditional, add ); } }); } else if ( !traditional obj != null typeof obj === "object" ) { if ( jQuery.isEmptyObject( obj ) ) { add( prefix, "" ); // Serialize object item. } else { jQuery.each( obj, function( k, v ) { buildParams( prefix + "[" + k + "]", v, traditional, add ); }); } } else { // Serialize scalar item. add( prefix, obj ); } } // This is still on the jQuery object... for now // Want to move this to jQuery.ajax some day jQuery.extend({ // Counter for holding the number of active queries active 0, // Last-Modified header cache for next request lastModified {}, etag {}, handleError function( s, xhr, status, e ) { // If a local callback was specified, fire it if ( s.error ) { s.error.call( s.context, xhr, status, e ); } // Fire the global callback if ( s.global ) { jQuery.triggerGlobal( s, "ajaxError", [xhr, s, e] ); } }, handleSuccess function( s, xhr, status, data ) { // If a local callback was specified, fire it and pass it the data if ( s.success ) { s.success.call( s.context, data, status, xhr ); } // Fire the global callback if ( s.global ) { jQuery.triggerGlobal( s, "ajaxSuccess", [xhr, s] ); } }, handleComplete function( s, xhr, status ) { // Process result if ( s.complete ) { s.complete.call( s.context, xhr, status ); } // The request was completed if ( s.global ) { jQuery.triggerGlobal( s, "ajaxComplete", [xhr, s] ); } // Handle the global AJAX counter if ( s.global jQuery.active-- === 1 ) { jQuery.event.trigger( "ajaxStop" ); } }, triggerGlobal function( s, type, args ) { (s.context s.context.url == null ? jQuery(s.context) jQuery.event).trigger(type, args); }, // Determines if an XMLHttpRequest was successful or not httpSuccess function( xhr ) { try { // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450 return !xhr.status location.protocol === "file " || xhr.status = 200 xhr.status 300 || xhr.status === 304 || xhr.status === 1223; } catch(e) {} return false; }, // Determines if an XMLHttpRequest returns NotModified httpNotModified function( xhr, url ) { var lastModified = xhr.getResponseHeader("Last-Modified"), etag = xhr.getResponseHeader("Etag"); if ( lastModified ) { jQuery.lastModified[url] = lastModified; } if ( etag ) { jQuery.etag[url] = etag; } return xhr.status === 304; }, httpData function( xhr, type, s ) { var ct = xhr.getResponseHeader("content-type") || "", xml = type === "xml" || !type ct.indexOf("xml") = 0, data = xml ? xhr.responseXML xhr.responseText; if ( xml data.documentElement.nodeName === "parsererror" ) { jQuery.error( "parsererror" ); } // Allow a pre-filtering function to sanitize the response // s is checked to keep backwards compatibility if ( s s.dataFilter ) { data = s.dataFilter( data, type ); } // The filter can actually parse the response if ( typeof data === "string" ) { // Get the JavaScript object, if JSON is used. if ( type === "json" || !type ct.indexOf("json") = 0 ) { data = jQuery.parseJSON( data ); // If the type is "script", eval it in global context } else if ( type === "script" || !type ct.indexOf("javascript") = 0 ) { jQuery.globalEval( data ); } } return data; } }); /* * Create the request object; Microsoft failed to properly * implement the XMLHttpRequest in IE7 (can t request local files), * so we use the ActiveXObject when it is available * Additionally XMLHttpRequest can be disabled in IE7/IE8 so * we need a fallback. */ if ( window.ActiveXObject ) { jQuery.ajaxSettings.xhr = function() { if ( window.location.protocol !== "file " ) { try { return new window.XMLHttpRequest(); } catch(xhrError) {} } try { return new window.ActiveXObject("Microsoft.XMLHTTP"); } catch(activeError) {} }; } // Does this browser support XHR requests? jQuery.support.ajax = !!jQuery.ajaxSettings.xhr(); var elemdisplay = {}, rfxtypes = /^(? toggle|show|hide)$/, rfxnum = /^([+\-]=)?([\d+.\-]+)(.*)$/, timerId, fxAttrs = [ // height animations [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ], // width animations [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ], // opacity animations [ "opacity" ] ]; jQuery.fn.extend({ show function( speed, easing, callback ) { if ( speed || speed === 0 ) { return this.animate( genFx("show", 3), speed, easing, callback); } else { for ( var i = 0, j = this.length; i j; i++ ) { // Reset the inline display of this element to learn if it is // being hidden by cascaded rules or not if ( !jQuery.data(this[i], "olddisplay") this[i].style.display === "none" ) { this[i].style.display = ""; } // Set elements which have been overridden with display none // in a stylesheet to whatever the default browser style is // for such an element if ( this[i].style.display === "" jQuery.css( this[i], "display" ) === "none" ) { jQuery.data(this[i], "olddisplay", defaultDisplay(this[i].nodeName)); } } // Set the display of most of the elements in a second loop // to avoid the constant reflow for ( i = 0; i j; i++ ) { this[i].style.display = jQuery.data(this[i], "olddisplay") || ""; } return this; } }, hide function( speed, easing, callback ) { if ( speed || speed === 0 ) { return this.animate( genFx("hide", 3), speed, easing, callback); } else { for ( var i = 0, j = this.length; i j; i++ ) { var display = jQuery.css( this[i], "display" ); if ( display !== "none" ) { jQuery.data( this[i], "olddisplay", display ); } } // Set the display of the elements in a second loop // to avoid the constant reflow for ( i = 0; i j; i++ ) { this[i].style.display = "none"; } return this; } }, // Save the old toggle function _toggle jQuery.fn.toggle, toggle function( fn, fn2, callback ) { var bool = typeof fn === "boolean"; if ( jQuery.isFunction(fn) jQuery.isFunction(fn2) ) { this._toggle.apply( this, arguments ); } else if ( fn == null || bool ) { this.each(function() { var state = bool ? fn jQuery(this).is(" hidden"); jQuery(this)[ state ? "show" "hide" ](); }); } else { this.animate(genFx("toggle", 3), fn, fn2, callback); } return this; }, fadeTo function( speed, to, easing, callback ) { return this.filter(" hidden").css("opacity", 0).show().end() .animate({opacity to}, speed, easing, callback); }, animate function( prop, speed, easing, callback ) { var optall = jQuery.speed(speed, easing, callback); if ( jQuery.isEmptyObject( prop ) ) { return this.each( optall.complete ); } return this[ optall.queue === false ? "each" "queue" ](function() { // XXX 窶・his窶・does not always have a nodeName when running the // test suite var opt = jQuery.extend({}, optall), p, isElement = this.nodeType === 1, hidden = isElement jQuery(this).is(" hidden"), self = this; for ( p in prop ) { var name = jQuery.camelCase( p ); if ( p !== name ) { prop[ name ] = prop[ p ]; delete prop[ p ]; p = name; } if ( prop[p] === "hide" hidden || prop[p] === "show" !hidden ) { return opt.complete.call(this); } if ( isElement ( p === "height" || p === "width" ) ) { // Make sure that nothing sneaks out // Record all 3 overflow attributes because IE does not // change the overflow attribute when overflowX and // overflowY are set to the same value opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ]; // Set display property to inline-block for height/width // animations on inline elements that are having width/height // animated if ( jQuery.css( this, "display" ) === "inline" jQuery.css( this, "float" ) === "none" ) { if ( !jQuery.support.inlineBlockNeedsLayout ) { this.style.display = "inline-block"; } else { var display = defaultDisplay(this.nodeName); // inline-level elements accept inline-block; // block-level elements need to be inline with layout if ( display === "inline" ) { this.style.display = "inline-block"; } else { this.style.display = "inline"; this.style.zoom = 1; } } } } if ( jQuery.isArray( prop[p] ) ) { // Create (if needed) and add to specialEasing (opt.specialEasing = opt.specialEasing || {})[p] = prop[p][1]; prop[p] = prop[p][0]; } } if ( opt.overflow != null ) { this.style.overflow = "hidden"; } opt.curAnim = jQuery.extend({}, prop); jQuery.each( prop, function( name, val ) { var e = new jQuery.fx( self, opt, name ); if ( rfxtypes.test(val) ) { e[ val === "toggle" ? hidden ? "show" "hide" val ]( prop ); } else { var parts = rfxnum.exec(val), start = e.cur(true) || 0; if ( parts ) { var end = parseFloat( parts[2] ), unit = parts[3] || "px"; // We need to compute starting value if ( unit !== "px" ) { jQuery.style( self, name, (end || 1) + unit); start = ((end || 1) / e.cur(true)) * start; jQuery.style( self, name, start + unit); } // If a +=/-= token was provided, we re doing a relative animation if ( parts[1] ) { end = ((parts[1] === "-=" ? -1 1) * end) + start; } e.custom( start, end, unit ); } else { e.custom( start, val, "" ); } } }); // For JS strict compliance return true; }); }, stop function( clearQueue, gotoEnd ) { var timers = jQuery.timers; if ( clearQueue ) { this.queue([]); } this.each(function() { // go in reverse order so anything added to the queue during the loop is ignored for ( var i = timers.length - 1; i = 0; i-- ) { if ( timers[i].elem === this ) { if (gotoEnd) { // force the next step to be the last timers[i](true); } timers.splice(i, 1); } } }); // start the next in the queue if the last step wasn t forced if ( !gotoEnd ) { this.dequeue(); } return this; } }); function genFx( type, num ) { var obj = {}; jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() { obj[ this ] = type; }); return obj; } // Generate shortcuts for custom animations jQuery.each({ slideDown genFx("show", 1), slideUp genFx("hide", 1), slideToggle genFx("toggle", 1), fadeIn { opacity "show" }, fadeOut { opacity "hide" } }, function( name, props ) { jQuery.fn[ name ] = function( speed, easing, callback ) { return this.animate( props, speed, easing, callback ); }; }); jQuery.extend({ speed function( speed, easing, fn ) { var opt = speed typeof speed === "object" ? jQuery.extend({}, speed) { complete fn || !fn easing || jQuery.isFunction( speed ) speed, duration speed, easing fn easing || easing !jQuery.isFunction(easing) easing }; opt.duration = jQuery.fx.off ? 0 typeof opt.duration === "number" ? opt.duration opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] jQuery.fx.speeds._default; // Queueing opt.old = opt.complete; opt.complete = function() { if ( opt.queue !== false ) { jQuery(this).dequeue(); } if ( jQuery.isFunction( opt.old ) ) { opt.old.call( this ); } }; return opt; }, easing { linear function( p, n, firstNum, diff ) { return firstNum + diff * p; }, swing function( p, n, firstNum, diff ) { return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum; } }, timers [], fx function( elem, options, prop ) { this.options = options; this.elem = elem; this.prop = prop; if ( !options.orig ) { options.orig = {}; } } }); jQuery.fx.prototype = { // Simple function for setting a style value update function() { if ( this.options.step ) { this.options.step.call( this.elem, this.now, this ); } (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this ); }, // Get the current size cur function() { if ( this.elem[this.prop] != null (!this.elem.style || this.elem.style[this.prop] == null) ) { return this.elem[ this.prop ]; } var r = parseFloat( jQuery.css( this.elem, this.prop ) ); return r r -10000 ? r 0; }, // Start an animation from one number to another custom function( from, to, unit ) { this.startTime = jQuery.now(); this.start = from; this.end = to; this.unit = unit || this.unit || "px"; this.now = this.start; this.pos = this.state = 0; var self = this, fx = jQuery.fx; function t( gotoEnd ) { return self.step(gotoEnd); } t.elem = this.elem; if ( t() jQuery.timers.push(t) !timerId ) { timerId = setInterval(fx.tick, fx.interval); } }, // Simple show function show function() { // Remember where we started, so that we can go back to it later this.options.orig[this.prop] = jQuery.style( this.elem, this.prop ); this.options.show = true; // Begin the animation // Make sure that we start at a small width/height to avoid any // flash of content this.custom(this.prop === "width" || this.prop === "height" ? 1 0, this.cur()); // Start by showing the element jQuery( this.elem ).show(); }, // Simple hide function hide function() { // Remember where we started, so that we can go back to it later this.options.orig[this.prop] = jQuery.style( this.elem, this.prop ); this.options.hide = true; // Begin the animation this.custom(this.cur(), 0); }, // Each step of an animation step function( gotoEnd ) { var t = jQuery.now(), done = true; if ( gotoEnd || t = this.options.duration + this.startTime ) { this.now = this.end; this.pos = this.state = 1; this.update(); this.options.curAnim[ this.prop ] = true; for ( var i in this.options.curAnim ) { if ( this.options.curAnim[i] !== true ) { done = false; } } if ( done ) { // Reset the overflow if ( this.options.overflow != null !jQuery.support.shrinkWrapBlocks ) { var elem = this.elem, options = this.options; jQuery.each( [ "", "X", "Y" ], function (index, value) { elem.style[ "overflow" + value ] = options.overflow[index]; } ); } // Hide the element if the "hide" operation was done if ( this.options.hide ) { jQuery(this.elem).hide(); } // Reset the properties, if the item has been hidden or shown if ( this.options.hide || this.options.show ) { for ( var p in this.options.curAnim ) { jQuery.style( this.elem, p, this.options.orig[p] ); } } // Execute the complete function this.options.complete.call( this.elem ); } return false; } else { var n = t - this.startTime; this.state = n / this.options.duration; // Perform the easing function, defaults to swing var specialEasing = this.options.specialEasing this.options.specialEasing[this.prop]; var defaultEasing = this.options.easing || (jQuery.easing.swing ? "swing" "linear"); this.pos = jQuery.easing[specialEasing || defaultEasing](this.state, n, 0, 1, this.options.duration); this.now = this.start + ((this.end - this.start) * this.pos); // Perform the next step of the animation this.update(); } return true; } }; jQuery.extend( jQuery.fx, { tick function() { var timers = jQuery.timers; for ( var i = 0; i timers.length; i++ ) { if ( !timers[i]() ) { timers.splice(i--, 1); } } if ( !timers.length ) { jQuery.fx.stop(); } }, interval 13, stop function() { clearInterval( timerId ); timerId = null; }, speeds { slow 600, fast 200, // Default speed _default 400 }, step { opacity function( fx ) { jQuery.style( fx.elem, "opacity", fx.now ); }, _default function( fx ) { if ( fx.elem.style fx.elem.style[ fx.prop ] != null ) { fx.elem.style[ fx.prop ] = (fx.prop === "width" || fx.prop === "height" ? Math.max(0, fx.now) fx.now) + fx.unit; } else { fx.elem[ fx.prop ] = fx.now; } } } }); if ( jQuery.expr jQuery.expr.filters ) { jQuery.expr.filters.animated = function( elem ) { return jQuery.grep(jQuery.timers, function( fn ) { return elem === fn.elem; }).length; }; } function defaultDisplay( nodeName ) { if ( !elemdisplay[ nodeName ] ) { var elem = jQuery(" " + nodeName + " ").appendTo("body"), display = elem.css("display"); elem.remove(); if ( display === "none" || display === "" ) { display = "block"; } elemdisplay[ nodeName ] = display; } return elemdisplay[ nodeName ]; } var rtable = /^t(? able|d|h)$/i, rroot = /^(? body|html)$/i; if ( "getBoundingClientRect" in document.documentElement ) { jQuery.fn.offset = function( options ) { var elem = this[0], box; if ( options ) { return this.each(function( i ) { jQuery.offset.setOffset( this, options, i ); }); } if ( !elem || !elem.ownerDocument ) { return null; } if ( elem === elem.ownerDocument.body ) { return jQuery.offset.bodyOffset( elem ); } try { box = elem.getBoundingClientRect(); } catch(e) {} var doc = elem.ownerDocument, docElem = doc.documentElement; // Make sure we re not dealing with a disconnected DOM node if ( !box || !jQuery.contains( docElem, elem ) ) { return box || { top 0, left 0 }; } var body = doc.body, win = getWindow(doc), clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, scrollTop = (win.pageYOffset || jQuery.support.boxModel docElem.scrollTop || body.scrollTop ), scrollLeft = (win.pageXOffset || jQuery.support.boxModel docElem.scrollLeft || body.scrollLeft), top = box.top + scrollTop - clientTop, left = box.left + scrollLeft - clientLeft; return { top top, left left }; }; } else { jQuery.fn.offset = function( options ) { var elem = this[0]; if ( options ) { return this.each(function( i ) { jQuery.offset.setOffset( this, options, i ); }); } if ( !elem || !elem.ownerDocument ) { return null; } if ( elem === elem.ownerDocument.body ) { return jQuery.offset.bodyOffset( elem ); } jQuery.offset.initialize(); var offsetParent = elem.offsetParent, prevOffsetParent = elem, doc = elem.ownerDocument, computedStyle, docElem = doc.documentElement, body = doc.body, defaultView = doc.defaultView, prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) elem.currentStyle, top = elem.offsetTop, left = elem.offsetLeft; while ( (elem = elem.parentNode) elem !== body elem !== docElem ) { if ( jQuery.offset.supportsFixedPosition prevComputedStyle.position === "fixed" ) { break; } computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) elem.currentStyle; top -= elem.scrollTop; left -= elem.scrollLeft; if ( elem === offsetParent ) { top += elem.offsetTop; left += elem.offsetLeft; if ( jQuery.offset.doesNotAddBorder !(jQuery.offset.doesAddBorderForTableAndCells rtable.test(elem.nodeName)) ) { top += parseFloat( computedStyle.borderTopWidth ) || 0; left += parseFloat( computedStyle.borderLeftWidth ) || 0; } prevOffsetParent = offsetParent; offsetParent = elem.offsetParent; } if ( jQuery.offset.subtractsBorderForOverflowNotVisible computedStyle.overflow !== "visible" ) { top += parseFloat( computedStyle.borderTopWidth ) || 0; left += parseFloat( computedStyle.borderLeftWidth ) || 0; } prevComputedStyle = computedStyle; } if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) { top += body.offsetTop; left += body.offsetLeft; } if ( jQuery.offset.supportsFixedPosition prevComputedStyle.position === "fixed" ) { top += Math.max( docElem.scrollTop, body.scrollTop ); left += Math.max( docElem.scrollLeft, body.scrollLeft ); } return { top top, left left }; }; } jQuery.offset = { initialize function() { var body = document.body, container = document.createElement("div"), innerDiv, checkDiv, table, td, bodyMarginTop = parseFloat( jQuery.css(body, "marginTop") ) || 0, html = " 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 "; jQuery.extend( container.style, { position "absolute", top 0, left 0, margin 0, border 0, width "1px", height "1px", visibility "hidden" } ); container.innerHTML = html; body.insertBefore( container, body.firstChild ); innerDiv = container.firstChild; checkDiv = innerDiv.firstChild; td = innerDiv.nextSibling.firstChild.firstChild; this.doesNotAddBorder = (checkDiv.offsetTop !== 5); this.doesAddBorderForTableAndCells = (td.offsetTop === 5); checkDiv.style.position = "fixed"; checkDiv.style.top = "20px"; // safari subtracts parent border width here which is 5px this.supportsFixedPosition = (checkDiv.offsetTop === 20 || checkDiv.offsetTop === 15); checkDiv.style.position = checkDiv.style.top = ""; innerDiv.style.overflow = "hidden"; innerDiv.style.position = "relative"; this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5); this.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bodyMarginTop); body.removeChild( container ); body = container = innerDiv = checkDiv = table = td = null; jQuery.offset.initialize = jQuery.noop; }, bodyOffset function( body ) { var top = body.offsetTop, left = body.offsetLeft; jQuery.offset.initialize(); if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) { top += parseFloat( jQuery.css(body, "marginTop") ) || 0; left += parseFloat( jQuery.css(body, "marginLeft") ) || 0; } return { top top, left left }; }, setOffset function( elem, options, i ) { var position = jQuery.css( elem, "position" ); // set position first, in-case top/left are set even on static elem if ( position === "static" ) { elem.style.position = "relative"; } var curElem = jQuery( elem ), curOffset = curElem.offset(), curCSSTop = jQuery.css( elem, "top" ), curCSSLeft = jQuery.css( elem, "left" ), calculatePosition = (position === "absolute" jQuery.inArray( auto , [curCSSTop, curCSSLeft]) -1), props = {}, curPosition = {}, curTop, curLeft; // need to be able to calculate position if either top or left is auto and position is absolute if ( calculatePosition ) { curPosition = curElem.position(); } curTop = calculatePosition ? curPosition.top parseInt( curCSSTop, 10 ) || 0; curLeft = calculatePosition ? curPosition.left parseInt( curCSSLeft, 10 ) || 0; if ( jQuery.isFunction( options ) ) { options = options.call( elem, i, curOffset ); } if (options.top != null) { props.top = (options.top - curOffset.top) + curTop; } if (options.left != null) { props.left = (options.left - curOffset.left) + curLeft; } if ( "using" in options ) { options.using.call( elem, props ); } else { curElem.css( props ); } } }; jQuery.fn.extend({ position function() { if ( !this[0] ) { return null; } var elem = this[0], // Get *real* offsetParent offsetParent = this.offsetParent(), // Get correct offsets offset = this.offset(), parentOffset = rroot.test(offsetParent[0].nodeName) ? { top 0, left 0 } offsetParent.offset(); // Subtract element margins // note when an element has margin auto the offsetLeft and marginLeft // are the same in Safari causing offset.left to incorrectly be 0 offset.top -= parseFloat( jQuery.css(elem, "marginTop") ) || 0; offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0; // Add offsetParent borders parentOffset.top += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0; parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0; // Subtract the two offsets return { top offset.top - parentOffset.top, left offset.left - parentOffset.left }; }, offsetParent function() { return this.map(function() { var offsetParent = this.offsetParent || document.body; while ( offsetParent (!rroot.test(offsetParent.nodeName) jQuery.css(offsetParent, "position") === "static") ) { offsetParent = offsetParent.offsetParent; } return offsetParent; }); } }); // Create scrollLeft and scrollTop methods jQuery.each( ["Left", "Top"], function( i, name ) { var method = "scroll" + name; jQuery.fn[ method ] = function(val) { var elem = this[0], win; if ( !elem ) { return null; } if ( val !== undefined ) { // Set the scroll offset return this.each(function() { win = getWindow( this ); if ( win ) { win.scrollTo( !i ? val jQuery(win).scrollLeft(), i ? val jQuery(win).scrollTop() ); } else { this[ method ] = val; } }); } else { win = getWindow( elem ); // Return the scroll offset return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" "pageXOffset" ] jQuery.support.boxModel win.document.documentElement[ method ] || win.document.body[ method ] elem[ method ]; } }; }); function getWindow( elem ) { return jQuery.isWindow( elem ) ? elem elem.nodeType === 9 ? elem.defaultView || elem.parentWindow false; } // Create innerHeight, innerWidth, outerHeight and outerWidth methods jQuery.each([ "Height", "Width" ], function( i, name ) { var type = name.toLowerCase(); // innerHeight and innerWidth jQuery.fn["inner" + name] = function() { return this[0] ? parseFloat( jQuery.css( this[0], type, "padding" ) ) null; }; // outerHeight and outerWidth jQuery.fn["outer" + name] = function( margin ) { return this[0] ? parseFloat( jQuery.css( this[0], type, margin ? "margin" "border" ) ) null; }; jQuery.fn[ type ] = function( size ) { // Get window width or height var elem = this[0]; if ( !elem ) { return size == null ? null this; } if ( jQuery.isFunction( size ) ) { return this.each(function( i ) { var self = jQuery( this ); self[ type ]( size.call( this, i, self[ type ]() ) ); }); } return jQuery.isWindow( elem ) ? // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode elem.document.compatMode === "CSS1Compat" elem.document.documentElement[ "client" + name ] || elem.document.body[ "client" + name ] // Get document width or height (elem.nodeType === 9) ? // is it a document // Either scroll[Width/Height] or offset[Width/Height], whichever is greater Math.max( elem.documentElement["client" + name], elem.body["scroll" + name], elem.documentElement["scroll" + name], elem.body["offset" + name], elem.documentElement["offset" + name] ) // Get or set width or height on the element size === undefined ? // Get width or height on the element parseFloat( jQuery.css( elem, type ) ) // Set the width or height on the element (default to pixels if value is unitless) this.css( type, typeof size === "string" ? size size + "px" ); }; }); })(window);
https://w.atwiki.jp/elvis/pages/1686.html
Snow Queen Walker Books Ltd?Hans Christian AndersenNaomi Lewis?Angela Barrett? The Wild Swans (Young Childrens Fiction) Walker Books Ltd?Hans Christian Andersen Tales of Hans Christian Andersen Walker Books Ltd?Naomi Lewis? The Emperor and the Nightingale (First Reading) Usborne Publishing Ltd?Hans Christian AndersenGraham Philpot? The Emperor and the Nightingale (Bloomsbury UK Children's Classics) Bloomsbury Pub Ltd?Fiona Waters?Paul Birkbeck?Hans Christian Andersen The Emperor and the Nightingale (Bloomsbury Children's Classics) Bloomsbury Pub Ltd?Fiona Waters?Paul Birkbeck?Hans Christian Andersen Short Stories by Hans Christian Andersen (Thornes Classic Short Stories) Nelson Thornes?Sarah Matthews?Erik Haugaard?Mike Royston? Hans Christian Andersen The Fan Dancer Allison & Busby?Alison Prince? Hans Christian Andersen The Fan Dancer (Allison Busby Biography) Allison & Busby?Alison Prince? Hans Christian Andersen (Famous People, Famous Lives) Franklin Watts Ltd?Emma Fischel? Hans Andersen's Fairytales (Children's Storytime Treasury) Parragon Plus?Hans Christian Andersen Hans Christian Andersen And Music The Nightingale Revealed Ashgate Pub Ltd?Anna Harwell Celenza?Anna H. Harwell Celenza? Stories from Hans Christian Andersen Diane Pub Co?Andrew Matthews?Alan Snow? The Classic Hans Christian Andersen Fairy Tales (Children's Storybook Classics) Courage Books?Hans Christian AndersenSheila Black?Erin Augenstine?Andrew Babanovsky?Richard Bernal?Arlene Klemushin?Robyn Officer?Karen Pritchett?Richard Walz? The Classic Treasury of Hans Christian Andersen Courage Books?Hans Christian AndersenChristian Birmingham? Emperor's New Clothes Candlewick Pr?Naomi Lewis?Hans Christian AndersenAngela Barrett? The Tinderbox Candlewick Pr?Hans Christian AndersenStephen Mitchell?Bagram Ibatoulline? The Nightingale Candlewick Pr?Hans Christian AndersenStephen Mitchell?Bagram Ibatoulline? Tales of Hans Christian Andersen Candlewick Pr?Hans Christian AndersenJoel Stewart? Fairy Tales from Hans Christian Andersen Smithmark Pub?Nicola Baxter?Hans Christian AndersenCathie Shuttleworth? Andersen's Fairy Tales Wildside Pr?Hans Christian Andersen The Little Mermaid Hyperion (Juv)?Hans Christian Andersen The Little Mermaid Disney Pr (Lib)?Hans Christian AndersenDisney Archival Art? Walt Disney's the Ugly Duckling Disney Pr (Juv Trd)?Margaret Wise Brown?Hans Christian AndersenWalt Disney CompanyGil Dicicco? Walt Disney's the Ugly Duckling (Walt Disney Classic Edition) Hyperion (Juv)?Don Maclaughlin?Monique Peterson?Hans Christian AndersenWalt Disney Company The Snow Queen (Young Classics) Dk Pub (P) (a)?Hans Christian AndersenAdrian Mitchell?Nilesh Mistry? Hans Christian Anderson (Bloom's Modern Critical Views) Chelsea House Pub (L)?Harold Bloom? The Snow Queen (Young Reading Gift Books) Usborne Pub Ltd?Hans Christian AndersenLesley Sims?Alan Marks? The Swan Princess (Young Reading Gift Books) Usborne Pub Ltd?Hans Christian AndersenRosie Dickins?Jenny Press? The Little Mermaid (Picture Books) Usborne Pub Ltd?Katie Daynes?Hans Christian AndersenAlan Marks? The Emperor's New Clothes (Picture Books) Usborne Pub Ltd?Susanna Davidson?Hans Christian AndersenMike Gordon? Hans Christian Andersen and the Romantic Tradition University of Toronto Press?Frederick J. Marker? The Wild Swans Dutton Childrens Books?Hans Christian AndersenSusan Jeffers?Amy Ehrlich? The Little Match Girl Dial Books for Young Readers?Hans Christian AndersenJerry Pinkney? The Nightingale Phyllis Fogelman Books?Hans Christian AndersenJerry Pinkney? Thumbelina Dial Books for Young Readers?Brad Sneed?Hans Christian Andersen Snow Queen Retold by Amy Ehrlich Dial Books for Young Readers?Hans Christian AndersenSusan Jeffers? Wild Swans Dial Books for Young Readers?Susan Jeffers?Hans Christian AndersenAmy Ehrlich? Hans Christian Andersen's Fairy Tales Airmont Pub Co?Hans Christian Andersen The Old House North South Books?Anthea Bell?Hans Christian AndersenJean Claverie? The Princess and the Pea (North South Books) Henry Holth & Co (J)?Hans Christian Andersen The Little Mermaid Henry Holth & Co (J)?Hans Christian AndersenMichael Hague? Hans Christian Andersen Fairy Tales Michael Hague's Favourite Henry Holth & Co (J)?Hans Christian AndersenMichael Hague? Andersen, Hans Christian Hans Andersen'S Fairy Tales Schocken Books? Hans Christian Andersen (Twayne's World Authors Series) Twayne Pub?Bo Gronbech? The Emperor's New Clothes Bt Bound?Hans Christian Andersen The Little Mermaid Harcourt Childrens Books (J)?Hans Christian AndersenKatie Thamer Treherne? O. T., A Danish Romance Wildside Pr?Hans Christian Andersen Fairy Tales from Hans Christian Andersen/Classic Illustrated Edition Chronicle Books Llc (Juv)?Hans Christian AndersenRussell Ash?Bernard Higton? Little Mermaid/LA Sirenita (Bilingual Fairy Tales) Chronicle Books Llc (Juv)?Oriol Izquierdo?Max?Hans Christian Andersen Little Mermaid/La Sirenita (Bilingual Fairy Tales) Chronicle Books Llc (Juv)?Oriol Izquierdo?Max?Hans Christian Andersen The Ugly Duckling (Andersen, H. C. Barron's Fairy Tales.) Barrons Juveniles?Hans Christian AndersenMarlee Alex?Tiziana Gironi? The Ugly Duckling (Barron's Fairy Tales) Barrons Juveniles?Hans Christian AndersenTiziana Gironi? The Ugly Duckling Barrons Juveniles?Hans Christian AndersenS. Saponaro? The Emperor's New Clothes (Fairy Tale Fun) Barrons Juveniles?Katy Rhodes?Hans Christian AndersenDavid Pace? Thumbelina Tor Books?L. Spencer Humphrey?Hans Christian AndersenDeborah Morse? Funny Baby (Modern Curriculum Press Beginning to Read Series) Modern Curriculum Pr?Margaret Hillert?Hans Christian AndersenHertha R. Depper? The Fairy Tale of My Life An Autobiography Cooper Square Pub?Hans Christian AndersenNaomi Lewis? The Little Mermaid A Classic Pop-Up Book Troll Communications Llc?Cecelia Slater?Hans Christian AndersenSamantha Smith?Bruce Foster? El Patito Feo/ the Ugly Duckling Troll Communications Llc?Hans Christian AndersenJennie Williams?Virginia Barone? The Emperor's New Clothes (Troll's Best-Loved Classics) Troll Communications Llc?Hans Christian AndersenPamela Baldwin-Ford? The Ugly Duckling (Troll's Best-Loved Classics) Troll Communications Llc?Hans Christian AndersenJennie Williams? Favorite Tales of Hans Christian Andersen Checkerboard Pr?Hans Christian AndersenNancy Christensen Hall?Carolyn S. Ewing? The Princess and the Pea From a Story by Hans Christian Andersen Atheneum?Dick Gackenbach?Hans Christian Andersen The Snow Queen Atheneum?Hans Christian AndersenRichard Hess? The Ugly Duckling Atheneum?Hans Christian AndersenMarianna Mayer?Thomas Locker? The Emperor and the Nightingale Atheneum?Meilo So?Hans Christian Andersen Foolish King Based on Hans Christian Andersen's "the Emperor's New Clothes Atheneum?Lisl Weil?Hans Christian Andersen Christine's Picture Book Hans Christian Andersen and Grandfather Drewsen Henry Holt & Co?Hans Christian Andersen Hans Christian Andersen's the Snow Queen Harpercollins Childrens Books?Hans Christian AndersenEva Le Gallienne?Juvenile Collection (Library of Congress)?Arieh Zeldich?Legallienne? Hans Christian Andersen's the Nightingale Harpercollins Childrens Books?Hans Christian AndersenNancy Burkert?Eva Le Gallienne? Hans Christian Andersen's the Nightingale Harpercollins?Hans Christian AndersenNancy Burkert?Eva Le Gallienne? Seven Tales Harpercollins?Hans Christian AndersenEva Le Gallienne? Hans Christian Andersen's the Snow Queen A Christmas Pageant Harpercollins Childrens Books?Richard Kennedy?Hans Christian AndersenEdward S. Gazsi? Hans Christian Andersen's the Snow Queen A Christmas Pageant Harpercollins?Richard Kennedy?Edward S. Gazsi? The Princess Test (Princess Tales) Harpercollins Childrens Books?Gail Carson Levine?Hans Christian AndersenMark Elliott? The Princess Test (Princess Tales) Harpercollins?Gail Carson Levine?Hans Christian AndersenMark Elliott? The Steadfast Tin Soldier Harpercollins Childrens Books?Hans Christian AndersenTor Seidler?Fred Marcellino? The Steadfast Tin Soldier Harpercollins?Hans Christian AndersenFred Marcellino? The Steadfast Tin Soldier Trophy Pr?Hans Christian AndersenTor Seidler?T. Anderson?Fred Marcellino? Hans Christian Andersen's the Fir Tree Trophy Pr?Hans Christian AndersenNancy Eklholm Burkert? The Emperor's New Clothes Trophy Pr?Hans Christian Andersen Hans Christian Andersen's the Steadfast Tin Soldier Prentice Hall?Hans Christian AndersenThomas Digrazia?Thomas Di Grazia? Hans Christian Andersen Penguin Books Ltd?Jackie Wullschlager? The Princess and the Pea (Puffin Easy-to-Read) Puffin?Harriet Ziefert?Hans Christian AndersenEmily Bolam? The Ugly Duckling Level 1 (Puffin Easy-to-Read) Puffin?Harriet Ziefert?Hans Christian AndersenEmily Bolam? The Snow Queen (Picture Puffin) Viking Childrens Books?Hans Christian Andersen The Snow Queen Puffin?Hans Christian Andersen Thumbelina Puffin?Hans Christian AndersenAmy Ehrlich? The Emperor Penguin's New Clothes (Picture Puffins) Puffin?Janet Perlman?Hans Christian Andersen Hans Christian Andersen's Fairy Tales Puffin Books?H.C. Andersen?Naomi Lewis? The Little Match Girl (Picture Puffin Books) Puffin?Jerry Pinkney?Hans Christian Andersen The Emperor's New Clothes An All-Star Retelling of the Classic Fairy Tale Harcourt Childrens Books (J)?Hans Christian Andersen The Emperor's New Clothes An All-Star Retelling of the Classic Fairy Tale Harcourt Childrens Books (J)?Hans Christian Andersen King Long Shanks Harcourt Childrens Books (J)?Jane Yolen?Victoria Chess?Hans Christian Andersen The Steadfast Tin Soldier Harcourt Childrens Books (J)?Hans Christian AndersenNaomi Lewis?P. J. Lynch? The Snow Queen Gulliver Books?Caroline Peachey?Hans Christian AndersenP. J. Lynch? The Wicked Prince (Creative Editions) Creative Co (T)?Hans Christian AndersenGeorges Lemoine? Emperor's New Clothes Harcourt Childrens Books (J)?Hans Christian Andersen Hans Christian Andersen's Fairy Tales North South Books?Hans Christian AndersenAnthea Bell?Lisbeth Zwerger? Hans Christian Andersen The Dreamer of Fairy Tales (What's Their Story) Oxford Univ Pr Childrens Books?Andrew Langley?Tony Morris? Hans Christian Andersen Teller of Tales (People of Distinction) Childrens Pr?Carol Greene? The Nightingale Harcourt Childrens Books (J)?Hans Christian AndersenDemi? The Emperor's New Clothes An All-Star Retelling of the Classic Fairy Tale Harvest Books?Hans Christian Andersen The Ugly Duckling (Reading Rainbow Book) Voyager Books?Hans Christian AndersenLorinda Bryan Cauley? Hans Andersen's Fairy Tales (Oxford Illustrated Classics) Oxford Univ Pr Childrens Books?Hans Christian Andersen Hans Andersen's Fairy Tales A Selection (World's Classics) Oxford Univ Pr (T)?H. C. Andersen?Hans Christian AndersenL. W. Kingsland?Vilhelm Pedersen?Lorenz Frlich?L.W. Kingsland? Red Shoes (Oxford Graded Reader) Oxford Univ Pr Childrens Books?Hans Christian Andersen Tin Soldier (Oxford Graded Reader) Oxford Univ Pr Childrens Books?Hans Christian Andersen Tales and Stories by Hans Christian Andersen Univ of Washington Pr?Hans Christian AndersenPatricia L. Conroy?Sven Hakon Rossel? Hans Christian Andersen (What's Their Story?) Oxford University Press?Andrew Langley?Tony Morris? The Nightingale Harpercollins?E. J. Pelgrave?Hans Christian AndersenFulvio Testa? The Snow Queen (A North-South Picture Book) North-South Books (Nord-Sud Verlag AG)?Hans Christian AndersenBernadette Watts?Anthea Bell? Hans Christian Andersen The Life of a Story Teller Univ of Chicago Pr (T)?Jackie Wullschlager? Hans Andersen (Gollancz Children's Classics) Hamish Hamilton Ltd?H.C. Andersen?Michael Foreman?Erik Christian Haugaard? Fairy Tales Of Hans Christian Andersen Readers Digest?Hans Christian AndersenNeil Philip?Isabelle Brent? Fairy Tales of Hans Christian Andersen Reader s Digest?H.C. Andersen? Hans Christian Andersen Souvenir Press Ltd?Elias Bredsdorff? The Ugly Duckling Alfred a Knopf?Kevin Crossley-Holland?Hans Christian AndersenMeilo So? Tales and Stories from Hans Christian Andersen Univ of Washington Pr?Hans Christian AndersenPatricia L. Conroy?Sven Hakon Rossel? The Diaries of Hans Christian Andersen Univ of Washington Pr?Patricia L. Conroy?Sven Hakon Rossel? The Ugly Duckling Golden Pr?Hans Christian AndersenLisa McCue? Thumbelina (Rabbit Ears/Book and Cassette) Golden Pr Audio?Hans Christian AndersenKelly McGillis? Hans Christian Andersen and His World (Pictorial Biography) Thames & Hudson Ltd?Reginald Spink? The Ugly Duckling (Golden Storytime Books for Learning) Goldencraft?Ben Cruise?Hans Christian AndersenLisa McCue? The Ugly Duckling Goldencraft?Hans Christian AndersenWalt Disney? The Value of Fantasy Story of Hans Christian Andersen Goldencraft?Spencer Johnson? El Patito Feo/ the Ugly Duckling (A Big Golden Book) Golden Pr?Hans Christian AndersenLasa McCue? The Little Mermaid (A Golden Sight 'n' Sound Book) Golden Pr?Francese Mateu?Hans Christian Andersen Best Loved Fairy Tales Little Brown UK?Hans Christian AndersenBrothers Grimm? The Tinderbox Little Brown & Co (Juv)?Hans Christian AndersenBarry Moser? Thumbelina Little Brown & Co (Juv)?Hans Christian AndersenLauren A. Mills? The Princess and the Pea Little Brown & Co (Juv)?Alain Vaes?Hans Christian Andersen The Emperor's New Clothes Little Brown & Co (Juv Pap)?Hans Christian Andersen The Wild Swans Macmillan Children s Books?Hans Christian AndersenSusan Jeffers? Hans Christian Andersen The Story of His Life and Work 1805-75 Noonday Pr?Elias Bredsdorff? The Snow Queen (Everyman's Library Children's Classics) Everymans Library?Hans Christian AndersenT. Pym? The Ugly Duckling Alfred a Knopf?Kevin Crossley-Holland?Hans Christian AndersenMeilo So? The Ugly Duckling (Golden Books) Golden Books?Hans Christian AndersenLisa McCue? The Emperor's New Clothes Adapted from a Story by Hans Christian Andersen Bantam Dell Pub Group (Juv)?Sucie Stevenson? The Princess and the Pea Silver Burdett Pr?Francesc Boada?Hans Christian AndersenMaria Rius? The Stories of Hans Andersen Silver Burdett Pr?Robert Mathias?Hans Christian AndersenRobin Lawrie? The Complete Fairy Tales and Stories Doubleday?Hans Christian AndersenErik Christian Haugaard? Hans Andersen His Classic Fairy Tales Doubleday?Hans Christian AndersenErik Christian Haugaard?Michael Foreman? The Nightingale Doubleday?Hans Christian AndersenAlison Claire Darke? The Fir Tree Random House Childrens Books?Hans Christian AndersenDiane Goode? Thumbelina Bantam Dell Pub Group (Juv)?Hans Christian AndersenArlene Graston?Erik Haugaard? Thumbelina Doubleday?Hans Christian AndersenAlison Claire Darke? Thomas Gray in Copenhagen In Which the Philosopher Cat Meets the Ghost of Hans Christian Andersen Springer?Philip J. Davis?Marguerite Dorian? Hans Christian Andersen Random House Inc (T)?Rumer Godden? Eighty Fairy Tales (Pantheon Fairy Tale Folklore Library) Random House Childrens Books?Hans Christian AndersenR. P. Keigwin?Vilhelm Pedersen?Lorenz Frlich? Eighty Fairy Tales (Pantheon Fairy Tale and Folklore Library) Alfred a Knopf?Hans Christian Andersen Thumbelina Putnam Pub Group?Hans Christian AndersenJames Riordan?Wayne Anderson? The Ugly Duckling (Knopf Book and Cassette Classics) Random House (a)?Hans Christian AndersenCher? The Steadfast Tin Soldier (Knopf Book and Cassette Classics) Random House (a)?Hans Christian AndersenDavid Jorgensen? The Steadfast Tin Soldier Random House Childrens Books?Hans Christian AndersenDavid Jorgensen? The Ugly Duckling Alfred a Knopf?Hans Christian Andersen The Little Match Girl Houghton Mifflin (Juv)?Hans Christian AndersenBlair Lent? The Emperor's New Clothes Houghton Mifflin (Jp)?Hans Christian Andersen Princess and the Pea Clarion Books?Hans Christian Andersen Steadfast Tin Soldier Houghton Mifflin (Juv)?Hans Christian AndersenPaul Galdone? The Nightingale Clarion Books?Michael Bedard?Hans Christian AndersenRegolo Ricci? The Amazing Paper Cuttings of Hans Christian Andersen Ticknor & Fields?Beth Wagner Brust? Thumbelina Grosset & Dunlap?Hans Christian AndersenDemi? Hans Clodhopper Lippincott Williams & Wilkins?Leon Steinmetz?Hans Christian AndersenLeon Shtainmets? The Ugly Duckling (Lift-the-Flap Book) Putnam Pub Group?Susan Hellard?Hans Christian Andersen Little Ida's Flowers Philomel Books?Hans Christian AndersenLinda Allen? Dulac's the Snow Queen, and Other Stories from Hans Andersen Doubleday?Hans Christian Andersen Listen Color Hans Christian Andersen Fairy Tales (Listen Color) Dover Pubns?Joan O Brien? Ugly Duckling Putnam Pub Group?Hans Christian AndersenTroy Howell? The Steadfast Tin Soldier Philomel Books?Rachel Isadora?Hans Christian Andersen Thumbelina Methuen young books?Hans Christian AndersenAlison Claire Darke? Hans Christian Andersen The Misunderstood Storyteller Routledge?Jack David Zipes? Hans Christian Andersen The Misunderstood Storyteller Routledge?Jack David Zipes? Andersen's Fairy Tales (Illustrated Junior Library) Grosset & Dunlap?Hans Christian Andersen Favourite Hans Christian Andersen Fairy Tales Methuen?H.C. Andersen? The Little Mermaid and Other Stories And Other Stories (Scholastic Junior Classics) Scholastic Paperbacks?Sarah Hines Stephen?Hans Christian Andersen Little Mermaid (Scholastic Readers) Cartwheel Books?Sonia Black?Hans Christian AndersenBarbara Lanza? The Young Hans Christian Andersen Scholastic Trade?Karen Hesse?Erik Blegvad? The Classic Tales of Hans Christian Andersen Scholastic?Margaret Clark?H.C. Andersen?Christian Birmingham? The Emperor's New Clothes (Yearling First Choice Chapter Book) Bantam Dell Pub Group (Juv)?Sucie Stevenson?Hans Christian Andersen Stories and Tales (Routledge Classics) Routledge?Hans Christian AndersenH. W. Dulcken?A. W. Bayes? Andersen's Fairy Tales Price Stern Sloan?Hans Christian Andersen Hans Christian Andersen Fairy Tales Bookmarks (Little Activity) Dover Pubns?Joan O Brien? The Ugly Duckling (Pudgy Pal Board Book) Grosset & Dunlap?Hans Christian AndersenBetina Ogden?Berta Hader? Hans Christian Andersen's the Little Mermaid Methuen?Margaret Maloney? Thumbelina (A Pudgy Pal Board Book) Grosset & Dunlap?Jerry Smath?Hans Christian Andersen Andersen's Fairy Tales (Signet Classics) New Amer Library (Mm)?Hans Christian Andersen Andersen's Fairy Tales Signet Classic?Joanne Greenberg?Hans Christian AndersenPat Shaw Iversen?Sheila Greenwald? Hans Christian Andersen's Thumbelina The Novelization Price Stern Sloan?Justine Korman?Hans Christian AndersenDon Bluth? Hans Christian Andersen Fairy Tales Stained Glass Book (Dover Coloring Book) Dover Pubns?Pat Stewart? The Little Mermaid and Other Fairy Tales (Dover's Children's Thrift Classics) Dover Pubns?Hans Christian AndersenThea Kliros? The Ugly Duckling and Other Fairy Tales (Dover Children's Thrift Classics) Dover Pubns?Hans Christian AndersenHarriet Golden? The Little Mermaid Coloring Book Dover Pubns?Hans Christian Andersen Hans Andersen's Fairy Tales (Children's Illustrated Classics S) J M Dent & Sons Ltd?Hans Christian Andersen The Little Mermaid and Other Fairy Tales (Dover Evergreen Classics) Dover Pubns?Hans Christian Andersen Hans Christian Andersen Story Book (Dover Little Activity Books) Dover Pubns?Pat Stewart? LA Sirenita/"the Little Mermaid" (Spanish Coloring Books) Dover Pubns?Hans Christian AndersenThea Kliros? The Story of the Ugly Duckling (Dover Little Activity Books) Dover Pubns?Hans Christian Andersen Listen Read the Ugly Duckling and Other Fairy Tales (Dover Audio Thrift Classics Series) Dover Pubns?Hans Christian Andersen Hans Christian Andersen As an Artist Ejlers (Christian) Forlag,Denmark?Kjeld Heltoft?David Hohnen? Hans Christian Andersen and His Eventyr in England Five Owls P?Brian Alderson? Fairy Tales Viking Penguin Audio?Hans Christian AndersenKate Reading?Richard Matthews?Tiina Nunnally? Thumbeline (Michael Neugebauer Book) North South Books?Hans Christian AndersenAnthea Bell?Lisbeth Zwerger? The Tinderbox Leaf Books Ltd?Hans Christian AndersenSam Burns? El Valiente Soldadito De Plomo (Primeros Lectores) Grupo Anaya Comercial?Hans Christian AndersenJavier Saez Castan? The Ugly Duckling Morrow Junior?Hans Christian AndersenJerry Pinkney? Was Vater Tut, Ist Immer Richtig Carlsen Verlag GmbH?Hans Christian AndersenSven Nordqvist? La Princesa Y El Guisante (Primeros Lectores) Grupo Anaya Comercial?Hans Christian AndersenElena Odriozola? The Ugly Duckling North South Books?Bernadette Watts?Hans Christian Andersen La Pequena Cerillera (Primeros Lectores) Grupo Anaya Comercial?Hans Christian AndersenJudit Morales?Adria Godia? El Patito Feo/ the Ugly Duckling (Pinata) Hans Christian Andersen Libro de Los Cuentos de Andersen Ediciones B?Hans Christian AndersenMerce Llimona? The Old House North South Books?Hans Christian Andersen Pulgarcito (Cuentos Interactivos) Oceano De Mexico?Hans Christian Andersen The Fir Tree Canadian Broadcasting Corporation (CBC Audio)?Hans Christian Andersen El Porquerizo (Coleccion "Mi Primera Biblioteca"/My First Library Series) Everest De Ediciones Y Distribucion?Hans Christian AndersenLisbeth Zwerger? The Snow Queen. Audio-CD . Stufe 1 5. - 6. Klasse. 500 Woerter (Lernmaterialien) Hueber Max GmbH + Co. KG?Hans Christian Andersen Die schoensten Maerchen. CD Voltmedia GmbH?Hans Christian Andersen Pictures Of Sweden Indypublish.Com?Hans Christian Andersen The Ugly Duckling Orient Longman?Hans Christian AndersenBijay Kumar Das? Pictures of Sweden Indypublish.Com?Hans Christian Andersen Petite Sirene Gallimard-Jeunesse?Hans Christian Andersen LA Princesse Au Petit Pois Cle Intl?Hans Christian Andersen Maerchen 1. CD Naxos Deutschland GmbH?Hans Christian Andersen Die kleine Meerjungfrau. CD Argon Verlag GmbH?Hans Christian Andersen Tales from Hans Christian Andersen Anchorage Pr Plays?Mary J. Evans? El Traje Nuevo Del Emperador Panamericana Editorial?Hans Christian Andersen El Ruisenor Panamericana Editorial?Hans Christian Andersen Die Schneekoenigin. 2 CDs Argon Verlag GmbH?Hans Christian Andersen El Traje Nuevo Del Emperador Panamericana Editorial?Hans Christian Andersen For Sure! For Sure! Tradewind Books?Hans Christian AndersenStefan Czernecki?Mus White? Una Pareja De Enamorados Panamericana Editorial?Hans Christian Andersen El Soldadito De Plomo Panamericana Editorial?Hans Christian Andersen The Little Mermaid Forward Press?Hans Christian Andersen Cuentos Hans Christian Andersen Andersen's Fairy Tales Indypublish.Com?Hans Christian Andersen Andersen Para Ninos (Literatura Infantil) Selector?Hans Christian Andersen Cuentos Panamericana Editorial?Hans Christian Andersen The Nightingale (PBS Little Books) North-South Books (Nord-Sud Verlag AG)?Hans Christian AndersenLisbeth Zwerger? The Complete Illustrated Stories of Hans Christian Anderson Bounty Books?Hans Christian Andersen The Red Shoes Simon & Schuster (Juv)?Hans Christian AndersenAnthea Bell?Chihiro Iwasaki? Tales from Hans Christian Andersen Hanbury Plays?Carolyn Lane?H.C. Andersen? The Red Shoes (Star Elephant Book) Aladdin Paperbacks?Hans Christian AndersenH. B. Paull?Katie Thamer? The Ugly Duckling Schools?Hans Christian Andersen The Little Mermaid Bluestar Communication Corp?Hans Christian AndersenSulamith Wulfing? The True Story of My Life Indypublish.Com?Hans Christian Andersen The Emperor's New Clothes (Read-It! Readers Fairy Tales Green Level) Picture Window Books?Susan Blackaby?Hans Christian AndersenCharlene DeLage? The Steadfast Tin Soldier (Read-It! Readers Fairy Tales Green Level) Picture Window Books?Susan Blackaby?Hans Christian AndersenCharlene DeLage? Thumbelina/Pulgarcita (Bilingual Fairy Tales) Chronicle Books Llc (Juv)?Caterina Valriu I Llinas?Hans Christian AndersenMax? C'era una volta, tanto tempo fa Hans Christian Andersen The Emperor's New Clothes A Fairy Tale (Little Pebbles) Abbeville Pr?Hans Christian AndersenChristophe Durual? Cajon de Cuentos Panamericana Editorial?Hans Christian Andersen El Soldadito De Plomo / Steadfast Tin Soldier Panamericana Editorial?Hans Christian Andersen The Emperor's New Clothes North-South Books (Nord-Sud Verlag AG)?Hans Christian AndersenAnthea Bell?D. Duntze?Dorothee Duntz? My Treasury of Hans Christian Andersen Purnell?H C Andersen?J Knight? The Steadfast Tin Soldier Little Brown & Co (Juv)?Hans Christian AndersenNadine Bernard Westcott?Alain Vaes? Thumbelina (Timeless Tales from Hallmark) Turner Pub?Mary Packard?Hans Christian Andersen Stories and Tales (Routledge Classics) Routledge?Hans Christian AndersenH. W. Dulcken? Schaf, Schwein, Ochs und Kuh und ein grosses Haus dazu Parabel Vlg., Muenchen?Hans Christian AndersenJan Mogensen? Das Maedchen mit den Schwefelhoelzern Parabel Vlg., Muenchen?Hans Christian AndersenJan Mogensen? Des Kaisers neue Kleider. Cassette Jumbo Neue Medien + Verla?Hans Christian AndersenDieter Scharfenberg? The Ugly Duckling Collection Dh Audio?Hans Christian Andersen Daeumelinchen tabu Vlg., Mchn.?Hans Christian AndersenUlrike. Muehlhoff?Nadine Lange-Siemens? The Sand-Hills of Jutland Minerva Group Inc?Hans Christian Andersen Maerchen. ( Ab 8 J.) Dressler Cecilie?Hans Christian AndersenSvend Otto S.? Hundert Illustrationen aus anderthalb Jahrhunderten zu Maerchen von Hans Christian Andersen Dausien Werner?Heinz Wegehaupt? The Bottle-Neck Minerva Group Inc?Hans Christian Andersen Andersens Maerchen Dausien Werner?Hans Christian AndersenRenata Fucikova? Die Nachtigall. Cassette. Lieder, Geschichten und ein Maerchen Jumbo Neue Medien + Verla?Hans Christian AndersenJohann Wolfgang von Goethe?Eduard Moerike? Die schoensten Maerchen Spectrum, Muenchen?Hans Christian Andersen Maerchen. ( Ab 8 J.) Ueberreuter Carl?Hans Christian AndersenJanusz. Grabianski? Die Prinzessin auf der Erbse. Cassette. . Und andere Maerchen Jumbo Neue Medien + Verla?Hans Christian Andersen Thumbeline Simon & Schuster (Juv)?Hans Christian AndersenLisbeth Zwerger? Daeumelinchen Parabel Vlg., Muenchen?Hans Christian AndersenUlrike Muehlhoff? Maerchen. 6 CDs Random House Audio?Hans Christian Andersen Maerchen 2. 3 CDs. Random House Audio?Hans Christian Andersen Hans Christian Andersen's Thumbelina Warner Books Multimedia Software? Patito Feo, El - MIS Primeros Cuentos Clasicos Larousse Kingfisher Chambers?Hans Christian Andersen The Snow Queen A Play With Songs (Oberon Books) Theatre Communications Group?Hans Christian AndersenAdrian Mitchell?Richard Peaslee? Andersen und andere. Kleine daenisch-deutsche Kulturgeschichte Kiels Boyens Medien GmbH & Co.?Heinrich Detering? Sieben Maerchen von Hans Christian Andersen Gerstenberg Gebrueder Ver?Hans Christian AndersenEric Carle Maerchen 3. CD Naxos Deutschland GmbH?Hans Christian Andersen Maerchen. 3 CDs. Random House Audio?Hans Christian Andersen Des Kaisers neue Kleider. CD Random House Audio?Hans Christian AndersenRolf Hoppe?Rolf Ludwig?Kurt Boewe? The Wild Swans Mathew Price?Hans Christian AndersenAtsuko Morozumi?Mathew Price? Die Nachtigall. Das haessliche junge Entlein. CD Random House Audio?Hans Christian AndersenJutta Hoffmann?Rolf Ludwig?Fred Dueren? Die wilden Schwaene / Der Schweinehirt. CD Random House Audio?Hans Christian AndersenWinfried Wagner?Regina Beyer?Marion van de Kamp? Die kleine Meerjungfrau - CD Hoerverlag DHV Der GmbH?Hans Christian Andersen The Nightingale A Chinese Folk Tale (Milliken's Children's Classics) Milliken Pub Co?Ellen M. Dolan?Hans Christian Andersen Unser Maerchenschatz. Das Feuerzeug und weitere Hoerspiele. CD Bella Musica Tontr., Buehl?Hans Christian Andersen Das haessliche Entlein. Neu erzaehlt Gerstenberg Gebrueder Ver?Hans Christian AndersenJonathan Langley? Hans Christian Andersen's Fairy Tales Pavilion Books?H.C. Andersen? Mit Hans Christian Andersen nach Barcelona und Tanger. Cassette. 1863. Lesung mit Musik Audio Verlag Der GmbH?Hans Christian AndersenGuenter Koenig? Daeumelinchen Gerstenberg Gebrueder Ver?Hans Christian AndersenKaarina Kaila? Die wilden Schwaene Gerstenberg Gebrueder Ver?Hans Christian AndersenKaarina Kaila? The Wild Swans Troll Communications Llc?Hans Christian AndersenKaren Dugan? Thumbelina Hanbury Plays?Vera Morris?H.C. Andersen? Die kleine Meerjungfrau Gerstenberg Gebrueder Ver?Hans Christian AndersenKaarina Kaila? Der standhafte Zinnsoldat Gerstenberg Gebrueder Ver?Hans Christian AndersenFred Marcellino?
https://w.atwiki.jp/j-simulator/pages/55.html
Publications Applications of the Satellite Sensor Simulators (new to old) Nakajima, T. Y., 2006 Practical use of the WWW-based radiative transfer simulator on the lecture of a graduate school. Tenki, 53, 727-731.(Japanese) Nakajima, T. Y., H. Murakami, M. Hori, T. Nakajima, T. Aoki, T. Oishi, and A. Tanaka, 2003 Efficient use of an improved radiative transfer code to simulate near-global distributions of satellite-measured radiances. Applied Optics, 42, 3460-3471. Nakajima, T. Y., T. Imai, O. Uchino, and T. Nagai, 1999 Influence of daylight and noise current on cloud and aerosol observations by spaceborne elastic scattering lidar. Applied Optics, 38, 5218-5228. Nakajima, T. Y., T. Nakajima, M. Nakajima, H. Fukushima, M. Kuji, A. Uchiyama, and M. Kishino, 1998 Optimization of the Advanced Earth Observing Satellite II Global Imager channels by use of radiative transfer calculations. Applied Optics, 37, 3149-3163. back edit
https://w.atwiki.jp/pins-room/pages/283.html
Nottingham Forest Football Club England Menu England Premier League Arsenal FC Aston Villa FC Birmingham City FC Blackburn Rovers FC Bolton Wanderers FC Charlton Athletic FC Chelsea FC Derby County FC Everton FC Fulham FC Hull City AFC Liverpool FC Manchester City FC Manchester United FC Middlesbrough FC Newcastle United FC Nottingham Forest FC Portsmouth FC Reading FC Sheffield United FC Stoke City FC Sunderland AFC Tottenham Hotspur FC Watford FC West Bromwich Albion FC West Ham United FC Wigan Athletic FC England Menu
https://w.atwiki.jp/jetrobot/pages/5.html
About JETROBOT About JETROBOT アクセス(map): 音楽配信サイト「JETROBOT」が持つライブ空間 昼はランチ有り 営業時間(年中無休) 11 30~18 00 カフェタイム(ランチは17 00まで) 20 00~22 30 ライブタイム(20 30ぐらいstart) 22 30~26 00 バータイム 音楽配信サイト「JET ROBOT」 http //www.jetrobot.com/
https://w.atwiki.jp/oper/pages/73.html
完成版対訳はこちら SCENA IV Finito il Coro, Desdemona bacia la testa d alcuni tra i fanciulli, e alcune donne le baciano il lembo della veste, ed essa porge una borsa ai marinai. Il Coro s allontana. Desdemona, seguita poi da Emilia, entra nella sala e s avanza verso Otello DESDEMONA a Otello D un uom che geme sotto il tuo disdegno la preghiera ti porto. OTELLO Chi è costui? DESDEMONA Cassio. OTELLO Era lui che ti parlava sotto quelle fronde? DESDEMONA Lui stesso, e il suo dolor che in me s infonde tanto è verace che di grazia è degno. Intercedo per lui, per lui ti prego. Tu gli perdona. OTELLO con asprezza Non ora. DESDEMONA Non oppormi il tuo diniego. Gli perdona. OTELLO Non ora. DESDEMONA Perchè torbida suona la voce tua? Qual pena t addolora? OTELLO M ardon le tempie. DESDEMONA spiegando il suo fazzoletto come per fasciare la fronte d Otello Quell ardor molesto svanirà, se con questo morbido lino la mia man ti fascia. OTELLO getta il fazzoletto a terra Non ho d uopo di ciò. DESDEMONA Tu sei crucciato, signor. OTELLO aspramente Mi lascia! mi lascia! Emilia raccoglie il fazzoletto dal suolo DESDEMONA Se inconscia, contro te, sposo, ho peccato, dammi la dolce e lieta parola del perdono. OTELLO a parte (Forse perchè gl inganni d arguto amor non tendo. . ) DESDEMONA La tua fanciulla io sono umile e mansueta; ma il labbro tuo sospira, hai l occhio fiso al suol. Guardami in volto e mira come favella amor. Vien ch io t allieti il core, ch io ti lenisca il duol. Guardami in volto e mira, etc… OTELLO (… forse perchè discendo nella valle degli anni, forse perchè ho sul viso quest atro tenebror. . . forse perchè gl inganni d arguto amor non tendo, etc… Ella è perduta è irriso io sono e il core m infrango e ruinar nel fango vedo il mio sogno d or. Ella è perduta e irriso, etc…) JAGO a Emilia sottovoce (Quel vel mi porgi ch or hai raccolto. EMILIA sottovoce a Jago (Qual frode scorgi? Ti leggo in volto. JAGO T opponi a vôto quand io commando. EMILIA Il tuo nefando livor m è noto. JAGO Sospetto insano! EMILIA Guardia fedel è questa mano. JAGO Dammi quel vel! afferra violentemente il braccio di Emilia Su te l irosa mia man s aggrava! EMILIA Son la tua sposa, non la tua schiava. JAGO La schiava impura tu sei di Jago. EMILIA Ho il cor presago d una sventura. JAGO Né mi paventi? EMILIA Uomo crudel! JAGO A me. EMILIA Che tenti? JAGO A me quel vel! con un colpo di mano Jago ha carpito il fazzoletto ad Emilia EMILIA Uomo crudel! JAGO a sé stesso (Già la mia brama conquido, ed ora su questa trama Jago lavora!) EMILIA a sé stessa (Vinser gli artigli truci e codardi. Dio dai perigli sempre ci guardi) DESDEMONA Dammi la dolce e lieta parola del perdon. OTELLO Escite! Solo vo restar. JAGO sottovoce ad Emilia che sta per escire Ti giova tacer. Intendi? Desdemona ed Emilia escono. Jago finge d escire dalla porta del fondo, ma giuntovi s arresta SCENA V Otello, Jago sul fondo OTELLO accasciato, su d un sedile Desdemona rea! JAGO nel fondo guardando di nascosto il fazzoletto, poi riponendolo con cura nel giustacuore (Con questi fili tramerò la prova del peccato d amor. Nella dimora di Cassio ciò s asconda) OTELLO Atroce idea! JAGO fissando Otello (Il mio velen lavora) OTELLO Rea contro me! contro me! JAGO cupo (Soffri e ruggi!) OTELLO Atroce! atroce! JAGO Non pensateci più. dopo essersi portato accanto ad Otello, bonariamente OTELLO balzando Tu? Indietro! fuggi! M hai legato alla croce! Ahimè! Più orrendo d ogni orrenda ingiuria dell ingiuria è il sospetto. Nell ore arcane della sua lussuria (e a me furate!) m agitava il petto forse un presagio! Ero baldo, giulivo. Nulla sapevo ancora; io non sentivo sul suo corpo divin che m innamora e sui labbri mendaci gli ardenti baci di Cassio! Ed ora! ed ora… Ora e per sempre addio sante memorie, addio, sublimi incanti del pensier! Addio schiere fulgenti, addio vittorie, dardi volanti e volanti corsier! Addio, vessillo trionfale e pio, e diane squillanti in sul mattin! Clamori e canti di battaglia, addio! Della gloria d Otello è questo il fin. JAGO Pace, signor. OTELLO Sciagurato! mi trova una prova secura che Desdemona è impura. . . Non sfuggir! nulla ti giova! Vo una secura, una visibil prova! O sulla tua testa s accenda e precipiti il fulmine del mio spaventoso furor che si desta! Afferra Jago alla gola e lo atterra JAGO Divina grazia difendimi! Alzandosi Il cielo vi protegga. Non son più vostro alfiere. Voglio che il mondo testimon mi sia che l onestà è periglio. fa per andarsene OTELLO No… rimani. Forse onesto tu sei. JAGO sulla soglia fingendo d andarsene Meglio varebbe ch io fossi un ciurmador. OTELLO Per l universo! Credo leale Desdemona e credo che non lo sia. Te credo onesto e credo disleale. . .La prova io voglio! Voglio la certezza! JAGO ritornando verso Otello Signor, frenate l ansie. E qual certezza v abbisogna? Avvinti verderli forse? OTELLO Ah, morte e dannazione! JAGO Ardua impresa sarebbe; e qual certezza sognate voi se quell immondo fatto sempre vi sfuggirà? Ma pur se guida è la ragione al vero, una sì forte congettura riserbo che per poco alla certezza vi conduce. Udite. avvicinandosi molto ad Otello e sottovoce Era la notte, Cassio dormìa, gli stavo accanto. Con interrotte voci tradia l intimo incanto. Le labbra lente, lente movea, nell abbandono del sogno ardente, e allor dicea, con flebil suono sottovoce parlate "Desdemona soave! Il nostro amor s asconda. Cauti vegliamo! L estasi del ciel tutto m innonda." Seguìa più vago l incubo blando; con molle angoscia l interna imago quasi baciando, ei disse poscia sempre sottovoce "Il rio destino impreco che al Moro ti donò". E allora il sogno in cieco letargo si mutò. OTELLO Oh! mostuosa colpa! JAGO Io non narrai che un sogno. OTELLO Un sogno che rivela un fatto. JAGO Un sogno che può dar forma di prova ad altro indizio. OTELLO E qual? JAGO Talor vedeste in mano di Desdemona un tessuto trapunto a fior e più sottil d un velo? OTELLO È il fazzoletto ch io le diedi, pegno primo d amor. JAGO Quel fazzoletto ieri (certo ne son) lo vidi in man di Cassio. OTELLO Ah! Mille vite gli donasse Iddio! Una è povera preda al furor mio!! Jago, ho il cor di gelo. Lungi da me le pietose larve! Tutto il mio vano amor escalo al cielo; Guardami, ei sparve. Nelle suespire d’angue L’idra m’avvince! Ah! Sangue, sangue, sangue! S’inginocchia Si, pel ciel marmoreo giuro! Per le attorte folgori! Per la Morte e per l’oscuro mar sterminator! D’ira e d’impeto tremendo presto fia che sfolgori Questa man ch’io levo e stendo! Levando la mano al cielo. Otello fa per alzarsi; Jago lo trattiene inginocchiato JAGO s inginocchia anch esso Non v alzate ancor! Testimon è il Sol ch io miro, che m irradia e inanima l ampia terra e il vasto spiro del Creato inter, che ad Otello io sacro ardenti, core, braccio ed anima s anco ad opere cruenti s armi il suo voler! JAGO e OTELLO alzando le mani al cielo come chi giura Sì, pel ciel marmoreo giuro! Per le attorte folgori! Per la Morte e per l oscuro mar sterminator! D ira e d impeto tremendo presto fia che sfolgori questa man ch io levo e stendo! Dio vendicator! SCENA IV Finito il Coro, Desdemona bacia la testa d alcuni tra i fanciulli, e alcune donne le baciano il lembo della veste, ed essa porge una borsa ai marinai. Il Coro s allontana. Desdemona, seguita poi da Emilia, entra nella sala e s avanza verso Otello DESDEMONA a Otello D un uom che geme sotto il tuo disdegno la preghiera ti porto. OTELLO Chi è costui? DESDEMONA Cassio. OTELLO Era lui che ti parlava sotto quelle fronde? DESDEMONA Lui stesso, e il suo dolor che in me s infonde tanto è verace che di grazia è degno. Intercedo per lui, per lui ti prego. Tu gli perdona. OTELLO con asprezza Non ora. DESDEMONA Non oppormi il tuo diniego. Gli perdona. OTELLO Non ora. DESDEMONA Perchè torbida suona la voce tua? Qual pena t addolora? OTELLO M ardon le tempie. DESDEMONA spiegando il suo fazzoletto come per fasciare la fronte d Otello Quell ardor molesto svanirà, se con questo morbido lino la mia man ti fascia. OTELLO getta il fazzoletto a terra Non ho d uopo di ciò. DESDEMONA Tu sei crucciato, signor. OTELLO aspramente Mi lascia! mi lascia! Emilia raccoglie il fazzoletto dal suolo DESDEMONA Se inconscia, contro te, sposo, ho peccato, dammi la dolce e lieta parola del perdono. OTELLO a parte (Forse perchè gl inganni d arguto amor non tendo. . ) DESDEMONA La tua fanciulla io sono umile e mansueta; ma il labbro tuo sospira, hai l occhio fiso al suol. Guardami in volto e mira come favella amor. Vien ch io t allieti il core, ch io ti lenisca il duol. Guardami in volto e mira, etc… OTELLO (… forse perchè discendo nella valle degli anni, forse perchè ho sul viso quest atro tenebror. . . forse perchè gl inganni d arguto amor non tendo, etc… Ella è perduta è irriso io sono e il core m infrango e ruinar nel fango vedo il mio sogno d or. Ella è perduta e irriso, etc…) JAGO a Emilia sottovoce (Quel vel mi porgi ch or hai raccolto. EMILIA sottovoce a Jago (Qual frode scorgi? Ti leggo in volto. JAGO T opponi a vôto quand io commando. EMILIA Il tuo nefando livor m è noto. JAGO Sospetto insano! EMILIA Guardia fedel è questa mano. JAGO Dammi quel vel! afferra violentemente il braccio di Emilia Su te l irosa mia man s aggrava! EMILIA Son la tua sposa, non la tua schiava. JAGO La schiava impura tu sei di Jago. EMILIA Ho il cor presago d una sventura. JAGO Né mi paventi? EMILIA Uomo crudel! JAGO A me. EMILIA Che tenti? JAGO A me quel vel! con un colpo di mano Jago ha carpito il fazzoletto ad Emilia EMILIA Uomo crudel! JAGO a sé stesso (Già la mia brama conquido, ed ora su questa trama Jago lavora!) EMILIA a sé stessa (Vinser gli artigli truci e codardi. Dio dai perigli sempre ci guardi) DESDEMONA Dammi la dolce e lieta parola del perdon. OTELLO Escite! Solo vo restar. JAGO sottovoce ad Emilia che sta per escire Ti giova tacer. Intendi? Desdemona ed Emilia escono. Jago finge d escire dalla porta del fondo, ma giuntovi s arresta SCENA V Otello, Jago sul fondo OTELLO accasciato, su d un sedile Desdemona rea! JAGO nel fondo guardando di nascosto il fazzoletto, poi riponendolo con cura nel giustacuore (Con questi fili tramerò la prova del peccato d amor. Nella dimora di Cassio ciò s asconda) OTELLO Atroce idea! JAGO fissando Otello (Il mio velen lavora) OTELLO Rea contro me! contro me! JAGO cupo (Soffri e ruggi!) OTELLO Atroce! atroce! JAGO Non pensateci più. dopo essersi portato accanto ad Otello, bonariamente OTELLO balzando Tu? Indietro! fuggi! M hai legato alla croce! Ahimè! Più orrendo d ogni orrenda ingiuria dell ingiuria è il sospetto. Nell ore arcane della sua lussuria (e a me furate!) m agitava il petto forse un presagio! Ero baldo, giulivo. Nulla sapevo ancora; io non sentivo sul suo corpo divin che m innamora e sui labbri mendaci gli ardenti baci di Cassio! Ed ora! ed ora… Ora e per sempre addio sante memorie, addio, sublimi incanti del pensier! Addio schiere fulgenti, addio vittorie, dardi volanti e volanti corsier! Addio, vessillo trionfale e pio, e diane squillanti in sul mattin! Clamori e canti di battaglia, addio! Della gloria d Otello è questo il fin. JAGO Pace, signor. OTELLO Sciagurato! mi trova una prova secura che Desdemona è impura. . . Non sfuggir! nulla ti giova! Vo una secura, una visibil prova! O sulla tua testa s accenda e precipiti il fulmine del mio spaventoso furor che si desta! Afferra Jago alla gola e lo atterra JAGO Divina grazia difendimi! Alzandosi Il cielo vi protegga. Non son più vostro alfiere. Voglio che il mondo testimon mi sia che l onestà è periglio. fa per andarsene OTELLO No… rimani. Forse onesto tu sei. JAGO sulla soglia fingendo d andarsene Meglio varebbe ch io fossi un ciurmador. OTELLO Per l universo! Credo leale Desdemona e credo che non lo sia. Te credo onesto e credo disleale. . .La prova io voglio! Voglio la certezza! JAGO ritornando verso Otello Signor, frenate l ansie. E qual certezza v abbisogna? Avvinti verderli forse? OTELLO Ah, morte e dannazione! JAGO Ardua impresa sarebbe; e qual certezza sognate voi se quell immondo fatto sempre vi sfuggirà? Ma pur se guida è la ragione al vero, una sì forte congettura riserbo che per poco alla certezza vi conduce. Udite. avvicinandosi molto ad Otello e sottovoce Era la notte, Cassio dormìa, gli stavo accanto. Con interrotte voci tradia l intimo incanto. Le labbra lente, lente movea, nell abbandono del sogno ardente, e allor dicea, con flebil suono sottovoce parlate "Desdemona soave! Il nostro amor s asconda. Cauti vegliamo! L estasi del ciel tutto m innonda." Seguìa più vago l incubo blando; con molle angoscia l interna imago quasi baciando, ei disse poscia sempre sottovoce "Il rio destino impreco che al Moro ti donò". E allora il sogno in cieco letargo si mutò. OTELLO Oh! mostuosa colpa! JAGO Io non narrai che un sogno. OTELLO Un sogno che rivela un fatto. JAGO Un sogno che può dar forma di prova ad altro indizio. OTELLO E qual? JAGO Talor vedeste in mano di Desdemona un tessuto trapunto a fior e più sottil d un velo? OTELLO È il fazzoletto ch io le diedi, pegno primo d amor. JAGO Quel fazzoletto ieri (certo ne son) lo vidi in man di Cassio. OTELLO Ah! Mille vite gli donasse Iddio! Una è povera preda al furor mio!! Jago, ho il cor di gelo. Lungi da me le pietose larve! Tutto il mio vano amor escalo al cielo; Guardami, ei sparve. Nelle suespire d’angue L’idra m’avvince! Ah! Sangue, sangue, sangue! S’inginocchia Si, pel ciel marmoreo giuro! Per le attorte folgori! Per la Morte e per l’oscuro mar sterminator! D’ira e d’impeto tremendo presto fia che sfolgori Questa man ch’io levo e stendo! Levando la mano al cielo. Otello fa per alzarsi; Jago lo trattiene inginocchiato JAGO s inginocchia anch esso Non v alzate ancor! Testimon è il Sol ch io miro, che m irradia e inanima l ampia terra e il vasto spiro del Creato inter, che ad Otello io sacro ardenti, core, braccio ed anima s anco ad opere cruenti s armi il suo voler! JAGO e OTELLO alzando le mani al cielo come chi giura Sì, pel ciel marmoreo giuro! Per le attorte folgori! Per la Morte e per l oscuro mar sterminator! D ira e d impeto tremendo presto fia che sfolgori questa man ch io levo e stendo! Dio vendicator! Verdi,Giuseppe/Otello/ActⅢ-1