From: "Salvato da Internet Explorer 11"
Subject: Offerta per trattativa diretta n. 492828
Date: Fri, 1 Jun 2018 10:11:30 +0200
MIME-Version: 1.0
Content-Type: multipart/related;
type="text/html";
boundary="----=_NextPart_000_0000_01D3F990.E94BC460"
X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.24000
This is a multi-part message in MIME format.
------=_NextPart_000_0000_01D3F990.E94BC460
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.acquistinretepa.it/tratdirette/manageVisualizzaOffertaTD.do?method=initAction&idTrattativa=492828&ricercaBI.tipoRicerca=RICERCA_IN_ESAME&viewer=PA
=EF=BB=BF
a";=0A=
=0A=
// Finish early in limited (non-browser) environments=0A=
all =3D div.getElementsByTagName("*") || [];=0A=
a =3D div.getElementsByTagName("a")[ 0 ];=0A=
if ( !a || !a.style || !all.length ) {=0A=
return support;=0A=
}=0A=
=0A=
// First batch of tests=0A=
select =3D document.createElement("select");=0A=
opt =3D select.appendChild( document.createElement("option") );=0A=
input =3D div.getElementsByTagName("input")[ 0 ];=0A=
=0A=
a.style.cssText =3D "top:1px;float:left;opacity:.5";=0A=
=0A=
// Test setAttribute on camelCase class. If it works, we need attrFixes =
when doing get/setAttribute (ie6/7)=0A=
support.getSetAttribute =3D div.className !=3D=3D "t";=0A=
=0A=
// IE strips leading whitespace when .innerHTML is used=0A=
support.leadingWhitespace =3D div.firstChild.nodeType =3D=3D=3D 3;=0A=
=0A=
// Make sure that tbody elements aren't automatically inserted=0A=
// IE will insert them into empty tables=0A=
support.tbody =3D !div.getElementsByTagName("tbody").length;=0A=
=0A=
// Make sure that link elements get serialized correctly by innerHTML=0A=
// This requires a wrapper element in IE=0A=
support.htmlSerialize =3D !!div.getElementsByTagName("link").length;=0A=
=0A=
// Get the style information from getAttribute=0A=
// (IE uses .cssText instead)=0A=
support.style =3D /top/.test( a.getAttribute("style") );=0A=
=0A=
// Make sure that URLs aren't manipulated=0A=
// (IE normalizes it by default)=0A=
support.hrefNormalized =3D a.getAttribute("href") =3D=3D=3D "/a";=0A=
=0A=
// Make sure that element opacity exists=0A=
// (IE uses filter instead)=0A=
// Use a regex to work around a WebKit issue. See #5145=0A=
support.opacity =3D /^0.5/.test( a.style.opacity );=0A=
=0A=
// Verify style float existence=0A=
// (IE uses styleFloat instead of cssFloat)=0A=
support.cssFloat =3D !!a.style.cssFloat;=0A=
=0A=
// Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)=0A=
support.checkOn =3D !!input.value;=0A=
=0A=
// Make sure that a selected-by-default option has a working selected =
property.=0A=
// (WebKit defaults to false instead of true, IE too, if it's in an =
optgroup)=0A=
support.optSelected =3D opt.selected;=0A=
=0A=
// Tests for enctype support on a form (#6743)=0A=
support.enctype =3D !!document.createElement("form").enctype;=0A=
=0A=
// Makes sure cloning an html5 element does not cause problems=0A=
// Where outerHTML is undefined, this still works=0A=
support.html5Clone =3D document.createElement("nav").cloneNode( true =
).outerHTML !=3D=3D "<:nav>";=0A=
=0A=
// Will be defined later=0A=
support.inlineBlockNeedsLayout =3D false;=0A=
support.shrinkWrapBlocks =3D false;=0A=
support.pixelPosition =3D false;=0A=
support.deleteExpando =3D true;=0A=
support.noCloneEvent =3D true;=0A=
support.reliableMarginRight =3D true;=0A=
support.boxSizingReliable =3D true;=0A=
=0A=
// Make sure checked status is properly cloned=0A=
input.checked =3D true;=0A=
support.noCloneChecked =3D input.cloneNode( true ).checked;=0A=
=0A=
// Make sure that the options inside disabled selects aren't marked as =
disabled=0A=
// (WebKit marks them as disabled)=0A=
select.disabled =3D true;=0A=
support.optDisabled =3D !opt.disabled;=0A=
=0A=
// Support: IE<9=0A=
try {=0A=
delete div.test;=0A=
} catch( e ) {=0A=
support.deleteExpando =3D false;=0A=
}=0A=
=0A=
// Check if we can trust getAttribute("value")=0A=
input =3D document.createElement("input");=0A=
input.setAttribute( "value", "" );=0A=
support.input =3D input.getAttribute( "value" ) =3D=3D=3D "";=0A=
=0A=
// Check if an input maintains its value after becoming a radio=0A=
input.value =3D "t";=0A=
input.setAttribute( "type", "radio" );=0A=
support.radioValue =3D input.value =3D=3D=3D "t";=0A=
=0A=
// #11217 - WebKit loses check when the name is after the checked =
attribute=0A=
input.setAttribute( "checked", "t" );=0A=
input.setAttribute( "name", "t" );=0A=
=0A=
fragment =3D document.createDocumentFragment();=0A=
fragment.appendChild( input );=0A=
=0A=
// Check if a disconnected checkbox will retain its checked=0A=
// value of true after appended to the DOM (IE6/7)=0A=
support.appendChecked =3D input.checked;=0A=
=0A=
// WebKit doesn't clone checked state correctly in fragments=0A=
support.checkClone =3D fragment.cloneNode( true ).cloneNode( true =
).lastChild.checked;=0A=
=0A=
// Support: IE<9=0A=
// Opera does not clone events (and typeof div.attachEvent =3D=3D=3D =
undefined).=0A=
// IE9-10 clones events bound via attachEvent, but they don't trigger =
with .click()=0A=
if ( div.attachEvent ) {=0A=
div.attachEvent( "onclick", function() {=0A=
support.noCloneEvent =3D false;=0A=
});=0A=
=0A=
div.cloneNode( true ).click();=0A=
}=0A=
=0A=
// Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin =
event)=0A=
// Beware of CSP restrictions =
(https://developer.mozilla.org/en/Security/CSP)=0A=
for ( i in { submit: true, change: true, focusin: true }) {=0A=
div.setAttribute( eventName =3D "on" + i, "t" );=0A=
=0A=
support[ i + "Bubbles" ] =3D eventName in window || div.attributes[ =
eventName ].expando =3D=3D=3D false;=0A=
}=0A=
=0A=
div.style.backgroundClip =3D "content-box";=0A=
div.cloneNode( true ).style.backgroundClip =3D "";=0A=
support.clearCloneStyle =3D div.style.backgroundClip =3D=3D=3D =
"content-box";=0A=
=0A=
// Support: IE<9=0A=
// Iteration over object's inherited properties before its own.=0A=
for ( i in jQuery( support ) ) {=0A=
break;=0A=
}=0A=
support.ownLast =3D i !=3D=3D "0";=0A=
=0A=
// Run tests that need a body at doc ready=0A=
jQuery(function() {=0A=
var container, marginDiv, tds,=0A=
divReset =3D =
"padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-bo=
x-sizing:content-box;-webkit-box-sizing:content-box;",=0A=
body =3D document.getElementsByTagName("body")[0];=0A=
=0A=
if ( !body ) {=0A=
// Return for frameset docs that don't have a body=0A=
return;=0A=
}=0A=
=0A=
container =3D document.createElement("div");=0A=
container.style.cssText =3D =
"border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-to=
p:1px";=0A=
=0A=
body.appendChild( container ).appendChild( div );=0A=
=0A=
// Support: IE8=0A=
// Check if table cells still have offsetWidth/Height when they are set=0A=
// to display:none and there are still other visible table cells in a=0A=
// table row; if so, offsetWidth/Height are not reliable for use when=0A=
// determining if an element has been hidden directly using=0A=
// display:none (it is still safe to use offsets if a parent element is=0A=
// hidden; don safety goggles and see bug #4512 for more information).=0A=
div.innerHTML =3D "
t
";=0A=
tds =3D div.getElementsByTagName("td");=0A=
tds[ 0 ].style.cssText =3D "padding:0;margin:0;border:0;display:none";=0A=
isSupported =3D ( tds[ 0 ].offsetHeight =3D=3D=3D 0 );=0A=
=0A=
tds[ 0 ].style.display =3D "";=0A=
tds[ 1 ].style.display =3D "none";=0A=
=0A=
// Support: IE8=0A=
// Check if empty table cells still have offsetWidth/Height=0A=
support.reliableHiddenOffsets =3D isSupported && ( tds[ 0 =
].offsetHeight =3D=3D=3D 0 );=0A=
=0A=
// Check box-sizing and margin behavior.=0A=
div.innerHTML =3D "";=0A=
div.style.cssText =3D =
"box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:bord=
er-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;posit=
ion:absolute;top:1%;";=0A=
=0A=
// Workaround failing boxSizing test due to offsetWidth returning =
wrong value=0A=
// with some non-1 values of body zoom, ticket #13543=0A=
jQuery.swap( body, body.style.zoom !=3D null ? { zoom: 1 } : {}, =
function() {=0A=
support.boxSizing =3D div.offsetWidth =3D=3D=3D 4;=0A=
});=0A=
=0A=
// Use window.getComputedStyle because jsdom on node.js will break =
without it.=0A=
if ( window.getComputedStyle ) {=0A=
support.pixelPosition =3D ( window.getComputedStyle( div, null ) || =
{} ).top !=3D=3D "1%";=0A=
support.boxSizingReliable =3D ( window.getComputedStyle( div, null ) =
|| { width: "4px" } ).width =3D=3D=3D "4px";=0A=
=0A=
// Check if div with explicit width and no margin-right incorrectly=0A=
// gets computed margin-right based on width of container. (#3333)=0A=
// Fails in WebKit before Feb 2011 nightlies=0A=
// WebKit Bug 13343 - getComputedStyle returns wrong value for =
margin-right=0A=
marginDiv =3D div.appendChild( document.createElement("div") );=0A=
marginDiv.style.cssText =3D div.style.cssText =3D divReset;=0A=
marginDiv.style.marginRight =3D marginDiv.style.width =3D "0";=0A=
div.style.width =3D "1px";=0A=
=0A=
support.reliableMarginRight =3D=0A=
!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} =
).marginRight );=0A=
}=0A=
=0A=
if ( typeof div.style.zoom !=3D=3D core_strundefined ) {=0A=
// Support: IE<8=0A=
// Check if natively block-level elements act like inline-block=0A=
// elements when setting their display to 'inline' and giving=0A=
// them layout=0A=
div.innerHTML =3D "";=0A=
div.style.cssText =3D divReset + =
"width:1px;padding:1px;display:inline;zoom:1";=0A=
support.inlineBlockNeedsLayout =3D ( div.offsetWidth =3D=3D=3D 3 );=0A=
=0A=
// Support: IE6=0A=
// Check if elements with layout shrink-wrap their children=0A=
div.style.display =3D "block";=0A=
div.innerHTML =3D "";=0A=
div.firstChild.style.width =3D "5px";=0A=
support.shrinkWrapBlocks =3D ( div.offsetWidth !=3D=3D 3 );=0A=
=0A=
if ( support.inlineBlockNeedsLayout ) {=0A=
// Prevent IE 6 from affecting layout for positioned elements #11048=0A=
// Prevent IE from shrinking the body in IE 7 mode #12869=0A=
// Support: IE<8=0A=
body.style.zoom =3D 1;=0A=
}=0A=
}=0A=
=0A=
body.removeChild( container );=0A=
=0A=
// Null elements to avoid leaks in IE=0A=
container =3D div =3D tds =3D marginDiv =3D null;=0A=
});=0A=
=0A=
// Null elements to avoid leaks in IE=0A=
all =3D select =3D fragment =3D opt =3D a =3D input =3D null;=0A=
=0A=
return support;=0A=
})({});=0A=
=0A=
var rbrace =3D /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,=0A=
rmultiDash =3D /([A-Z])/g;=0A=
=0A=
function internalData( elem, name, data, pvt /* Internal Use Only */ ){=0A=
if ( !jQuery.acceptData( elem ) ) {=0A=
return;=0A=
}=0A=
=0A=
var ret, thisCache,=0A=
internalKey =3D jQuery.expando,=0A=
=0A=
// We have to handle DOM nodes and JS objects differently because IE6-7=0A=
// can't GC object references properly across the DOM-JS boundary=0A=
isNode =3D elem.nodeType,=0A=
=0A=
// Only DOM nodes need the global jQuery cache; JS object data is=0A=
// attached directly to the object so GC can occur automatically=0A=
cache =3D isNode ? jQuery.cache : elem,=0A=
=0A=
// Only defining an ID for JS objects if its cache already exists =
allows=0A=
// the code to shortcut on the same path as a DOM node with no cache=0A=
id =3D isNode ? elem[ internalKey ] : elem[ internalKey ] && =
internalKey;=0A=
=0A=
// Avoid doing any more work than we need to when trying to get data on =
an=0A=
// object that has no data at all=0A=
if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data =3D=3D=3D =
undefined && typeof name =3D=3D=3D "string" ) {=0A=
return;=0A=
}=0A=
=0A=
if ( !id ) {=0A=
// Only DOM nodes need a new unique ID for each element since their =
data=0A=
// ends up in the global cache=0A=
if ( isNode ) {=0A=
id =3D elem[ internalKey ] =3D core_deletedIds.pop() || jQuery.guid++;=0A=
} else {=0A=
id =3D internalKey;=0A=
}=0A=
}=0A=
=0A=
if ( !cache[ id ] ) {=0A=
// Avoid exposing jQuery metadata on plain JS objects when the object=0A=
// is serialized using JSON.stringify=0A=
cache[ id ] =3D isNode ? {} : { toJSON: jQuery.noop };=0A=
}=0A=
=0A=
// An object can be passed to jQuery.data instead of a key/value pair; =
this gets=0A=
// shallow copied over onto the existing cache=0A=
if ( typeof name =3D=3D=3D "object" || typeof name =3D=3D=3D "function" =
) {=0A=
if ( pvt ) {=0A=
cache[ id ] =3D jQuery.extend( cache[ id ], name );=0A=
} else {=0A=
cache[ id ].data =3D jQuery.extend( cache[ id ].data, name );=0A=
}=0A=
}=0A=
=0A=
thisCache =3D cache[ id ];=0A=
=0A=
// jQuery data() is stored in a separate object inside the object's =
internal data=0A=
// cache in order to avoid key collisions between internal data and =
user-defined=0A=
// data.=0A=
if ( !pvt ) {=0A=
if ( !thisCache.data ) {=0A=
thisCache.data =3D {};=0A=
}=0A=
=0A=
thisCache =3D thisCache.data;=0A=
}=0A=
=0A=
if ( data !=3D=3D undefined ) {=0A=
thisCache[ jQuery.camelCase( name ) ] =3D data;=0A=
}=0A=
=0A=
// Check for both converted-to-camel and non-converted data property =
names=0A=
// If a data property was specified=0A=
if ( typeof name =3D=3D=3D "string" ) {=0A=
=0A=
// First Try to find as-is property data=0A=
ret =3D thisCache[ name ];=0A=
=0A=
// Test for null|undefined property data=0A=
if ( ret =3D=3D null ) {=0A=
=0A=
// Try to find the camelCased property=0A=
ret =3D thisCache[ jQuery.camelCase( name ) ];=0A=
}=0A=
} else {=0A=
ret =3D thisCache;=0A=
}=0A=
=0A=
return ret;=0A=
}=0A=
=0A=
function internalRemoveData( elem, name, pvt ) {=0A=
if ( !jQuery.acceptData( elem ) ) {=0A=
return;=0A=
}=0A=
=0A=
var thisCache, i,=0A=
isNode =3D elem.nodeType,=0A=
=0A=
// See jQuery.data for more information=0A=
cache =3D isNode ? jQuery.cache : elem,=0A=
id =3D isNode ? elem[ jQuery.expando ] : jQuery.expando;=0A=
=0A=
// If there is already no cache entry for this object, there is no=0A=
// purpose in continuing=0A=
if ( !cache[ id ] ) {=0A=
return;=0A=
}=0A=
=0A=
if ( name ) {=0A=
=0A=
thisCache =3D pvt ? cache[ id ] : cache[ id ].data;=0A=
=0A=
if ( thisCache ) {=0A=
=0A=
// Support array or space separated string names for data keys=0A=
if ( !jQuery.isArray( name ) ) {=0A=
=0A=
// try the string as a key before any manipulation=0A=
if ( name in thisCache ) {=0A=
name =3D [ name ];=0A=
} else {=0A=
=0A=
// split the camel cased version by spaces unless a key with the =
spaces exists=0A=
name =3D jQuery.camelCase( name );=0A=
if ( name in thisCache ) {=0A=
name =3D [ name ];=0A=
} else {=0A=
name =3D name.split(" ");=0A=
}=0A=
}=0A=
} else {=0A=
// If "name" is an array of keys...=0A=
// When data is initially created, via ("key", "val") signature,=0A=
// keys will be converted to camelCase.=0A=
// Since there is no way to tell _how_ a key was added, remove=0A=
// both plain key and camelCase key. #12786=0A=
// This will only penalize the array argument path.=0A=
name =3D name.concat( jQuery.map( name, jQuery.camelCase ) );=0A=
}=0A=
=0A=
i =3D name.length;=0A=
while ( i-- ) {=0A=
delete thisCache[ name[i] ];=0A=
}=0A=
=0A=
// If there is no data left in the cache, we want to continue=0A=
// and let the cache object itself get destroyed=0A=
if ( pvt ? !isEmptyDataObject(thisCache) : =
!jQuery.isEmptyObject(thisCache) ) {=0A=
return;=0A=
}=0A=
}=0A=
}=0A=
=0A=
// See jQuery.data for more information=0A=
if ( !pvt ) {=0A=
delete cache[ id ].data;=0A=
=0A=
// Don't destroy the parent cache unless the internal data object=0A=
// had been the only thing left in it=0A=
if ( !isEmptyDataObject( cache[ id ] ) ) {=0A=
return;=0A=
}=0A=
}=0A=
=0A=
// Destroy the cache=0A=
if ( isNode ) {=0A=
jQuery.cleanData( [ elem ], true );=0A=
=0A=
// Use delete when supported for expandos or `cache` is not a window =
per isWindow (#10080)=0A=
/* jshint eqeqeq: false */=0A=
} else if ( jQuery.support.deleteExpando || cache !=3D cache.window ) {=0A=
/* jshint eqeqeq: true */=0A=
delete cache[ id ];=0A=
=0A=
// When all else fails, null=0A=
} else {=0A=
cache[ id ] =3D null;=0A=
}=0A=
}=0A=
=0A=
jQuery.extend({=0A=
cache: {},=0A=
=0A=
// The following elements throw uncatchable exceptions if you=0A=
// attempt to add expando properties to them.=0A=
noData: {=0A=
"applet": true,=0A=
"embed": true,=0A=
// Ban all objects except for Flash (which handle expandos)=0A=
"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"=0A=
},=0A=
=0A=
hasData: function( elem ) {=0A=
elem =3D elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ =
jQuery.expando ];=0A=
return !!elem && !isEmptyDataObject( elem );=0A=
},=0A=
=0A=
data: function( elem, name, data ) {=0A=
return internalData( elem, name, data );=0A=
},=0A=
=0A=
removeData: function( elem, name ) {=0A=
return internalRemoveData( elem, name );=0A=
},=0A=
=0A=
// For internal use only.=0A=
_data: function( elem, name, data ) {=0A=
return internalData( elem, name, data, true );=0A=
},=0A=
=0A=
_removeData: function( elem, name ) {=0A=
return internalRemoveData( elem, name, true );=0A=
},=0A=
=0A=
// A method for determining if a DOM node can handle the data expando=0A=
acceptData: function( elem ) {=0A=
// Do not set data on non-element because it will not be cleared =
(#8335).=0A=
if ( elem.nodeType && elem.nodeType !=3D=3D 1 && elem.nodeType !=3D=3D =
9 ) {=0A=
return false;=0A=
}=0A=
=0A=
var noData =3D elem.nodeName && jQuery.noData[ =
elem.nodeName.toLowerCase() ];=0A=
=0A=
// nodes accept data unless otherwise specified; rejection can be =
conditional=0A=
return !noData || noData !=3D=3D true && elem.getAttribute("classid") =
=3D=3D=3D noData;=0A=
}=0A=
});=0A=
=0A=
jQuery.fn.extend({=0A=
data: function( key, value ) {=0A=
var attrs, name,=0A=
data =3D null,=0A=
i =3D 0,=0A=
elem =3D this[0];=0A=
=0A=
// Special expections of .data basically thwart jQuery.access,=0A=
// so implement the relevant behavior ourselves=0A=
=0A=
// Gets all values=0A=
if ( key =3D=3D=3D undefined ) {=0A=
if ( this.length ) {=0A=
data =3D jQuery.data( elem );=0A=
=0A=
if ( elem.nodeType =3D=3D=3D 1 && !jQuery._data( elem, "parsedAttrs" =
) ) {=0A=
attrs =3D elem.attributes;=0A=
for ( ; i < attrs.length; i++ ) {=0A=
name =3D attrs[i].name;=0A=
=0A=
if ( name.indexOf("data-") =3D=3D=3D 0 ) {=0A=
name =3D jQuery.camelCase( name.slice(5) );=0A=
=0A=
dataAttr( elem, name, data[ name ] );=0A=
}=0A=
}=0A=
jQuery._data( elem, "parsedAttrs", true );=0A=
}=0A=
}=0A=
=0A=
return data;=0A=
}=0A=
=0A=
// Sets multiple values=0A=
if ( typeof key =3D=3D=3D "object" ) {=0A=
return this.each(function() {=0A=
jQuery.data( this, key );=0A=
});=0A=
}=0A=
=0A=
return arguments.length > 1 ?=0A=
=0A=
// Sets one value=0A=
this.each(function() {=0A=
jQuery.data( this, key, value );=0A=
}) :=0A=
=0A=
// Gets one value=0A=
// Try to fetch any internally stored data first=0A=
elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null;=0A=
},=0A=
=0A=
removeData: function( key ) {=0A=
return this.each(function() {=0A=
jQuery.removeData( this, key );=0A=
});=0A=
}=0A=
});=0A=
=0A=
function dataAttr( elem, key, data ) {=0A=
// If nothing was found internally, try to fetch any=0A=
// data from the HTML5 data-* attribute=0A=
if ( data =3D=3D=3D undefined && elem.nodeType =3D=3D=3D 1 ) {=0A=
=0A=
var name =3D "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();=0A=
=0A=
data =3D elem.getAttribute( name );=0A=
=0A=
if ( typeof data =3D=3D=3D "string" ) {=0A=
try {=0A=
data =3D data =3D=3D=3D "true" ? true :=0A=
data =3D=3D=3D "false" ? false :=0A=
data =3D=3D=3D "null" ? null :=0A=
// Only convert to a number if it doesn't change the string=0A=
+data + "" =3D=3D=3D data ? +data :=0A=
rbrace.test( data ) ? jQuery.parseJSON( data ) :=0A=
data;=0A=
} catch( e ) {}=0A=
=0A=
// Make sure we set the data so it isn't changed later=0A=
jQuery.data( elem, key, data );=0A=
=0A=
} else {=0A=
data =3D undefined;=0A=
}=0A=
}=0A=
=0A=
return data;=0A=
}=0A=
=0A=
// checks a cache object for emptiness=0A=
function isEmptyDataObject( obj ) {=0A=
var name;=0A=
for ( name in obj ) {=0A=
=0A=
// if the public data object is empty, the private is still empty=0A=
if ( name =3D=3D=3D "data" && jQuery.isEmptyObject( obj[name] ) ) {=0A=
continue;=0A=
}=0A=
if ( name !=3D=3D "toJSON" ) {=0A=
return false;=0A=
}=0A=
}=0A=
=0A=
return true;=0A=
}=0A=
jQuery.extend({=0A=
queue: function( elem, type, data ) {=0A=
var queue;=0A=
=0A=
if ( elem ) {=0A=
type =3D ( type || "fx" ) + "queue";=0A=
queue =3D jQuery._data( elem, type );=0A=
=0A=
// Speed up dequeue by getting out quickly if this is just a lookup=0A=
if ( data ) {=0A=
if ( !queue || jQuery.isArray(data) ) {=0A=
queue =3D jQuery._data( elem, type, jQuery.makeArray(data) );=0A=
} else {=0A=
queue.push( data );=0A=
}=0A=
}=0A=
return queue || [];=0A=
}=0A=
},=0A=
=0A=
dequeue: function( elem, type ) {=0A=
type =3D type || "fx";=0A=
=0A=
var queue =3D jQuery.queue( elem, type ),=0A=
startLength =3D queue.length,=0A=
fn =3D queue.shift(),=0A=
hooks =3D jQuery._queueHooks( elem, type ),=0A=
next =3D function() {=0A=
jQuery.dequeue( elem, type );=0A=
};=0A=
=0A=
// If the fx queue is dequeued, always remove the progress sentinel=0A=
if ( fn =3D=3D=3D "inprogress" ) {=0A=
fn =3D queue.shift();=0A=
startLength--;=0A=
}=0A=
=0A=
if ( fn ) {=0A=
=0A=
// Add a progress sentinel to prevent the fx queue from being=0A=
// automatically dequeued=0A=
if ( type =3D=3D=3D "fx" ) {=0A=
queue.unshift( "inprogress" );=0A=
}=0A=
=0A=
// clear up the last queue stop function=0A=
delete hooks.stop;=0A=
fn.call( elem, next, hooks );=0A=
}=0A=
=0A=
if ( !startLength && hooks ) {=0A=
hooks.empty.fire();=0A=
}=0A=
},=0A=
=0A=
// not intended for public consumption - generates a queueHooks object, =
or returns the current one=0A=
_queueHooks: function( elem, type ) {=0A=
var key =3D type + "queueHooks";=0A=
return jQuery._data( elem, key ) || jQuery._data( elem, key, {=0A=
empty: jQuery.Callbacks("once memory").add(function() {=0A=
jQuery._removeData( elem, type + "queue" );=0A=
jQuery._removeData( elem, key );=0A=
})=0A=
});=0A=
}=0A=
});=0A=
=0A=
jQuery.fn.extend({=0A=
queue: function( type, data ) {=0A=
var setter =3D 2;=0A=
=0A=
if ( typeof type !=3D=3D "string" ) {=0A=
data =3D type;=0A=
type =3D "fx";=0A=
setter--;=0A=
}=0A=
=0A=
if ( arguments.length < setter ) {=0A=
return jQuery.queue( this[0], type );=0A=
}=0A=
=0A=
return data =3D=3D=3D undefined ?=0A=
this :=0A=
this.each(function() {=0A=
var queue =3D jQuery.queue( this, type, data );=0A=
=0A=
// ensure a hooks for this queue=0A=
jQuery._queueHooks( this, type );=0A=
=0A=
if ( type =3D=3D=3D "fx" && queue[0] !=3D=3D "inprogress" ) {=0A=
jQuery.dequeue( this, type );=0A=
}=0A=
});=0A=
},=0A=
dequeue: function( type ) {=0A=
return this.each(function() {=0A=
jQuery.dequeue( this, type );=0A=
});=0A=
},=0A=
// Based off of the plugin by Clint Helfers, with permission.=0A=
// http://blindsignals.com/index.php/2009/07/jquery-delay/=0A=
delay: function( time, type ) {=0A=
time =3D jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;=0A=
type =3D type || "fx";=0A=
=0A=
return this.queue( type, function( next, hooks ) {=0A=
var timeout =3D setTimeout( next, time );=0A=
hooks.stop =3D function() {=0A=
clearTimeout( timeout );=0A=
};=0A=
});=0A=
},=0A=
clearQueue: function( type ) {=0A=
return this.queue( type || "fx", [] );=0A=
},=0A=
// Get a promise resolved when queues of a certain type=0A=
// are emptied (fx is the type by default)=0A=
promise: function( type, obj ) {=0A=
var tmp,=0A=
count =3D 1,=0A=
defer =3D jQuery.Deferred(),=0A=
elements =3D this,=0A=
i =3D this.length,=0A=
resolve =3D function() {=0A=
if ( !( --count ) ) {=0A=
defer.resolveWith( elements, [ elements ] );=0A=
}=0A=
};=0A=
=0A=
if ( typeof type !=3D=3D "string" ) {=0A=
obj =3D type;=0A=
type =3D undefined;=0A=
}=0A=
type =3D type || "fx";=0A=
=0A=
while( i-- ) {=0A=
tmp =3D jQuery._data( elements[ i ], type + "queueHooks" );=0A=
if ( tmp && tmp.empty ) {=0A=
count++;=0A=
tmp.empty.add( resolve );=0A=
}=0A=
}=0A=
resolve();=0A=
return defer.promise( obj );=0A=
}=0A=
});=0A=
var nodeHook, boolHook,=0A=
rclass =3D /[\t\r\n\f]/g,=0A=
rreturn =3D /\r/g,=0A=
rfocusable =3D /^(?:input|select|textarea|button|object)$/i,=0A=
rclickable =3D /^(?:a|area)$/i,=0A=
ruseDefault =3D /^(?:checked|selected)$/i,=0A=
getSetAttribute =3D jQuery.support.getSetAttribute,=0A=
getSetInput =3D jQuery.support.input;=0A=
=0A=
jQuery.fn.extend({=0A=
attr: function( name, value ) {=0A=
return jQuery.access( this, jQuery.attr, name, value, arguments.length =
> 1 );=0A=
},=0A=
=0A=
removeAttr: function( name ) {=0A=
return this.each(function() {=0A=
jQuery.removeAttr( this, name );=0A=
});=0A=
},=0A=
=0A=
prop: function( name, value ) {=0A=
return jQuery.access( this, jQuery.prop, name, value, arguments.length =
> 1 );=0A=
},=0A=
=0A=
removeProp: function( name ) {=0A=
name =3D jQuery.propFix[ name ] || name;=0A=
return this.each(function() {=0A=
// try/catch handles cases where IE balks (such as removing a =
property on window)=0A=
try {=0A=
this[ name ] =3D undefined;=0A=
delete this[ name ];=0A=
} catch( e ) {}=0A=
});=0A=
},=0A=
=0A=
addClass: function( value ) {=0A=
var classes, elem, cur, clazz, j,=0A=
i =3D 0,=0A=
len =3D this.length,=0A=
proceed =3D typeof value =3D=3D=3D "string" && value;=0A=
=0A=
if ( jQuery.isFunction( value ) ) {=0A=
return this.each(function( j ) {=0A=
jQuery( this ).addClass( value.call( this, j, this.className ) );=0A=
});=0A=
}=0A=
=0A=
if ( proceed ) {=0A=
// The disjunction here is for better compressibility (see =
removeClass)=0A=
classes =3D ( value || "" ).match( core_rnotwhite ) || [];=0A=
=0A=
for ( ; i < len; i++ ) {=0A=
elem =3D this[ i ];=0A=
cur =3D elem.nodeType =3D=3D=3D 1 && ( elem.className ?=0A=
( " " + elem.className + " " ).replace( rclass, " " ) :=0A=
" "=0A=
);=0A=
=0A=
if ( cur ) {=0A=
j =3D 0;=0A=
while ( (clazz =3D classes[j++]) ) {=0A=
if ( cur.indexOf( " " + clazz + " " ) < 0 ) {=0A=
cur +=3D clazz + " ";=0A=
}=0A=
}=0A=
elem.className =3D jQuery.trim( cur );=0A=
=0A=
}=0A=
}=0A=
}=0A=
=0A=
return this;=0A=
},=0A=
=0A=
removeClass: function( value ) {=0A=
var classes, elem, cur, clazz, j,=0A=
i =3D 0,=0A=
len =3D this.length,=0A=
proceed =3D arguments.length =3D=3D=3D 0 || typeof value =3D=3D=3D =
"string" && value;=0A=
=0A=
if ( jQuery.isFunction( value ) ) {=0A=
return this.each(function( j ) {=0A=
jQuery( this ).removeClass( value.call( this, j, this.className ) );=0A=
});=0A=
}=0A=
if ( proceed ) {=0A=
classes =3D ( value || "" ).match( core_rnotwhite ) || [];=0A=
=0A=
for ( ; i < len; i++ ) {=0A=
elem =3D this[ i ];=0A=
// This expression is here for better compressibility (see addClass)=0A=
cur =3D elem.nodeType =3D=3D=3D 1 && ( elem.className ?=0A=
( " " + elem.className + " " ).replace( rclass, " " ) :=0A=
""=0A=
);=0A=
=0A=
if ( cur ) {=0A=
j =3D 0;=0A=
while ( (clazz =3D classes[j++]) ) {=0A=
// Remove *all* instances=0A=
while ( cur.indexOf( " " + clazz + " " ) >=3D 0 ) {=0A=
cur =3D cur.replace( " " + clazz + " ", " " );=0A=
}=0A=
}=0A=
elem.className =3D value ? jQuery.trim( cur ) : "";=0A=
}=0A=
}=0A=
}=0A=
=0A=
return this;=0A=
},=0A=
=0A=
toggleClass: function( value, stateVal ) {=0A=
var type =3D typeof value;=0A=
=0A=
if ( typeof stateVal =3D=3D=3D "boolean" && type =3D=3D=3D "string" ) {=0A=
return stateVal ? this.addClass( value ) : this.removeClass( value );=0A=
}=0A=
=0A=
if ( jQuery.isFunction( value ) ) {=0A=
return this.each(function( i ) {=0A=
jQuery( this ).toggleClass( value.call(this, i, this.className, =
stateVal), stateVal );=0A=
});=0A=
}=0A=
=0A=
return this.each(function() {=0A=
if ( type =3D=3D=3D "string" ) {=0A=
// toggle individual class names=0A=
var className,=0A=
i =3D 0,=0A=
self =3D jQuery( this ),=0A=
classNames =3D value.match( core_rnotwhite ) || [];=0A=
=0A=
while ( (className =3D classNames[ i++ ]) ) {=0A=
// check each className given, space separated list=0A=
if ( self.hasClass( className ) ) {=0A=
self.removeClass( className );=0A=
} else {=0A=
self.addClass( className );=0A=
}=0A=
}=0A=
=0A=
// Toggle whole class name=0A=
} else if ( type =3D=3D=3D core_strundefined || type =3D=3D=3D =
"boolean" ) {=0A=
if ( this.className ) {=0A=
// store className if set=0A=
jQuery._data( this, "__className__", this.className );=0A=
}=0A=
=0A=
// If the element has a class name or if we're passed "false",=0A=
// then remove the whole classname (if there was one, the above =
saved it).=0A=
// Otherwise bring back whatever was previously saved (if anything),=0A=
// falling back to the empty string if nothing was stored.=0A=
this.className =3D this.className || value =3D=3D=3D false ? "" : =
jQuery._data( this, "__className__" ) || "";=0A=
}=0A=
});=0A=
},=0A=
=0A=
hasClass: function( selector ) {=0A=
var className =3D " " + selector + " ",=0A=
i =3D 0,=0A=
l =3D this.length;=0A=
for ( ; i < l; i++ ) {=0A=
if ( this[i].nodeType =3D=3D=3D 1 && (" " + this[i].className + " =
").replace(rclass, " ").indexOf( className ) >=3D 0 ) {=0A=
return true;=0A=
}=0A=
}=0A=
=0A=
return false;=0A=
},=0A=
=0A=
val: function( value ) {=0A=
var ret, hooks, isFunction,=0A=
elem =3D this[0];=0A=
=0A=
if ( !arguments.length ) {=0A=
if ( elem ) {=0A=
hooks =3D jQuery.valHooks[ elem.type ] || jQuery.valHooks[ =
elem.nodeName.toLowerCase() ];=0A=
=0A=
if ( hooks && "get" in hooks && (ret =3D hooks.get( elem, "value" )) =
!=3D=3D undefined ) {=0A=
return ret;=0A=
}=0A=
=0A=
ret =3D elem.value;=0A=
=0A=
return typeof ret =3D=3D=3D "string" ?=0A=
// handle most common string cases=0A=
ret.replace(rreturn, "") :=0A=
// handle cases where value is null/undef or number=0A=
ret =3D=3D null ? "" : ret;=0A=
}=0A=
=0A=
return;=0A=
}=0A=
=0A=
isFunction =3D jQuery.isFunction( value );=0A=
=0A=
return this.each(function( i ) {=0A=
var val;=0A=
=0A=
if ( this.nodeType !=3D=3D 1 ) {=0A=
return;=0A=
}=0A=
=0A=
if ( isFunction ) {=0A=
val =3D value.call( this, i, jQuery( this ).val() );=0A=
} else {=0A=
val =3D value;=0A=
}=0A=
=0A=
// Treat null/undefined as ""; convert numbers to string=0A=
if ( val =3D=3D null ) {=0A=
val =3D "";=0A=
} else if ( typeof val =3D=3D=3D "number" ) {=0A=
val +=3D "";=0A=
} else if ( jQuery.isArray( val ) ) {=0A=
val =3D jQuery.map(val, function ( value ) {=0A=
return value =3D=3D null ? "" : value + "";=0A=
});=0A=
}=0A=
=0A=
hooks =3D jQuery.valHooks[ this.type ] || jQuery.valHooks[ =
this.nodeName.toLowerCase() ];=0A=
=0A=
// If set returns undefined, fall back to normal setting=0A=
if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) =
=3D=3D=3D undefined ) {=0A=
this.value =3D val;=0A=
}=0A=
});=0A=
}=0A=
});=0A=
=0A=
jQuery.extend({=0A=
valHooks: {=0A=
option: {=0A=
get: function( elem ) {=0A=
// Use proper attribute retrieval(#6932, #12072)=0A=
var val =3D jQuery.find.attr( elem, "value" );=0A=
return val !=3D null ?=0A=
val :=0A=
elem.text;=0A=
}=0A=
},=0A=
select: {=0A=
get: function( elem ) {=0A=
var value, option,=0A=
options =3D elem.options,=0A=
index =3D elem.selectedIndex,=0A=
one =3D elem.type =3D=3D=3D "select-one" || index < 0,=0A=
values =3D one ? null : [],=0A=
max =3D one ? index + 1 : options.length,=0A=
i =3D index < 0 ?=0A=
max :=0A=
one ? index : 0;=0A=
=0A=
// Loop through all the selected options=0A=
for ( ; i < max; i++ ) {=0A=
option =3D options[ i ];=0A=
=0A=
// oldIE doesn't update selected after form reset (#2551)=0A=
if ( ( option.selected || i =3D=3D=3D index ) &&=0A=
// Don't return options that are disabled or in a disabled =
optgroup=0A=
( jQuery.support.optDisabled ? !option.disabled : =
option.getAttribute("disabled") =3D=3D=3D null ) &&=0A=
( !option.parentNode.disabled || !jQuery.nodeName( =
option.parentNode, "optgroup" ) ) ) {=0A=
=0A=
// Get the specific value for the option=0A=
value =3D jQuery( option ).val();=0A=
=0A=
// We don't need an array for one selects=0A=
if ( one ) {=0A=
return value;=0A=
}=0A=
=0A=
// Multi-Selects return an array=0A=
values.push( value );=0A=
}=0A=
}=0A=
=0A=
return values;=0A=
},=0A=
=0A=
set: function( elem, value ) {=0A=
var optionSet, option,=0A=
options =3D elem.options,=0A=
values =3D jQuery.makeArray( value ),=0A=
i =3D options.length;=0A=
=0A=
while ( i-- ) {=0A=
option =3D options[ i ];=0A=
if ( (option.selected =3D jQuery.inArray( jQuery(option).val(), =
values ) >=3D 0) ) {=0A=
optionSet =3D true;=0A=
}=0A=
}=0A=
=0A=
// force browsers to behave consistently when non-matching value is =
set=0A=
if ( !optionSet ) {=0A=
elem.selectedIndex =3D -1;=0A=
}=0A=
return values;=0A=
}=0A=
}=0A=
},=0A=
=0A=
attr: function( elem, name, value ) {=0A=
var hooks, ret,=0A=
nType =3D elem.nodeType;=0A=
=0A=
// don't get/set attributes on text, comment and attribute nodes=0A=
if ( !elem || nType =3D=3D=3D 3 || nType =3D=3D=3D 8 || nType =
=3D=3D=3D 2 ) {=0A=
return;=0A=
}=0A=
=0A=
// Fallback to prop when attributes are not supported=0A=
if ( typeof elem.getAttribute =3D=3D=3D core_strundefined ) {=0A=
return jQuery.prop( elem, name, value );=0A=
}=0A=
=0A=
// All attributes are lowercase=0A=
// Grab necessary hook if one is defined=0A=
if ( nType !=3D=3D 1 || !jQuery.isXMLDoc( elem ) ) {=0A=
name =3D name.toLowerCase();=0A=
hooks =3D jQuery.attrHooks[ name ] ||=0A=
( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );=0A=
}=0A=
=0A=
if ( value !=3D=3D undefined ) {=0A=
=0A=
if ( value =3D=3D=3D null ) {=0A=
jQuery.removeAttr( elem, name );=0A=
=0A=
} else if ( hooks && "set" in hooks && (ret =3D hooks.set( elem, =
value, name )) !=3D=3D undefined ) {=0A=
return ret;=0A=
=0A=
} else {=0A=
elem.setAttribute( name, value + "" );=0A=
return value;=0A=
}=0A=
=0A=
} else if ( hooks && "get" in hooks && (ret =3D hooks.get( elem, name =
)) !=3D=3D null ) {=0A=
return ret;=0A=
=0A=
} else {=0A=
ret =3D jQuery.find.attr( elem, name );=0A=
=0A=
// Non-existent attributes return null, we normalize to undefined=0A=
return ret =3D=3D null ?=0A=
undefined :=0A=
ret;=0A=
}=0A=
},=0A=
=0A=
removeAttr: function( elem, value ) {=0A=
var name, propName,=0A=
i =3D 0,=0A=
attrNames =3D value && value.match( core_rnotwhite );=0A=
=0A=
if ( attrNames && elem.nodeType =3D=3D=3D 1 ) {=0A=
while ( (name =3D attrNames[i++]) ) {=0A=
propName =3D jQuery.propFix[ name ] || name;=0A=
=0A=
// Boolean attributes get special treatment (#10870)=0A=
if ( jQuery.expr.match.bool.test( name ) ) {=0A=
// Set corresponding property to false=0A=
if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {=0A=
elem[ propName ] =3D false;=0A=
// Support: IE<9=0A=
// Also clear defaultChecked/defaultSelected (if appropriate)=0A=
} else {=0A=
elem[ jQuery.camelCase( "default-" + name ) ] =3D=0A=
elem[ propName ] =3D false;=0A=
}=0A=
=0A=
// See #9699 for explanation of this approach (setting first, then =
removal)=0A=
} else {=0A=
jQuery.attr( elem, name, "" );=0A=
}=0A=
=0A=
elem.removeAttribute( getSetAttribute ? name : propName );=0A=
}=0A=
}=0A=
},=0A=
=0A=
attrHooks: {=0A=
type: {=0A=
set: function( elem, value ) {=0A=
if ( !jQuery.support.radioValue && value =3D=3D=3D "radio" && =
jQuery.nodeName(elem, "input") ) {=0A=
// Setting the type on a radio button after the value resets the =
value in IE6-9=0A=
// Reset value to default in case type is set after value during =
creation=0A=
var val =3D elem.value;=0A=
elem.setAttribute( "type", value );=0A=
if ( val ) {=0A=
elem.value =3D val;=0A=
}=0A=
return value;=0A=
}=0A=
}=0A=
}=0A=
},=0A=
=0A=
propFix: {=0A=
"for": "htmlFor",=0A=
"class": "className"=0A=
},=0A=
=0A=
prop: function( elem, name, value ) {=0A=
var ret, hooks, notxml,=0A=
nType =3D elem.nodeType;=0A=
=0A=
// don't get/set properties on text, comment and attribute nodes=0A=
if ( !elem || nType =3D=3D=3D 3 || nType =3D=3D=3D 8 || nType =
=3D=3D=3D 2 ) {=0A=
return;=0A=
}=0A=
=0A=
notxml =3D nType !=3D=3D 1 || !jQuery.isXMLDoc( elem );=0A=
=0A=
if ( notxml ) {=0A=
// Fix name and attach hooks=0A=
name =3D jQuery.propFix[ name ] || name;=0A=
hooks =3D jQuery.propHooks[ name ];=0A=
}=0A=
=0A=
if ( value !=3D=3D undefined ) {=0A=
return hooks && "set" in hooks && (ret =3D hooks.set( elem, value, =
name )) !=3D=3D undefined ?=0A=
ret :=0A=
( elem[ name ] =3D value );=0A=
=0A=
} else {=0A=
return hooks && "get" in hooks && (ret =3D hooks.get( elem, name )) =
!=3D=3D null ?=0A=
ret :=0A=
elem[ name ];=0A=
}=0A=
},=0A=
=0A=
propHooks: {=0A=
tabIndex: {=0A=
get: function( elem ) {=0A=
// elem.tabIndex doesn't always return the correct value when it =
hasn't been explicitly set=0A=
// =
http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabi=
ndex-values-with-javascript/=0A=
// Use proper attribute retrieval(#12072)=0A=
var tabindex =3D jQuery.find.attr( elem, "tabindex" );=0A=
=0A=
return tabindex ?=0A=
parseInt( tabindex, 10 ) :=0A=
rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName =
) && elem.href ?=0A=
0 :=0A=
-1;=0A=
}=0A=
}=0A=
}=0A=
});=0A=
=0A=
// Hooks for boolean attributes=0A=
boolHook =3D {=0A=
set: function( elem, value, name ) {=0A=
if ( value =3D=3D=3D false ) {=0A=
// Remove boolean attributes when set to false=0A=
jQuery.removeAttr( elem, name );=0A=
} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name =
) ) {=0A=
// IE<8 needs the *property* name=0A=
elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || =
name, name );=0A=
=0A=
// Use defaultChecked and defaultSelected for oldIE=0A=
} else {=0A=
elem[ jQuery.camelCase( "default-" + name ) ] =3D elem[ name ] =3D =
true;=0A=
}=0A=
=0A=
return name;=0A=
}=0A=
};=0A=
jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, =
name ) {=0A=
var getter =3D jQuery.expr.attrHandle[ name ] || jQuery.find.attr;=0A=
=0A=
jQuery.expr.attrHandle[ name ] =3D getSetInput && getSetAttribute || =
!ruseDefault.test( name ) ?=0A=
function( elem, name, isXML ) {=0A=
var fn =3D jQuery.expr.attrHandle[ name ],=0A=
ret =3D isXML ?=0A=
undefined :=0A=
/* jshint eqeqeq: false */=0A=
(jQuery.expr.attrHandle[ name ] =3D undefined) !=3D=0A=
getter( elem, name, isXML ) ?=0A=
=0A=
name.toLowerCase() :=0A=
null;=0A=
jQuery.expr.attrHandle[ name ] =3D fn;=0A=
return ret;=0A=
} :=0A=
function( elem, name, isXML ) {=0A=
return isXML ?=0A=
undefined :=0A=
elem[ jQuery.camelCase( "default-" + name ) ] ?=0A=
name.toLowerCase() :=0A=
null;=0A=
};=0A=
});=0A=
=0A=
// fix oldIE attroperties=0A=
if ( !getSetInput || !getSetAttribute ) {=0A=
jQuery.attrHooks.value =3D {=0A=
set: function( elem, value, name ) {=0A=
if ( jQuery.nodeName( elem, "input" ) ) {=0A=
// Does not return so that setAttribute is also used=0A=
elem.defaultValue =3D value;=0A=
} else {=0A=
// Use nodeHook if defined (#1954); otherwise setAttribute is fine=0A=
return nodeHook && nodeHook.set( elem, value, name );=0A=
}=0A=
}=0A=
};=0A=
}=0A=
=0A=
// IE6/7 do not support getting/setting some attributes with =
get/setAttribute=0A=
if ( !getSetAttribute ) {=0A=
=0A=
// Use this for any attribute in IE6/7=0A=
// This fixes almost every IE6/7 issue=0A=
nodeHook =3D {=0A=
set: function( elem, value, name ) {=0A=
// Set the existing or create a new attribute node=0A=
var ret =3D elem.getAttributeNode( name );=0A=
if ( !ret ) {=0A=
elem.setAttributeNode(=0A=
(ret =3D elem.ownerDocument.createAttribute( name ))=0A=
);=0A=
}=0A=
=0A=
ret.value =3D value +=3D "";=0A=
=0A=
// Break association with cloned elements by also using setAttribute =
(#9646)=0A=
return name =3D=3D=3D "value" || value =3D=3D=3D elem.getAttribute( =
name ) ?=0A=
value :=0A=
undefined;=0A=
}=0A=
};=0A=
jQuery.expr.attrHandle.id =3D jQuery.expr.attrHandle.name =3D =
jQuery.expr.attrHandle.coords =3D=0A=
// Some attributes are constructed with empty-string values when not =
defined=0A=
function( elem, name, isXML ) {=0A=
var ret;=0A=
return isXML ?=0A=
undefined :=0A=
(ret =3D elem.getAttributeNode( name )) && ret.value !=3D=3D "" ?=0A=
ret.value :=0A=
null;=0A=
};=0A=
jQuery.valHooks.button =3D {=0A=
get: function( elem, name ) {=0A=
var ret =3D elem.getAttributeNode( name );=0A=
return ret && ret.specified ?=0A=
ret.value :=0A=
undefined;=0A=
},=0A=
set: nodeHook.set=0A=
};=0A=
=0A=
// Set contenteditable to false on removals(#10429)=0A=
// Setting to empty string throws an error as an invalid value=0A=
jQuery.attrHooks.contenteditable =3D {=0A=
set: function( elem, value, name ) {=0A=
nodeHook.set( elem, value =3D=3D=3D "" ? false : value, name );=0A=
}=0A=
};=0A=
=0A=
// Set width and height to auto instead of 0 on empty string( Bug #8150 =
)=0A=
// This is for removals=0A=
jQuery.each([ "width", "height" ], function( i, name ) {=0A=
jQuery.attrHooks[ name ] =3D {=0A=
set: function( elem, value ) {=0A=
if ( value =3D=3D=3D "" ) {=0A=
elem.setAttribute( name, "auto" );=0A=
return value;=0A=
}=0A=
}=0A=
};=0A=
});=0A=
}=0A=
=0A=
=0A=
// Some attributes require a special call on IE=0A=
// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx=0A=
if ( !jQuery.support.hrefNormalized ) {=0A=
// href/src property should get the full normalized URL (#10299/#12915)=0A=
jQuery.each([ "href", "src" ], function( i, name ) {=0A=
jQuery.propHooks[ name ] =3D {=0A=
get: function( elem ) {=0A=
return elem.getAttribute( name, 4 );=0A=
}=0A=
};=0A=
});=0A=
}=0A=
=0A=
if ( !jQuery.support.style ) {=0A=
jQuery.attrHooks.style =3D {=0A=
get: function( elem ) {=0A=
// Return undefined in the case of empty string=0A=
// Note: IE uppercases css property names, but if we were to =
.toLowerCase()=0A=
// .cssText, that would destroy case senstitivity in URL's, like in =
"background"=0A=
return elem.style.cssText || undefined;=0A=
},=0A=
set: function( elem, value ) {=0A=
return ( elem.style.cssText =3D value + "" );=0A=
}=0A=
};=0A=
}=0A=
=0A=
// Safari mis-reports the default selected property of an option=0A=
// Accessing the parent's selectedIndex property fixes it=0A=
if ( !jQuery.support.optSelected ) {=0A=
jQuery.propHooks.selected =3D {=0A=
get: function( elem ) {=0A=
var parent =3D elem.parentNode;=0A=
=0A=
if ( parent ) {=0A=
parent.selectedIndex;=0A=
=0A=
// Make sure that it also works with optgroups, see #5701=0A=
if ( parent.parentNode ) {=0A=
parent.parentNode.selectedIndex;=0A=
}=0A=
}=0A=
return null;=0A=
}=0A=
};=0A=
}=0A=
=0A=
jQuery.each([=0A=
"tabIndex",=0A=
"readOnly",=0A=
"maxLength",=0A=
"cellSpacing",=0A=
"cellPadding",=0A=
"rowSpan",=0A=
"colSpan",=0A=
"useMap",=0A=
"frameBorder",=0A=
"contentEditable"=0A=
], function() {=0A=
jQuery.propFix[ this.toLowerCase() ] =3D this;=0A=
});=0A=
=0A=
// IE6/7 call enctype encoding=0A=
if ( !jQuery.support.enctype ) {=0A=
jQuery.propFix.enctype =3D "encoding";=0A=
}=0A=
=0A=
// Radios and checkboxes getter/setter=0A=
jQuery.each([ "radio", "checkbox" ], function() {=0A=
jQuery.valHooks[ this ] =3D {=0A=
set: function( elem, value ) {=0A=
if ( jQuery.isArray( value ) ) {=0A=
return ( elem.checked =3D jQuery.inArray( jQuery(elem).val(), value =
) >=3D 0 );=0A=
}=0A=
}=0A=
};=0A=
if ( !jQuery.support.checkOn ) {=0A=
jQuery.valHooks[ this ].get =3D function( elem ) {=0A=
// Support: Webkit=0A=
// "" is returned instead of "on" if a value isn't specified=0A=
return elem.getAttribute("value") =3D=3D=3D null ? "on" : elem.value;=0A=
};=0A=
}=0A=
});=0A=
var rformElems =3D /^(?:input|select|textarea)$/i,=0A=
rkeyEvent =3D /^key/,=0A=
rmouseEvent =3D /^(?:mouse|contextmenu)|click/,=0A=
rfocusMorph =3D /^(?:focusinfocus|focusoutblur)$/,=0A=
rtypenamespace =3D /^([^.]*)(?:\.(.+)|)$/;=0A=
=0A=
function returnTrue() {=0A=
return true;=0A=
}=0A=
=0A=
function returnFalse() {=0A=
return false;=0A=
}=0A=
=0A=
function safeActiveElement() {=0A=
try {=0A=
return document.activeElement;=0A=
} catch ( err ) { }=0A=
}=0A=
=0A=
/*=0A=
* Helper functions for managing events -- not part of the public =
interface.=0A=
* Props to Dean Edwards' addEvent library for many of the ideas.=0A=
*/=0A=
jQuery.event =3D {=0A=
=0A=
global: {},=0A=
=0A=
add: function( elem, types, handler, data, selector ) {=0A=
var tmp, events, t, handleObjIn,=0A=
special, eventHandle, handleObj,=0A=
handlers, type, namespaces, origType,=0A=
elemData =3D jQuery._data( elem );=0A=
=0A=
// Don't attach events to noData or text/comment nodes (but allow =
plain objects)=0A=
if ( !elemData ) {=0A=
return;=0A=
}=0A=
=0A=
// Caller can pass in an object of custom data in lieu of the handler=0A=
if ( handler.handler ) {=0A=
handleObjIn =3D handler;=0A=
handler =3D handleObjIn.handler;=0A=
selector =3D handleObjIn.selector;=0A=
}=0A=
=0A=
// Make sure that the handler has a unique ID, used to find/remove it =
later=0A=
if ( !handler.guid ) {=0A=
handler.guid =3D jQuery.guid++;=0A=
}=0A=
=0A=
// Init the element's event structure and main handler, if this is the =
first=0A=
if ( !(events =3D elemData.events) ) {=0A=
events =3D elemData.events =3D {};=0A=
}=0A=
if ( !(eventHandle =3D elemData.handle) ) {=0A=
eventHandle =3D elemData.handle =3D function( e ) {=0A=
// Discard the second event of a jQuery.event.trigger() and=0A=
// when an event is called after a page has unloaded=0A=
return typeof jQuery !=3D=3D core_strundefined && (!e || =
jQuery.event.triggered !=3D=3D e.type) ?=0A=
jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :=0A=
undefined;=0A=
};=0A=
// Add elem as a property of the handle fn to prevent a memory leak =
with IE non-native events=0A=
eventHandle.elem =3D elem;=0A=
}=0A=
=0A=
// Handle multiple events separated by a space=0A=
types =3D ( types || "" ).match( core_rnotwhite ) || [""];=0A=
t =3D types.length;=0A=
while ( t-- ) {=0A=
tmp =3D rtypenamespace.exec( types[t] ) || [];=0A=
type =3D origType =3D tmp[1];=0A=
namespaces =3D ( tmp[2] || "" ).split( "." ).sort();=0A=
=0A=
// There *must* be a type, no attaching namespace-only handlers=0A=
if ( !type ) {=0A=
continue;=0A=
}=0A=
=0A=
// If event changes its type, use the special event handlers for the =
changed type=0A=
special =3D jQuery.event.special[ type ] || {};=0A=
=0A=
// If selector defined, determine special event api type, otherwise =
given type=0A=
type =3D ( selector ? special.delegateType : special.bindType ) || =
type;=0A=
=0A=
// Update special based on newly reset type=0A=
special =3D jQuery.event.special[ type ] || {};=0A=
=0A=
// handleObj is passed to all event handlers=0A=
handleObj =3D jQuery.extend({=0A=
type: type,=0A=
origType: origType,=0A=
data: data,=0A=
handler: handler,=0A=
guid: handler.guid,=0A=
selector: selector,=0A=
needsContext: selector && jQuery.expr.match.needsContext.test( =
selector ),=0A=
namespace: namespaces.join(".")=0A=
}, handleObjIn );=0A=
=0A=
// Init the event handler queue if we're the first=0A=
if ( !(handlers =3D events[ type ]) ) {=0A=
handlers =3D events[ type ] =3D [];=0A=
handlers.delegateCount =3D 0;=0A=
=0A=
// Only use addEventListener/attachEvent if the special events =
handler returns false=0A=
if ( !special.setup || special.setup.call( elem, data, namespaces, =
eventHandle ) =3D=3D=3D false ) {=0A=
// Bind the global event handler to the element=0A=
if ( elem.addEventListener ) {=0A=
elem.addEventListener( type, eventHandle, false );=0A=
=0A=
} else if ( elem.attachEvent ) {=0A=
elem.attachEvent( "on" + type, eventHandle );=0A=
}=0A=
}=0A=
}=0A=
=0A=
if ( special.add ) {=0A=
special.add.call( elem, handleObj );=0A=
=0A=
if ( !handleObj.handler.guid ) {=0A=
handleObj.handler.guid =3D handler.guid;=0A=
}=0A=
}=0A=
=0A=
// Add to the element's handler list, delegates in front=0A=
if ( selector ) {=0A=
handlers.splice( handlers.delegateCount++, 0, handleObj );=0A=
} else {=0A=
handlers.push( handleObj );=0A=
}=0A=
=0A=
// Keep track of which events have ever been used, for event =
optimization=0A=
jQuery.event.global[ type ] =3D true;=0A=
}=0A=
=0A=
// Nullify elem to prevent memory leaks in IE=0A=
elem =3D null;=0A=
},=0A=
=0A=
// Detach an event or set of events from an element=0A=
remove: function( elem, types, handler, selector, mappedTypes ) {=0A=
var j, handleObj, tmp,=0A=
origCount, t, events,=0A=
special, handlers, type,=0A=
namespaces, origType,=0A=
elemData =3D jQuery.hasData( elem ) && jQuery._data( elem );=0A=
=0A=
if ( !elemData || !(events =3D elemData.events) ) {=0A=
return;=0A=
}=0A=
=0A=
// Once for each type.namespace in types; type may be omitted=0A=
types =3D ( types || "" ).match( core_rnotwhite ) || [""];=0A=
t =3D types.length;=0A=
while ( t-- ) {=0A=
tmp =3D rtypenamespace.exec( types[t] ) || [];=0A=
type =3D origType =3D tmp[1];=0A=
namespaces =3D ( tmp[2] || "" ).split( "." ).sort();=0A=
=0A=
// Unbind all events (on this namespace, if provided) for the element=0A=
if ( !type ) {=0A=
for ( type in events ) {=0A=
jQuery.event.remove( elem, type + types[ t ], handler, selector, =
true );=0A=
}=0A=
continue;=0A=
}=0A=
=0A=
special =3D jQuery.event.special[ type ] || {};=0A=
type =3D ( selector ? special.delegateType : special.bindType ) || =
type;=0A=
handlers =3D events[ type ] || [];=0A=
tmp =3D tmp[2] && new RegExp( "(^|\\.)" + =
namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );=0A=
=0A=
// Remove matching events=0A=
origCount =3D j =3D handlers.length;=0A=
while ( j-- ) {=0A=
handleObj =3D handlers[ j ];=0A=
=0A=
if ( ( mappedTypes || origType =3D=3D=3D handleObj.origType ) &&=0A=
( !handler || handler.guid =3D=3D=3D handleObj.guid ) &&=0A=
( !tmp || tmp.test( handleObj.namespace ) ) &&=0A=
( !selector || selector =3D=3D=3D handleObj.selector || selector =
=3D=3D=3D "**" && handleObj.selector ) ) {=0A=
handlers.splice( j, 1 );=0A=
=0A=
if ( handleObj.selector ) {=0A=
handlers.delegateCount--;=0A=
}=0A=
if ( special.remove ) {=0A=
special.remove.call( elem, handleObj );=0A=
}=0A=
}=0A=
}=0A=
=0A=
// Remove generic event handler if we removed something and no more =
handlers exist=0A=
// (avoids potential for endless recursion during removal of special =
event handlers)=0A=
if ( origCount && !handlers.length ) {=0A=
if ( !special.teardown || special.teardown.call( elem, namespaces, =
elemData.handle ) =3D=3D=3D false ) {=0A=
jQuery.removeEvent( elem, type, elemData.handle );=0A=
}=0A=
=0A=
delete events[ type ];=0A=
}=0A=
}=0A=
=0A=
// Remove the expando if it's no longer used=0A=
if ( jQuery.isEmptyObject( events ) ) {=0A=
delete elemData.handle;=0A=
=0A=
// removeData also checks for emptiness and clears the expando if =
empty=0A=
// so use it instead of delete=0A=
jQuery._removeData( elem, "events" );=0A=
}=0A=
},=0A=
=0A=
trigger: function( event, data, elem, onlyHandlers ) {=0A=
var handle, ontype, cur,=0A=
bubbleType, special, tmp, i,=0A=
eventPath =3D [ elem || document ],=0A=
type =3D core_hasOwn.call( event, "type" ) ? event.type : event,=0A=
namespaces =3D core_hasOwn.call( event, "namespace" ) ? =
event.namespace.split(".") : [];=0A=
=0A=
cur =3D tmp =3D elem =3D elem || document;=0A=
=0A=
// Don't do events on text and comment nodes=0A=
if ( elem.nodeType =3D=3D=3D 3 || elem.nodeType =3D=3D=3D 8 ) {=0A=
return;=0A=
}=0A=
=0A=
// focus/blur morphs to focusin/out; ensure we're not firing them =
right now=0A=
if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {=0A=
return;=0A=
}=0A=
=0A=
if ( type.indexOf(".") >=3D 0 ) {=0A=
// Namespaced trigger; create a regexp to match event type in handle()=0A=
namespaces =3D type.split(".");=0A=
type =3D namespaces.shift();=0A=
namespaces.sort();=0A=
}=0A=
ontype =3D type.indexOf(":") < 0 && "on" + type;=0A=
=0A=
// Caller can pass in a jQuery.Event object, Object, or just an event =
type string=0A=
event =3D event[ jQuery.expando ] ?=0A=
event :=0A=
new jQuery.Event( type, typeof event =3D=3D=3D "object" && event );=0A=
=0A=
// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always =
true)=0A=
event.isTrigger =3D onlyHandlers ? 2 : 3;=0A=
event.namespace =3D namespaces.join(".");=0A=
event.namespace_re =3D event.namespace ?=0A=
new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" =
) :=0A=
null;=0A=
=0A=
// Clean up the event in case it is being reused=0A=
event.result =3D undefined;=0A=
if ( !event.target ) {=0A=
event.target =3D elem;=0A=
}=0A=
=0A=
// Clone any incoming data and prepend the event, creating the handler =
arg list=0A=
data =3D data =3D=3D null ?=0A=
[ event ] :=0A=
jQuery.makeArray( data, [ event ] );=0A=
=0A=
// Allow special events to draw outside the lines=0A=
special =3D jQuery.event.special[ type ] || {};=0A=
if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, =
data ) =3D=3D=3D false ) {=0A=
return;=0A=
}=0A=
=0A=
// Determine event propagation path in advance, per W3C events spec =
(#9951)=0A=
// Bubble up to document, then to window; watch for a global =
ownerDocument var (#9724)=0A=
if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {=0A=
=0A=
bubbleType =3D special.delegateType || type;=0A=
if ( !rfocusMorph.test( bubbleType + type ) ) {=0A=
cur =3D cur.parentNode;=0A=
}=0A=
for ( ; cur; cur =3D cur.parentNode ) {=0A=
eventPath.push( cur );=0A=
tmp =3D cur;=0A=
}=0A=
=0A=
// Only add window if we got to document (e.g., not plain obj or =
detached DOM)=0A=
if ( tmp =3D=3D=3D (elem.ownerDocument || document) ) {=0A=
eventPath.push( tmp.defaultView || tmp.parentWindow || window );=0A=
}=0A=
}=0A=
=0A=
// Fire handlers on the event path=0A=
i =3D 0;=0A=
while ( (cur =3D eventPath[i++]) && !event.isPropagationStopped() ) {=0A=
=0A=
event.type =3D i > 1 ?=0A=
bubbleType :=0A=
special.bindType || type;=0A=
=0A=
// jQuery handler=0A=
handle =3D ( jQuery._data( cur, "events" ) || {} )[ event.type ] && =
jQuery._data( cur, "handle" );=0A=
if ( handle ) {=0A=
handle.apply( cur, data );=0A=
}=0A=
=0A=
// Native handler=0A=
handle =3D ontype && cur[ ontype ];=0A=
if ( handle && jQuery.acceptData( cur ) && handle.apply && =
handle.apply( cur, data ) =3D=3D=3D false ) {=0A=
event.preventDefault();=0A=
}=0A=
}=0A=
event.type =3D type;=0A=
=0A=
// If nobody prevented the default action, do it now=0A=
if ( !onlyHandlers && !event.isDefaultPrevented() ) {=0A=
=0A=
if ( (!special._default || special._default.apply( eventPath.pop(), =
data ) =3D=3D=3D false) &&=0A=
jQuery.acceptData( elem ) ) {=0A=
=0A=
// Call a native DOM method on the target with the same name name as =
the event.=0A=
// Can't use an .isFunction() check here because IE6/7 fails that =
test.=0A=
// Don't do default actions on window, that's where global variables =
be (#6170)=0A=
if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {=0A=
=0A=
// Don't re-trigger an onFOO event when we call its FOO() method=0A=
tmp =3D elem[ ontype ];=0A=
=0A=
if ( tmp ) {=0A=
elem[ ontype ] =3D null;=0A=
}=0A=
=0A=
// Prevent re-triggering of the same event, since we already =
bubbled it above=0A=
jQuery.event.triggered =3D type;=0A=
try {=0A=
elem[ type ]();=0A=
} catch ( e ) {=0A=
// IE<9 dies on focus/blur to hidden element (#1486,#12518)=0A=
// only reproducible on winXP IE8 native, not IE9 in IE8 mode=0A=
}=0A=
jQuery.event.triggered =3D undefined;=0A=
=0A=
if ( tmp ) {=0A=
elem[ ontype ] =3D tmp;=0A=
}=0A=
}=0A=
}=0A=
}=0A=
=0A=
return event.result;=0A=
},=0A=
=0A=
dispatch: function( event ) {=0A=
=0A=
// Make a writable jQuery.Event from the native event object=0A=
event =3D jQuery.event.fix( event );=0A=
=0A=
var i, ret, handleObj, matched, j,=0A=
handlerQueue =3D [],=0A=
args =3D core_slice.call( arguments ),=0A=
handlers =3D ( jQuery._data( this, "events" ) || {} )[ event.type ] =
|| [],=0A=
special =3D jQuery.event.special[ event.type ] || {};=0A=
=0A=
// Use the fix-ed jQuery.Event rather than the (read-only) native event=0A=
args[0] =3D event;=0A=
event.delegateTarget =3D this;=0A=
=0A=
// Call the preDispatch hook for the mapped type, and let it bail if =
desired=0A=
if ( special.preDispatch && special.preDispatch.call( this, event ) =
=3D=3D=3D false ) {=0A=
return;=0A=
}=0A=
=0A=
// Determine handlers=0A=
handlerQueue =3D jQuery.event.handlers.call( this, event, handlers );=0A=
=0A=
// Run delegates first; they may want to stop propagation beneath us=0A=
i =3D 0;=0A=
while ( (matched =3D handlerQueue[ i++ ]) && =
!event.isPropagationStopped() ) {=0A=
event.currentTarget =3D matched.elem;=0A=
=0A=
j =3D 0;=0A=
while ( (handleObj =3D matched.handlers[ j++ ]) && =
!event.isImmediatePropagationStopped() ) {=0A=
=0A=
// Triggered event must either 1) have no namespace, or=0A=
// 2) have namespace(s) a subset or equal to those in the bound =
event (both can have no namespace).=0A=
if ( !event.namespace_re || event.namespace_re.test( =
handleObj.namespace ) ) {=0A=
=0A=
event.handleObj =3D handleObj;=0A=
event.data =3D handleObj.data;=0A=
=0A=
ret =3D ( (jQuery.event.special[ handleObj.origType ] || {}).handle =
|| handleObj.handler )=0A=
.apply( matched.elem, args );=0A=
=0A=
if ( ret !=3D=3D undefined ) {=0A=
if ( (event.result =3D ret) =3D=3D=3D false ) {=0A=
event.preventDefault();=0A=
event.stopPropagation();=0A=
}=0A=
}=0A=
}=0A=
}=0A=
}=0A=
=0A=
// Call the postDispatch hook for the mapped type=0A=
if ( special.postDispatch ) {=0A=
special.postDispatch.call( this, event );=0A=
}=0A=
=0A=
return event.result;=0A=
},=0A=
=0A=
handlers: function( event, handlers ) {=0A=
var sel, handleObj, matches, i,=0A=
handlerQueue =3D [],=0A=
delegateCount =3D handlers.delegateCount,=0A=
cur =3D event.target;=0A=
=0A=
// Find delegate handlers=0A=
// Black-hole SVG