/*!
 * jQuery JavaScript Library v1.6
 * http://jquery.com/
 *
 * Copyright 2011, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2011, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Mon May 2 13:50:00 2011 -0400
 */
/*!
 * Sizzle CSS Selector Engine
 *  Copyright 2011, The Dojo Foundation
 *  Released under the MIT, BSD, and GPL Licenses.
 *  More information: http://sizzlejs.com/
 */
/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
 * Licensed under the MIT License (LICENSE.txt).
 *
 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
 * Thanks to: Seamus Leahy for adding deltaX and deltaY
 *
 * Version: 3.0.4
 * 
 * Requires: 1.2.2+
 */
/*!
 * jQuery UI 1.8.12
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI
 */
/*!
 * jQuery UI Widget 1.8.12
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Widget
 */
/*!
 * jQuery UI Mouse 1.8.12
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Mouse
 *
 * Depends:
 *	jquery.ui.widget.js
 */
(function( window, undefined ) {var document = window.document,	navigator = window.navigator,	location = window.location;var jQuery = (function() {var jQuery = function( selector, context ) {				return new jQuery.fn.init( selector, context, rootjQuery );	},		_jQuery = window.jQuery,		_$ = window.$,		rootjQuery,			quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,		rnotwhite = /\S/,		trimLeft = /^\s+/,	trimRight = /\s+$/,		rdigit = /\d/,		rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,		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,		rwebkit = /(webkit)[ \/]([\w.]+)/,	ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,	rmsie = /(msie) ([\w.]+)/,	rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,		userAgent = navigator.userAgent,		browserMatch,		readyList,		DOMContentLoaded,		toString = Object.prototype.toString,	hasOwn = Object.prototype.hasOwnProperty,	push = Array.prototype.push,	slice = Array.prototype.slice,	trim = String.prototype.trim,	indexOf = Array.prototype.indexOf,		class2type = {};jQuery.fn = jQuery.prototype = {	constructor: jQuery,	init: function( selector, context, rootjQuery ) {		var match, elem, ret, doc;				if ( !selector ) {			return this;		}				if ( selector.nodeType ) {			this.context = this[0] = selector;			this.length = 1;			return this;		}				if ( selector === "body" && !context && document.body ) {			this.context = document;			this[0] = document.body;			this.selector = selector;			this.length = 1;			return this;		}				if ( typeof selector === "string" ) {						if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {								match = [ null, selector, null ];			} else {				match = quickExpr.exec( selector );			}						if ( match && (match[1] || !context) ) {								if ( match[1] ) {					context = context instanceof jQuery ? context[0] : context;					doc = (context ? context.ownerDocument || context : document);															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 ? jQuery.clone(ret.fragment) : ret.fragment).childNodes;					}					return jQuery.merge( this, selector );								} else {					elem = document.getElementById( match[2] );															if ( elem && elem.parentNode ) {																		if ( elem.id !== match[2] ) {							return rootjQuery.find( selector );						}												this.length = 1;						this[0] = elem;					}					this.context = document;					this.selector = selector;					return this;				}						} else if ( !context || context.jquery ) {				return (context || rootjQuery).find( selector );									} else {				return this.constructor( context ).find( selector );			}						} 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 );	},		selector: "",		jquery: "1.6",		length: 0,		size: function() {		return this.length;	},	toArray: function() {		return slice.call( this, 0 );	},			get: function( num ) {		return num == null ?						this.toArray() :						( num < 0 ? this[ this.length + num ] : this[ num ] );	},			pushStack: function( elems, name, selector ) {				var ret = this.constructor();		if ( jQuery.isArray( elems ) ) {			push.apply( ret, elems );		} else {			jQuery.merge( ret, elems );		}				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 ret;	},				each: function( callback, args ) {		return jQuery.each( this, callback, args );	},	ready: function( fn ) {				jQuery.bindReady();				readyList.done( 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 || this.constructor(null);	},			push: push,	sort: [].sort,	splice: [].splice};jQuery.fn.init.prototype = jQuery.fn;jQuery.extend = jQuery.fn.extend = function() {	var options, name, src, copy, copyIsArray, clone,		target = arguments[0] || {},		i = 1,		length = arguments.length,		deep = false;		if ( typeof target === "boolean" ) {		deep = target;		target = arguments[1] || {};				i = 2;	}		if ( typeof target !== "object" && !jQuery.isFunction(target) ) {		target = {};	}		if ( length === i ) {		target = this;		--i;	}	for ( ; i < length; i++ ) {				if ( (options = arguments[ i ]) != null ) {						for ( name in options ) {				src = target[ name ];				copy = options[ name ];								if ( target === copy ) {					continue;				}								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 : {};					}										target[ name ] = jQuery.extend( deep, clone, copy );								} else if ( copy !== undefined ) {					target[ name ] = copy;				}			}		}	}		return target;};jQuery.extend({	noConflict: function( deep ) {		if ( window.$ === jQuery ) {			window.$ = _$;		}		if ( deep && window.jQuery === jQuery ) {			window.jQuery = _jQuery;		}		return jQuery;	},		isReady: false,			readyWait: 1,		holdReady: function( hold ) {		if ( hold ) {			jQuery.readyWait++;		} else {			jQuery.ready( true );		}	},		ready: function( wait ) {				if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {						if ( !document.body ) {				return setTimeout( jQuery.ready, 1 );			}						jQuery.isReady = true;						if ( wait !== true && --jQuery.readyWait > 0 ) {				return;			}						readyList.resolveWith( document, [ jQuery ] );						if ( jQuery.fn.trigger ) {				jQuery( document ).trigger( "ready" ).unbind( "ready" );			}		}	},	bindReady: function() {		if ( readyList ) {			return;		}		readyList = jQuery._Deferred();						if ( document.readyState === "complete" ) {						return setTimeout( jQuery.ready, 1 );		}				if ( document.addEventListener ) {						document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );						window.addEventListener( "load", jQuery.ready, false );				} else if ( document.attachEvent ) {									document.attachEvent( "onreadystatechange", DOMContentLoaded );						window.attachEvent( "onload", jQuery.ready );									var toplevel = false;			try {				toplevel = window.frameElement == null;			} catch(e) {}			if ( document.documentElement.doScroll && toplevel ) {				doScrollCheck();			}		}	},				isFunction: function( obj ) {		return jQuery.type(obj) === "function";	},	isArray: Array.isArray || function( obj ) {		return jQuery.type(obj) === "array";	},		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 ) {								if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {			return false;		}				if ( obj.constructor &&			!hasOwn.call(obj, "constructor") &&			!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {			return false;		}						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;		}				data = jQuery.trim( data );				if ( window.JSON && window.JSON.parse ) {			return window.JSON.parse( data );		}						if ( rvalidchars.test( data.replace( rvalidescape, "@" )			.replace( rvalidtokens, "]" )			.replace( rvalidbraces, "")) ) {			return (new Function( "return " + data ))();		}		jQuery.error( "Invalid JSON: " + data );	},			parseXML: function( data , xml , tmp ) {		if ( window.DOMParser ) { 			tmp = new DOMParser();			xml = tmp.parseFromString( data , "text/xml" );		} else { 			xml = new ActiveXObject( "Microsoft.XMLDOM" );			xml.async = "false";			xml.loadXML( data );		}		tmp = xml.documentElement;		if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {			jQuery.error( "Invalid XML: " + data );		}		return xml;	},	noop: function() {},				globalEval: function( data ) {		if ( data && rnotwhite.test( data ) ) {												( window.execScript || function( data ) {				window[ "eval" ].call( window, data );			} )( data );		}	},	nodeName: function( elem, name ) {		return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();	},		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;					}				}			}				} else {			if ( isObj ) {				for ( name in object ) {					if ( callback.call( object[ name ], name, object[ name ] ) === false ) {						break;					}				}			} else {				for ( ; i < length; ) {					if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {						break;					}				}			}		}		return object;	},		trim: trim ?		function( text ) {			return text == null ?				"" :				trim.call( text );		} :				function( text ) {			return text == null ?				"" :				text.toString().replace( trimLeft, "" ).replace( trimRight, "" );		},		makeArray: function( array, results ) {		var ret = results || [];		if ( array != null ) {															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 ( indexOf ) {			return indexOf.call( array, 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;						for ( var i = 0, length = elems.length; i < length; i++ ) {			retVal = !!callback( elems[ i ], i );			if ( inv !== retVal ) {				ret.push( elems[ i ] );			}		}		return ret;	},		map: function( elems, callback, arg ) {		var value, key, ret = [],			i = 0,			length = elems.length,						isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;				if ( isArray ) {			for ( ; i < length; i++ ) {				value = callback( elems[ i ], i, arg );				if ( value != null ) {					ret[ ret.length ] = value;				}			}				} else {			for ( key in elems ) {				value = callback( elems[ key ], key, arg );				if ( value != null ) {					ret[ ret.length ] = value;				}			}		}				return ret.concat.apply( [], ret );	},		guid: 1,			proxy: function( fn, context ) {		if ( typeof context === "string" ) {			var tmp = fn[ context ];			context = fn;			fn = tmp;		}						if ( !jQuery.isFunction( fn ) ) {			return undefined;		}				var args = slice.call( arguments, 2 ),			proxy = function() {				return fn.apply( context, args.concat( slice.call( arguments ) ) );			};				proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;		return proxy;	},			access: function( elems, key, value, exec, fn, pass ) {		var length = elems.length;				if ( typeof key === "object" ) {			for ( var k in key ) {				jQuery.access( elems, k, key[k], exec, fn, value );			}			return elems;		}				if ( value !== undefined ) {						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;		}				return length ? fn( elems[0], key ) : undefined;	},	now: function() {		return (new Date()).getTime();	},			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" };	},	sub: function() {		function jQuerySub( selector, context ) {			return new jQuerySub.fn.init( selector, context );		}		jQuery.extend( true, jQuerySub, this );		jQuerySub.superclass = this;		jQuerySub.fn = jQuerySub.prototype = this();		jQuerySub.fn.constructor = jQuerySub;		jQuerySub.sub = this.sub;		jQuerySub.fn.init = function init( selector, context ) {			if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {				context = jQuerySub( context );			}			return jQuery.fn.init.call( this, selector, context, rootjQuerySub );		};		jQuerySub.fn.init.prototype = jQuerySub.fn;		var rootjQuerySub = jQuerySub(document);		return jQuerySub;	},	browser: {}});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;}if ( jQuery.browser.webkit ) {	jQuery.browser.safari = true;}if ( rnotwhite.test( "\xA0" ) ) {	trimLeft = /^[\s\xA0]+/;	trimRight = /[\s\xA0]+$/;}rootjQuery = jQuery(document);if ( document.addEventListener ) {	DOMContentLoaded = function() {		document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );		jQuery.ready();	};} else if ( document.attachEvent ) {	DOMContentLoaded = function() {				if ( document.readyState === "complete" ) {			document.detachEvent( "onreadystatechange", DOMContentLoaded );			jQuery.ready();		}	};}function doScrollCheck() {	if ( jQuery.isReady ) {		return;	}	try {						document.documentElement.doScroll("left");	} catch(e) {		setTimeout( doScrollCheck, 1 );		return;	}		jQuery.ready();}return jQuery;})();var 	promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ),		sliceDeferred = [].slice;jQuery.extend({		_Deferred: function() {		var 			callbacks = [],						fired,						firing,						cancelled,						deferred  = {								done: function() {					if ( !cancelled ) {						var args = arguments,							i,							length,							elem,							type,							_fired;						if ( fired ) {							_fired = fired;							fired = 0;						}						for ( i = 0, length = args.length; i < length; i++ ) {							elem = args[ i ];							type = jQuery.type( elem );							if ( type === "array" ) {								deferred.done.apply( deferred, elem );							} else if ( type === "function" ) {								callbacks.push( elem );							}						}						if ( _fired ) {							deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] );						}					}					return this;				},								resolveWith: function( context, args ) {					if ( !cancelled && !fired && !firing ) {												args = args || [];						firing = 1;						try {							while( callbacks[ 0 ] ) {								callbacks.shift().apply( context, args );							}						}						finally {							fired = [ context, args ];							firing = 0;						}					}					return this;				},								resolve: function() {					deferred.resolveWith( this, arguments );					return this;				},								isResolved: function() {					return !!( firing || fired );				},								cancel: function() {					cancelled = 1;					callbacks = [];					return this;				}			};		return deferred;	},		Deferred: function( func ) {		var deferred = jQuery._Deferred(),			failDeferred = jQuery._Deferred(),			promise;				jQuery.extend( deferred, {			then: function( doneCallbacks, failCallbacks ) {				deferred.done( doneCallbacks ).fail( failCallbacks );				return this;			},			always: function() {				return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments );			},			fail: failDeferred.done,			rejectWith: failDeferred.resolveWith,			reject: failDeferred.resolve,			isRejected: failDeferred.isResolved,			pipe: function( fnDone, fnFail ) {				return jQuery.Deferred(function( newDefer ) {					jQuery.each( {						done: [ fnDone, "resolve" ],						fail: [ fnFail, "reject" ]					}, function( handler, data ) {						var fn = data[ 0 ],							action = data[ 1 ],							returned;						if ( jQuery.isFunction( fn ) ) {							deferred[ handler ](function() {								returned = fn.apply( this, arguments );								if ( jQuery.isFunction( returned.promise ) ) {									returned.promise().then( newDefer.resolve, newDefer.reject );								} else {									newDefer[ action ]( returned );								}							});						} else {							deferred[ handler ]( newDefer[ action ] );						}					});				}).promise();			},									promise: function( obj ) {				if ( obj == null ) {					if ( promise ) {						return promise;					}					promise = obj = {};				}				var i = promiseMethods.length;				while( i-- ) {					obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ];				}				return obj;			}		});				deferred.done( failDeferred.cancel ).fail( deferred.cancel );				delete deferred.cancel;				if ( func ) {			func.call( deferred, deferred );		}		return deferred;	},		when: function( firstParam ) {		var args = arguments,			i = 0,			length = args.length,			count = length,			deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?				firstParam :				jQuery.Deferred();		function resolveFunc( i ) {			return function( value ) {				args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;				if ( !( --count ) ) {																				deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) );				}			};		}		if ( length > 1 ) {			for( ; i < length; i++ ) {				if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) {					args[ i ].promise().then( resolveFunc(i), deferred.reject );				} else {					--count;				}			}			if ( !count ) {				deferred.resolveWith( deferred, args );			}		} else if ( deferred !== firstParam ) {			deferred.resolveWith( deferred, length ? [ firstParam ] : [] );		}		return deferred.promise();	}});jQuery.support = (function() {	var div = document.createElement( "div" ),		all,		a,		select,		opt,		input,		marginDiv,		support,		fragment,		body,		bodyStyle,		tds,		events,		eventName,		i,		isSupported;		div.setAttribute("className", "t");	div.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";	all = div.getElementsByTagName( "*" );	a = div.getElementsByTagName( "a" )[ 0 ];		if ( !all || !all.length || !a ) {		return {};	}		select = document.createElement( "select" );	opt = select.appendChild( document.createElement("option") );	input = div.getElementsByTagName( "input" )[ 0 ];	support = {				leadingWhitespace: ( div.firstChild.nodeType === 3 ),						tbody: !div.getElementsByTagName( "tbody" ).length,						htmlSerialize: !!div.getElementsByTagName( "link" ).length,						style: /top/.test( a.getAttribute("style") ),						hrefNormalized: ( a.getAttribute( "href" ) === "/a" ),								opacity: /^0.55$/.test( a.style.opacity ),						cssFloat: !!a.style.cssFloat,								checkOn: ( input.value === "on" ),						optSelected: opt.selected,				getSetAttribute: div.className !== "t",				submitBubbles: true,		changeBubbles: true,		focusinBubbles: false,		deleteExpando: true,		noCloneEvent: true,		inlineBlockNeedsLayout: false,		shrinkWrapBlocks: false,		reliableMarginRight: true	};		input.checked = true;	support.noCloneChecked = input.cloneNode( true ).checked;			select.disabled = true;	support.optDisabled = !opt.disabled;			try {		delete div.test;	} catch( e ) {		support.deleteExpando = false;	}	if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {		div.attachEvent( "onclick", function click() {									support.noCloneEvent = false;			div.detachEvent( "onclick", click );		});		div.cloneNode( true ).fireEvent( "onclick" );	}			input = document.createElement("input");	input.value = "t";	input.setAttribute("type", "radio");	support.radioValue = input.value === "t";	input.setAttribute("checked", "checked");	div.appendChild( input );	fragment = document.createDocumentFragment();	fragment.appendChild( div.firstChild );		support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;	div.innerHTML = "";		div.style.width = div.style.paddingLeft = "1px";		body = document.createElement( "body" );	bodyStyle = {		visibility: "hidden",		width: 0,		height: 0,		border: 0,		margin: 0,				background: "none"	};	for ( i in bodyStyle ) {		body.style[ i ] = bodyStyle[ i ];	}	body.appendChild( div );	document.documentElement.appendChild( body );			support.appendChecked = input.checked;	support.boxModel = div.offsetWidth === 2;	if ( "zoom" in div.style ) {										div.style.display = "inline";		div.style.zoom = 1;		support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 );						div.style.display = "";		div.innerHTML = "<div style='width:4px;'></div>";		support.shrinkWrapBlocks = ( div.offsetWidth !== 2 );	}	div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";	tds = div.getElementsByTagName( "td" );								isSupported = ( tds[ 0 ].offsetHeight === 0 );	tds[ 0 ].style.display = "";	tds[ 1 ].style.display = "none";			support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );	div.innerHTML = "";						if ( document.defaultView && document.defaultView.getComputedStyle ) {		marginDiv = document.createElement( "div" );		marginDiv.style.width = "0";		marginDiv.style.marginRight = "0";		div.appendChild( marginDiv );		support.reliableMarginRight =			( parseInt( document.defaultView.getComputedStyle( marginDiv, null ).marginRight, 10 ) || 0 ) === 0;	}		body.innerHTML = "";	document.documentElement.removeChild( body );							if ( div.attachEvent ) {		for( i in {			submit: 1,			change: 1,			focusin: 1		} ) {			eventName = "on" + i;			isSupported = ( eventName in div );			if ( !isSupported ) {				div.setAttribute( eventName, "return;" );				isSupported = ( typeof div[ eventName ] === "function" );			}			support[ i + "Bubbles" ] = isSupported;		}	}	return support;})();jQuery.boxModel = jQuery.support.boxModel;var rbrace = /^(?:\{.*\}|\[.*\])$/,	rmultiDash = /([a-z])([A-Z])/g;jQuery.extend({	cache: {},		uuid: 0,			expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),			noData: {		"embed": true,				"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",		"applet": true	},	hasData: function( elem ) {		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];		return !!elem && !isEmptyDataObject( elem );	},	data: function( elem, name, data, pvt  ) {		if ( !jQuery.acceptData( elem ) ) {			return;		}		var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache,									isNode = elem.nodeType,									cache = isNode ? jQuery.cache : elem,									id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando;						if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) {			return;		}		if ( !id ) {									if ( isNode ) {				elem[ jQuery.expando ] = id = ++jQuery.uuid;			} else {				id = jQuery.expando;			}		}		if ( !cache[ id ] ) {			cache[ id ] = {};												if ( !isNode ) {				cache[ id ].toJSON = jQuery.noop;			}		}						if ( typeof name === "object" || typeof name === "function" ) {			if ( pvt ) {				cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name);			} else {				cache[ id ] = jQuery.extend(cache[ id ], name);			}		}		thisCache = cache[ id ];								if ( pvt ) {			if ( !thisCache[ internalKey ] ) {				thisCache[ internalKey ] = {};			}			thisCache = thisCache[ internalKey ];		}		if ( data !== undefined ) {			thisCache[ name ] = data;		}								if ( name === "events" && !thisCache[name] ) {			return thisCache[ internalKey ] && thisCache[ internalKey ].events;		}		return getByName ? thisCache[ name ] : thisCache;	},	removeData: function( elem, name, pvt  ) {		if ( !jQuery.acceptData( elem ) ) {			return;		}		var internalKey = jQuery.expando, isNode = elem.nodeType,						cache = isNode ? jQuery.cache : elem,						id = isNode ? elem[ jQuery.expando ] : jQuery.expando;						if ( !cache[ id ] ) {			return;		}		if ( name ) {			var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ];			if ( thisCache ) {				delete thisCache[ name ];												if ( !isEmptyDataObject(thisCache) ) {					return;				}			}		}				if ( pvt ) {			delete cache[ id ][ internalKey ];									if ( !isEmptyDataObject(cache[ id ]) ) {				return;			}		}		var internalCache = cache[ id ][ internalKey ];								if ( jQuery.support.deleteExpando || cache != window ) {			delete cache[ id ];		} else {			cache[ id ] = null;		}								if ( internalCache ) {			cache[ id ] = {};												if ( !isNode ) {				cache[ id ].toJSON = jQuery.noop;			}			cache[ id ][ internalKey ] = internalCache;						} else if ( isNode ) {												if ( jQuery.support.deleteExpando ) {				delete elem[ jQuery.expando ];			} else if ( elem.removeAttribute ) {				elem.removeAttribute( jQuery.expando );			} else {				elem[ jQuery.expando ] = null;			}		}	},		_data: function( elem, name, data ) {		return jQuery.data( elem, name, data, true );	},		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 ) {		var data = null;		if ( typeof key === "undefined" ) {			if ( this.length ) {				data = jQuery.data( this[0] );				if ( this[0].nodeType === 1 ) {			    var attr = this[0].attributes, name;					for ( var i = 0, l = attr.length; i < l; i++ ) {						name = attr[i].name;						if ( name.indexOf( "data-" ) === 0 ) {							name = jQuery.camelCase( name.substring(5) );							dataAttr( this[0], name, data[ name ] );						}					}				}			}			return data;		} 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 ) {			data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);						if ( data === undefined && this.length ) {				data = jQuery.data( this[0], key );				data = dataAttr( this[0], key, data );			}			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 );		});	}});function dataAttr( elem, key, data ) {			if ( data === undefined && elem.nodeType === 1 ) {		name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase();		data = elem.getAttribute( name );		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 ) {}						jQuery.data( elem, key, data );		} else {			data = undefined;		}	}	return data;}function isEmptyDataObject( obj ) {	for ( var name in obj ) {		if ( name !== "toJSON" ) {			return false;		}	}	return true;}function handleQueueMarkDefer( elem, type, src ) {	var deferDataKey = type + "defer",		queueDataKey = type + "queue",		markDataKey = type + "mark",		defer = jQuery.data( elem, deferDataKey, undefined, true );	if ( defer &&		( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) &&		( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) {						setTimeout( function() {			if ( !jQuery.data( elem, queueDataKey, undefined, true ) &&				!jQuery.data( elem, markDataKey, undefined, true ) ) {				jQuery.removeData( elem, deferDataKey, true );				defer.resolve();			}		}, 0 );	}}jQuery.extend({	_mark: function( elem, type ) {		if ( elem ) {			type = (type || "fx") + "mark";			jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true );		}	},	_unmark: function( force, elem, type ) {		if ( force !== true ) {			type = elem;			elem = force;			force = false;		}		if ( elem ) {			type = type || "fx";			var key = type + "mark",				count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 );			if ( count ) {				jQuery.data( elem, key, count, true );			} else {				jQuery.removeData( elem, key, true );				handleQueueMarkDefer( elem, type, "mark" );			}		}	},	queue: function( elem, type, data ) {		if ( elem ) {			type = (type || "fx") + "queue";			var q = jQuery.data( elem, type, undefined, true );						if ( data ) {				if ( !q || jQuery.isArray(data) ) {					q = jQuery.data( elem, type, jQuery.makeArray(data), true );				} else {					q.push( data );				}			}			return q || [];		}	},	dequeue: function( elem, type ) {		type = type || "fx";		var queue = jQuery.queue( elem, type ),			fn = queue.shift(),			defer;				if ( fn === "inprogress" ) {			fn = queue.shift();		}		if ( fn ) {									if ( type === "fx" ) {				queue.unshift("inprogress");			}			fn.call(elem, function() {				jQuery.dequeue(elem, type);			});		}		if ( !queue.length ) {			jQuery.removeData( elem, type + "queue", true );			handleQueueMarkDefer( elem, type, "queue" );		}	}});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() {			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 );		});	},			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", [] );	},			promise: function( type, object ) {		if ( typeof type !== "string" ) {			object = type;			type = undefined;		}		type = type || "fx";		var defer = jQuery.Deferred(),			elements = this,			i = elements.length,			count = 1,			deferDataKey = type + "defer",			queueDataKey = type + "queue",			markDataKey = type + "mark";		function resolve() {			if ( !( --count ) ) {				defer.resolveWith( elements, [ elements ] );			}		}		while( i-- ) {			if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||					( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||						jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&					jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) {				count++;				tmp.done( resolve );			}		}		resolve();		return defer.promise();	}});var rclass = /[\n\t\r]/g,	rspace = /\s+/,	rreturn = /\r/g,	rtype = /^(?:button|input)$/i,	rfocusable = /^(?:button|input|object|select|textarea)$/i,	rclickable = /^a(?:rea)?$/i,	rspecial = /^(?:data-|aria-)/,	rinvalidChar = /\:/,	formHook;jQuery.fn.extend({	attr: function( name, value ) {		return jQuery.access( this, name, value, true, jQuery.attr );	},	removeAttr: function( name ) {		return this.each(function() {			jQuery.removeAttr( this, name );		});	},		prop: function( name, value ) {		return jQuery.access( this, name, value, true, jQuery.prop );	},		removeProp: function( name ) {		return this.each(function() {						try {				this[ name ] = undefined;				delete this[ name ];			} catch( e ) {}		});	},	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( rspace );			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( rspace );			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" ) {								var className,					i = 0,					self = jQuery( this ),					state = stateVal,					classNames = value.split( rspace );				while ( (className = classNames[ i++ ]) ) {										state = isBool ? state : !self.hasClass( className );					self[ state ? "addClass" : "removeClass" ]( className );				}			} else if ( type === "undefined" || type === "boolean" ) {				if ( this.className ) {										jQuery._data( this, "__className__", this.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 ) {		var hooks, ret,			elem = this[0];				if ( !arguments.length ) {			if ( elem ) {				hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ];				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {					return ret;				}				return (elem.value || "").replace(rreturn, "");			}			return undefined;		}		var isFunction = jQuery.isFunction( value );		return this.each(function( i ) {			var self = jQuery(this), val;			if ( this.nodeType !== 1 ) {				return;			}			if ( isFunction ) {				val = value.call( this, i, self.val() );			} else {				val = value;			}						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 + "";				});			}			hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ];						if ( !hooks || ("set" in hooks && hooks.set( this, val, "value" ) === undefined) ) {				this.value = val;			}		});	}});jQuery.extend({	valHooks: {		option: {			get: function( elem ) {												var val = elem.attributes.value;				return !val || val.specified ? elem.value : elem.text;			}		},		select: {			get: function( elem ) {				var index = elem.selectedIndex,					values = [],					options = elem.options,					one = elem.type === "select-one";								if ( index < 0 ) {					return null;				}								for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {					var option = options[ i ];										if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&							(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {												value = jQuery( option ).val();												if ( one ) {							return value;						}												values.push( value );					}				}								if ( one && !values.length && options.length ) {					return jQuery( options[ index ] ).val();				}				return values;			},			set: function( elem, value ) {				var values = jQuery.makeArray( value );				jQuery(elem).find("option").each(function() {					this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;				});				if ( !values.length ) {					elem.selectedIndex = -1;				}				return values;			}		}	},	attrFn: {		val: true,		css: true,		html: true,		text: true,		data: true,		width: true,		height: true,		offset: true	},		attrFix: {				tabindex: "tabIndex",		readonly: "readOnly"	},		attr: function( elem, name, value, pass ) {		var nType = elem.nodeType;						if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {			return undefined;		}		if ( pass && name in jQuery.attrFn ) {			return jQuery( elem )[ name ]( value );		}				var ret, hooks,			notxml = nType !== 1 || !jQuery.isXMLDoc( elem );						name = notxml && jQuery.attrFix[ name ] || name;						hooks = jQuery.attrHooks[ name ] ||			( formHook && (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ?				formHook :				undefined );		if ( value !== undefined ) {			if ( value === null || (value === false && !rspecial.test( name )) ) {				jQuery.removeAttr( elem, name );				return undefined;			} else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {				return ret;			} else {								if ( value === true && !rspecial.test( name ) ) {					value = name;				}				elem.setAttribute( name, "" + value );				return value;			}		} else {			if ( hooks && "get" in hooks && notxml ) {				return hooks.get( elem, name );			} else {				ret = elem.getAttribute( name );								return ret === null ?					undefined :					ret;			}		}	},		removeAttr: function( elem, name ) {		if ( elem.nodeType === 1 ) {			name = jQuery.attrFix[ name ] || name;					if ( jQuery.support.getSetAttribute ) {								elem.removeAttribute( name );			} else {				jQuery.attr( elem, name, "" );				elem.removeAttributeNode( elem.getAttributeNode( name ) );			}		}	},	attrHooks: {		type: {			set: function( elem, value ) {								if ( rtype.test( elem.nodeName ) && elem.parentNode ) {					jQuery.error( "type property can't be changed" );				} else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {																				var val = elem.getAttribute("value");					elem.setAttribute( "type", value );					if ( val ) {						elem.value = val;					}					return value;				}			}		},		tabIndex: {			get: function( elem ) {												var attributeNode = elem.getAttributeNode("tabIndex");				return attributeNode && attributeNode.specified ?					parseInt( attributeNode.value, 10 ) :					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?						0 :						undefined;			}		}	},		propFix: {},		prop: function( elem, name, value ) {		var nType = elem.nodeType;						if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {			return undefined;		}				var ret, hooks,			notxml = nType !== 1 || !jQuery.isXMLDoc( elem );						name = notxml && jQuery.propFix[ name ] || name;				hooks = jQuery.propHooks[ name ];				if ( value !== undefined ) {			if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {				return ret;						} else {				return (elem[ name ] = value);			}				} else {			if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) {				return ret;							} else {				return elem[ name ];			}		}	},		propHooks: {}});if ( !jQuery.support.getSetAttribute ) {	jQuery.attrFix = jQuery.extend( jQuery.attrFix, {		"for": "htmlFor",		"class": "className",		maxlength: "maxLength",		cellspacing: "cellSpacing",		cellpadding: "cellPadding",		rowspan: "rowSpan",		colspan: "colSpan",		usemap: "useMap",		frameborder: "frameBorder"	});			formHook = jQuery.attrHooks.name = jQuery.attrHooks.value = jQuery.valHooks.button = {		get: function( elem, name ) {			var ret;			if ( name === "value" && !jQuery.nodeName( elem, "button" ) ) {				return elem.getAttribute( name );			}			ret = elem.getAttributeNode( name );						return ret && ret.specified ?				ret.nodeValue :				undefined;		},		set: function( elem, value, name ) {									var ret = elem.getAttributeNode( name );			if ( ret ) {				ret.nodeValue = value;				return value;			}		}	};			jQuery.each([ "width", "height" ], function( i, name ) {		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {			set: function( elem, value ) {				if ( value === "" ) {					elem.setAttribute( name, "auto" );					return value;				}			}		});	});}if ( !jQuery.support.hrefNormalized ) {	jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {			get: function( elem ) {				var ret = elem.getAttribute( name, 2 );				return ret === null ? undefined : ret;			}		});	});}if ( !jQuery.support.style ) {	jQuery.attrHooks.style = {		get: function( elem ) {									return elem.style.cssText.toLowerCase() || undefined;		},		set: function( elem, value ) {			return (elem.style.cssText = "" + value);		}	};}if ( !jQuery.support.optSelected ) {	jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {		get: function( elem ) {			var parent = elem.parentNode;			if ( parent ) {				parent.selectedIndex;								if ( parent.parentNode ) {					parent.parentNode.selectedIndex;				}			}		}	});}if ( !jQuery.support.checkOn ) {	jQuery.each([ "radio", "checkbox" ], function() {		jQuery.valHooks[ this ] = {			get: function( elem ) {								return elem.getAttribute("value") === null ? "on" : elem.value;			}		};	});}jQuery.each([ "radio", "checkbox" ], function() {	jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {		set: function( elem, value ) {			if ( jQuery.isArray( value ) ) {				return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0);			}		}	});});var hasOwn = Object.prototype.hasOwnProperty,	rnamespaces = /\.(.*)$/,	rformElems = /^(?:textarea|input|select)$/i,	rperiod = /\./g,	rspaces = / /g,	rescape = /[^\w\s.|`]/g,	fcleanup = function( nm ) {		return nm.replace(rescape, "\\$&");	};jQuery.event = {			add: function( elem, types, handler, data ) {		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {			return;		}		if ( handler === false ) {			handler = returnFalse;		} else if ( !handler ) {						return;		}		var handleObjIn, handleObj;		if ( handler.handler ) {			handleObjIn = handler;			handler = handleObjIn.handler;		}				if ( !handler.guid ) {			handler.guid = jQuery.guid++;		}				var elemData = jQuery._data( elem );						if ( !elemData ) {			return;		}		var events = elemData.events,			eventHandle = elemData.handle;		if ( !events ) {			elemData.events = events = {};		}		if ( !eventHandle ) {			elemData.handle = eventHandle = function( e ) {												return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?					jQuery.event.handle.apply( eventHandle.elem, arguments ) :					undefined;			};		}						eventHandle.elem = elem;						types = types.split(" ");		var type, i = 0, namespaces;		while ( (type = types[ i++ ]) ) {			handleObj = handleObjIn ?				jQuery.extend({}, handleObjIn) :				{ handler: handler, data: data };						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;			}						var handlers = events[ type ],				special = jQuery.event.special[ type ] || {};						if ( !handlers ) {				handlers = events[ type ] = [];																if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {										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;				}			}						handlers.push( handleObj );						jQuery.event.global[ type ] = true;		}				elem = null;	},	global: {},		remove: function( elem, types, handler, pos ) {				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,			elemData = jQuery.hasData( elem ) && jQuery._data( elem ),			events = elemData && elemData.events;		if ( !elemData || !events ) {			return;		}				if ( types && types.type ) {			handler = types.handler;			types = types.type;		}				if ( !types || typeof types === "string" && types.charAt(0) === "." ) {			types = types || "";			for ( type in events ) {				jQuery.event.remove( elem, type + types );			}			return;		}						types = types.split(" ");		while ( (type = types[ i++ ]) ) {			origType = type;			handleObj = null;			all = type.indexOf(".") < 0;			namespaces = [];			if ( !all ) {								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 ) {										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;					}				}			}						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 ];			}		}				if ( jQuery.isEmptyObject( events ) ) {			var handle = elemData.handle;			if ( handle ) {				handle.elem = null;			}			delete elemData.events;			delete elemData.handle;			if ( jQuery.isEmptyObject( elemData ) ) {				jQuery.removeData( elem, undefined, true );			}		}	},				customEvent: {		"getData": true,		"setData": true,		"changeData": true	},	trigger: function( event, data, elem, onlyHandlers ) {				var type = event.type || event,			namespaces = [],			exclusive;		if ( type.indexOf("!") >= 0 ) {						type = type.slice(0, -1);			exclusive = true;		}		if ( type.indexOf(".") >= 0 ) {						namespaces = type.split(".");			type = namespaces.shift();			namespaces.sort();		}		if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {						return;		}				event = typeof event === "object" ?						event[ jQuery.expando ] ? event :						new jQuery.Event( type, event ) :						new jQuery.Event( type );		event.type = type;		event.exclusive = exclusive;		event.namespace = namespaces.join(".");		event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)");						if ( onlyHandlers || !elem ) {			event.preventDefault();			event.stopPropagation();		}				if ( !elem ) {						jQuery.each( jQuery.cache, function() {																var internalKey = jQuery.expando,					internalCache = this[ internalKey ];				if ( internalCache && internalCache.events && internalCache.events[ type ] ) {					jQuery.event.trigger( event, data, internalCache.handle.elem );				}			});			return;		}				if ( elem.nodeType === 3 || elem.nodeType === 8 ) {			return;		}				event.result = undefined;		event.target = elem;				data = data ? jQuery.makeArray( data ) : [];		data.unshift( event );		var cur = elem,						ontype = type.indexOf(":") < 0 ? "on" + type : "";				do {			var handle = jQuery._data( cur, "handle" );			event.currentTarget = cur;			if ( handle ) {				handle.apply( cur, data );			}						if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) {				event.result = false;				event.preventDefault();			}						cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window;		} while ( cur && !event.isPropagationStopped() );				if ( !event.isDefaultPrevented() ) {			var old,				special = jQuery.event.special[ type ] || {};			if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) &&				!(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {																try {					if ( ontype && elem[ type ] ) {												old = elem[ ontype ];						if ( old ) {							elem[ ontype ] = null;						}						jQuery.event.triggered = type;						elem[ type ]();					}				} catch ( ieError ) {}				if ( old ) {					elem[ ontype ] = old;				}				jQuery.event.triggered = undefined;			}		}				return event.result;	},	handle: function( event ) {		event = jQuery.event.fix( event || window.event );				var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0),			run_all = !event.exclusive && !event.namespace,			args = Array.prototype.slice.call( arguments, 0 );				args[0] = event;		event.currentTarget = this;		for ( var j = 0, l = handlers.length; j < l; j++ ) {			var handleObj = handlers[ j ];									if ( run_all || event.namespace_re.test( handleObj.namespace ) ) {												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;		}						var originalEvent = event;		event = jQuery.Event( originalEvent );		for ( var i = this.props.length, prop; i; ) {			prop = this.props[ --i ];			event[ prop ] = originalEvent[ prop ];		}				if ( !event.target ) {						event.target = event.srcElement || document;		}				if ( event.target.nodeType === 3 ) {			event.target = event.target.parentNode;		}				if ( !event.relatedTarget && event.fromElement ) {			event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;		}				if ( event.pageX == null && event.clientX != null ) {			var eventDocument = event.target.ownerDocument || document,				doc = eventDocument.documentElement,				body = eventDocument.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);		}				if ( event.which == null && (event.charCode != null || event.keyCode != null) ) {			event.which = event.charCode != null ? event.charCode : event.keyCode;		}				if ( !event.metaKey && event.ctrlKey ) {			event.metaKey = event.ctrlKey;		}						if ( !event.which && event.button !== undefined ) {			event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));		}		return event;	},		guid: 1E8,		proxy: jQuery.proxy,	special: {		ready: {						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 ) {								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, props ) {		if ( !this.preventDefault ) {		return new jQuery.Event( src, props );	}		if ( src && src.type ) {		this.originalEvent = src;		this.type = src.type;						this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||			src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;		} else {		this.type = src;	}		if ( props ) {		jQuery.extend( this, props );	}			this.timeStamp = jQuery.now();		this[ jQuery.expando ] = true;};function returnFalse() {	return false;}function returnTrue() {	return true;}jQuery.Event.prototype = {	preventDefault: function() {		this.isDefaultPrevented = returnTrue;		var e = this.originalEvent;		if ( !e ) {			return;		}				if ( e.preventDefault ) {			e.preventDefault();				} else {			e.returnValue = false;		}	},	stopPropagation: function() {		this.isPropagationStopped = returnTrue;		var e = this.originalEvent;		if ( !e ) {			return;		}				if ( e.stopPropagation ) {			e.stopPropagation();		}				e.cancelBubble = true;	},	stopImmediatePropagation: function() {		this.isImmediatePropagationStopped = returnTrue;		this.stopPropagation();	},	isDefaultPrevented: returnFalse,	isPropagationStopped: returnFalse,	isImmediatePropagationStopped: returnFalse};var withinElement = function( event ) {		var parent = event.relatedTarget;			try {						if ( parent && parent !== document && !parent.parentNode ) {			return;		}				while ( parent && parent !== this ) {			parent = parent.parentNode;		}		if ( parent !== this ) {						event.type = event.data;						jQuery.event.handle.apply( this, arguments );		}		} catch(e) { }},delegate = function( event ) {	event.type = event.data;	jQuery.event.handle.apply( this, arguments );};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 );		}	};});if ( !jQuery.support.submitBubbles ) {	jQuery.event.special.submit = {		setup: function( data, namespaces ) {			if ( !jQuery.nodeName( this, "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 ) {						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 ) {						trigger( "submit", this, arguments );					}				});			} else {				return false;			}		},		teardown: function( namespaces ) {			jQuery.event.remove( this, ".specialSubmit" );		}	};}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 ( jQuery.nodeName( elem, "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);				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;			jQuery.event.trigger( e, arguments[1], elem );		}	};	jQuery.event.special.change = {		filters: {			focusout: testChange,			beforedeactivate: testChange,			click: function( e ) {				var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : "";				if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) {					testChange.call( this, e );				}			},									keydown: function( e ) {				var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : "";				if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) ||					(e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||					type === "select-multiple" ) {					testChange.call( this, e );				}			},												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;		changeFilters.focus = changeFilters.beforeactivate;}function trigger( type, elem, args ) {					var event = jQuery.extend( {}, args[ 0 ] );	event.type = type;	event.originalEvent = {};	event.liveFired = undefined;	jQuery.event.handle.call( elem, event );	if ( event.isDefaultPrevented() ) {		args[ 0 ].preventDefault();	}}if ( !jQuery.support.focusinBubbles ) {	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {				var attaches = 0;		jQuery.event.special[ fix ] = {			setup: function() {				if ( attaches++ === 0 ) {					document.addEventListener( orig, handler, true );				}			},			teardown: function() {				if ( --attaches === 0 ) {					document.removeEventListener( orig, handler, true );				}			}		};		function handler( donor ) {									var e = jQuery.event.fix( donor );			e.type = fix;			e.originalEvent = {};			jQuery.event.trigger( e, null, e.target );			if ( e.isDefaultPrevented() ) {				donor.preventDefault();			}		}	});}jQuery.each(["bind", "one"], function( i, name ) {	jQuery.fn[ name ] = function( type, data, fn ) {		var handler;				if ( typeof type === "object" ) {			for ( var key in type ) {				this[ name ](key, data, type[key], fn);			}			return this;		}		if ( arguments.length === 2 || data === false ) {			fn = data;			data = undefined;		}		if ( name === "one" ) {			handler = function( event ) {				jQuery( this ).unbind( event, handler );				return fn.apply( this, arguments );			};			handler.guid = fn.guid || jQuery.guid++;		} else {			handler = 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 ) {				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] ) {			return jQuery.event.trigger( type, data, this[0], true );		}	},	toggle: function( fn ) {				var args = arguments,			guid = fn.guid || jQuery.guid++,			i = 0,			toggler = function( event ) {								var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i;				jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 );								event.preventDefault();								return args[ lastToggle ].apply( this, arguments ) || false;			};				toggler.guid = guid;		while ( i < args.length ) {			args[ i++ ].guid = guid;		}		return this.click( toggler );	},	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  ) {		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 ( name === "die" && !types &&					origSelector && origSelector.charAt(0) === "." ) {			context.unbind( origSelector );			return this;		}		if ( data === false || jQuery.isFunction( data ) ) {			fn = data || returnFalse;			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 ( liveMap[ type ] ) {				types.push( liveMap[ type ] + namespaces );				type = type + namespaces;			} else {				type = (liveMap[ type ] || type) + namespaces;			}			if ( name === "live" ) {								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 {								context.unbind( "live." + liveConvert( type, selector ), fn );			}		}		return this;	};});function liveHandler( event ) {	var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,		elems = [],		selectors = [],		events = jQuery._data( this, "events" );		if ( event.liveFired === this || !events || !events.live || event.target.disabled || 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 )) && !close.elem.disabled ) {				elem = close.elem;				related = null;								if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) {					event.type = handleObj.preType;					related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0];										if ( related && jQuery.contains( elem, related ) ) {						related = elem;					}				}				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;			}			if ( event.isImmediatePropagationStopped() ) {				break;			}		}	}	return stop;}function liveConvert( type, selector ) {	return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&");}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 ) {		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;	}});(function(){var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,	done = 0,	toString = Object.prototype.toString,	hasDuplicate = false,	baseHasDuplicate = true,	rBackslash = /\\/g,	rNonWord = /\W/;[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 m, set, checkSet, extra, ret, cur, pop, i,		prune = true,		contextXML = Sizzle.isXML( context ),		parts = [],		soFar = selector;			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 {						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 match,			type = Expr.order[i];				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( rBackslash, "" );				set = Expr.find[ type ]( match, context, isXML );				if ( set != null ) {					expr = expr.replace( Expr.match[ type ], "" );					break;				}			}		}	}	if ( !set ) {		set = typeof context.getElementsByTagName !== "undefined" ?			context.getElementsByTagName( "*" ) :			[];	}	return { set: set, expr: expr };};Sizzle.filter = function( expr, set, inplace, not ) {	var match, anyFound,		old = expr,		result = [],		curLoop = set,		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 found, item,					filter = Expr.filter[ type ],					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;				}			}		}				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|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,		TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,		CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,		POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,		PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/	},	leftMatch: {},	attrMap: {		"class": "className",		"for": "htmlFor"	},	attrHandle: {		href: function( elem ) {			return elem.getAttribute( "href" );		},		type: function( elem ) {			return elem.getAttribute( "type" );		}	},	relative: {		"+": function(checkSet, part){			var isPartStr = typeof part === "string",				isTag = isPartStr && !rNonWord.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 elem,				isPartStr = typeof part === "string",				i = 0,				l = checkSet.length;			if ( isPartStr && !rNonWord.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 nodeCheck,				doneName = done++,				checkFn = dirCheck;			if ( typeof part === "string" && !rNonWord.test( part ) ) {				part = part.toLowerCase();				nodeCheck = part;				checkFn = dirNodeCheck;			}			checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );		},		"~": function( checkSet, part, isXML ) {			var nodeCheck,				doneName = done++,				checkFn = dirCheck;			if ( typeof part === "string" && !rNonWord.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]);												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 ) {			if ( typeof context.getElementsByTagName !== "undefined" ) {				return context.getElementsByTagName( match[1] );			}		}	},	preFilter: {		CLASS: function( match, curLoop, inplace, result, not, isXML ) {			match = " " + match[1].replace( rBackslash, "" ) + " ";			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\r]/g, " ").indexOf(match) >= 0) ) {						if ( !inplace ) {							result.push( elem );						}					} else if ( inplace ) {						curLoop[i] = false;					}				}			}			return false;		},		ID: function( match ) {			return match[1].replace( rBackslash, "" );		},		TAG: function( match, curLoop ) {			return match[1].replace( rBackslash, "" ).toLowerCase();		},		CHILD: function( match ) {			if ( match[1] === "nth" ) {				if ( !match[2] ) {					Sizzle.error( match[0] );				}				match[2] = match[2].replace(/^\+|\s*/g, '');								var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(					match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);								match[2] = (test[1] + (test[2] || 1)) - 0;				match[3] = test[3] - 0;			}			else if ( match[2] ) {				Sizzle.error( match[0] );			}						match[0] = done++;			return match;		},		ATTR: function( match, curLoop, inplace, result, not, isXML ) {			var name = match[1] = match[1].replace( rBackslash, "" );						if ( !isXML && Expr.attrMap[name] ) {				match[1] = Expr.attrMap[name];			}						match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );			if ( match[2] === "~=" ) {				match[4] = " " + match[4] + " ";			}			return match;		},		PSEUDO: function( match, curLoop, inplace, result, not ) {			if ( match[1] === "not" ) {								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 ) {									if ( elem.parentNode ) {				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 ) {			var attr = elem.getAttribute( "type" ), type = elem.type;									return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );		},		radio: function( elem ) {			return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;		},		checkbox: function( elem ) {			return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;		},		file: function( elem ) {			return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;		},		password: function( elem ) {			return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;		},		submit: function( elem ) {			var name = elem.nodeName.toLowerCase();			return (name === "input" || name === "button") && "submit" === elem.type;		},		image: function( elem ) {			return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;		},		reset: function( elem ) {			return elem.nodeName.toLowerCase() === "input" && "reset" === elem.type;		},		button: function( elem ) {			var name = elem.nodeName.toLowerCase();			return name === "input" && "button" === elem.type || name === "button";		},		input: function( elem ) {			return (/input|select|textarea|button/i).test( elem.nodeName );		},		focus: function( elem ) {			return elem === elem.ownerDocument.activeElement;		}	},	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( 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;};try {	Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;} catch( e ) {	makeArray = function( array, results ) {		var i = 0,			ret = results || [];		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 al, bl,			ap = [],			bp = [],			aup = a.parentNode,			bup = b.parentNode,			cur = aup;				if ( a === b ) {			hasDuplicate = true;			return 0;				} else if ( aup === bup ) {			return siblingCheck( a, b );				} else if ( !aup ) {			return -1;		} else if ( !bup ) {			return 1;		}						while ( cur ) {			ap.unshift( cur );			cur = cur.parentNode;		}		cur = bup;		while ( cur ) {			bp.unshift( cur );			cur = cur.parentNode;		}		al = ap.length;		bl = bp.length;				for ( var i = 0; i < al && i < bl; i++ ) {			if ( ap[i] !== bp[i] ) {				return siblingCheck( ap[i], bp[i] );			}		}				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;	};}Sizzle.getText = function( elems ) {	var ret = "", elem;	for ( var i = 0; elems[i]; i++ ) {		elem = elems[i];				if ( elem.nodeType === 3 || elem.nodeType === 4 ) {			ret += elem.nodeValue;				} else if ( elem.nodeType !== 8 ) {			ret += Sizzle.getText( elem.childNodes );		}	}	return ret;};(function(){		var form = document.createElement("div"),		id = "script" + (new Date()).getTime(),		root = document.documentElement;	form.innerHTML = "<a name='" + id + "'/>";		root.insertBefore( form, root.firstChild );			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;})();(function(){				var div = document.createElement("div");	div.appendChild( document.createComment("") );		if ( div.getElementsByTagName("*").length > 0 ) {		Expr.find.TAG = function( match, context ) {			var results = context.getElementsByTagName( match[1] );						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;		};	}		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;})();if ( document.querySelectorAll ) {	(function(){		var oldSizzle = Sizzle,			div = document.createElement("div"),			id = "__sizzle__";		div.innerHTML = "<p class='TEST'></p>";						if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {			return;		}			Sizzle = function( query, context, extra, seed ) {			context = context || document;									if ( !seed && !Sizzle.isXML(context) ) {								var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );								if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {										if ( match[1] ) {						return makeArray( context.getElementsByTagName( query ), extra );															} else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {						return makeArray( context.getElementsByClassName( match[2] ), extra );					}				}								if ( context.nodeType === 9 ) {															if ( query === "body" && context.body ) {						return makeArray( [ context.body ], extra );																} else if ( match && match[3] ) {						var elem = context.getElementById( match[3] );																		if ( elem && elem.parentNode ) {																					if ( elem.id === match[3] ) {								return makeArray( [ elem ], extra );							}													} else {							return makeArray( [], extra );						}					}										try {						return makeArray( context.querySelectorAll(query), extra );					} catch(qsaError) {}																				} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {					var oldContext = context,						old = context.getAttribute( "id" ),						nid = old || id,						hasParent = context.parentNode,						relativeHierarchySelector = /^\s*[+~]/.test( query );					if ( !old ) {						context.setAttribute( "id", nid );					} else {						nid = nid.replace( /'/g, "\\$&" );					}					if ( relativeHierarchySelector && hasParent ) {						context = context.parentNode;					}					try {						if ( !relativeHierarchySelector || hasParent ) {							return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );						}					} catch(pseudoError) {					} finally {						if ( !old ) {							oldContext.removeAttribute( "id" );						}					}				}			}					return oldSizzle(query, context, extra, seed);		};		for ( var prop in oldSizzle ) {			Sizzle[ prop ] = oldSizzle[ prop ];		}				div = null;	})();}(function(){	var html = document.documentElement,		matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;	if ( matches ) {						var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),			pseudoWorks = false;		try {									matches.call( document.documentElement, "[test!='']:sizzle" );			} catch( pseudoError ) {			pseudoWorks = true;		}		Sizzle.matchesSelector = function( node, expr ) {						expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");			if ( !Sizzle.isXML( node ) ) {				try { 					if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {						var ret = matches.call( node, expr );												if ( ret || !disconnectedMatch ||																								node.document && node.document.nodeType !== 11 ) {							return ret;						}					}				} 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>";			if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {		return;	}		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;})();function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {	for ( var i = 0, l = checkSet.length; i < l; i++ ) {		var elem = checkSet[i];		if ( elem ) {			var match = false;			elem = elem[dir];			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 ) {			var match = false;						elem = elem[dir];			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;		}	}}if ( document.documentElement.contains ) {	Sizzle.contains = function( a, b ) {		return a !== b && (a.contains ? a.contains(b) : true);	};} else if ( document.documentElement.compareDocumentPosition ) {	Sizzle.contains = function( a, b ) {		return !!(a.compareDocumentPosition(b) & 16);	};} else {	Sizzle.contains = function() {		return false;	};}Sizzle.isXML = function( elem ) {			var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;	return documentElement ? documentElement.nodeName !== "HTML" : false;};var posProcess = function( selector, context ) {	var match,		tmpSet = [],		later = "",		root = context.nodeType ? [context] : context;			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 );};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)/,		rmultiselector = /,/,	isSimple = /^.[^:#\[\.,]*$/,	slice = Array.prototype.slice,	POS = jQuery.expr.match.POS,		guaranteedUnique = {		children: true,		contents: true,		next: true,		prev: true	};jQuery.fn.extend({	find: function( selector ) {		var self = this,			i, l;		if ( typeof selector !== "string" ) {			return jQuery( selector ).filter(function() {				for ( i = 0, l = self.length; i < l; i++ ) {					if ( jQuery.contains( self[ i ], this ) ) {						return true;					}				}			});		}		var ret = this.pushStack( "", "find", selector ),			length, n, r;		for ( i = 0, l = this.length; i < l; i++ ) {			length = ret.length;			jQuery.find( selector, this[i], ret );			if ( i > 0 ) {								for ( n = length; n < ret.length; n++ ) {					for ( 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 && ( typeof selector === "string" ?			jQuery.filter( selector, this ).length > 0 :			this.filter( selector ).length > 0 );	},	closest: function( selectors, context ) {		var ret = [], i, l, cur = this[0];						if ( jQuery.isArray( selectors ) ) {			var match, selector,				matches = {},				level = 1;			if ( cur && selectors.length ) {				for ( i = 0, l = selectors.length; i < l; i++ ) {					selector = selectors[i];					if ( !matches[ selector ] ) {						matches[ selector ] = 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 ) || typeof selectors !== "string" ?				jQuery( selectors, context || this.context ) :				0;		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 || cur.nodeType === 11 ) {						break;					}				}			}		}		ret = ret.length > 1 ? jQuery.unique( ret ) : ret;		return this.pushStack( ret, "closest", selectors );	},			index: function( elem ) {		if ( !elem || typeof elem === "string" ) {			return jQuery.inArray( this[0],												elem ? jQuery( elem ) : this.parent().children() );		}				return jQuery.inArray(						elem.jquery ? elem[0] : elem, this );	},	add: function( selector, context ) {		var set = typeof selector === "string" ?				jQuery( selector, context ) :				jQuery.makeArray( selector && selector.nodeType ? [ selector ] : 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 );	}});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 ),															args = slice.call(arguments);		if ( !runtil.test( name ) ) {			selector = until;		}		if ( selector && typeof selector === "string" ) {			ret = jQuery.filter( selector, ret );		}		ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;		if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {			ret = ret.reverse();		}		return this.pushStack( ret, name, args.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;	}});function winnow( elements, qualifier, keep ) {			qualifier = qualifier || 0;	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,	rscriptType = /\/(java|ecma)script/i,	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;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] ) {						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;		}	},		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++ ) {						if ( elem.nodeType === 1 ) {				jQuery.cleanData( elem.getElementsByTagName("*") );			}						while ( elem.firstChild ) {				elem.removeChild( elem.firstChild );			}		}		return this;	},	clone: function( dataAndEvents, deepDataAndEvents ) {		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;		return this.map( function () {			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );		});	},	html: function( value ) {		if ( value === undefined ) {			return this[0] && this[0].nodeType === 1 ?				this[0].innerHTML.replace(rinlinejQuery, "") :				null;				} 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++ ) {										if ( this[i].nodeType === 1 ) {						jQuery.cleanData( this[i].getElementsByTagName("*") );						this[i].innerHTML = value;					}				}						} 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 ) {									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.length ?				this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :				this;		}	},	detach: function( selector ) {		return this.remove( selector, true );	},	domManip: function( args, table, callback ) {		var results, first, fragment, parent,			value = args[0],			scripts = [];				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 ( 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, lastIndex = l - 1; i < l; i++ ) {					callback.call(						table ?							root(this[i], first) :							this[i],																																																results.cacheable || (l > 1 && i < lastIndex) ?							jQuery.clone( fragment, true, 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( src, dest ) {	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {		return;	}	var internalKey = jQuery.expando,		oldData = jQuery.data( src ),		curData = jQuery.data( dest, oldData );			if ( (oldData = oldData[ internalKey ]) ) {		var events = oldData.events;				curData = curData[ internalKey ] = jQuery.extend({}, oldData);		if ( events ) {			delete curData.handle;			curData.events = {};			for ( var type in events ) {				for ( var i = 0, l = events[ type ].length; i < l; i++ ) {					jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data );				}			}		}	}}function cloneFixAttributes( src, dest ) {	var nodeName;		if ( dest.nodeType !== 1 ) {		return;	}			if ( dest.clearAttributes ) {		dest.clearAttributes();	}			if ( dest.mergeAttributes ) {		dest.mergeAttributes( src );	}	nodeName = dest.nodeName.toLowerCase();				if ( nodeName === "object" ) {		dest.outerHTML = src.outerHTML;	} else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {								if ( src.checked ) {			dest.defaultChecked = dest.checked = src.checked;		}						if ( dest.value !== src.value ) {			dest.value = src.value;		}			} else if ( nodeName === "option" ) {		dest.selected = src.defaultSelected;			} else if ( nodeName === "input" || nodeName === "textarea" ) {		dest.defaultValue = src.defaultValue;	}			dest.removeAttribute( jQuery.expando );}jQuery.buildFragment = function( args, nodes, scripts ) {	var fragment, cacheable, cacheresults,		doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document);					if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document &&		args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {		cacheable = true;		cacheresults = jQuery.fragments[ args[0] ];		if ( cacheresults && 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 );		}	};});function getAll( elem ) {	if ( "getElementsByTagName" in elem ) {		return elem.getElementsByTagName( "*" );		} else if ( "querySelectorAll" in elem ) {		return elem.querySelectorAll( "*" );	} else {		return [];	}}function fixDefaultChecked( elem ) {	if ( elem.type === "checkbox" || elem.type === "radio" ) {		elem.defaultChecked = elem.checked;	}}function findInputs( elem ) {	if ( jQuery.nodeName( elem, "input" ) ) {		fixDefaultChecked( elem );	} else if ( elem.getElementsByTagName ) {		jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );	}}jQuery.extend({	clone: function( elem, dataAndEvents, deepDataAndEvents ) {		var clone = elem.cloneNode(true),				srcElements,				destElements,				i;		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {																		cloneFixAttributes( elem, clone );									srcElements = getAll( elem );			destElements = getAll( clone );												for ( i = 0; srcElements[i]; ++i ) {				cloneFixAttributes( srcElements[i], destElements[i] );			}		}				if ( dataAndEvents ) {			cloneCopyEvent( elem, clone );			if ( deepDataAndEvents ) {				srcElements = getAll( elem );				destElements = getAll( clone );				for ( i = 0; srcElements[i]; ++i ) {					cloneCopyEvent( srcElements[i], destElements[i] );				}			}		}				return clone;	},	clean: function( elems, context, fragment, scripts ) {		var checkScriptType;		context = context || document;				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;			}						if ( typeof elem === "string" ) {				if ( !rhtml.test( elem ) ) {					elem = context.createTextNode( elem );				} else {										elem = elem.replace(rxhtmlTag, "<$1></$2>");										var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),						wrap = wrapMap[ tag ] || wrapMap._default,						depth = wrap[0],						div = context.createElement("div");										div.innerHTML = wrap[1] + elem + wrap[2];										while ( depth-- ) {						div = div.lastChild;					}										if ( !jQuery.support.tbody ) {												var hasBody = rtbody.test(elem),							tbody = tag === "table" && !hasBody ?								div.firstChild && div.firstChild.childNodes :																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 ] );							}						}					}										if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {						div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );					}					elem = div.childNodes;				}			}									var len;			if ( !jQuery.support.appendChecked ) {				if ( elem[0] && typeof (len = elem.length) === "number" ) {					for ( i = 0; i < len; i++ ) {						findInputs( elem[i] );					}				} else {					findInputs( elem );				}			}			if ( elem.nodeType ) {				ret.push( elem );			} else {				ret = jQuery.merge( ret, elem );			}		}		if ( fragment ) {			checkScriptType = function( elem ) {				return !elem.type || rscriptType.test( elem.type );			};			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 ) {						var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType );						ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );					}					fragment.appendChild( ret[i] );				}			}		}		return ret;	},	cleanData: function( elems ) {		var data, id, cache = jQuery.cache, internalKey = jQuery.expando, 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 ] && cache[ id ][ internalKey ];				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 ( data.handle ) {						data.handle.elem = null;					}				}				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]|^ms)/g,	rnumpx = /^-?\d+(?:px)?$/i,	rnum = /^-?\d/,	rrelNum = /^[+\-]=/,	rrelNumFilter = /[^+\-\.\de]+/g,	cssShow = { position: "absolute", visibility: "hidden", display: "block" },	cssWidth = [ "Left", "Right" ],	cssHeight = [ "Top", "Bottom" ],	curCSS,	getComputedStyle,	currentStyle,	fcamelCase = function( all, letter ) {		return letter.toUpperCase();	};jQuery.fn.css = function( name, value ) {		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({			cssHooks: {		opacity: {			get: function( elem, computed ) {				if ( computed ) {										var ret = curCSS( elem, "opacity", "opacity" );					return ret === "" ? "1" : ret;				} else {					return elem.style.opacity;				}			}		}	},		cssNumber: {		"zIndex": true,		"fontWeight": true,		"opacity": true,		"zoom": true,		"lineHeight": true,		"widows": true,		"orphans": true	},			cssProps: {				"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"	},		style: function( elem, name, value, extra ) {				if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {			return;		}				var ret, type, origName = jQuery.camelCase( name ),			style = elem.style, hooks = jQuery.cssHooks[ origName ];		name = jQuery.cssProps[ origName ] || origName;				if ( value !== undefined ) {			type = typeof value;						if ( type === "number" && isNaN( value ) || value == null ) {				return;			}						if ( type === "string" && rrelNum.test( value ) ) {				value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) );			}						if ( type === "number" && !jQuery.cssNumber[ origName ] ) {				value += "px";			}						if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {												try {					style[ name ] = value;				} catch(e) {}			}		} else {						if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {				return ret;			}						return style[ name ];		}	},	css: function( elem, name, extra ) {		var ret, hooks;				name = jQuery.camelCase( name );		hooks = jQuery.cssHooks[ name ];		name = jQuery.cssProps[ name ] || name;				if ( name === "cssFloat" ) {			name = "float";		}				if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {			return ret;				} else if ( curCSS ) {			return curCSS( elem, name );		}	},		swap: function( elem, options, callback ) {		var old = {};				for ( var name in options ) {			old[ name ] = elem.style[ name ];			elem.style[ name ] = options[ name ];		}		callback.call( elem );				for ( name in options ) {			elem.style[ name ] = old[ name ];		}	},	camelCase: function( string ) {		return string.replace( rdashAlpha, fcamelCase );	}});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 );					});				}				if ( val <= 0 ) {					val = curCSS( elem, name, name );					if ( val === "0px" && currentStyle ) {						val = currentStyle( elem, name, name );					}					if ( val != null ) {																		return val === "" || val === "auto" ? "0px" : val;					}				}				if ( val < 0 || val == null ) {					val = elem.style[ name ];															return val === "" || val === "auto" ? "0px" : val;				}				return typeof val === "string" ? val : val + "px";			}		},		set: function( elem, value ) {			if ( rnumpx.test( value ) ) {								value = parseFloat(value);				if ( value >= 0 ) {					return value + "px";				}			} else {				return value;			}		}	};});if ( !jQuery.support.opacity ) {	jQuery.cssHooks.opacity = {		get: function( elem, computed ) {						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,				currentStyle = elem.currentStyle;									style.zoom = 1;						var opacity = jQuery.isNaN( value ) ?				"" :				"alpha(opacity=" + value * 100 + ")",				filter = currentStyle && currentStyle.filter || style.filter || "";			style.filter = ralpha.test( filter ) ?				filter.replace( ralpha, opacity ) :				filter + " " + opacity;		}	};}jQuery(function() {			if ( !jQuery.support.reliableMarginRight ) {		jQuery.cssHooks.marginRight = {			get: function( elem, computed ) {												var ret;				jQuery.swap( elem, { "display": "inline-block" }, function() {					if ( computed ) {						ret = curCSS( elem, "margin-right", "marginRight" );					} else {						ret = elem.style.marginRight;					}				});				return ret;			}		};	}});if ( document.defaultView && document.defaultView.getComputedStyle ) {	getComputedStyle = function( elem, 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;	};}if ( document.documentElement.currentStyle ) {	currentStyle = function( elem, name ) {		var left,			ret = elem.currentStyle && elem.currentStyle[ name ],			rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],			style = elem.style;										if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {						left = style.left;						if ( rsLeft ) {				elem.runtimeStyle.left = elem.currentStyle.left;			}			style.left = name === "fontSize" ? "1em" : (ret || 0);			ret = style.pixelLeft + "px";						style.left = left;			if ( rsLeft ) {				elem.runtimeStyle.left = rsLeft;			}		}		return ret === "" ? "auto" : ret;	};}curCSS = getComputedStyle || currentStyle;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 r20 = /%20/g,	rbracket = /\[\]$/,	rCRLF = /\r?\n/g,	rhash = /#.*$/,	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, 	rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,		rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|widget):$/,	rnoContent = /^(?:GET|HEAD)$/,	rprotocol = /^\/\//,	rquery = /\?/,	rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,	rselectTextarea = /^(?:select|textarea)/i,	rspacesAjax = /\s+/,	rts = /([?&])_=[^&]*/,	rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,		_load = jQuery.fn.load,		prefilters = {},		transports = {},		ajaxLocation,		ajaxLocParts;try {	ajaxLocation = location.href;} catch( e ) {			ajaxLocation = document.createElement( "a" );	ajaxLocation.href = "";	ajaxLocation = ajaxLocation.href;}ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];function addToPrefiltersOrTransports( structure ) {		return function( dataTypeExpression, func ) {		if ( typeof dataTypeExpression !== "string" ) {			func = dataTypeExpression;			dataTypeExpression = "*";		}		if ( jQuery.isFunction( func ) ) {			var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),				i = 0,				length = dataTypes.length,				dataType,				list,				placeBefore;						for(; i < length; i++ ) {				dataType = dataTypes[ i ];												placeBefore = /^\+/.test( dataType );				if ( placeBefore ) {					dataType = dataType.substr( 1 ) || "*";				}				list = structure[ dataType ] = structure[ dataType ] || [];								list[ placeBefore ? "unshift" : "push" ]( func );			}		}	};}function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,		dataType , inspected  ) {	dataType = dataType || options.dataTypes[ 0 ];	inspected = inspected || {};	inspected[ dataType ] = true;	var list = structure[ dataType ],		i = 0,		length = list ? list.length : 0,		executeOnly = ( structure === prefilters ),		selection;	for(; i < length && ( executeOnly || !selection ); i++ ) {		selection = list[ i ]( options, originalOptions, jqXHR );						if ( typeof selection === "string" ) {			if ( !executeOnly || inspected[ selection ] ) {				selection = undefined;			} else {				options.dataTypes.unshift( selection );				selection = inspectPrefiltersOrTransports(						structure, options, originalOptions, jqXHR, selection, inspected );			}		}	}			if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {		selection = inspectPrefiltersOrTransports(				structure, options, originalOptions, jqXHR, "*", inspected );	}			return selection;}jQuery.fn.extend({	load: function( url, params, callback ) {		if ( typeof url !== "string" && _load ) {			return _load.apply( this, arguments );				} 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 );		}				var type = "GET";				if ( params ) {						if ( jQuery.isFunction( params ) ) {								callback = params;				params = undefined;						} else if ( typeof params === "object" ) {				params = jQuery.param( params, jQuery.ajaxSettings.traditional );				type = "POST";			}		}		var self = this;				jQuery.ajax({			url: url,			type: type,			dataType: "html",			data: params,						complete: function( jqXHR, status, responseText ) {								responseText = jqXHR.responseText;								if ( jqXHR.isResolved() ) {															jqXHR.done(function( r ) {						responseText = r;					});										self.html( selector ?												jQuery("<div>")																					.append(responseText.replace(rscript, ""))														.find(selector) :												responseText );				}				if ( callback ) {					self.each( callback, [ responseText, status, jqXHR ] );				}			}		});		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.replace( rCRLF, "\r\n" ) };					}) :					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };		}).get();	}});jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){	jQuery.fn[ o ] = function( f ){		return this.bind( o, f );	};});jQuery.each( [ "get", "post" ], function( i, method ) {	jQuery[ method ] = function( url, data, callback, type ) {				if ( jQuery.isFunction( data ) ) {			type = type || callback;			callback = data;			data = undefined;		}		return jQuery.ajax({			type: method,			url: url,			data: data,			success: callback,			dataType: type		});	};});jQuery.extend({	getScript: function( url, callback ) {		return jQuery.get( url, undefined, callback, "script" );	},	getJSON: function( url, data, callback ) {		return jQuery.get( url, data, callback, "json" );	},				ajaxSetup: function ( target, settings ) {		if ( !settings ) {						settings = target;			target = jQuery.extend( true, jQuery.ajaxSettings, settings );		} else {						jQuery.extend( true, target, jQuery.ajaxSettings, settings );		}				for( var field in { context: 1, url: 1 } ) {			if ( field in settings ) {				target[ field ] = settings[ field ];			} else if( field in jQuery.ajaxSettings ) {				target[ field ] = jQuery.ajaxSettings[ field ];			}		}		return target;	},	ajaxSettings: {		url: ajaxLocation,		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),		global: true,		type: "GET",		contentType: "application/x-www-form-urlencoded",		processData: true,		async: true,				accepts: {			xml: "application/xml, text/xml",			html: "text/html",			text: "text/plain",			json: "application/json, text/javascript",			"*": "*/*"		},		contents: {			xml: /xml/,			html: /html/,			json: /json/		},		responseFields: {			xml: "responseXML",			text: "responseText"		},								converters: {						"* text": window.String,						"text html": true,						"text json": jQuery.parseJSON,						"text xml": jQuery.parseXML		}	},	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),	ajaxTransport: addToPrefiltersOrTransports( transports ),		ajax: function( url, options ) {				if ( typeof url === "object" ) {			options = url;			url = undefined;		}				options = options || {};		var 			s = jQuery.ajaxSetup( {}, options ),						callbackContext = s.context || s,												globalEventContext = callbackContext !== s &&				( callbackContext.nodeType || callbackContext instanceof jQuery ) ?						jQuery( callbackContext ) : jQuery.event,						deferred = jQuery.Deferred(),			completeDeferred = jQuery._Deferred(),						statusCode = s.statusCode || {},						ifModifiedKey,						requestHeaders = {},			requestHeadersNames = {},						responseHeadersString,			responseHeaders,						transport,						timeoutTimer,						parts,						state = 0,						fireGlobals,						i,						jqXHR = {				readyState: 0,								setRequestHeader: function( name, value ) {					if ( !state ) {						var lname = name.toLowerCase();						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;						requestHeaders[ name ] = value;					}					return this;				},								getAllResponseHeaders: function() {					return state === 2 ? responseHeadersString : null;				},								getResponseHeader: function( key ) {					var match;					if ( state === 2 ) {						if ( !responseHeaders ) {							responseHeaders = {};							while( ( match = rheaders.exec( responseHeadersString ) ) ) {								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];							}						}						match = responseHeaders[ key.toLowerCase() ];					}					return match === undefined ? null : match;				},								overrideMimeType: function( type ) {					if ( !state ) {						s.mimeType = type;					}					return this;				},								abort: function( statusText ) {					statusText = statusText || "abort";					if ( transport ) {						transport.abort( statusText );					}					done( 0, statusText );					return this;				}			};								function done( status, statusText, responses, headers ) {						if ( state === 2 ) {				return;			}						state = 2;						if ( timeoutTimer ) {				clearTimeout( timeoutTimer );			}									transport = undefined;						responseHeadersString = headers || "";						jqXHR.readyState = status ? 4 : 0;			var isSuccess,				success,				error,				response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,				lastModified,				etag;						if ( status >= 200 && status < 300 || status === 304 ) {								if ( s.ifModified ) {					if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {						jQuery.lastModified[ ifModifiedKey ] = lastModified;					}					if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {						jQuery.etag[ ifModifiedKey ] = etag;					}				}								if ( status === 304 ) {					statusText = "notmodified";					isSuccess = true;								} else {					try {						success = ajaxConvert( s, response );						statusText = "success";						isSuccess = true;					} catch(e) {												statusText = "parsererror";						error = e;					}				}			} else {												error = statusText;				if( !statusText || status ) {					statusText = "error";					if ( status < 0 ) {						status = 0;					}				}			}						jqXHR.status = status;			jqXHR.statusText = statusText;						if ( isSuccess ) {				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );			} else {				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );			}						jqXHR.statusCode( statusCode );			statusCode = undefined;			if ( fireGlobals ) {				globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),						[ jqXHR, s, isSuccess ? success : error ] );			}						completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] );			if ( fireGlobals ) {				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s] );								if ( !( --jQuery.active ) ) {					jQuery.event.trigger( "ajaxStop" );				}			}		}				deferred.promise( jqXHR );		jqXHR.success = jqXHR.done;		jqXHR.error = jqXHR.fail;		jqXHR.complete = completeDeferred.done;				jqXHR.statusCode = function( map ) {			if ( map ) {				var tmp;				if ( state < 2 ) {					for( tmp in map ) {						statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];					}				} else {					tmp = map[ jqXHR.status ];					jqXHR.then( tmp, tmp );				}			}			return this;		};								s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );				s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );				if ( s.crossDomain == null ) {			parts = rurl.exec( s.url.toLowerCase() );			s.crossDomain = !!( parts &&				( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )			);		}				if ( s.data && s.processData && typeof s.data !== "string" ) {			s.data = jQuery.param( s.data, s.traditional );		}				inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );				if ( state === 2 ) {			return false;		}				fireGlobals = s.global;				s.type = s.type.toUpperCase();				s.hasContent = !rnoContent.test( s.type );				if ( fireGlobals && jQuery.active++ === 0 ) {			jQuery.event.trigger( "ajaxStart" );		}				if ( !s.hasContent ) {						if ( s.data ) {				s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;			}						ifModifiedKey = s.url;						if ( s.cache === false ) {				var ts = jQuery.now(),										ret = s.url.replace( rts, "$1_=" + ts );								s.url = ret + ( (ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );			}		}				if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {			jqXHR.setRequestHeader( "Content-Type", s.contentType );		}				if ( s.ifModified ) {			ifModifiedKey = ifModifiedKey || s.url;			if ( jQuery.lastModified[ ifModifiedKey ] ) {				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] );			}			if ( jQuery.etag[ ifModifiedKey ] ) {				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] );			}		}				jqXHR.setRequestHeader(			"Accept",			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) :				s.accepts[ "*" ]		);				for ( i in s.headers ) {			jqXHR.setRequestHeader( i, s.headers[ i ] );		}				if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {								jqXHR.abort();				return false;		}				for ( i in { success: 1, error: 1, complete: 1 } ) {			jqXHR[ i ]( s[ i ] );		}				transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );				if ( !transport ) {			done( -1, "No Transport" );		} else {			jqXHR.readyState = 1;						if ( fireGlobals ) {				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );			}						if ( s.async && s.timeout > 0 ) {				timeoutTimer = setTimeout( function(){					jqXHR.abort( "timeout" );				}, s.timeout );			}			try {				state = 1;				transport.send( requestHeaders, done );			} catch (e) {								if ( status < 2 ) {					done( -1, e );								} else {					jQuery.error( e );				}			}		}		return jqXHR;	},			param: function( a, traditional ) {		var s = [],			add = function( key, value ) {								value = jQuery.isFunction( value ) ? value() : value;				s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );			};				if ( traditional === undefined ) {			traditional = jQuery.ajaxSettings.traditional;		}				if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {						jQuery.each( a, function() {				add( this.name, this.value );			});		} else {									for ( var prefix in a ) {				buildParams( prefix, a[ prefix ], traditional, add );			}		}				return s.join( "&" ).replace( r20, "+" );	}});function buildParams( prefix, obj, traditional, add ) {	if ( jQuery.isArray( obj ) ) {				jQuery.each( obj, function( i, v ) {			if ( traditional || rbracket.test( prefix ) ) {								add( prefix, v );			} else {																																buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );			}		});	} else if ( !traditional && obj != null && typeof obj === "object" ) {				for ( var name in obj ) {			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );		}	} else {				add( prefix, obj );	}}jQuery.extend({		active: 0,		lastModified: {},	etag: {}});function ajaxHandleResponses( s, jqXHR, responses ) {	var contents = s.contents,		dataTypes = s.dataTypes,		responseFields = s.responseFields,		ct,		type,		finalDataType,		firstDataType;		for( type in responseFields ) {		if ( type in responses ) {			jqXHR[ responseFields[type] ] = responses[ type ];		}	}		while( dataTypes[ 0 ] === "*" ) {		dataTypes.shift();		if ( ct === undefined ) {			ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );		}	}		if ( ct ) {		for ( type in contents ) {			if ( contents[ type ] && contents[ type ].test( ct ) ) {				dataTypes.unshift( type );				break;			}		}	}		if ( dataTypes[ 0 ] in responses ) {		finalDataType = dataTypes[ 0 ];	} else {				for ( type in responses ) {			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {				finalDataType = type;				break;			}			if ( !firstDataType ) {				firstDataType = type;			}		}				finalDataType = finalDataType || firstDataType;	}				if ( finalDataType ) {		if ( finalDataType !== dataTypes[ 0 ] ) {			dataTypes.unshift( finalDataType );		}		return responses[ finalDataType ];	}}function ajaxConvert( s, response ) {		if ( s.dataFilter ) {		response = s.dataFilter( response, s.dataType );	}	var dataTypes = s.dataTypes,		converters = {},		i,		key,		length = dataTypes.length,		tmp,				current = dataTypes[ 0 ],		prev,				conversion,				conv,				conv1,		conv2;		for( i = 1; i < length; i++ ) {						if ( i === 1 ) {			for( key in s.converters ) {				if( typeof key === "string" ) {					converters[ key.toLowerCase() ] = s.converters[ key ];				}			}		}				prev = current;		current = dataTypes[ i ];				if( current === "*" ) {			current = prev;				} else if ( prev !== "*" && prev !== current ) {						conversion = prev + " " + current;			conv = converters[ conversion ] || converters[ "* " + current ];						if ( !conv ) {				conv2 = undefined;				for( conv1 in converters ) {					tmp = conv1.split( " " );					if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {						conv2 = converters[ tmp[1] + " " + current ];						if ( conv2 ) {							conv1 = converters[ conv1 ];							if ( conv1 === true ) {								conv = conv2;							} else if ( conv2 === true ) {								conv = conv1;							}							break;						}					}				}			}						if ( !( conv || conv2 ) ) {				jQuery.error( "No conversion from " + conversion.replace(" "," to ") );			}						if ( conv !== true ) {								response = conv ? conv( response ) : conv2( conv1(response) );			}		}	}	return response;}var jsc = jQuery.now(),	jsre = /(\=)\?(&|$)|\?\?/i;jQuery.ajaxSetup({	jsonp: "callback",	jsonpCallback: function() {		return jQuery.expando + "_" + ( jsc++ );	}});jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {	var inspectData = s.contentType === "application/x-www-form-urlencoded" &&		( typeof s.data === "string" );	if ( s.dataTypes[ 0 ] === "jsonp" ||		s.jsonp !== false && ( jsre.test( s.url ) ||				inspectData && jsre.test( s.data ) ) ) {		var responseContainer,			jsonpCallback = s.jsonpCallback =				jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,			previous = window[ jsonpCallback ],			url = s.url,			data = s.data,			replace = "$1" + jsonpCallback + "$2";		if ( s.jsonp !== false ) {			url = url.replace( jsre, replace );			if ( s.url === url ) {				if ( inspectData ) {					data = data.replace( jsre, replace );				}				if ( s.data === data ) {										url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;				}			}		}		s.url = url;		s.data = data;				window[ jsonpCallback ] = function( response ) {			responseContainer = [ response ];		};				jqXHR.always(function() {						window[ jsonpCallback ] = previous;						if ( responseContainer && jQuery.isFunction( previous ) ) {				window[ jsonpCallback ]( responseContainer[ 0 ] );			}		});				s.converters["script json"] = function() {			if ( !responseContainer ) {				jQuery.error( jsonpCallback + " was not called" );			}			return responseContainer[ 0 ];		};				s.dataTypes[ 0 ] = "json";				return "script";	}});jQuery.ajaxSetup({	accepts: {		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"	},	contents: {		script: /javascript|ecmascript/	},	converters: {		"text script": function( text ) {			jQuery.globalEval( text );			return text;		}	}});jQuery.ajaxPrefilter( "script", function( s ) {	if ( s.cache === undefined ) {		s.cache = false;	}	if ( s.crossDomain ) {		s.type = "GET";		s.global = false;	}});jQuery.ajaxTransport( "script", function(s) {		if ( s.crossDomain ) {		var script,			head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;		return {			send: function( _, callback ) {				script = document.createElement( "script" );				script.async = "async";				if ( s.scriptCharset ) {					script.charset = s.scriptCharset;				}				script.src = s.url;								script.onload = script.onreadystatechange = function( _, isAbort ) {					if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {												script.onload = script.onreadystatechange = null;												if ( head && script.parentNode ) {							head.removeChild( script );						}												script = undefined;												if ( !isAbort ) {							callback( 200, "success" );						}					}				};												head.insertBefore( script, head.firstChild );			},			abort: function() {				if ( script ) {					script.onload( 0, 1 );				}			}		};	}});var 	xhrOnUnloadAbort = window.ActiveXObject ? function() {				for ( var key in xhrCallbacks ) {			xhrCallbacks[ key ]( 0, 1 );		}	} : false,	xhrId = 0,	xhrCallbacks;function createStandardXHR() {	try {		return new window.XMLHttpRequest();	} catch( e ) {}}function createActiveXHR() {	try {		return new window.ActiveXObject( "Microsoft.XMLHTTP" );	} catch( e ) {}}jQuery.ajaxSettings.xhr = window.ActiveXObject ?		function() {		return !this.isLocal && createStandardXHR() || createActiveXHR();	} :		createStandardXHR;(function( xhr ) {	jQuery.extend( jQuery.support, {		ajax: !!xhr,		cors: !!xhr && ( "withCredentials" in xhr )	});})( jQuery.ajaxSettings.xhr() );if ( jQuery.support.ajax ) {	jQuery.ajaxTransport(function( s ) {				if ( !s.crossDomain || jQuery.support.cors ) {			var callback;			return {				send: function( headers, complete ) {										var xhr = s.xhr(),						handle,						i;															if ( s.username ) {						xhr.open( s.type, s.url, s.async, s.username, s.password );					} else {						xhr.open( s.type, s.url, s.async );					}										if ( s.xhrFields ) {						for ( i in s.xhrFields ) {							xhr[ i ] = s.xhrFields[ i ];						}					}										if ( s.mimeType && xhr.overrideMimeType ) {						xhr.overrideMimeType( s.mimeType );					}																														if ( !s.crossDomain && !headers["X-Requested-With"] ) {						headers[ "X-Requested-With" ] = "XMLHttpRequest";					}										try {						for ( i in headers ) {							xhr.setRequestHeader( i, headers[ i ] );						}					} catch( _ ) {}																				xhr.send( ( s.hasContent && s.data ) || null );										callback = function( _, isAbort ) {						var status,							statusText,							responseHeaders,							responses,							xml;																								try {														if ( callback && ( isAbort || xhr.readyState === 4 ) ) {																callback = undefined;																if ( handle ) {									xhr.onreadystatechange = jQuery.noop;									if ( xhrOnUnloadAbort ) {										delete xhrCallbacks[ handle ];									}								}																if ( isAbort ) {																		if ( xhr.readyState !== 4 ) {										xhr.abort();									}								} else {									status = xhr.status;									responseHeaders = xhr.getAllResponseHeaders();									responses = {};									xml = xhr.responseXML;																		if ( xml && xml.documentElement  ) {										responses.xml = xml;									}									responses.text = xhr.responseText;																											try {										statusText = xhr.statusText;									} catch( e ) {																				statusText = "";									}																																													if ( !status && s.isLocal && !s.crossDomain ) {										status = responses.text ? 200 : 404;																		} else if ( status === 1223 ) {										status = 204;									}								}							}						} catch( firefoxAccessException ) {							if ( !isAbort ) {								complete( -1, firefoxAccessException );							}						}												if ( responses ) {							complete( status, statusText, responses, responseHeaders );						}					};																				if ( !s.async || xhr.readyState === 4 ) {						callback();					} else {						handle = ++xhrId;						if ( xhrOnUnloadAbort ) {																					if ( !xhrCallbacks ) {								xhrCallbacks = {};								jQuery( window ).unload( xhrOnUnloadAbort );							}														xhrCallbacks[ handle ] = callback;						}						xhr.onreadystatechange = callback;					}				},				abort: function() {					if ( callback ) {						callback(0,1);					}				}			};		}	});}var elemdisplay = {},	iframe, iframeDoc,	rfxtypes = /^(?:toggle|show|hide)$/,	rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,	timerId,	fxAttrs = [				[ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],				[ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],				[ "opacity" ]	],	fxNow,	requestAnimationFrame = window.webkitRequestAnimationFrame ||	    window.mozRequestAnimationFrame ||	    window.oRequestAnimationFrame;jQuery.fn.extend({	show: function( speed, easing, callback ) {		var elem, display;		if ( speed || speed === 0 ) {			return this.animate( genFx("show", 3), speed, easing, callback);		} else {			for ( var i = 0, j = this.length; i < j; i++ ) {				elem = this[i];				if ( elem.style ) {					display = elem.style.display;															if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {						display = elem.style.display = "";					}																				if ( display === "" && jQuery.css( elem, "display" ) === "none" ) {						jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName));					}				}			}									for ( i = 0; i < j; i++ ) {				elem = this[i];				if ( elem.style ) {					display = elem.style.display;					if ( display === "" || display === "none" ) {						elem.style.display = jQuery._data(elem, "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++ ) {				if ( this[i].style ) {					var display = jQuery.css( this[i], "display" );					if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) {						jQuery._data( this[i], "olddisplay", display );					}				}			}									for ( i = 0; i < j; i++ ) {				if ( this[i].style ) {					this[i].style.display = "none";				}			}			return this;		}	},		_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, [ false ] );		}		return this[ optall.queue === false ? "each" : "queue" ](function() {									if ( optall.queue === false ) {				jQuery._mark( this );			}			var opt = jQuery.extend({}, optall),				isElement = this.nodeType === 1,				hidden = isElement && jQuery(this).is(":hidden"),				name, val, p,				display, e,				parts, start, end, unit;						opt.animatedProperties = {};			for ( p in prop ) {								name = jQuery.camelCase( p );				if ( p !== name ) {					prop[ name ] = prop[ p ];					delete prop[ p ];				}				val = prop[name];				if ( val === "hide" && hidden || val === "show" && !hidden ) {					return opt.complete.call(this);				}				if ( isElement && ( name === "height" || name === "width" ) ) {																									opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];																				if ( jQuery.css( this, "display" ) === "inline" &&							jQuery.css( this, "float" ) === "none" ) {						if ( !jQuery.support.inlineBlockNeedsLayout ) {							this.style.display = "inline-block";						} else {							display = defaultDisplay(this.nodeName);																					if ( display === "inline" ) {								this.style.display = "inline-block";							} else {								this.style.display = "inline";								this.style.zoom = 1;							}						}					}				}								opt.animatedProperties[name] = jQuery.isArray( val ) ?					val[1]:					opt.specialEasing && opt.specialEasing[name] || opt.easing || 'swing';			}			if ( opt.overflow != null ) {				this.style.overflow = "hidden";			}			for ( p in prop ) {				e = new jQuery.fx( this, opt, p );				val = prop[p];				if ( rfxtypes.test(val) ) {					e[ val === "toggle" ? hidden ? "show" : "hide" : val ]();				} else {					parts = rfxnum.exec(val);					start = e.cur();					if ( parts ) {						end = parseFloat( parts[2] );						unit = parts[3] || ( jQuery.cssNumber[ name ] ? "" : "px" );												if ( unit !== "px" ) {							jQuery.style( this, p, (end || 1) + unit);							start = ((end || 1) / e.cur()) * start;							jQuery.style( this, p, start + unit);						}												if ( parts[1] ) {							end = ((parts[1] === "-=" ? -1 : 1) * end) + start;						}						e.custom( start, end, unit );					} else {						e.custom( start, val, "" );					}				}			}						return true;		});	},	stop: function( clearQueue, gotoEnd ) {		if ( clearQueue ) {			this.queue([]);		}		this.each(function() {			var timers = jQuery.timers,				i = timers.length;						if ( !gotoEnd ) {				jQuery._unmark( true, this );			}						while ( i-- ) {				if ( timers[i].elem === this ) {					if (gotoEnd) {												timers[i](true);					}					timers.splice(i, 1);				}			}		});				if ( !gotoEnd ) {			this.dequeue();		}		return this;	}});function createFxNow() {	setTimeout( clearFxNow, 0 );	return ( fxNow = jQuery.now() );}function clearFxNow() {	fxNow = undefined;}function genFx( type, num ) {	var obj = {};	jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() {		obj[ this ] = type;	});	return obj;}jQuery.each({	slideDown: genFx("show", 1),	slideUp: genFx("hide", 1),	slideToggle: genFx("toggle", 1),	fadeIn: { opacity: "show" },	fadeOut: { opacity: "hide" },	fadeToggle: { opacity: "toggle" }}, 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;				opt.old = opt.complete;		opt.complete = function( noUnmark ) {			if ( opt.queue !== false ) {				jQuery.dequeue( this );			} else if ( noUnmark !== false ) {				jQuery._unmark( this );			}			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;		options.orig = options.orig || {};	}});jQuery.fx.prototype = {		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 );	},		cur: function() {		if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) {			return this.elem[ this.prop ];		}		var parsed,			r = jQuery.css( this.elem, this.prop );								return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;	},		custom: function( from, to, unit ) {		var self = this,			fx = jQuery.fx,			raf;		this.startTime = fxNow || createFxNow();		this.start = from;		this.end = to;		this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );		this.now = this.start;		this.pos = this.state = 0;		function t( gotoEnd ) {			return self.step(gotoEnd);		}		t.elem = this.elem;		if ( t() && jQuery.timers.push(t) && !timerId ) {						if ( requestAnimationFrame ) {				timerId = 1;				raf = function() {										if ( timerId ) {						requestAnimationFrame( raf );						fx.tick();					}				};				requestAnimationFrame( raf );			} else {				timerId = setInterval( fx.tick, fx.interval );			}		}	},		show: function() {				this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );		this.options.show = true;								this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur());				jQuery( this.elem ).show();	},		hide: function() {				this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );		this.options.hide = true;				this.custom(this.cur(), 0);	},		step: function( gotoEnd ) {		var t = fxNow || createFxNow(),			done = true,			elem = this.elem,			options = this.options,			i, n;		if ( gotoEnd || t >= options.duration + this.startTime ) {			this.now = this.end;			this.pos = this.state = 1;			this.update();			options.animatedProperties[ this.prop ] = true;			for ( i in options.animatedProperties ) {				if ( options.animatedProperties[i] !== true ) {					done = false;				}			}			if ( done ) {								if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {					jQuery.each( [ "", "X", "Y" ], function (index, value) {						elem.style[ "overflow" + value ] = options.overflow[index];					});				}								if ( options.hide ) {					jQuery(elem).hide();				}								if ( options.hide || options.show ) {					for ( var p in options.animatedProperties ) {						jQuery.style( elem, p, options.orig[p] );					}				}								options.complete.call( elem );			}			return false;		} else {						if ( options.duration == Infinity ) {				this.now = t;			} else {				n = t - this.startTime;				this.state = n / options.duration;								this.pos = jQuery.easing[options.animatedProperties[this.prop]](this.state, n, 0, 1, options.duration);				this.now = this.start + ((this.end - this.start) * this.pos);			}						this.update();		}		return true;	}};jQuery.extend( jQuery.fx, {	tick: function() {		var timers = jQuery.timers,			i = timers.length;		while ( 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: 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 === "" ) {						if ( !iframe ) {				iframe = document.createElement( "iframe" );				iframe.frameBorder = iframe.width = iframe.height = 0;			}			document.body.appendChild( iframe );												if ( !iframeDoc || !iframe.createElement ) {				iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;				iframeDoc.write( "<!doctype><html><body></body></html>" );			}			elem = iframeDoc.createElement( nodeName );			iframeDoc.body.appendChild( elem );			display = jQuery.css( elem, "display" );			document.body.removeChild( iframe );		}				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;				if ( !box || !jQuery.contains( docElem, elem ) ) {			return box ? { top: box.top, left: box.left } : { 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 computedStyle,			offsetParent = elem.offsetParent,			prevOffsetParent = elem,			doc = elem.ownerDocument,			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";				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 );		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" );				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" || position === "fixed") && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,			props = {}, curPosition = {}, curTop, curLeft;				if ( calculatePosition ) {			curPosition = curElem.position();			curTop = curPosition.top;			curLeft = curPosition.left;		} else {			curTop = parseFloat( curCSSTop ) || 0;			curLeft = parseFloat( curCSSLeft ) || 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],				offsetParent = this.offsetParent(),				offset       = this.offset(),		parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();								offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;		offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;				parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;		parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;				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;		});	}});jQuery.each( ["Left", "Top"], function( i, name ) {	var method = "scroll" + name;	jQuery.fn[ method ] = function( val ) {		var elem, win;		if ( val === undefined ) {			elem = this[ 0 ];			if ( !elem ) {				return null;			}			win = getWindow( elem );						return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :				jQuery.support.boxModel && win.document.documentElement[ method ] ||					win.document.body[ method ] :				elem[ method ];		}				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;			}		});	};});function getWindow( elem ) {	return jQuery.isWindow( elem ) ?		elem :		elem.nodeType === 9 ?			elem.defaultView || elem.parentWindow :			false;}jQuery.each([ "Height", "Width" ], function( i, name ) {	var type = name.toLowerCase();		jQuery.fn["inner" + name] = function() {		return this[0] ?			parseFloat( jQuery.css( this[0], type, "padding" ) ) :			null;	};		jQuery.fn["outer" + name] = function( margin ) {		return this[0] ?			parseFloat( jQuery.css( this[0], type, margin ? "margin" : "border" ) ) :			null;	};	jQuery.fn[ type ] = function( size ) {				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 ]() ) );			});		}		if ( jQuery.isWindow( elem ) ) {									var docElemProp = elem.document.documentElement[ "client" + name ];			return elem.document.compatMode === "CSS1Compat" && docElemProp ||				elem.document.body[ "client" + name ] || docElemProp;				} else if ( elem.nodeType === 9 ) {						return Math.max(				elem.documentElement["client" + name],				elem.body["scroll" + name], elem.documentElement["scroll" + name],				elem.body["offset" + name], elem.documentElement["offset" + name]			);				} else if ( size === undefined ) {			var orig = jQuery.css( elem, type ),				ret = parseFloat( orig );			return jQuery.isNaN( ret ) ? orig : ret;				} else {			return this.css( type, typeof size === "string" ? size : size + "px" );		}	};});window.jQuery = window.$ = jQuery;})(window);(function($) {var types = ['DOMMouseScroll', 'mousewheel'];$.event.special.mousewheel = {    setup: function() {        if ( this.addEventListener ) {            for ( var i=types.length; i; ) {                this.addEventListener( types[--i], handler, false );            }        } else {            this.onmousewheel = handler;        }    },        teardown: function() {        if ( this.removeEventListener ) {            for ( var i=types.length; i; ) {                this.removeEventListener( types[--i], handler, false );            }        } else {            this.onmousewheel = null;        }    }};$.fn.extend({    mousewheel: function(fn) {        return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");    },        unmousewheel: function(fn) {        return this.unbind("mousewheel", fn);    }});function handler(event) {    var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;    event = $.event.fix(orgEvent);    event.type = "mousewheel";            if ( event.wheelDelta ) { delta = event.wheelDelta/120; }    if ( event.detail     ) { delta = -event.detail/3; }            deltaY = delta;            if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {        deltaY = 0;        deltaX = -1*delta;    }            if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }    if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }            args.unshift(event, delta, deltaX, deltaY);        return $.event.handle.apply(this, args);}})(jQuery);(function( $, undefined ) {$.ui = $.ui || {};if ( $.ui.version ) {	return;}$.extend( $.ui, {	version: "1.8.12",	keyCode: {		ALT: 18,		BACKSPACE: 8,		CAPS_LOCK: 20,		COMMA: 188,		COMMAND: 91,		COMMAND_LEFT: 91, 		COMMAND_RIGHT: 93,		CONTROL: 17,		DELETE: 46,		DOWN: 40,		END: 35,		ENTER: 13,		ESCAPE: 27,		HOME: 36,		INSERT: 45,		LEFT: 37,		MENU: 93, 		NUMPAD_ADD: 107,		NUMPAD_DECIMAL: 110,		NUMPAD_DIVIDE: 111,		NUMPAD_ENTER: 108,		NUMPAD_MULTIPLY: 106,		NUMPAD_SUBTRACT: 109,		PAGE_DOWN: 34,		PAGE_UP: 33,		PERIOD: 190,		RIGHT: 39,		SHIFT: 16,		SPACE: 32,		TAB: 9,		UP: 38,		WINDOWS: 91 	}});$.fn.extend({	_focus: $.fn.focus,	focus: function( delay, fn ) {		return typeof delay === "number" ?			this.each(function() {				var elem = this;				setTimeout(function() {					$( elem ).focus();					if ( fn ) {						fn.call( elem );					}				}, delay );			}) :			this._focus.apply( this, arguments );	},	scrollParent: function() {		var scrollParent;		if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {			scrollParent = this.parents().filter(function() {				return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));			}).eq(0);		} else {			scrollParent = this.parents().filter(function() {				return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));			}).eq(0);		}		return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;	},	zIndex: function( zIndex ) {		if ( zIndex !== undefined ) {			return this.css( "zIndex", zIndex );		}		if ( this.length ) {			var elem = $( this[ 0 ] ), position, value;			while ( elem.length && elem[ 0 ] !== document ) {																position = elem.css( "position" );				if ( position === "absolute" || position === "relative" || position === "fixed" ) {																									value = parseInt( elem.css( "zIndex" ), 10 );					if ( !isNaN( value ) && value !== 0 ) {						return value;					}				}				elem = elem.parent();			}		}		return 0;	},	disableSelection: function() {		return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +			".ui-disableSelection", function( event ) {				event.preventDefault();			});	},	enableSelection: function() {		return this.unbind( ".ui-disableSelection" );	}});$.each( [ "Width", "Height" ], function( i, name ) {	var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],		type = name.toLowerCase(),		orig = {			innerWidth: $.fn.innerWidth,			innerHeight: $.fn.innerHeight,			outerWidth: $.fn.outerWidth,			outerHeight: $.fn.outerHeight		};	function reduce( elem, size, border, margin ) {		$.each( side, function() {			size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;			if ( border ) {				size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0;			}			if ( margin ) {				size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;			}		});		return size;	}	$.fn[ "inner" + name ] = function( size ) {		if ( size === undefined ) {			return orig[ "inner" + name ].call( this );		}		return this.each(function() {			$( this ).css( type, reduce( this, size ) + "px" );		});	};	$.fn[ "outer" + name] = function( size, margin ) {		if ( typeof size !== "number" ) {			return orig[ "outer" + name ].call( this, size );		}		return this.each(function() {			$( this).css( type, reduce( this, size, true, margin ) + "px" );		});	};});function visible( element ) {	return !$( element ).parents().andSelf().filter(function() {		return $.curCSS( this, "visibility" ) === "hidden" ||			$.expr.filters.hidden( this );	}).length;}$.extend( $.expr[ ":" ], {	data: function( elem, i, match ) {		return !!$.data( elem, match[ 3 ] );	},	focusable: function( element ) {		var nodeName = element.nodeName.toLowerCase(),			tabIndex = $.attr( element, "tabindex" );		if ( "area" === nodeName ) {			var map = element.parentNode,				mapName = map.name,				img;			if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {				return false;			}			img = $( "img[usemap=#" + mapName + "]" )[0];			return !!img && visible( img );		}		return ( /input|select|textarea|button|object/.test( nodeName )			? !element.disabled			: "a" == nodeName				? element.href || !isNaN( tabIndex )				: !isNaN( tabIndex ))						&& visible( element );	},	tabbable: function( element ) {		var tabIndex = $.attr( element, "tabindex" );		return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" );	}});$(function() {	var body = document.body,		div = body.appendChild( div = document.createElement( "div" ) );	$.extend( div.style, {		minHeight: "100px",		height: "auto",		padding: 0,		borderWidth: 0	});	$.support.minHeight = div.offsetHeight === 100;	$.support.selectstart = "onselectstart" in div;			body.removeChild( div ).style.display = "none";});$.extend( $.ui, {		plugin: {		add: function( module, option, set ) {			var proto = $.ui[ module ].prototype;			for ( var i in set ) {				proto.plugins[ i ] = proto.plugins[ i ] || [];				proto.plugins[ i ].push( [ option, set[ i ] ] );			}		},		call: function( instance, name, args ) {			var set = instance.plugins[ name ];			if ( !set || !instance.element[ 0 ].parentNode ) {				return;			}				for ( var i = 0; i < set.length; i++ ) {				if ( instance.options[ set[ i ][ 0 ] ] ) {					set[ i ][ 1 ].apply( instance.element, args );				}			}		}	},			contains: function( a, b ) {		return document.compareDocumentPosition ?			a.compareDocumentPosition( b ) & 16 :			a !== b && a.contains( b );	},			hasScroll: function( el, a ) {					if ( $( el ).css( "overflow" ) === "hidden") {			return false;		}			var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",			has = false;			if ( el[ scroll ] > 0 ) {			return true;		}									el[ scroll ] = 1;		has = ( el[ scroll ] > 0 );		el[ scroll ] = 0;		return has;	},			isOverAxis: function( x, reference, size ) {				return ( x > reference ) && ( x < ( reference + size ) );	},	isOver: function( y, x, top, left, height, width ) {				return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );	}});})( jQuery );(function( $, undefined ) {if ( $.cleanData ) {	var _cleanData = $.cleanData;	$.cleanData = function( elems ) {		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {			$( elem ).triggerHandler( "remove" );		}		_cleanData( elems );	};} else {	var _remove = $.fn.remove;	$.fn.remove = function( selector, keepData ) {		return this.each(function() {			if ( !keepData ) {				if ( !selector || $.filter( selector, [ this ] ).length ) {					$( "*", this ).add( [ this ] ).each(function() {						$( this ).triggerHandler( "remove" );					});				}			}			return _remove.call( $(this), selector, keepData );		});	};}$.widget = function( name, base, prototype ) {	var namespace = name.split( "." )[ 0 ],		fullName;	name = name.split( "." )[ 1 ];	fullName = namespace + "-" + name;	if ( !prototype ) {		prototype = base;		base = $.Widget;	}		$.expr[ ":" ][ fullName ] = function( elem ) {		return !!$.data( elem, name );	};	$[ namespace ] = $[ namespace ] || {};	$[ namespace ][ name ] = function( options, element ) {				if ( arguments.length ) {			this._createWidget( options, element );		}	};	var basePrototype = new base();				basePrototype.options = $.extend( true, {}, basePrototype.options );	$[ namespace ][ name ].prototype = $.extend( true, basePrototype, {		namespace: namespace,		widgetName: name,		widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,		widgetBaseClass: fullName	}, prototype );	$.widget.bridge( name, $[ namespace ][ name ] );};$.widget.bridge = function( name, object ) {	$.fn[ name ] = function( options ) {		var isMethodCall = typeof options === "string",			args = Array.prototype.slice.call( arguments, 1 ),			returnValue = this;				options = !isMethodCall && args.length ?			$.extend.apply( null, [ true, options ].concat(args) ) :			options;				if ( isMethodCall && options.charAt( 0 ) === "_" ) {			return returnValue;		}		if ( isMethodCall ) {			this.each(function() {				var instance = $.data( this, name ),					methodValue = instance && $.isFunction( instance[options] ) ?						instance[ options ].apply( instance, args ) :						instance;								if ( methodValue !== instance && methodValue !== undefined ) {					returnValue = methodValue;					return false;				}			});		} else {			this.each(function() {				var instance = $.data( this, name );				if ( instance ) {					instance.option( options || {} )._init();				} else {					$.data( this, name, new object( options, this ) );				}			});		}		return returnValue;	};};$.Widget = function( options, element ) {		if ( arguments.length ) {		this._createWidget( options, element );	}};$.Widget.prototype = {	widgetName: "widget",	widgetEventPrefix: "",	options: {		disabled: false	},	_createWidget: function( options, element ) {						$.data( element, this.widgetName, this );		this.element = $( element );		this.options = $.extend( true, {},			this.options,			this._getCreateOptions(),			options );		var self = this;		this.element.bind( "remove." + this.widgetName, function() {			self.destroy();		});		this._create();		this._trigger( "create" );		this._init();	},	_getCreateOptions: function() {		return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];	},	_create: function() {},	_init: function() {},	destroy: function() {		this.element			.unbind( "." + this.widgetName )			.removeData( this.widgetName );		this.widget()			.unbind( "." + this.widgetName )			.removeAttr( "aria-disabled" )			.removeClass(				this.widgetBaseClass + "-disabled " +				"ui-state-disabled" );	},	widget: function() {		return this.element;	},	option: function( key, value ) {		var options = key;		if ( arguments.length === 0 ) {						return $.extend( {}, this.options );		}		if  (typeof key === "string" ) {			if ( value === undefined ) {				return this.options[ key ];			}			options = {};			options[ key ] = value;		}		this._setOptions( options );		return this;	},	_setOptions: function( options ) {		var self = this;		$.each( options, function( key, value ) {			self._setOption( key, value );		});		return this;	},	_setOption: function( key, value ) {		this.options[ key ] = value;		if ( key === "disabled" ) {			this.widget()				[ value ? "addClass" : "removeClass"](					this.widgetBaseClass + "-disabled" + " " +					"ui-state-disabled" )				.attr( "aria-disabled", value );		}		return this;	},	enable: function() {		return this._setOption( "disabled", false );	},	disable: function() {		return this._setOption( "disabled", true );	},	_trigger: function( type, event, data ) {		var callback = this.options[ type ];		event = $.Event( event );		event.type = ( type === this.widgetEventPrefix ?			type :			this.widgetEventPrefix + type ).toLowerCase();		data = data || {};								if ( event.originalEvent ) {			for ( var i = $.event.props.length, prop; i; ) {				prop = $.event.props[ --i ];				event[ prop ] = event.originalEvent[ prop ];			}		}		this.element.trigger( event, data );		return !( $.isFunction(callback) &&			callback.call( this.element[0], event, data ) === false ||			event.isDefaultPrevented() );	}};})( jQuery );(function( $, undefined ) {$.widget("ui.mouse", {	options: {		cancel: ':input,option',		distance: 1,		delay: 0	},	_mouseInit: function() {		var self = this;		this.element			.bind('mousedown.'+this.widgetName, function(event) {				return self._mouseDown(event);			})			.bind('click.'+this.widgetName, function(event) {				if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {				    $.removeData(event.target, self.widgetName + '.preventClickEvent');					event.stopImmediatePropagation();					return false;				}			});		this.started = false;	},			_mouseDestroy: function() {		this.element.unbind('.'+this.widgetName);	},	_mouseDown: function(event) {						event.originalEvent = event.originalEvent || {};		if (event.originalEvent.mouseHandled) { return; }				(this._mouseStarted && this._mouseUp(event));		this._mouseDownEvent = event;		var self = this,			btnIsLeft = (event.which == 1),			elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);		if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {			return true;		}		this.mouseDelayMet = !this.options.delay;		if (!this.mouseDelayMet) {			this._mouseDelayTimer = setTimeout(function() {				self.mouseDelayMet = true;			}, this.options.delay);		}		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {			this._mouseStarted = (this._mouseStart(event) !== false);			if (!this._mouseStarted) {				event.preventDefault();				return true;			}		}				if (true === $.data(event.target, this.widgetName + '.preventClickEvent')) {			$.removeData(event.target, this.widgetName + '.preventClickEvent');		}				this._mouseMoveDelegate = function(event) {			return self._mouseMove(event);		};		this._mouseUpDelegate = function(event) {			return self._mouseUp(event);		};		$(document)			.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)			.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);		event.preventDefault();		event.originalEvent.mouseHandled = true;		return true;	},	_mouseMove: function(event) {				if ($.browser.msie && !(document.documentMode >= 9) && !event.button) {			return this._mouseUp(event);		}		if (this._mouseStarted) {			this._mouseDrag(event);			return event.preventDefault();		}		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {			this._mouseStarted =				(this._mouseStart(this._mouseDownEvent, event) !== false);			(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));		}		return !this._mouseStarted;	},	_mouseUp: function(event) {		$(document)			.unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)			.unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);		if (this._mouseStarted) {			this._mouseStarted = false;			if (event.target == this._mouseDownEvent.target) {			    $.data(event.target, this.widgetName + '.preventClickEvent', true);			}			this._mouseStop(event);		}		return false;	},	_mouseDistanceMet: function(event) {		return (Math.max(				Math.abs(this._mouseDownEvent.pageX - event.pageX),				Math.abs(this._mouseDownEvent.pageY - event.pageY)			) >= this.options.distance		);	},	_mouseDelayMet: function(event) {		return this.mouseDelayMet;	},		_mouseStart: function(event) {},	_mouseDrag: function(event) {},	_mouseStop: function(event) {},	_mouseCapture: function(event) { return true; }});})(jQuery);(function( $, undefined ) {$.ui = $.ui || {};var horizontalPositions = /left|center|right/,	verticalPositions = /top|center|bottom/,	center = "center",	_position = $.fn.position,	_offset = $.fn.offset;$.fn.position = function( options ) {	if ( !options || !options.of ) {		return _position.apply( this, arguments );	}		options = $.extend( {}, options );	var target = $( options.of ),		targetElem = target[0],		collision = ( options.collision || "flip" ).split( " " ),		offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ],		targetWidth,		targetHeight,		basePosition;	if ( targetElem.nodeType === 9 ) {		targetWidth = target.width();		targetHeight = target.height();		basePosition = { top: 0, left: 0 };		} else if ( targetElem.setTimeout ) {		targetWidth = target.width();		targetHeight = target.height();		basePosition = { top: target.scrollTop(), left: target.scrollLeft() };	} else if ( targetElem.preventDefault ) {				options.at = "left top";		targetWidth = targetHeight = 0;		basePosition = { top: options.of.pageY, left: options.of.pageX };	} else {		targetWidth = target.outerWidth();		targetHeight = target.outerHeight();		basePosition = target.offset();	}			$.each( [ "my", "at" ], function() {		var pos = ( options[this] || "" ).split( " " );		if ( pos.length === 1) {			pos = horizontalPositions.test( pos[0] ) ?				pos.concat( [center] ) :				verticalPositions.test( pos[0] ) ?					[ center ].concat( pos ) :					[ center, center ];		}		pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center;		pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center;		options[ this ] = pos;	});		if ( collision.length === 1 ) {		collision[ 1 ] = collision[ 0 ];	}		offset[ 0 ] = parseInt( offset[0], 10 ) || 0;	if ( offset.length === 1 ) {		offset[ 1 ] = offset[ 0 ];	}	offset[ 1 ] = parseInt( offset[1], 10 ) || 0;	if ( options.at[0] === "right" ) {		basePosition.left += targetWidth;	} else if ( options.at[0] === center ) {		basePosition.left += targetWidth / 2;	}	if ( options.at[1] === "bottom" ) {		basePosition.top += targetHeight;	} else if ( options.at[1] === center ) {		basePosition.top += targetHeight / 2;	}	basePosition.left += offset[ 0 ];	basePosition.top += offset[ 1 ];	return this.each(function() {		var elem = $( this ),			elemWidth = elem.outerWidth(),			elemHeight = elem.outerHeight(),			marginLeft = parseInt( $.curCSS( this, "marginLeft", true ) ) || 0,			marginTop = parseInt( $.curCSS( this, "marginTop", true ) ) || 0,			collisionWidth = elemWidth + marginLeft +				( parseInt( $.curCSS( this, "marginRight", true ) ) || 0 ),			collisionHeight = elemHeight + marginTop +				( parseInt( $.curCSS( this, "marginBottom", true ) ) || 0 ),			position = $.extend( {}, basePosition ),			collisionPosition;		if ( options.my[0] === "right" ) {			position.left -= elemWidth;		} else if ( options.my[0] === center ) {			position.left -= elemWidth / 2;		}		if ( options.my[1] === "bottom" ) {			position.top -= elemHeight;		} else if ( options.my[1] === center ) {			position.top -= elemHeight / 2;		}				position.left = Math.round( position.left );		position.top = Math.round( position.top );		collisionPosition = {			left: position.left - marginLeft,			top: position.top - marginTop		};		$.each( [ "left", "top" ], function( i, dir ) {			if ( $.ui.position[ collision[i] ] ) {				$.ui.position[ collision[i] ][ dir ]( position, {					targetWidth: targetWidth,					targetHeight: targetHeight,					elemWidth: elemWidth,					elemHeight: elemHeight,					collisionPosition: collisionPosition,					collisionWidth: collisionWidth,					collisionHeight: collisionHeight,					offset: offset,					my: options.my,					at: options.at				});			}		});		if ( $.fn.bgiframe ) {			elem.bgiframe();		}		elem.offset( $.extend( position, { using: options.using } ) );	});};$.ui.position = {	fit: {		left: function( position, data ) {			var win = $( window ),				over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft();			position.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left );		},		top: function( position, data ) {			var win = $( window ),				over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop();			position.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top );		}	},	flip: {		left: function( position, data ) {			if ( data.at[0] === center ) {				return;			}			var win = $( window ),				over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(),				myOffset = data.my[ 0 ] === "left" ?					-data.elemWidth :					data.my[ 0 ] === "right" ?						data.elemWidth :						0,				atOffset = data.at[ 0 ] === "left" ?					data.targetWidth :					-data.targetWidth,				offset = -2 * data.offset[ 0 ];			position.left += data.collisionPosition.left < 0 ?				myOffset + atOffset + offset :				over > 0 ?					myOffset + atOffset + offset :					0;		},		top: function( position, data ) {			if ( data.at[1] === center ) {				return;			}			var win = $( window ),				over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(),				myOffset = data.my[ 1 ] === "top" ?					-data.elemHeight :					data.my[ 1 ] === "bottom" ?						data.elemHeight :						0,				atOffset = data.at[ 1 ] === "top" ?					data.targetHeight :					-data.targetHeight,				offset = -2 * data.offset[ 1 ];			position.top += data.collisionPosition.top < 0 ?				myOffset + atOffset + offset :				over > 0 ?					myOffset + atOffset + offset :					0;		}	}};if ( !$.offset.setOffset ) {	$.offset.setOffset = function( elem, options ) {				if ( /static/.test( $.curCSS( elem, "position" ) ) ) {			elem.style.position = "relative";		}		var curElem   = $( elem ),			curOffset = curElem.offset(),			curTop    = parseInt( $.curCSS( elem, "top",  true ), 10 ) || 0,			curLeft   = parseInt( $.curCSS( elem, "left", true ), 10)  || 0,			props     = {				top:  (options.top  - curOffset.top)  + curTop,				left: (options.left - curOffset.left) + curLeft			};				if ( 'using' in options ) {			options.using.call( elem, props );		} else {			curElem.css( props );		}	};	$.fn.offset = function( options ) {		var elem = this[ 0 ];		if ( !elem || !elem.ownerDocument ) { return null; }		if ( options ) { 			return this.each(function() {				$.offset.setOffset( this, options );			});		}		return _offset.call( this );	};}}( jQuery ));(function( $, undefined ) {$.widget("ui.draggable", $.ui.mouse, {	widgetEventPrefix: "drag",	options: {		addClasses: true,		appendTo: "parent",		axis: false,		connectToSortable: false,		containment: false,		cursor: "auto",		cursorAt: false,		grid: false,		handle: false,		helper: "original",		iframeFix: false,		opacity: false,		refreshPositions: false,		revert: false,		revertDuration: 500,		scope: "default",		scroll: true,		scrollSensitivity: 20,		scrollSpeed: 20,		snap: false,		snapMode: "both",		snapTolerance: 20,		stack: false,		zIndex: false	},	_create: function() {		if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position")))			this.element[0].style.position = 'relative';		(this.options.addClasses && this.element.addClass("ui-draggable"));		(this.options.disabled && this.element.addClass("ui-draggable-disabled"));		this._mouseInit();	},	destroy: function() {		if(!this.element.data('draggable')) return;		this.element			.removeData("draggable")			.unbind(".draggable")			.removeClass("ui-draggable"				+ " ui-draggable-dragging"				+ " ui-draggable-disabled");		this._mouseDestroy();		return this;	},	_mouseCapture: function(event) {		var o = this.options;				if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle'))			return false;				this.handle = this._getHandle(event);		if (!this.handle)			return false;		return true;	},	_mouseStart: function(event) {		var o = this.options;				this.helper = this._createHelper(event);				this._cacheHelperProportions();				if($.ui.ddmanager)			$.ui.ddmanager.current = this;						this._cacheMargins();				this.cssPosition = this.helper.css("position");		this.scrollParent = this.helper.scrollParent();				this.offset = this.positionAbs = this.element.offset();		this.offset = {			top: this.offset.top - this.margins.top,			left: this.offset.left - this.margins.left		};		$.extend(this.offset, {			click: { 				left: event.pageX - this.offset.left,				top: event.pageY - this.offset.top			},			parent: this._getParentOffset(),			relative: this._getRelativeOffset() 		});				this.originalPosition = this.position = this._generatePosition(event);		this.originalPageX = event.pageX;		this.originalPageY = event.pageY;				(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));				if(o.containment)			this._setContainment();				if(this._trigger("start", event) === false) {			this._clear();			return false;		}				this._cacheHelperProportions();				if ($.ui.ddmanager && !o.dropBehaviour)			$.ui.ddmanager.prepareOffsets(this, event);		this.helper.addClass("ui-draggable-dragging");		this._mouseDrag(event, true); 		return true;	},	_mouseDrag: function(event, noPropagation) {				this.position = this._generatePosition(event);		this.positionAbs = this._convertPositionTo("absolute");				if (!noPropagation) {			var ui = this._uiHash();			if(this._trigger('drag', event, ui) === false) {				this._mouseUp({});				return false;			}			this.position = ui.position;		}		if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';		if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';		if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);		return false;	},	_mouseStop: function(event) {				var dropped = false;		if ($.ui.ddmanager && !this.options.dropBehaviour)			dropped = $.ui.ddmanager.drop(this, event);				if(this.dropped) {			dropped = this.dropped;			this.dropped = false;		}						if((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original")			return false;		if((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {			var self = this;			$(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {				if(self._trigger("stop", event) !== false) {					self._clear();				}			});		} else {			if(this._trigger("stop", event) !== false) {				this._clear();			}		}		return false;	},		cancel: function() {				if(this.helper.is(".ui-draggable-dragging")) {			this._mouseUp({});		} else {			this._clear();		}				return this;			},	_getHandle: function(event) {		var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;		$(this.options.handle, this.element)			.find("*")			.andSelf()			.each(function() {				if(this == event.target) handle = true;			});		return handle;	},	_createHelper: function(event) {		var o = this.options;		var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone() : this.element);		if(!helper.parents('body').length)			helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));		if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position")))			helper.css("position", "absolute");		return helper;	},	_adjustOffsetFromHelper: function(obj) {		if (typeof obj == 'string') {			obj = obj.split(' ');		}		if ($.isArray(obj)) {			obj = {left: +obj[0], top: +obj[1] || 0};		}		if ('left' in obj) {			this.offset.click.left = obj.left + this.margins.left;		}		if ('right' in obj) {			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;		}		if ('top' in obj) {			this.offset.click.top = obj.top + this.margins.top;		}		if ('bottom' in obj) {			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;		}	},	_getParentOffset: function() {				this.offsetParent = this.helper.offsetParent();		var po = this.offsetParent.offset();										if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {			po.left += this.scrollParent.scrollLeft();			po.top += this.scrollParent.scrollTop();		}		if((this.offsetParent[0] == document.body) 		|| (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) 			po = { top: 0, left: 0 };		return {			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),			left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)		};	},	_getRelativeOffset: function() {		if(this.cssPosition == "relative") {			var p = this.element.position();			return {				top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),				left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()			};		} else {			return { top: 0, left: 0 };		}	},	_cacheMargins: function() {		this.margins = {			left: (parseInt(this.element.css("marginLeft"),10) || 0),			top: (parseInt(this.element.css("marginTop"),10) || 0),			right: (parseInt(this.element.css("marginRight"),10) || 0),			bottom: (parseInt(this.element.css("marginBottom"),10) || 0)		};	},	_cacheHelperProportions: function() {		this.helperProportions = {			width: this.helper.outerWidth(),			height: this.helper.outerHeight()		};	},	_setContainment: function() {		var o = this.options;		if(o.containment == 'parent') o.containment = this.helper[0].parentNode;		if(o.containment == 'document' || o.containment == 'window') this.containment = [			(o.containment == 'document' ? 0 : $(window).scrollLeft()) - this.offset.relative.left - this.offset.parent.left,			(o.containment == 'document' ? 0 : $(window).scrollTop()) - this.offset.relative.top - this.offset.parent.top,			(o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,			(o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top		];		if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {			var ce = $(o.containment)[0]; if(!ce) return;			var co = $(o.containment).offset();			var over = ($(ce).css("overflow") != 'hidden');			this.containment = [				co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0),				co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0),				co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right,				co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top  - this.margins.bottom			];		} else if(o.containment.constructor == Array) {			this.containment = o.containment;		}	},	_convertPositionTo: function(d, pos) {		if(!pos) pos = this.position;		var mod = d == "absolute" ? 1 : -1;		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);		return {			top: (				pos.top																					+ this.offset.relative.top * mod														+ this.offset.parent.top * mod															- ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)			),			left: (				pos.left																				+ this.offset.relative.left * mod														+ this.offset.parent.left * mod															- ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)			)		};	},	_generatePosition: function(event) {		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);		var pageX = event.pageX;		var pageY = event.pageY;				if(this.originalPosition) { 			if(this.containment) {				if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;				if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;				if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;				if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;			}			if(o.grid) {				var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];				pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;				var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];				pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;			}		}		return {			top: (				pageY																				- this.offset.click.top																	- this.offset.relative.top																- this.offset.parent.top																+ ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))			),			left: (				pageX																				- this.offset.click.left																- this.offset.relative.left																- this.offset.parent.left																+ ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))			)		};	},	_clear: function() {		this.helper.removeClass("ui-draggable-dragging");		if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove();				this.helper = null;		this.cancelHelperRemoval = false;	},		_trigger: function(type, event, ui) {		ui = ui || this._uiHash();		$.ui.plugin.call(this, type, [event, ui]);		if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); 		return $.Widget.prototype._trigger.call(this, type, event, ui);	},	plugins: {},	_uiHash: function(event) {		return {			helper: this.helper,			position: this.position,			originalPosition: this.originalPosition,			offset: this.positionAbs		};	}});$.extend($.ui.draggable, {	version: "1.8.12"});$.ui.plugin.add("draggable", "connectToSortable", {	start: function(event, ui) {		var inst = $(this).data("draggable"), o = inst.options,			uiSortable = $.extend({}, ui, { item: inst.element });		inst.sortables = [];		$(o.connectToSortable).each(function() {			var sortable = $.data(this, 'sortable');			if (sortable && !sortable.options.disabled) {				inst.sortables.push({					instance: sortable,					shouldRevert: sortable.options.revert				});				sortable.refreshPositions();					sortable._trigger("activate", event, uiSortable);			}		});	},	stop: function(event, ui) {				var inst = $(this).data("draggable"),			uiSortable = $.extend({}, ui, { item: inst.element });		$.each(inst.sortables, function() {			if(this.instance.isOver) {				this.instance.isOver = 0;				inst.cancelHelperRemoval = true; 				this.instance.cancelHelperRemoval = false; 								if(this.shouldRevert) this.instance.options.revert = true;								this.instance._mouseStop(event);				this.instance.options.helper = this.instance.options._helper;								if(inst.options.helper == 'original')					this.instance.currentItem.css({ top: 'auto', left: 'auto' });			} else {				this.instance.cancelHelperRemoval = false; 				this.instance._trigger("deactivate", event, uiSortable);			}		});	},	drag: function(event, ui) {		var inst = $(this).data("draggable"), self = this;		var checkPos = function(o) {			var dyClick = this.offset.click.top, dxClick = this.offset.click.left;			var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left;			var itemHeight = o.height, itemWidth = o.width;			var itemTop = o.top, itemLeft = o.left;			return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth);		};		$.each(inst.sortables, function(i) {									this.instance.positionAbs = inst.positionAbs;			this.instance.helperProportions = inst.helperProportions;			this.instance.offset.click = inst.offset.click;						if(this.instance._intersectsWith(this.instance.containerCache)) {								if(!this.instance.isOver) {					this.instance.isOver = 1;																				this.instance.currentItem = $(self).clone().appendTo(this.instance.element).data("sortable-item", true);					this.instance.options._helper = this.instance.options.helper; 					this.instance.options.helper = function() { return ui.helper[0]; };					event.target = this.instance.currentItem[0];					this.instance._mouseCapture(event, true);					this.instance._mouseStart(event, true, true);										this.instance.offset.click.top = inst.offset.click.top;					this.instance.offset.click.left = inst.offset.click.left;					this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;					this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;					inst._trigger("toSortable", event);					inst.dropped = this.instance.element; 										inst.currentItem = inst.element;					this.instance.fromOutside = inst;				}								if(this.instance.currentItem) this.instance._mouseDrag(event);			} else {												if(this.instance.isOver) {					this.instance.isOver = 0;					this.instance.cancelHelperRemoval = true;															this.instance.options.revert = false;															this.instance._trigger('out', event, this.instance._uiHash(this.instance));										this.instance._mouseStop(event, true);					this.instance.options.helper = this.instance.options._helper;										this.instance.currentItem.remove();					if(this.instance.placeholder) this.instance.placeholder.remove();					inst._trigger("fromSortable", event);					inst.dropped = false; 				}			};		});	}});$.ui.plugin.add("draggable", "cursor", {	start: function(event, ui) {		var t = $('body'), o = $(this).data('draggable').options;		if (t.css("cursor")) o._cursor = t.css("cursor");		t.css("cursor", o.cursor);	},	stop: function(event, ui) {		var o = $(this).data('draggable').options;		if (o._cursor) $('body').css("cursor", o._cursor);	}});$.ui.plugin.add("draggable", "iframeFix", {	start: function(event, ui) {		var o = $(this).data('draggable').options;		$(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {			$('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')			.css({				width: this.offsetWidth+"px", height: this.offsetHeight+"px",				position: "absolute", opacity: "0.001", zIndex: 1000			})			.css($(this).offset())			.appendTo("body");		});	},	stop: function(event, ui) {		$("div.ui-draggable-iframeFix").each(function() { this.parentNode.removeChild(this); }); 	}});$.ui.plugin.add("draggable", "opacity", {	start: function(event, ui) {		var t = $(ui.helper), o = $(this).data('draggable').options;		if(t.css("opacity")) o._opacity = t.css("opacity");		t.css('opacity', o.opacity);	},	stop: function(event, ui) {		var o = $(this).data('draggable').options;		if(o._opacity) $(ui.helper).css('opacity', o._opacity);	}});$.ui.plugin.add("draggable", "scroll", {	start: function(event, ui) {		var i = $(this).data("draggable");		if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset();	},	drag: function(event, ui) {		var i = $(this).data("draggable"), o = i.options, scrolled = false;		if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') {			if(!o.axis || o.axis != 'x') {				if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)					i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;				else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity)					i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;			}			if(!o.axis || o.axis != 'y') {				if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)					i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;				else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity)					i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;			}		} else {			if(!o.axis || o.axis != 'x') {				if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)					scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);				else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)					scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);			}			if(!o.axis || o.axis != 'y') {				if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)					scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);				else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)					scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);			}		}		if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)			$.ui.ddmanager.prepareOffsets(i, event);	}});$.ui.plugin.add("draggable", "snap", {	start: function(event, ui) {		var i = $(this).data("draggable"), o = i.options;		i.snapElements = [];		$(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() {			var $t = $(this); var $o = $t.offset();			if(this != i.element[0]) i.snapElements.push({				item: this,				width: $t.outerWidth(), height: $t.outerHeight(),				top: $o.top, left: $o.left			});		});	},	drag: function(event, ui) {		var inst = $(this).data("draggable"), o = inst.options;		var d = o.snapTolerance;		var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,			y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;		for (var i = inst.snapElements.length - 1; i >= 0; i--){			var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width,				t = inst.snapElements[i].top, b = t + inst.snapElements[i].height;						if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) {				if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));				inst.snapElements[i].snapping = false;				continue;			}			if(o.snapMode != 'inner') {				var ts = Math.abs(t - y2) <= d;				var bs = Math.abs(b - y1) <= d;				var ls = Math.abs(l - x2) <= d;				var rs = Math.abs(r - x1) <= d;				if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;				if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;				if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;				if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;			}			var first = (ts || bs || ls || rs);			if(o.snapMode != 'outer') {				var ts = Math.abs(t - y1) <= d;				var bs = Math.abs(b - y2) <= d;				var ls = Math.abs(l - x1) <= d;				var rs = Math.abs(r - x2) <= d;				if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;				if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;				if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;				if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;			}			if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))				(inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));			inst.snapElements[i].snapping = (ts || bs || ls || rs || first);		};	}});$.ui.plugin.add("draggable", "stack", {	start: function(event, ui) {		var o = $(this).data("draggable").options;		var group = $.makeArray($(o.stack)).sort(function(a,b) {			return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);		});		if (!group.length) { return; }				var min = parseInt(group[0].style.zIndex) || 0;		$(group).each(function(i) {			this.style.zIndex = min + i;		});		this[0].style.zIndex = min + group.length;	}});$.ui.plugin.add("draggable", "zIndex", {	start: function(event, ui) {		var t = $(ui.helper), o = $(this).data("draggable").options;		if(t.css("zIndex")) o._zIndex = t.css("zIndex");		t.css('zIndex', o.zIndex);	},	stop: function(event, ui) {		var o = $(this).data("draggable").options;		if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex);	}});})(jQuery);(function( $, undefined ) {$.widget("ui.droppable", {	widgetEventPrefix: "drop",	options: {		accept: '*',		activeClass: false,		addClasses: true,		greedy: false,		hoverClass: false,		scope: 'default',		tolerance: 'intersect'	},	_create: function() {		var o = this.options, accept = o.accept;		this.isover = 0; this.isout = 1;		this.accept = $.isFunction(accept) ? accept : function(d) {			return d.is(accept);		};				this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };				$.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];		$.ui.ddmanager.droppables[o.scope].push(this);		(o.addClasses && this.element.addClass("ui-droppable"));	},	destroy: function() {		var drop = $.ui.ddmanager.droppables[this.options.scope];		for ( var i = 0; i < drop.length; i++ )			if ( drop[i] == this )				drop.splice(i, 1);		this.element			.removeClass("ui-droppable ui-droppable-disabled")			.removeData("droppable")			.unbind(".droppable");		return this;	},	_setOption: function(key, value) {		if(key == 'accept') {			this.accept = $.isFunction(value) ? value : function(d) {				return d.is(value);			};		}		$.Widget.prototype._setOption.apply(this, arguments);	},	_activate: function(event) {		var draggable = $.ui.ddmanager.current;		if(this.options.activeClass) this.element.addClass(this.options.activeClass);		(draggable && this._trigger('activate', event, this.ui(draggable)));	},	_deactivate: function(event) {		var draggable = $.ui.ddmanager.current;		if(this.options.activeClass) this.element.removeClass(this.options.activeClass);		(draggable && this._trigger('deactivate', event, this.ui(draggable)));	},	_over: function(event) {		var draggable = $.ui.ddmanager.current;		if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; 		if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {			if(this.options.hoverClass) this.element.addClass(this.options.hoverClass);			this._trigger('over', event, this.ui(draggable));		}	},	_out: function(event) {		var draggable = $.ui.ddmanager.current;		if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; 		if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {			if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);			this._trigger('out', event, this.ui(draggable));		}	},	_drop: function(event,custom) {		var draggable = custom || $.ui.ddmanager.current;		if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; 		var childrenIntersection = false;		this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {			var inst = $.data(this, 'droppable');			if(				inst.options.greedy				&& !inst.options.disabled				&& inst.options.scope == draggable.options.scope				&& inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element))				&& $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)			) { childrenIntersection = true; return false; }		});		if(childrenIntersection) return false;		if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {			if(this.options.activeClass) this.element.removeClass(this.options.activeClass);			if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);			this._trigger('drop', event, this.ui(draggable));			return this.element;		}		return false;	},	ui: function(c) {		return {			draggable: (c.currentItem || c.element),			helper: c.helper,			position: c.position,			offset: c.positionAbs		};	}});$.extend($.ui.droppable, {	version: "1.8.12"});$.ui.intersect = function(draggable, droppable, toleranceMode) {	if (!droppable.offset) return false;	var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width,		y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height;	var l = droppable.offset.left, r = l + droppable.proportions.width,		t = droppable.offset.top, b = t + droppable.proportions.height;	switch (toleranceMode) {		case 'fit':			return (l <= x1 && x2 <= r				&& t <= y1 && y2 <= b);			break;		case 'intersect':			return (l < x1 + (draggable.helperProportions.width / 2) 				&& x2 - (draggable.helperProportions.width / 2) < r 				&& t < y1 + (draggable.helperProportions.height / 2) 				&& y2 - (draggable.helperProportions.height / 2) < b ); 			break;		case 'pointer':			var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left),				draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top),				isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width);			return isOver;			break;		case 'touch':			return (					(y1 >= t && y1 <= b) ||						(y2 >= t && y2 <= b) ||						(y1 < t && y2 > b)						) && (					(x1 >= l && x1 <= r) ||						(x2 >= l && x2 <= r) ||						(x1 < l && x2 > r)						);			break;		default:			return false;			break;		}};$.ui.ddmanager = {	current: null,	droppables: { 'default': [] },	prepareOffsets: function(t, event) {		var m = $.ui.ddmanager.droppables[t.options.scope] || [];		var type = event ? event.type : null; 		var list = (t.currentItem || t.element).find(":data(droppable)").andSelf();		droppablesLoop: for (var i = 0; i < m.length; i++) {			if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue;				for (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; 			m[i].visible = m[i].element.css("display") != "none"; if(!m[i].visible) continue; 												if(type == "mousedown") m[i]._activate.call(m[i], event); 			m[i].offset = m[i].element.offset();			m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };		}	},	drop: function(draggable, event) {		var dropped = false;		$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {			if(!this.options) return;			if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance))				dropped = dropped || this._drop.call(this, event);			if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {				this.isout = 1; this.isover = 0;				this._deactivate.call(this, event);			}		});		return dropped;	},	drag: function(draggable, event) {				if(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);				$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {			if(this.options.disabled || this.greedyChild || !this.visible) return;			var intersects = $.ui.intersect(draggable, this, this.options.tolerance);			var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null);			if(!c) return;			var parentInstance;			if (this.options.greedy) {				var parent = this.element.parents(':data(droppable):eq(0)');				if (parent.length) {					parentInstance = $.data(parent[0], 'droppable');					parentInstance.greedyChild = (c == 'isover' ? 1 : 0);				}			}						if (parentInstance && c == 'isover') {				parentInstance['isover'] = 0;				parentInstance['isout'] = 1;				parentInstance._out.call(parentInstance, event);			}			this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0;			this[c == "isover" ? "_over" : "_out"].call(this, event);						if (parentInstance && c == 'isout') {				parentInstance['isout'] = 0;				parentInstance['isover'] = 1;				parentInstance._over.call(parentInstance, event);			}		});	}};})(jQuery);(function( $, undefined ) {$.widget("ui.resizable", $.ui.mouse, {	widgetEventPrefix: "resize",	options: {		alsoResize: false,		animate: false,		animateDuration: "slow",		animateEasing: "swing",		aspectRatio: false,		autoHide: false,		containment: false,		ghost: false,		grid: false,		handles: "e,s,se",		helper: false,		maxHeight: null,		maxWidth: null,		minHeight: 10,		minWidth: 10,		zIndex: 1000	},	_create: function() {		var self = this, o = this.options;		this.element.addClass("ui-resizable");		$.extend(this, {			_aspectRatio: !!(o.aspectRatio),			aspectRatio: o.aspectRatio,			originalElement: this.element,			_proportionallyResizeElements: [],			_helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null		});				if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {						if (/relative/.test(this.element.css('position')) && $.browser.opera)				this.element.css({ position: 'relative', top: 'auto', left: 'auto' });						this.element.wrap(				$('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({					position: this.element.css('position'),					width: this.element.outerWidth(),					height: this.element.outerHeight(),					top: this.element.css('top'),					left: this.element.css('left')				})			);						this.element = this.element.parent().data(				"resizable", this.element.data('resizable')			);			this.elementIsWrapper = true;						this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") });			this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0});						this.originalResizeStyle = this.originalElement.css('resize');			this.originalElement.css('resize', 'none');						this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' }));						this.originalElement.css({ margin: this.originalElement.css('margin') });						this._proportionallyResize();		}		this.handles = o.handles || (!$('.ui-resizable-handle', this.element).length ? "e,s,se" : { n: '.ui-resizable-n', e: '.ui-resizable-e', s: '.ui-resizable-s', w: '.ui-resizable-w', se: '.ui-resizable-se', sw: '.ui-resizable-sw', ne: '.ui-resizable-ne', nw: '.ui-resizable-nw' });		if(this.handles.constructor == String) {			if(this.handles == 'all') this.handles = 'n,e,s,w,se,sw,ne,nw';			var n = this.handles.split(","); this.handles = {};			for(var i = 0; i < n.length; i++) {				var handle = $.trim(n[i]), hname = 'ui-resizable-'+handle;				var axis = $('<div class="ui-resizable-handle ' + hname + '"></div>');												if(/sw|se|ne|nw/.test(handle)) axis.css({ zIndex: ++o.zIndex });								if ('se' == handle) {					axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se');				};								this.handles[handle] = '.ui-resizable-'+handle;				this.element.append(axis);			}		}		this._renderAxis = function(target) {			target = target || this.element;			for(var i in this.handles) {				if(this.handles[i].constructor == String)					this.handles[i] = $(this.handles[i], this.element).show();								if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {					var axis = $(this.handles[i], this.element), padWrapper = 0;										padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();										var padPos = [ 'padding',						/ne|nw|n/.test(i) ? 'Top' :						/se|sw|s/.test(i) ? 'Bottom' :						/^e$/.test(i) ? 'Right' : 'Left' ].join("");					target.css(padPos, padWrapper);					this._proportionallyResize();				}								if(!$(this.handles[i]).length)					continue;			}		};				this._renderAxis(this.element);		this._handles = $('.ui-resizable-handle', this.element)			.disableSelection();				this._handles.mouseover(function() {			if (!self.resizing) {				if (this.className)					var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);								self.axis = axis && axis[1] ? axis[1] : 'se';			}		});				if (o.autoHide) {			this._handles.hide();			$(this.element)				.addClass("ui-resizable-autohide")				.hover(function() {					$(this).removeClass("ui-resizable-autohide");					self._handles.show();				},				function(){					if (!self.resizing) {						$(this).addClass("ui-resizable-autohide");						self._handles.hide();					}				});		}				this._mouseInit();	},	destroy: function() {		this._mouseDestroy();		var _destroy = function(exp) {			$(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")				.removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove();		};				if (this.elementIsWrapper) {			_destroy(this.element);			var wrapper = this.element;			wrapper.after(				this.originalElement.css({					position: wrapper.css('position'),					width: wrapper.outerWidth(),					height: wrapper.outerHeight(),					top: wrapper.css('top'),					left: wrapper.css('left')				})			).remove();		}		this.originalElement.css('resize', this.originalResizeStyle);		_destroy(this.originalElement);		return this;	},	_mouseCapture: function(event) {		var handle = false;		for (var i in this.handles) {			if ($(this.handles[i])[0] == event.target) {				handle = true;			}		}		return !this.options.disabled && handle;	},	_mouseStart: function(event) {		var o = this.options, iniPos = this.element.position(), el = this.element;		this.resizing = true;		this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() };				if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {			el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left });		}				if ($.browser.opera && (/relative/).test(el.css('position')))			el.css({ position: 'relative', top: 'auto', left: 'auto' });		this._renderProxy();		var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top'));		if (o.containment) {			curleft += $(o.containment).scrollLeft() || 0;			curtop += $(o.containment).scrollTop() || 0;		}				this.offset = this.helper.offset();		this.position = { left: curleft, top: curtop };		this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };		this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };		this.originalPosition = { left: curleft, top: curtop };		this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() };		this.originalMousePosition = { left: event.pageX, top: event.pageY };				this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);	    var cursor = $('.ui-resizable-' + this.axis).css('cursor');	    $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor);		el.addClass("ui-resizable-resizing");		this._propagate("start", event);		return true;	},	_mouseDrag: function(event) {				var el = this.helper, o = this.options, props = {},			self = this, smp = this.originalMousePosition, a = this.axis;		var dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0;		var trigger = this._change[a];		if (!trigger) return false;				var data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff;		if (this._aspectRatio || event.shiftKey)			data = this._updateRatio(data, event);		data = this._respectSize(data, event);				this._propagate("resize", event);		el.css({			top: this.position.top + "px", left: this.position.left + "px",			width: this.size.width + "px", height: this.size.height + "px"		});		if (!this._helper && this._proportionallyResizeElements.length)			this._proportionallyResize();		this._updateCache(data);				this._trigger('resize', event, this.ui());		return false;	},	_mouseStop: function(event) {		this.resizing = false;		var o = this.options, self = this;		if(this._helper) {			var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),				soffseth = ista && $.ui.hasScroll(pr[0], 'left')  ? 0 : self.sizeDiff.height,				soffsetw = ista ? 0 : self.sizeDiff.width;			var s = { width: (self.helper.width()  - soffsetw), height: (self.helper.height() - soffseth) },				left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,				top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;			if (!o.animate)				this.element.css($.extend(s, { top: top, left: left }));			self.helper.height(self.size.height);			self.helper.width(self.size.width);			if (this._helper && !o.animate) this._proportionallyResize();		}		$('body').css('cursor', 'auto');		this.element.removeClass("ui-resizable-resizing");		this._propagate("stop", event);		if (this._helper) this.helper.remove();		return false;	},	_updateCache: function(data) {		var o = this.options;		this.offset = this.helper.offset();		if (isNumber(data.left)) this.position.left = data.left;		if (isNumber(data.top)) this.position.top = data.top;		if (isNumber(data.height)) this.size.height = data.height;		if (isNumber(data.width)) this.size.width = data.width;	},	_updateRatio: function(data, event) {		var o = this.options, cpos = this.position, csize = this.size, a = this.axis;		if (data.height) data.width = (csize.height * this.aspectRatio);		else if (data.width) data.height = (csize.width / this.aspectRatio);		if (a == 'sw') {			data.left = cpos.left + (csize.width - data.width);			data.top = null;		}		if (a == 'nw') {			data.top = cpos.top + (csize.height - data.height);			data.left = cpos.left + (csize.width - data.width);		}		return data;	},	_respectSize: function(data, event) {		var el = this.helper, o = this.options, pRatio = this._aspectRatio || event.shiftKey, a = this.axis,				ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),					isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height);		if (isminw) data.width = o.minWidth;		if (isminh) data.height = o.minHeight;		if (ismaxw) data.width = o.maxWidth;		if (ismaxh) data.height = o.maxHeight;		var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height;		var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);		if (isminw && cw) data.left = dw - o.minWidth;		if (ismaxw && cw) data.left = dw - o.maxWidth;		if (isminh && ch)	data.top = dh - o.minHeight;		if (ismaxh && ch)	data.top = dh - o.maxHeight;				var isNotwh = !data.width && !data.height;		if (isNotwh && !data.left && data.top) data.top = null;		else if (isNotwh && !data.top && data.left) data.left = null;		return data;	},	_proportionallyResize: function() {		var o = this.options;		if (!this._proportionallyResizeElements.length) return;		var element = this.helper || this.element;		for (var i=0; i < this._proportionallyResizeElements.length; i++) {			var prel = this._proportionallyResizeElements[i];			if (!this.borderDif) {				var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')],					p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')];				this.borderDif = $.map(b, function(v, i) {					var border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0;					return border + padding;				});			}			if ($.browser.msie && !(!($(element).is(':hidden') || $(element).parents(':hidden').length)))				continue;			prel.css({				height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0,				width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0			});		};	},	_renderProxy: function() {		var el = this.element, o = this.options;		this.elementOffset = el.offset();		if(this._helper) {			this.helper = this.helper || $('<div style="overflow:hidden;"></div>');						var ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0),			pxyoffset = ( ie6 ? 2 : -1 );			this.helper.addClass(this._helper).css({				width: this.element.outerWidth() + pxyoffset,				height: this.element.outerHeight() + pxyoffset,				position: 'absolute',				left: this.elementOffset.left - ie6offset +'px',				top: this.elementOffset.top - ie6offset +'px',				zIndex: ++o.zIndex 			});			this.helper				.appendTo("body")				.disableSelection();		} else {			this.helper = this.element;		}	},	_change: {		e: function(event, dx, dy) {			return { width: this.originalSize.width + dx };		},		w: function(event, dx, dy) {			var o = this.options, cs = this.originalSize, sp = this.originalPosition;			return { left: sp.left + dx, width: cs.width - dx };		},		n: function(event, dx, dy) {			var o = this.options, cs = this.originalSize, sp = this.originalPosition;			return { top: sp.top + dy, height: cs.height - dy };		},		s: function(event, dx, dy) {			return { height: this.originalSize.height + dy };		},		se: function(event, dx, dy) {			return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));		},		sw: function(event, dx, dy) {			return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));		},		ne: function(event, dx, dy) {			return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));		},		nw: function(event, dx, dy) {			return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));		}	},	_propagate: function(n, event) {		$.ui.plugin.call(this, n, [event, this.ui()]);		(n != "resize" && this._trigger(n, event, this.ui()));	},	plugins: {},	ui: function() {		return {			originalElement: this.originalElement,			element: this.element,			helper: this.helper,			position: this.position,			size: this.size,			originalSize: this.originalSize,			originalPosition: this.originalPosition		};	}});$.extend($.ui.resizable, {	version: "1.8.12"});$.ui.plugin.add("resizable", "alsoResize", {	start: function (event, ui) {		var self = $(this).data("resizable"), o = self.options;		var _store = function (exp) {			$(exp).each(function() {				var el = $(this);				el.data("resizable-alsoresize", {					width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),					left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10),					position: el.css('position') 				});			});		};		if (typeof(o.alsoResize) == 'object' && !o.alsoResize.parentNode) {			if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); }			else { $.each(o.alsoResize, function (exp) { _store(exp); }); }		}else{			_store(o.alsoResize);		}	},	resize: function (event, ui) {		var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition;		var delta = {			height: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0,			top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0		},		_alsoResize = function (exp, c) {			$(exp).each(function() {				var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 					css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];				$.each(css, function (i, prop) {					var sum = (start[prop]||0) + (delta[prop]||0);					if (sum && sum >= 0)						style[prop] = sum || null;				});								if ($.browser.opera && /relative/.test(el.css('position'))) {					self._revertToRelativePosition = true;					el.css({ position: 'absolute', top: 'auto', left: 'auto' });				}				el.css(style);			});		};		if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {			$.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });		}else{			_alsoResize(o.alsoResize);		}	},	stop: function (event, ui) {		var self = $(this).data("resizable"), o = self.options;		var _reset = function (exp) {			$(exp).each(function() {				var el = $(this);								el.css({ position: el.data("resizable-alsoresize").position });			});		};		if (self._revertToRelativePosition) {			self._revertToRelativePosition = false;			if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {				$.each(o.alsoResize, function (exp) { _reset(exp); });			}else{				_reset(o.alsoResize);			}		}		$(this).removeData("resizable-alsoresize");	}});$.ui.plugin.add("resizable", "animate", {	stop: function(event, ui) {		var self = $(this).data("resizable"), o = self.options;		var pr = self._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),					soffseth = ista && $.ui.hasScroll(pr[0], 'left')  ? 0 : self.sizeDiff.height,						soffsetw = ista ? 0 : self.sizeDiff.width;		var style = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) },					left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,						top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;		self.element.animate(			$.extend(style, top && left ? { top: top, left: left } : {}), {				duration: o.animateDuration,				easing: o.animateEasing,				step: function() {					var data = {						width: parseInt(self.element.css('width'), 10),						height: parseInt(self.element.css('height'), 10),						top: parseInt(self.element.css('top'), 10),						left: parseInt(self.element.css('left'), 10)					};					if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height });										self._updateCache(data);					self._propagate("resize", event);				}			}		);	}});$.ui.plugin.add("resizable", "containment", {	start: function(event, ui) {		var self = $(this).data("resizable"), o = self.options, el = self.element;		var oc = o.containment,	ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;		if (!ce) return;		self.containerElement = $(ce);		if (/document/.test(oc) || oc == document) {			self.containerOffset = { left: 0, top: 0 };			self.containerPosition = { left: 0, top: 0 };			self.parentData = {				element: $(document), left: 0, top: 0,				width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight			};		}				else {			var element = $(ce), p = [];			$([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); });			self.containerOffset = element.offset();			self.containerPosition = element.position();			self.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) };			var co = self.containerOffset, ch = self.containerSize.height,	cw = self.containerSize.width,						width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);			self.parentData = {				element: ce, left: co.left, top: co.top, width: width, height: height			};		}	},	resize: function(event, ui) {		var self = $(this).data("resizable"), o = self.options,				ps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position,				pRatio = self._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement;		if (ce[0] != document && (/static/).test(ce.css('position'))) cop = co;		if (cp.left < (self._helper ? co.left : 0)) {			self.size.width = self.size.width + (self._helper ? (self.position.left - co.left) : (self.position.left - cop.left));			if (pRatio) self.size.height = self.size.width / o.aspectRatio;			self.position.left = o.helper ? co.left : 0;		}		if (cp.top < (self._helper ? co.top : 0)) {			self.size.height = self.size.height + (self._helper ? (self.position.top - co.top) : self.position.top);			if (pRatio) self.size.width = self.size.height * o.aspectRatio;			self.position.top = self._helper ? co.top : 0;		}		self.offset.left = self.parentData.left+self.position.left;		self.offset.top = self.parentData.top+self.position.top;		var woset = Math.abs( (self._helper ? self.offset.left - cop.left : (self.offset.left - cop.left)) + self.sizeDiff.width ),					hoset = Math.abs( (self._helper ? self.offset.top - cop.top : (self.offset.top - co.top)) + self.sizeDiff.height );		var isParent = self.containerElement.get(0) == self.element.parent().get(0),		    isOffsetRelative = /relative|absolute/.test(self.containerElement.css('position'));		if(isParent && isOffsetRelative) woset -= self.parentData.left;		if (woset + self.size.width >= self.parentData.width) {			self.size.width = self.parentData.width - woset;			if (pRatio) self.size.height = self.size.width / self.aspectRatio;		}		if (hoset + self.size.height >= self.parentData.height) {			self.size.height = self.parentData.height - hoset;			if (pRatio) self.size.width = self.size.height * self.aspectRatio;		}	},	stop: function(event, ui){		var self = $(this).data("resizable"), o = self.options, cp = self.position,				co = self.containerOffset, cop = self.containerPosition, ce = self.containerElement;		var helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height;		if (self._helper && !o.animate && (/relative/).test(ce.css('position')))			$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });		if (self._helper && !o.animate && (/static/).test(ce.css('position')))			$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });	}});$.ui.plugin.add("resizable", "ghost", {	start: function(event, ui) {		var self = $(this).data("resizable"), o = self.options, cs = self.size;		self.ghost = self.originalElement.clone();		self.ghost			.css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 })			.addClass('ui-resizable-ghost')			.addClass(typeof o.ghost == 'string' ? o.ghost : '');		self.ghost.appendTo(self.helper);	},	resize: function(event, ui){		var self = $(this).data("resizable"), o = self.options;		if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width });	},	stop: function(event, ui){		var self = $(this).data("resizable"), o = self.options;		if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0));	}});$.ui.plugin.add("resizable", "grid", {	resize: function(event, ui) {		var self = $(this).data("resizable"), o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey;		o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid;		var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1);		if (/^(se|s|e)$/.test(a)) {			self.size.width = os.width + ox;			self.size.height = os.height + oy;		}		else if (/^(ne)$/.test(a)) {			self.size.width = os.width + ox;			self.size.height = os.height + oy;			self.position.top = op.top - oy;		}		else if (/^(sw)$/.test(a)) {			self.size.width = os.width + ox;			self.size.height = os.height + oy;			self.position.left = op.left - ox;		}		else {			self.size.width = os.width + ox;			self.size.height = os.height + oy;			self.position.top = op.top - oy;			self.position.left = op.left - ox;		}	}});var num = function(v) {	return parseInt(v, 10) || 0;};var isNumber = function(value) {	return !isNaN(parseInt(value, 10));};})(jQuery);(function( $, undefined ) {$.widget("ui.selectable", $.ui.mouse, {	options: {		appendTo: 'body',		autoRefresh: true,		distance: 0,		filter: '*',		tolerance: 'touch'	},	_create: function() {		var self = this;		this.element.addClass("ui-selectable");		this.dragged = false;				var selectees;		this.refresh = function() {			selectees = $(self.options.filter, self.element[0]);			selectees.each(function() {				var $this = $(this);				var pos = $this.offset();				$.data(this, "selectable-item", {					element: this,					$element: $this,					left: pos.left,					top: pos.top,					right: pos.left + $this.outerWidth(),					bottom: pos.top + $this.outerHeight(),					startselected: false,					selected: $this.hasClass('ui-selected'),					selecting: $this.hasClass('ui-selecting'),					unselecting: $this.hasClass('ui-unselecting')				});			});		};		this.refresh();		this.selectees = selectees.addClass("ui-selectee");		this._mouseInit();		this.helper = $("<div class='ui-selectable-helper'></div>");	},	destroy: function() {		this.selectees			.removeClass("ui-selectee")			.removeData("selectable-item");		this.element			.removeClass("ui-selectable ui-selectable-disabled")			.removeData("selectable")			.unbind(".selectable");		this._mouseDestroy();		return this;	},	_mouseStart: function(event) {		var self = this;		this.opos = [event.pageX, event.pageY];		if (this.options.disabled)			return;		var options = this.options;		this.selectees = $(options.filter, this.element[0]);		this._trigger("start", event);		$(options.appendTo).append(this.helper);				this.helper.css({			"left": event.clientX,			"top": event.clientY,			"width": 0,			"height": 0		});		if (options.autoRefresh) {			this.refresh();		}		this.selectees.filter('.ui-selected').each(function() {			var selectee = $.data(this, "selectable-item");			selectee.startselected = true;			if (!event.metaKey) {				selectee.$element.removeClass('ui-selected');				selectee.selected = false;				selectee.$element.addClass('ui-unselecting');				selectee.unselecting = true;								self._trigger("unselecting", event, {					unselecting: selectee.element				});			}		});		$(event.target).parents().andSelf().each(function() {			var selectee = $.data(this, "selectable-item");			if (selectee) {				var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected');				selectee.$element					.removeClass(doSelect ? "ui-unselecting" : "ui-selected")					.addClass(doSelect ? "ui-selecting" : "ui-unselecting");				selectee.unselecting = !doSelect;				selectee.selecting = doSelect;				selectee.selected = doSelect;								if (doSelect) {					self._trigger("selecting", event, {						selecting: selectee.element					});				} else {					self._trigger("unselecting", event, {						unselecting: selectee.element					});				}				return false;			}		});	},	_mouseDrag: function(event) {		var self = this;		this.dragged = true;		if (this.options.disabled)			return;		var options = this.options;		var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY;		if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; }		if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; }		this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1});		this.selectees.each(function() {			var selectee = $.data(this, "selectable-item");						if (!selectee || selectee.element == self.element[0])				return;			var hit = false;			if (options.tolerance == 'touch') {				hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );			} else if (options.tolerance == 'fit') {				hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);			}			if (hit) {								if (selectee.selected) {					selectee.$element.removeClass('ui-selected');					selectee.selected = false;				}				if (selectee.unselecting) {					selectee.$element.removeClass('ui-unselecting');					selectee.unselecting = false;				}				if (!selectee.selecting) {					selectee.$element.addClass('ui-selecting');					selectee.selecting = true;										self._trigger("selecting", event, {						selecting: selectee.element					});				}			} else {								if (selectee.selecting) {					if (event.metaKey && selectee.startselected) {						selectee.$element.removeClass('ui-selecting');						selectee.selecting = false;						selectee.$element.addClass('ui-selected');						selectee.selected = true;					} else {						selectee.$element.removeClass('ui-selecting');						selectee.selecting = false;						if (selectee.startselected) {							selectee.$element.addClass('ui-unselecting');							selectee.unselecting = true;						}												self._trigger("unselecting", event, {							unselecting: selectee.element						});					}				}				if (selectee.selected) {					if (!event.metaKey && !selectee.startselected) {						selectee.$element.removeClass('ui-selected');						selectee.selected = false;						selectee.$element.addClass('ui-unselecting');						selectee.unselecting = true;												self._trigger("unselecting", event, {							unselecting: selectee.element						});					}				}			}		});		return false;	},	_mouseStop: function(event) {		var self = this;		this.dragged = false;		var options = this.options;		$('.ui-unselecting', this.element[0]).each(function() {			var selectee = $.data(this, "selectable-item");			selectee.$element.removeClass('ui-unselecting');			selectee.unselecting = false;			selectee.startselected = false;			self._trigger("unselected", event, {				unselected: selectee.element			});		});		$('.ui-selecting', this.element[0]).each(function() {			var selectee = $.data(this, "selectable-item");			selectee.$element.removeClass('ui-selecting').addClass('ui-selected');			selectee.selecting = false;			selectee.selected = true;			selectee.startselected = true;			self._trigger("selected", event, {				selected: selectee.element			});		});		this._trigger("stop", event);		this.helper.remove();		return false;	}});$.extend($.ui.selectable, {	version: "1.8.12"});})(jQuery);(function( $, undefined ) {$.widget("ui.sortable", $.ui.mouse, {	widgetEventPrefix: "sort",	options: {		appendTo: "parent",		axis: false,		connectWith: false,		containment: false,		cursor: 'auto',		cursorAt: false,		dropOnEmpty: true,		forcePlaceholderSize: false,		forceHelperSize: false,		grid: false,		handle: false,		helper: "original",		items: '> *',		opacity: false,		placeholder: false,		revert: false,		scroll: true,		scrollSensitivity: 20,		scrollSpeed: 20,		scope: "default",		tolerance: "intersect",		zIndex: 1000	},	_create: function() {		var o = this.options;		this.containerCache = {};		this.element.addClass("ui-sortable");				this.refresh();				this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) || (/inline|table-cell/).test(this.items[0].item.css('display')) : false;				this.offset = this.element.offset();				this._mouseInit();	},	destroy: function() {		this.element			.removeClass("ui-sortable ui-sortable-disabled")			.removeData("sortable")			.unbind(".sortable");		this._mouseDestroy();		for ( var i = this.items.length - 1; i >= 0; i-- )			this.items[i].item.removeData("sortable-item");		return this;	},	_setOption: function(key, value){		if ( key === "disabled" ) {			this.options[ key ] = value;				this.widget()				[ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" );		} else {						$.Widget.prototype._setOption.apply(this, arguments);		}	},	_mouseCapture: function(event, overrideHandle) {		if (this.reverting) {			return false;		}		if(this.options.disabled || this.options.type == 'static') return false;				this._refreshItems(event);				var currentItem = null, self = this, nodes = $(event.target).parents().each(function() {			if($.data(this, 'sortable-item') == self) {				currentItem = $(this);				return false;			}		});		if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target);		if(!currentItem) return false;		if(this.options.handle && !overrideHandle) {			var validHandle = false;			$(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; });			if(!validHandle) return false;		}		this.currentItem = currentItem;		this._removeCurrentsFromItems();		return true;	},	_mouseStart: function(event, overrideHandle, noActivation) {		var o = this.options, self = this;		this.currentContainer = this;				this.refreshPositions();				this.helper = this._createHelper(event);				this._cacheHelperProportions();						this._cacheMargins();				this.scrollParent = this.helper.scrollParent();				this.offset = this.currentItem.offset();		this.offset = {			top: this.offset.top - this.margins.top,			left: this.offset.left - this.margins.left		};						this.helper.css("position", "absolute");		this.cssPosition = this.helper.css("position");		$.extend(this.offset, {			click: { 				left: event.pageX - this.offset.left,				top: event.pageY - this.offset.top			},			parent: this._getParentOffset(),			relative: this._getRelativeOffset() 		});				this.originalPosition = this._generatePosition(event);		this.originalPageX = event.pageX;		this.originalPageY = event.pageY;				(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));				this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };				if(this.helper[0] != this.currentItem[0]) {			this.currentItem.hide();		}				this._createPlaceholder();				if(o.containment)			this._setContainment();		if(o.cursor) { 			if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor");			$('body').css("cursor", o.cursor);		}		if(o.opacity) { 			if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity");			this.helper.css("opacity", o.opacity);		}		if(o.zIndex) { 			if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex");			this.helper.css("zIndex", o.zIndex);		}				if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML')			this.overflowOffset = this.scrollParent.offset();				this._trigger("start", event, this._uiHash());				if(!this._preserveHelperProportions)			this._cacheHelperProportions();				if(!noActivation) {			 for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", event, self._uiHash(this)); }		}				if($.ui.ddmanager)			$.ui.ddmanager.current = this;		if ($.ui.ddmanager && !o.dropBehaviour)			$.ui.ddmanager.prepareOffsets(this, event);		this.dragging = true;		this.helper.addClass("ui-sortable-helper");		this._mouseDrag(event); 		return true;	},	_mouseDrag: function(event) {				this.position = this._generatePosition(event);		this.positionAbs = this._convertPositionTo("absolute");		if (!this.lastPositionAbs) {			this.lastPositionAbs = this.positionAbs;		}				if(this.options.scroll) {			var o = this.options, scrolled = false;			if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') {				if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)					this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;				else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity)					this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;				if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)					this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;				else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity)					this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;			} else {				if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)					scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);				else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)					scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);				if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)					scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);				else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)					scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);			}			if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)				$.ui.ddmanager.prepareOffsets(this, event);		}				this.positionAbs = this._convertPositionTo("absolute");				if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';		if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';				for (var i = this.items.length - 1; i >= 0; i--) {						var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item);			if (!intersection) continue;			if(itemElement != this.currentItem[0] 				&&	this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement 				&&	!$.ui.contains(this.placeholder[0], itemElement) 				&& (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true)							) {				this.direction = intersection == 1 ? "down" : "up";				if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) {					this._rearrange(event, item);				} else {					break;				}				this._trigger("change", event, this._uiHash());				break;			}		}				this._contactContainers(event);				if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);				this._trigger('sort', event, this._uiHash());		this.lastPositionAbs = this.positionAbs;		return false;	},	_mouseStop: function(event, noPropagation) {		if(!event) return;				if ($.ui.ddmanager && !this.options.dropBehaviour)			$.ui.ddmanager.drop(this, event);		if(this.options.revert) {			var self = this;			var cur = self.placeholder.offset();			self.reverting = true;			$(this.helper).animate({				left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),				top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)			}, parseInt(this.options.revert, 10) || 500, function() {				self._clear(event);			});		} else {			this._clear(event, noPropagation);		}		return false;	},	cancel: function() {		var self = this;		if(this.dragging) {			this._mouseUp({ target: null });			if(this.options.helper == "original")				this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");			else				this.currentItem.show();						for (var i = this.containers.length - 1; i >= 0; i--){				this.containers[i]._trigger("deactivate", null, self._uiHash(this));				if(this.containers[i].containerCache.over) {					this.containers[i]._trigger("out", null, self._uiHash(this));					this.containers[i].containerCache.over = 0;				}			}		}		if (this.placeholder) {						if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]);			if(this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove();			$.extend(this, {				helper: null,				dragging: false,				reverting: false,				_noFinalSort: null			});			if(this.domPosition.prev) {				$(this.domPosition.prev).after(this.currentItem);			} else {				$(this.domPosition.parent).prepend(this.currentItem);			}		}		return this;	},	serialize: function(o) {		var items = this._getItemsAsjQuery(o && o.connected);		var str = []; o = o || {};		$(items).each(function() {			var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/));			if(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2]));		});		if(!str.length && o.key) {			str.push(o.key + '=');		}		return str.join('&');	},	toArray: function(o) {		var items = this._getItemsAsjQuery(o && o.connected);		var ret = []; o = o || {};		items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); });		return ret;	},		_intersectsWith: function(item) {		var x1 = this.positionAbs.left,			x2 = x1 + this.helperProportions.width,			y1 = this.positionAbs.top,			y2 = y1 + this.helperProportions.height;		var l = item.left,			r = l + item.width,			t = item.top,			b = t + item.height;		var dyClick = this.offset.click.top,			dxClick = this.offset.click.left;		var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r;		if(	   this.options.tolerance == "pointer"			|| this.options.forcePointerForContainers			|| (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])		) {			return isOverElement;		} else {			return (l < x1 + (this.helperProportions.width / 2) 				&& x2 - (this.helperProportions.width / 2) < r 				&& t < y1 + (this.helperProportions.height / 2) 				&& y2 - (this.helperProportions.height / 2) < b ); 		}	},	_intersectsWithPointer: function(item) {		var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),			isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),			isOverElement = isOverElementHeight && isOverElementWidth,			verticalDirection = this._getDragVerticalDirection(),			horizontalDirection = this._getDragHorizontalDirection();		if (!isOverElement)			return false;		return this.floating ?			( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 )			: ( verticalDirection && (verticalDirection == "down" ? 2 : 1) );	},	_intersectsWithSides: function(item) {		var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),			isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width),			verticalDirection = this._getDragVerticalDirection(),			horizontalDirection = this._getDragHorizontalDirection();		if (this.floating && horizontalDirection) {			return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf));		} else {			return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf));		}	},	_getDragVerticalDirection: function() {		var delta = this.positionAbs.top - this.lastPositionAbs.top;		return delta != 0 && (delta > 0 ? "down" : "up");	},	_getDragHorizontalDirection: function() {		var delta = this.positionAbs.left - this.lastPositionAbs.left;		return delta != 0 && (delta > 0 ? "right" : "left");	},	refresh: function(event) {		this._refreshItems(event);		this.refreshPositions();		return this;	},	_connectWith: function() {		var options = this.options;		return options.connectWith.constructor == String			? [options.connectWith]			: options.connectWith;	},		_getItemsAsjQuery: function(connected) {		var self = this;		var items = [];		var queries = [];		var connectWith = this._connectWith();		if(connectWith && connected) {			for (var i = connectWith.length - 1; i >= 0; i--){				var cur = $(connectWith[i]);				for (var j = cur.length - 1; j >= 0; j--){					var inst = $.data(cur[j], 'sortable');					if(inst && inst != this && !inst.options.disabled) {						queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]);					}				};			};		}		queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]);		for (var i = queries.length - 1; i >= 0; i--){			queries[i][0].each(function() {				items.push(this);			});		};		return $(items);	},	_removeCurrentsFromItems: function() {		var list = this.currentItem.find(":data(sortable-item)");		for (var i=0; i < this.items.length; i++) {			for (var j=0; j < list.length; j++) {				if(list[j] == this.items[i].item[0])					this.items.splice(i,1);			};		};	},	_refreshItems: function(event) {		this.items = [];		this.containers = [this];		var items = this.items;		var self = this;		var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]];		var connectWith = this._connectWith();		if(connectWith) {			for (var i = connectWith.length - 1; i >= 0; i--){				var cur = $(connectWith[i]);				for (var j = cur.length - 1; j >= 0; j--){					var inst = $.data(cur[j], 'sortable');					if(inst && inst != this && !inst.options.disabled) {						queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);						this.containers.push(inst);					}				};			};		}		for (var i = queries.length - 1; i >= 0; i--) {			var targetData = queries[i][1];			var _queries = queries[i][0];			for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) {				var item = $(_queries[j]);				item.data('sortable-item', targetData); 				items.push({					item: item,					instance: targetData,					width: 0, height: 0,					left: 0, top: 0				});			};		};	},	refreshPositions: function(fast) {				if(this.offsetParent && this.helper) {			this.offset.parent = this._getParentOffset();		}		for (var i = this.items.length - 1; i >= 0; i--){			var item = this.items[i];						if(item.instance != this.currentContainer && this.currentContainer && item.item[0] != this.currentItem[0])				continue;			var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;			if (!fast) {				item.width = t.outerWidth();				item.height = t.outerHeight();			}			var p = t.offset();			item.left = p.left;			item.top = p.top;		};		if(this.options.custom && this.options.custom.refreshContainers) {			this.options.custom.refreshContainers.call(this);		} else {			for (var i = this.containers.length - 1; i >= 0; i--){				var p = this.containers[i].element.offset();				this.containers[i].containerCache.left = p.left;				this.containers[i].containerCache.top = p.top;				this.containers[i].containerCache.width	= this.containers[i].element.outerWidth();				this.containers[i].containerCache.height = this.containers[i].element.outerHeight();			};		}		return this;	},	_createPlaceholder: function(that) {		var self = that || this, o = self.options;		if(!o.placeholder || o.placeholder.constructor == String) {			var className = o.placeholder;			o.placeholder = {				element: function() {					var el = $(document.createElement(self.currentItem[0].nodeName))						.addClass(className || self.currentItem[0].className+" ui-sortable-placeholder")						.removeClass("ui-sortable-helper")[0];					if(!className)						el.style.visibility = "hidden";					return el;				},				update: function(container, p) {															if(className && !o.forcePlaceholderSize) return;										if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); };					if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); };				}			};		}				self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem));				self.currentItem.after(self.placeholder);				o.placeholder.update(self, self.placeholder);	},	_contactContainers: function(event) {						var innermostContainer = null, innermostIndex = null;								for (var i = this.containers.length - 1; i >= 0; i--){						if($.ui.contains(this.currentItem[0], this.containers[i].element[0]))				continue;			if(this._intersectsWith(this.containers[i].containerCache)) {								if(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0]))					continue;				innermostContainer = this.containers[i]; 				innermostIndex = i;								} else {								if(this.containers[i].containerCache.over) {					this.containers[i]._trigger("out", event, this._uiHash(this));					this.containers[i].containerCache.over = 0;				}			}		}						if(!innermostContainer) return; 				if(this.containers.length === 1) {			this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));			this.containers[innermostIndex].containerCache.over = 1;		} else if(this.currentContainer != this.containers[innermostIndex]) { 						var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top']; 			for (var j = this.items.length - 1; j >= 0; j--) { 				if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue; 				var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top']; 				if(Math.abs(cur - base) < dist) { 					dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; 				} 			} 			if(!itemWithLeastDistance && !this.options.dropOnEmpty) 				return; 			this.currentContainer = this.containers[innermostIndex]; 			itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); 			this._trigger("change", event, this._uiHash()); 			this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); 						this.options.placeholder.update(this.currentContainer, this.placeholder); 					this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); 			this.containers[innermostIndex].containerCache.over = 1;		} 				},	_createHelper: function(event) {		var o = this.options;		var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem);		if(!helper.parents('body').length) 			$(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);		if(helper[0] == this.currentItem[0])			this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") };		if(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width());		if(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height());		return helper;	},	_adjustOffsetFromHelper: function(obj) {		if (typeof obj == 'string') {			obj = obj.split(' ');		}		if ($.isArray(obj)) {			obj = {left: +obj[0], top: +obj[1] || 0};		}		if ('left' in obj) {			this.offset.click.left = obj.left + this.margins.left;		}		if ('right' in obj) {			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;		}		if ('top' in obj) {			this.offset.click.top = obj.top + this.margins.top;		}		if ('bottom' in obj) {			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;		}	},	_getParentOffset: function() {				this.offsetParent = this.helper.offsetParent();		var po = this.offsetParent.offset();										if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {			po.left += this.scrollParent.scrollLeft();			po.top += this.scrollParent.scrollTop();		}		if((this.offsetParent[0] == document.body) 		|| (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) 			po = { top: 0, left: 0 };		return {			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),			left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)		};	},	_getRelativeOffset: function() {		if(this.cssPosition == "relative") {			var p = this.currentItem.position();			return {				top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),				left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()			};		} else {			return { top: 0, left: 0 };		}	},	_cacheMargins: function() {		this.margins = {			left: (parseInt(this.currentItem.css("marginLeft"),10) || 0),			top: (parseInt(this.currentItem.css("marginTop"),10) || 0)		};	},	_cacheHelperProportions: function() {		this.helperProportions = {			width: this.helper.outerWidth(),			height: this.helper.outerHeight()		};	},	_setContainment: function() {		var o = this.options;		if(o.containment == 'parent') o.containment = this.helper[0].parentNode;		if(o.containment == 'document' || o.containment == 'window') this.containment = [			0 - this.offset.relative.left - this.offset.parent.left,			0 - this.offset.relative.top - this.offset.parent.top,			$(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,			($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top		];		if(!(/^(document|window|parent)$/).test(o.containment)) {			var ce = $(o.containment)[0];			var co = $(o.containment).offset();			var over = ($(ce).css("overflow") != 'hidden');			this.containment = [				co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left,				co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top,				co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left,				co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top			];		}	},	_convertPositionTo: function(d, pos) {		if(!pos) pos = this.position;		var mod = d == "absolute" ? 1 : -1;		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);		return {			top: (				pos.top																					+ this.offset.relative.top * mod														+ this.offset.parent.top * mod															- ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)			),			left: (				pos.left																				+ this.offset.relative.left * mod														+ this.offset.parent.left * mod															- ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)			)		};	},	_generatePosition: function(event) {		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);										if(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) {			this.offset.relative = this._getRelativeOffset();		}		var pageX = event.pageX;		var pageY = event.pageY;				if(this.originalPosition) { 			if(this.containment) {				if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;				if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;				if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;				if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;			}			if(o.grid) {				var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];				pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;				var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];				pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;			}		}		return {			top: (				pageY																				- this.offset.click.top																	- this.offset.relative.top																- this.offset.parent.top																+ ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))			),			left: (				pageX																				- this.offset.click.left																- this.offset.relative.left																- this.offset.parent.left																+ ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))			)		};	},	_rearrange: function(event, i, a, hardRefresh) {		a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling));												this.counter = this.counter ? ++this.counter : 1;		var self = this, counter = this.counter;		window.setTimeout(function() {			if(counter == self.counter) self.refreshPositions(!hardRefresh); 		},0);	},	_clear: function(event, noPropagation) {		this.reverting = false;						var delayedTriggers = [], self = this;						if(!this._noFinalSort && this.currentItem[0].parentNode) this.placeholder.before(this.currentItem);		this._noFinalSort = null;		if(this.helper[0] == this.currentItem[0]) {			for(var i in this._storedCSS) {				if(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = '';			}			this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");		} else {			this.currentItem.show();		}		if(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); });		if((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); 		if(!$.ui.contains(this.element[0], this.currentItem[0])) { 			if(!noPropagation) delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); });			for (var i = this.containers.length - 1; i >= 0; i--){				if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) {					delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); };  }).call(this, this.containers[i]));					delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this));  }; }).call(this, this.containers[i]));				}			};		};				for (var i = this.containers.length - 1; i >= 0; i--){			if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); };  }).call(this, this.containers[i]));			if(this.containers[i].containerCache.over) {				delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); };  }).call(this, this.containers[i]));				this.containers[i].containerCache.over = 0;			}		}				if(this._storedCursor) $('body').css("cursor", this._storedCursor); 		if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); 		if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); 		this.dragging = false;		if(this.cancelHelperRemoval) {			if(!noPropagation) {				this._trigger("beforeStop", event, this._uiHash());				for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; 				this._trigger("stop", event, this._uiHash());			}			return false;		}		if(!noPropagation) this._trigger("beforeStop", event, this._uiHash());				this.placeholder[0].parentNode.removeChild(this.placeholder[0]);		if(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null;		if(!noPropagation) {			for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; 			this._trigger("stop", event, this._uiHash());		}		this.fromOutside = false;		return true;	},	_trigger: function() {		if ($.Widget.prototype._trigger.apply(this, arguments) === false) {			this.cancel();		}	},	_uiHash: function(inst) {		var self = inst || this;		return {			helper: self.helper,			placeholder: self.placeholder || $([]),			position: self.position,			originalPosition: self.originalPosition,			offset: self.positionAbs,			item: self.currentItem,			sender: inst ? inst.element : null		};	}});$.extend($.ui.sortable, {	version: "1.8.12"});})(jQuery);(function( $, undefined ) {$.widget( "ui.accordion", {	options: {		active: 0,		animated: "slide",		autoHeight: true,		clearStyle: false,		collapsible: false,		event: "click",		fillSpace: false,		header: "> li > :first-child,> :not(li):even",		icons: {			header: "ui-icon-triangle-1-e",			headerSelected: "ui-icon-triangle-1-s"		},		navigation: false,		navigationFilter: function() {			return this.href.toLowerCase() === location.href.toLowerCase();		}	},	_create: function() {		var self = this,			options = self.options;		self.running = 0;		self.element			.addClass( "ui-accordion ui-widget ui-helper-reset" )									.children( "li" )				.addClass( "ui-accordion-li-fix" );		self.headers = self.element.find( options.header )			.addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" )			.bind( "mouseenter.accordion", function() {				if ( options.disabled ) {					return;				}				$( this ).addClass( "ui-state-hover" );			})			.bind( "mouseleave.accordion", function() {				if ( options.disabled ) {					return;				}				$( this ).removeClass( "ui-state-hover" );			})			.bind( "focus.accordion", function() {				if ( options.disabled ) {					return;				}				$( this ).addClass( "ui-state-focus" );			})			.bind( "blur.accordion", function() {				if ( options.disabled ) {					return;				}				$( this ).removeClass( "ui-state-focus" );			});		self.headers.next()			.addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" );		if ( options.navigation ) {			var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 );			if ( current.length ) {				var header = current.closest( ".ui-accordion-header" );				if ( header.length ) {										self.active = header;				} else {										self.active = current.closest( ".ui-accordion-content" ).prev();				}			}		}		self.active = self._findActive( self.active || options.active )			.addClass( "ui-state-default ui-state-active" )			.toggleClass( "ui-corner-all" )			.toggleClass( "ui-corner-top" );		self.active.next().addClass( "ui-accordion-content-active" );		self._createIcons();		self.resize();						self.element.attr( "role", "tablist" );		self.headers			.attr( "role", "tab" )			.bind( "keydown.accordion", function( event ) {				return self._keydown( event );			})			.next()				.attr( "role", "tabpanel" );		self.headers			.not( self.active || "" )			.attr({				"aria-expanded": "false",				"aria-selected": "false",				tabIndex: -1			})			.next()				.hide();				if ( !self.active.length ) {			self.headers.eq( 0 ).attr( "tabIndex", 0 );		} else {			self.active				.attr({					"aria-expanded": "true",					"aria-selected": "true",					tabIndex: 0				});		}				if ( !$.browser.safari ) {			self.headers.find( "a" ).attr( "tabIndex", -1 );		}		if ( options.event ) {			self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) {				self._clickHandler.call( self, event, this );				event.preventDefault();			});		}	},	_createIcons: function() {		var options = this.options;		if ( options.icons ) {			$( "<span></span>" )				.addClass( "ui-icon " + options.icons.header )				.prependTo( this.headers );			this.active.children( ".ui-icon" )				.toggleClass(options.icons.header)				.toggleClass(options.icons.headerSelected);			this.element.addClass( "ui-accordion-icons" );		}	},	_destroyIcons: function() {		this.headers.children( ".ui-icon" ).remove();		this.element.removeClass( "ui-accordion-icons" );	},	destroy: function() {		var options = this.options;		this.element			.removeClass( "ui-accordion ui-widget ui-helper-reset" )			.removeAttr( "role" );		this.headers			.unbind( ".accordion" )			.removeClass( "ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )			.removeAttr( "role" )			.removeAttr( "aria-expanded" )			.removeAttr( "aria-selected" )			.removeAttr( "tabIndex" );		this.headers.find( "a" ).removeAttr( "tabIndex" );		this._destroyIcons();		var contents = this.headers.next()			.css( "display", "" )			.removeAttr( "role" )			.removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled" );		if ( options.autoHeight || options.fillHeight ) {			contents.css( "height", "" );		}		return $.Widget.prototype.destroy.call( this );	},	_setOption: function( key, value ) {		$.Widget.prototype._setOption.apply( this, arguments );					if ( key == "active" ) {			this.activate( value );		}		if ( key == "icons" ) {			this._destroyIcons();			if ( value ) {				this._createIcons();			}		}						if ( key == "disabled" ) {			this.headers.add(this.headers.next())				[ value ? "addClass" : "removeClass" ](					"ui-accordion-disabled ui-state-disabled" );		}	},	_keydown: function( event ) {		if ( this.options.disabled || event.altKey || event.ctrlKey ) {			return;		}		var keyCode = $.ui.keyCode,			length = this.headers.length,			currentIndex = this.headers.index( event.target ),			toFocus = false;		switch ( event.keyCode ) {			case keyCode.RIGHT:			case keyCode.DOWN:				toFocus = this.headers[ ( currentIndex + 1 ) % length ];				break;			case keyCode.LEFT:			case keyCode.UP:				toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];				break;			case keyCode.SPACE:			case keyCode.ENTER:				this._clickHandler( { target: event.target }, event.target );				event.preventDefault();		}		if ( toFocus ) {			$( event.target ).attr( "tabIndex", -1 );			$( toFocus ).attr( "tabIndex", 0 );			toFocus.focus();			return false;		}		return true;	},	resize: function() {		var options = this.options,			maxHeight;		if ( options.fillSpace ) {			if ( $.browser.msie ) {				var defOverflow = this.element.parent().css( "overflow" );				this.element.parent().css( "overflow", "hidden");			}			maxHeight = this.element.parent().height();			if ($.browser.msie) {				this.element.parent().css( "overflow", defOverflow );			}			this.headers.each(function() {				maxHeight -= $( this ).outerHeight( true );			});			this.headers.next()				.each(function() {					$( this ).height( Math.max( 0, maxHeight -						$( this ).innerHeight() + $( this ).height() ) );				})				.css( "overflow", "auto" );		} else if ( options.autoHeight ) {			maxHeight = 0;			this.headers.next()				.each(function() {					maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );				})				.height( maxHeight );		}		return this;	},	activate: function( index ) {				this.options.active = index;				var active = this._findActive( index )[ 0 ];		this._clickHandler( { target: active }, active );		return this;	},	_findActive: function( selector ) {		return selector			? typeof selector === "number"				? this.headers.filter( ":eq(" + selector + ")" )				: this.headers.not( this.headers.not( selector ) )			: selector === false				? $( [] )				: this.headers.filter( ":eq(0)" );	},		_clickHandler: function( event, target ) {		var options = this.options;		if ( options.disabled ) {			return;		}				if ( !event.target ) {			if ( !options.collapsible ) {				return;			}			this.active				.removeClass( "ui-state-active ui-corner-top" )				.addClass( "ui-state-default ui-corner-all" )				.children( ".ui-icon" )					.removeClass( options.icons.headerSelected )					.addClass( options.icons.header );			this.active.next().addClass( "ui-accordion-content-active" );			var toHide = this.active.next(),				data = {					options: options,					newHeader: $( [] ),					oldHeader: options.active,					newContent: $( [] ),					oldContent: toHide				},				toShow = ( this.active = $( [] ) );			this._toggle( toShow, toHide, data );			return;		}				var clicked = $( event.currentTarget || target ),			clickedIsActive = clicked[0] === this.active[0];						options.active = options.collapsible && clickedIsActive ?			false :			this.headers.index( clicked );				if ( this.running || ( !options.collapsible && clickedIsActive ) ) {			return;		}				var active = this.active,			toShow = clicked.next(),			toHide = this.active.next(),			data = {				options: options,				newHeader: clickedIsActive && options.collapsible ? $([]) : clicked,				oldHeader: this.active,				newContent: clickedIsActive && options.collapsible ? $([]) : toShow,				oldContent: toHide			},			down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );						this.active = clickedIsActive ? $([]) : clicked;		this._toggle( toShow, toHide, data, clickedIsActive, down );				active			.removeClass( "ui-state-active ui-corner-top" )			.addClass( "ui-state-default ui-corner-all" )			.children( ".ui-icon" )				.removeClass( options.icons.headerSelected )				.addClass( options.icons.header );		if ( !clickedIsActive ) {			clicked				.removeClass( "ui-state-default ui-corner-all" )				.addClass( "ui-state-active ui-corner-top" )				.children( ".ui-icon" )					.removeClass( options.icons.header )					.addClass( options.icons.headerSelected );			clicked				.next()				.addClass( "ui-accordion-content-active" );		}		return;	},	_toggle: function( toShow, toHide, data, clickedIsActive, down ) {		var self = this,			options = self.options;		self.toShow = toShow;		self.toHide = toHide;		self.data = data;		var complete = function() {			if ( !self ) {				return;			}			return self._completed.apply( self, arguments );		};				self._trigger( "changestart", null, self.data );				self.running = toHide.size() === 0 ? toShow.size() : toHide.size();		if ( options.animated ) {			var animOptions = {};			if ( options.collapsible && clickedIsActive ) {				animOptions = {					toShow: $( [] ),					toHide: toHide,					complete: complete,					down: down,					autoHeight: options.autoHeight || options.fillSpace				};			} else {				animOptions = {					toShow: toShow,					toHide: toHide,					complete: complete,					down: down,					autoHeight: options.autoHeight || options.fillSpace				};			}			if ( !options.proxied ) {				options.proxied = options.animated;			}			if ( !options.proxiedDuration ) {				options.proxiedDuration = options.duration;			}			options.animated = $.isFunction( options.proxied ) ?				options.proxied( animOptions ) :				options.proxied;			options.duration = $.isFunction( options.proxiedDuration ) ?				options.proxiedDuration( animOptions ) :				options.proxiedDuration;			var animations = $.ui.accordion.animations,				duration = options.duration,				easing = options.animated;			if ( easing && !animations[ easing ] && !$.easing[ easing ] ) {				easing = "slide";			}			if ( !animations[ easing ] ) {				animations[ easing ] = function( options ) {					this.slide( options, {						easing: easing,						duration: duration || 700					});				};			}			animations[ easing ]( animOptions );		} else {			if ( options.collapsible && clickedIsActive ) {				toShow.toggle();			} else {				toHide.hide();				toShow.show();			}			complete( true );		}				toHide.prev()			.attr({				"aria-expanded": "false",				"aria-selected": "false",				tabIndex: -1			})			.blur();		toShow.prev()			.attr({				"aria-expanded": "true",				"aria-selected": "true",				tabIndex: 0			})			.focus();	},	_completed: function( cancel ) {		this.running = cancel ? 0 : --this.running;		if ( this.running ) {			return;		}		if ( this.options.clearStyle ) {			this.toShow.add( this.toHide ).css({				height: "",				overflow: ""			});		}				this.toHide.removeClass( "ui-accordion-content-active" );				if ( this.toHide.length ) {			this.toHide.parent()[0].className = this.toHide.parent()[0].className;		}		this._trigger( "change", null, this.data );	}});$.extend( $.ui.accordion, {	version: "1.8.12",	animations: {		slide: function( options, additions ) {			options = $.extend({				easing: "swing",				duration: 300			}, options, additions );			if ( !options.toHide.size() ) {				options.toShow.animate({					height: "show",					paddingTop: "show",					paddingBottom: "show"				}, options );				return;			}			if ( !options.toShow.size() ) {				options.toHide.animate({					height: "hide",					paddingTop: "hide",					paddingBottom: "hide"				}, options );				return;			}			var overflow = options.toShow.css( "overflow" ),				percentDone = 0,				showProps = {},				hideProps = {},				fxAttrs = [ "height", "paddingTop", "paddingBottom" ],				originalWidth;						var s = options.toShow;			originalWidth = s[0].style.width;			s.width( parseInt( s.parent().width(), 10 )				- parseInt( s.css( "paddingLeft" ), 10 )				- parseInt( s.css( "paddingRight" ), 10 )				- ( parseInt( s.css( "borderLeftWidth" ), 10 ) || 0 )				- ( parseInt( s.css( "borderRightWidth" ), 10) || 0 ) );			$.each( fxAttrs, function( i, prop ) {				hideProps[ prop ] = "hide";				var parts = ( "" + $.css( options.toShow[0], prop ) ).match( /^([\d+-.]+)(.*)$/ );				showProps[ prop ] = {					value: parts[ 1 ],					unit: parts[ 2 ] || "px"				};			});			options.toShow.css({ height: 0, overflow: "hidden" }).show();			options.toHide				.filter( ":hidden" )					.each( options.complete )				.end()				.filter( ":visible" )				.animate( hideProps, {				step: function( now, settings ) {																				if ( settings.prop == "height" ) {						percentDone = ( settings.end - settings.start === 0 ) ? 0 :							( settings.now - settings.start ) / ( settings.end - settings.start );					}					options.toShow[ 0 ].style[ settings.prop ] =						( percentDone * showProps[ settings.prop ].value )						+ showProps[ settings.prop ].unit;				},				duration: options.duration,				easing: options.easing,				complete: function() {					if ( !options.autoHeight ) {						options.toShow.css( "height", "" );					}					options.toShow.css({						width: originalWidth,						overflow: overflow					});					options.complete();				}			});		},		bounceslide: function( options ) {			this.slide( options, {				easing: options.down ? "easeOutBounce" : "swing",				duration: options.down ? 1000 : 200			});		}	}});})( jQuery );(function( $, undefined ) {var requestIndex = 0;$.widget( "ui.autocomplete", {	options: {		appendTo: "body",		autoFocus: false,		delay: 300,		minLength: 1,		position: {			my: "left top",			at: "left bottom",			collision: "none"		},		source: null	},	pending: 0,	_create: function() {		var self = this,			doc = this.element[ 0 ].ownerDocument,			suppressKeyPress;		this.element			.addClass( "ui-autocomplete-input" )			.attr( "autocomplete", "off" )						.attr({				role: "textbox",				"aria-autocomplete": "list",				"aria-haspopup": "true"			})			.bind( "keydown.autocomplete", function( event ) {				if ( self.options.disabled || self.element.attr( "readonly" ) ) {					return;				}				suppressKeyPress = false;				var keyCode = $.ui.keyCode;				switch( event.keyCode ) {				case keyCode.PAGE_UP:					self._move( "previousPage", event );					break;				case keyCode.PAGE_DOWN:					self._move( "nextPage", event );					break;				case keyCode.UP:					self._move( "previous", event );										event.preventDefault();					break;				case keyCode.DOWN:					self._move( "next", event );										event.preventDefault();					break;				case keyCode.ENTER:				case keyCode.NUMPAD_ENTER:										if ( self.menu.active ) {																		suppressKeyPress = true;						event.preventDefault();					}									case keyCode.TAB:					if ( !self.menu.active ) {						return;					}					self.menu.select( event );					break;				case keyCode.ESCAPE:					self.element.val( self.term );					self.close( event );					break;				default:										clearTimeout( self.searching );					self.searching = setTimeout(function() {												if ( self.term != self.element.val() ) {							self.selectedItem = null;							self.search( null, event );						}					}, self.options.delay );					break;				}			})			.bind( "keypress.autocomplete", function( event ) {				if ( suppressKeyPress ) {					suppressKeyPress = false;					event.preventDefault();				}			})			.bind( "focus.autocomplete", function() {				if ( self.options.disabled ) {					return;				}				self.selectedItem = null;				self.previous = self.element.val();			})			.bind( "blur.autocomplete", function( event ) {				if ( self.options.disabled ) {					return;				}				clearTimeout( self.searching );								self.closing = setTimeout(function() {					self.close( event );					self._change( event );				}, 150 );			});		this._initSource();		this.response = function() {			return self._response.apply( self, arguments );		};		this.menu = $( "<ul></ul>" )			.addClass( "ui-autocomplete" )			.appendTo( $( this.options.appendTo || "body", doc )[0] )						.mousedown(function( event ) {																				var menuElement = self.menu.element[ 0 ];				if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {					setTimeout(function() {						$( document ).one( 'mousedown', function( event ) {							if ( event.target !== self.element[ 0 ] &&								event.target !== menuElement &&								!$.ui.contains( menuElement, event.target ) ) {								self.close();							}						});					}, 1 );				}								setTimeout(function() {					clearTimeout( self.closing );				}, 13);			})			.menu({				focus: function( event, ui ) {					var item = ui.item.data( "item.autocomplete" );					if ( false !== self._trigger( "focus", event, { item: item } ) ) {												if ( /^key/.test(event.originalEvent.type) ) {							self.element.val( item.value );						}					}				},				selected: function( event, ui ) {					var item = ui.item.data( "item.autocomplete" ),						previous = self.previous;										if ( self.element[0] !== doc.activeElement ) {						self.element.focus();						self.previous = previous;																								setTimeout(function() {							self.previous = previous;							self.selectedItem = item;						}, 1);					}					if ( false !== self._trigger( "select", event, { item: item } ) ) {						self.element.val( item.value );					}															self.term = self.element.val();					self.close( event );					self.selectedItem = item;				},				blur: function( event, ui ) {															if ( self.menu.element.is(":visible") &&						( self.element.val() !== self.term ) ) {						self.element.val( self.term );					}				}			})			.zIndex( this.element.zIndex() + 1 )						.css({ top: 0, left: 0 })			.hide()			.data( "menu" );		if ( $.fn.bgiframe ) {			 this.menu.element.bgiframe();		}	},	destroy: function() {		this.element			.removeClass( "ui-autocomplete-input" )			.removeAttr( "autocomplete" )			.removeAttr( "role" )			.removeAttr( "aria-autocomplete" )			.removeAttr( "aria-haspopup" );		this.menu.element.remove();		$.Widget.prototype.destroy.call( this );	},	_setOption: function( key, value ) {		$.Widget.prototype._setOption.apply( this, arguments );		if ( key === "source" ) {			this._initSource();		}		if ( key === "appendTo" ) {			this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] )		}		if ( key === "disabled" && value && this.xhr ) {			this.xhr.abort();		}	},	_initSource: function() {		var self = this,			array,			url;		if ( $.isArray(this.options.source) ) {			array = this.options.source;			this.source = function( request, response ) {				response( $.ui.autocomplete.filter(array, request.term) );			};		} else if ( typeof this.options.source === "string" ) {			url = this.options.source;			this.source = function( request, response ) {				if ( self.xhr ) {					self.xhr.abort();				}				self.xhr = $.ajax({					url: url,					data: request,					dataType: "json",					autocompleteRequest: ++requestIndex,					success: function( data, status ) {						if ( this.autocompleteRequest === requestIndex ) {							response( data );						}					},					error: function() {						if ( this.autocompleteRequest === requestIndex ) {							response( [] );						}					}				});			};		} else {			this.source = this.options.source;		}	},	search: function( value, event ) {		value = value != null ? value : this.element.val();				this.term = this.element.val();		if ( value.length < this.options.minLength ) {			return this.close( event );		}		clearTimeout( this.closing );		if ( this._trigger( "search", event ) === false ) {			return;		}		return this._search( value );	},	_search: function( value ) {		this.pending++;		this.element.addClass( "ui-autocomplete-loading" );		this.source( { term: value }, this.response );	},	_response: function( content ) {		if ( !this.options.disabled && content && content.length ) {			content = this._normalize( content );			this._suggest( content );			this._trigger( "open" );		} else {			this.close();		}		this.pending--;		if ( !this.pending ) {			this.element.removeClass( "ui-autocomplete-loading" );		}	},	close: function( event ) {		clearTimeout( this.closing );		if ( this.menu.element.is(":visible") ) {			this.menu.element.hide();			this.menu.deactivate();			this._trigger( "close", event );		}	},		_change: function( event ) {		if ( this.previous !== this.element.val() ) {			this._trigger( "change", event, { item: this.selectedItem } );		}	},	_normalize: function( items ) {				if ( items.length && items[0].label && items[0].value ) {			return items;		}		return $.map( items, function(item) {			if ( typeof item === "string" ) {				return {					label: item,					value: item				};			}			return $.extend({				label: item.label || item.value,				value: item.value || item.label			}, item );		});	},	_suggest: function( items ) {		var ul = this.menu.element			.empty()			.zIndex( this.element.zIndex() + 1 );		this._renderMenu( ul, items );				this.menu.deactivate();		this.menu.refresh();				ul.show();		this._resizeMenu();		ul.position( $.extend({			of: this.element		}, this.options.position ));		if ( this.options.autoFocus ) {			this.menu.next( new $.Event("mouseover") );		}	},	_resizeMenu: function() {		var ul = this.menu.element;		ul.outerWidth( Math.max(			ul.width( "" ).outerWidth(),			this.element.outerWidth()		) );	},	_renderMenu: function( ul, items ) {		var self = this;		$.each( items, function( index, item ) {			self._renderItem( ul, item );		});	},	_renderItem: function( ul, item) {		return $( "<li></li>" )			.data( "item.autocomplete", item )			.append( $( "<a></a>" ).text( item.label ) )			.appendTo( ul );	},	_move: function( direction, event ) {		if ( !this.menu.element.is(":visible") ) {			this.search( null, event );			return;		}		if ( this.menu.first() && /^previous/.test(direction) ||				this.menu.last() && /^next/.test(direction) ) {			this.element.val( this.term );			this.menu.deactivate();			return;		}		this.menu[ direction ]( event );	},	widget: function() {		return this.menu.element;	}});$.extend( $.ui.autocomplete, {	escapeRegex: function( value ) {		return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");	},	filter: function(array, term) {		var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );		return $.grep( array, function(value) {			return matcher.test( value.label || value.value || value );		});	}});}( jQuery ));(function($) {$.widget("ui.menu", {	_create: function() {		var self = this;		this.element			.addClass("ui-menu ui-widget ui-widget-content ui-corner-all")			.attr({				role: "listbox",				"aria-activedescendant": "ui-active-menuitem"			})			.click(function( event ) {				if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {					return;				}								event.preventDefault();				self.select( event );			});		this.refresh();	},		refresh: function() {		var self = this;				var items = this.element.children("li:not(.ui-menu-item):has(a)")			.addClass("ui-menu-item")			.attr("role", "menuitem");				items.children("a")			.addClass("ui-corner-all")			.attr("tabindex", -1)						.mouseenter(function( event ) {				self.activate( event, $(this).parent() );			})			.mouseleave(function() {				self.deactivate();			});	},	activate: function( event, item ) {		this.deactivate();		if (this.hasScroll()) {			var offset = item.offset().top - this.element.offset().top,				scroll = this.element.attr("scrollTop"),				elementHeight = this.element.height();			if (offset < 0) {				this.element.attr("scrollTop", scroll + offset);			} else if (offset >= elementHeight) {				this.element.attr("scrollTop", scroll + offset - elementHeight + item.height());			}		}		this.active = item.eq(0)			.children("a")				.addClass("ui-state-hover")				.attr("id", "ui-active-menuitem")			.end();		this._trigger("focus", event, { item: item });	},	deactivate: function() {		if (!this.active) { return; }		this.active.children("a")			.removeClass("ui-state-hover")			.removeAttr("id");		this._trigger("blur");		this.active = null;	},	next: function(event) {		this.move("next", ".ui-menu-item:first", event);	},	previous: function(event) {		this.move("prev", ".ui-menu-item:last", event);	},	first: function() {		return this.active && !this.active.prevAll(".ui-menu-item").length;	},	last: function() {		return this.active && !this.active.nextAll(".ui-menu-item").length;	},	move: function(direction, edge, event) {		if (!this.active) {			this.activate(event, this.element.children(edge));			return;		}		var next = this.active[direction + "All"](".ui-menu-item").eq(0);		if (next.length) {			this.activate(event, next);		} else {			this.activate(event, this.element.children(edge));		}	},		nextPage: function(event) {		if (this.hasScroll()) {						if (!this.active || this.last()) {				this.activate(event, this.element.children(".ui-menu-item:first"));				return;			}			var base = this.active.offset().top,				height = this.element.height(),				result = this.element.children(".ui-menu-item").filter(function() {					var close = $(this).offset().top - base - height + $(this).height();										return close < 10 && close > -10;				});						if (!result.length) {				result = this.element.children(".ui-menu-item:last");			}			this.activate(event, result);		} else {			this.activate(event, this.element.children(".ui-menu-item")				.filter(!this.active || this.last() ? ":first" : ":last"));		}	},		previousPage: function(event) {		if (this.hasScroll()) {						if (!this.active || this.first()) {				this.activate(event, this.element.children(".ui-menu-item:last"));				return;			}			var base = this.active.offset().top,				height = this.element.height();				result = this.element.children(".ui-menu-item").filter(function() {					var close = $(this).offset().top - base + height - $(this).height();										return close < 10 && close > -10;				});						if (!result.length) {				result = this.element.children(".ui-menu-item:first");			}			this.activate(event, result);		} else {			this.activate(event, this.element.children(".ui-menu-item")				.filter(!this.active || this.first() ? ":last" : ":first"));		}	},	hasScroll: function() {		return this.element.height() < this.element.attr("scrollHeight");	},	select: function( event ) {		this._trigger("selected", event, { item: this.active });	}});}(jQuery));(function( $, undefined ) {var lastActive,	baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",	stateClasses = "ui-state-hover ui-state-active ",	typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",	formResetHandler = function( event ) {		$( ":ui-button", event.target.form ).each(function() {			var inst = $( this ).data( "button" );			setTimeout(function() {				inst.refresh();			}, 1 );		});	},	radioGroup = function( radio ) {		var name = radio.name,			form = radio.form,			radios = $( [] );		if ( name ) {			if ( form ) {				radios = $( form ).find( "[name='" + name + "']" );			} else {				radios = $( "[name='" + name + "']", radio.ownerDocument )					.filter(function() {						return !this.form;					});			}		}		return radios;	};$.widget( "ui.button", {	options: {		disabled: null,		text: true,		label: null,		icons: {			primary: null,			secondary: null		}	},	_create: function() {		this.element.closest( "form" )			.unbind( "reset.button" )			.bind( "reset.button", formResetHandler );		if ( typeof this.options.disabled !== "boolean" ) {			this.options.disabled = this.element.attr( "disabled" );		}		this._determineButtonType();		this.hasTitle = !!this.buttonElement.attr( "title" );		var self = this,			options = this.options,			toggleButton = this.type === "checkbox" || this.type === "radio",			hoverClass = "ui-state-hover" + ( !toggleButton ? " ui-state-active" : "" ),			focusClass = "ui-state-focus";		if ( options.label === null ) {			options.label = this.buttonElement.html();		}		if ( this.element.is( ":disabled" ) ) {			options.disabled = true;		}		this.buttonElement			.addClass( baseClasses )			.attr( "role", "button" )			.bind( "mouseenter.button", function() {				if ( options.disabled ) {					return;				}				$( this ).addClass( "ui-state-hover" );				if ( this === lastActive ) {					$( this ).addClass( "ui-state-active" );				}			})			.bind( "mouseleave.button", function() {				if ( options.disabled ) {					return;				}				$( this ).removeClass( hoverClass );			})			.bind( "focus.button", function() {								$( this ).addClass( focusClass );			})			.bind( "blur.button", function() {				$( this ).removeClass( focusClass );			});		if ( toggleButton ) {			this.element.bind( "change.button", function() {				self.refresh();			});		}		if ( this.type === "checkbox" ) {			this.buttonElement.bind( "click.button", function() {				if ( options.disabled ) {					return false;				}				$( this ).toggleClass( "ui-state-active" );				self.buttonElement.attr( "aria-pressed", self.element[0].checked );			});		} else if ( this.type === "radio" ) {			this.buttonElement.bind( "click.button", function() {				if ( options.disabled ) {					return false;				}				$( this ).addClass( "ui-state-active" );				self.buttonElement.attr( "aria-pressed", true );				var radio = self.element[ 0 ];				radioGroup( radio )					.not( radio )					.map(function() {						return $( this ).button( "widget" )[ 0 ];					})					.removeClass( "ui-state-active" )					.attr( "aria-pressed", false );			});		} else {			this.buttonElement				.bind( "mousedown.button", function() {					if ( options.disabled ) {						return false;					}					$( this ).addClass( "ui-state-active" );					lastActive = this;					$( document ).one( "mouseup", function() {						lastActive = null;					});				})				.bind( "mouseup.button", function() {					if ( options.disabled ) {						return false;					}					$( this ).removeClass( "ui-state-active" );				})				.bind( "keydown.button", function(event) {					if ( options.disabled ) {						return false;					}					if ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) {						$( this ).addClass( "ui-state-active" );					}				})				.bind( "keyup.button", function() {					$( this ).removeClass( "ui-state-active" );				});			if ( this.buttonElement.is("a") ) {				this.buttonElement.keyup(function(event) {					if ( event.keyCode === $.ui.keyCode.SPACE ) {												$( this ).click();					}				});			}		}								this._setOption( "disabled", options.disabled );	},	_determineButtonType: function() {		if ( this.element.is(":checkbox") ) {			this.type = "checkbox";		} else if ( this.element.is(":radio") ) {			this.type = "radio";		} else if ( this.element.is("input") ) {			this.type = "input";		} else {			this.type = "button";		}		if ( this.type === "checkbox" || this.type === "radio" ) {									var ancestor = this.element.parents().filter(":last"),				labelSelector = "label[for=" + this.element.attr("id") + "]";			this.buttonElement = ancestor.find( labelSelector );			if ( !this.buttonElement.length ) {				ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();				this.buttonElement = ancestor.filter( labelSelector );				if ( !this.buttonElement.length ) {					this.buttonElement = ancestor.find( labelSelector );				}			}			this.element.addClass( "ui-helper-hidden-accessible" );			var checked = this.element.is( ":checked" );			if ( checked ) {				this.buttonElement.addClass( "ui-state-active" );			}			this.buttonElement.attr( "aria-pressed", checked );		} else {			this.buttonElement = this.element;		}	},	widget: function() {		return this.buttonElement;	},	destroy: function() {		this.element			.removeClass( "ui-helper-hidden-accessible" );		this.buttonElement			.removeClass( baseClasses + " " + stateClasses + " " + typeClasses )			.removeAttr( "role" )			.removeAttr( "aria-pressed" )			.html( this.buttonElement.find(".ui-button-text").html() );		if ( !this.hasTitle ) {			this.buttonElement.removeAttr( "title" );		}		$.Widget.prototype.destroy.call( this );	},	_setOption: function( key, value ) {		$.Widget.prototype._setOption.apply( this, arguments );		if ( key === "disabled" ) {			if ( value ) {				this.element.attr( "disabled", true );			} else {				this.element.removeAttr( "disabled" );			}		}		this._resetButton();	},	refresh: function() {		var isDisabled = this.element.is( ":disabled" );		if ( isDisabled !== this.options.disabled ) {			this._setOption( "disabled", isDisabled );		}		if ( this.type === "radio" ) {			radioGroup( this.element[0] ).each(function() {				if ( $( this ).is( ":checked" ) ) {					$( this ).button( "widget" )						.addClass( "ui-state-active" )						.attr( "aria-pressed", true );				} else {					$( this ).button( "widget" )						.removeClass( "ui-state-active" )						.attr( "aria-pressed", false );				}			});		} else if ( this.type === "checkbox" ) {			if ( this.element.is( ":checked" ) ) {				this.buttonElement					.addClass( "ui-state-active" )					.attr( "aria-pressed", true );			} else {				this.buttonElement					.removeClass( "ui-state-active" )					.attr( "aria-pressed", false );			}		}	},	_resetButton: function() {		if ( this.type === "input" ) {			if ( this.options.label ) {				this.element.val( this.options.label );			}			return;		}		var buttonElement = this.buttonElement.removeClass( typeClasses ),			buttonText = $( "<span></span>" )				.addClass( "ui-button-text" )				.html( this.options.label )				.appendTo( buttonElement.empty() )				.text(),			icons = this.options.icons,			multipleIcons = icons.primary && icons.secondary,			buttonClasses = [];  		if ( icons.primary || icons.secondary ) {			if ( this.options.text ) {				buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );			}			if ( icons.primary ) {				buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" );			}			if ( icons.secondary ) {				buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" );			}			if ( !this.options.text ) {				buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" );				if ( !this.hasTitle ) {					buttonElement.attr( "title", buttonText );				}			}		} else {			buttonClasses.push( "ui-button-text-only" );		}		buttonElement.addClass( buttonClasses.join( " " ) );	}});$.widget( "ui.buttonset", {	options: {		items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)"	},	_create: function() {		this.element.addClass( "ui-buttonset" );	},		_init: function() {		this.refresh();	},	_setOption: function( key, value ) {		if ( key === "disabled" ) {			this.buttons.button( "option", key, value );		}		$.Widget.prototype._setOption.apply( this, arguments );	},		refresh: function() {		this.buttons = this.element.find( this.options.items )			.filter( ":ui-button" )				.button( "refresh" )			.end()			.not( ":ui-button" )				.button()			.end()			.map(function() {				return $( this ).button( "widget" )[ 0 ];			})				.removeClass( "ui-corner-all ui-corner-left ui-corner-right" )				.filter( ":first" )					.addClass( "ui-corner-left" )				.end()				.filter( ":last" )					.addClass( "ui-corner-right" )				.end()			.end();	},	destroy: function() {		this.element.removeClass( "ui-buttonset" );		this.buttons			.map(function() {				return $( this ).button( "widget" )[ 0 ];			})				.removeClass( "ui-corner-left ui-corner-right" )			.end()			.button( "destroy" );		$.Widget.prototype.destroy.call( this );	}});}( jQuery ) );(function( $, undefined ) {var uiDialogClasses =		'ui-dialog ' +		'ui-widget ' +		'ui-widget-content ' +		'ui-corner-all ',	sizeRelatedOptions = {		buttons: true,		height: true,		maxHeight: true,		maxWidth: true,		minHeight: true,		minWidth: true,		width: true	},	resizableRelatedOptions = {		maxHeight: true,		maxWidth: true,		minHeight: true,		minWidth: true	},		attrFn = $.attrFn || {		val: true,		css: true,		html: true,		text: true,		data: true,		width: true,		height: true,		offset: true,		click: true	};$.widget("ui.dialog", {	options: {		autoOpen: true,		buttons: {},		closeOnEscape: true,		closeText: 'close',		dialogClass: '',		draggable: true,		hide: null,		height: 'auto',		maxHeight: false,		maxWidth: false,		minHeight: 150,		minWidth: 150,		modal: false,		position: {			my: 'center',			at: 'center',			collision: 'fit',						using: function(pos) {				var topOffset = $(this).css(pos).offset().top;				if (topOffset < 0) {					$(this).css('top', pos.top - topOffset);				}			}		},		resizable: true,		show: null,		stack: true,		title: '',		width: 300,		zIndex: 1000	},	_create: function() {		this.originalTitle = this.element.attr('title');				if ( typeof this.originalTitle !== "string" ) {			this.originalTitle = "";		}		this.options.title = this.options.title || this.originalTitle;		var self = this,			options = self.options,			title = options.title || '&#160;',			titleId = $.ui.dialog.getTitleId(self.element),			uiDialog = (self.uiDialog = $('<div></div>'))				.appendTo(document.body)				.hide()				.addClass(uiDialogClasses + options.dialogClass)				.css({					zIndex: options.zIndex				})												.attr('tabIndex', -1).css('outline', 0).keydown(function(event) {					if (options.closeOnEscape && event.keyCode &&						event.keyCode === $.ui.keyCode.ESCAPE) {												self.close(event);						event.preventDefault();					}				})				.attr({					role: 'dialog',					'aria-labelledby': titleId				})				.mousedown(function(event) {					self.moveToTop(false, event);				}),			uiDialogContent = self.element				.show()				.removeAttr('title')				.addClass(					'ui-dialog-content ' +					'ui-widget-content')				.appendTo(uiDialog),			uiDialogTitlebar = (self.uiDialogTitlebar = $('<div></div>'))				.addClass(					'ui-dialog-titlebar ' +					'ui-widget-header ' +					'ui-corner-all ' +					'ui-helper-clearfix'				)				.prependTo(uiDialog),			uiDialogTitlebarClose = $('<a href="#"></a>')				.addClass(					'ui-dialog-titlebar-close ' +					'ui-corner-all'				)				.attr('role', 'button')				.hover(					function() {						uiDialogTitlebarClose.addClass('ui-state-hover');					},					function() {						uiDialogTitlebarClose.removeClass('ui-state-hover');					}				)				.focus(function() {					uiDialogTitlebarClose.addClass('ui-state-focus');				})				.blur(function() {					uiDialogTitlebarClose.removeClass('ui-state-focus');				})				.click(function(event) {					self.close(event);					return false;				})				.appendTo(uiDialogTitlebar),			uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>'))				.addClass(					'ui-icon ' +					'ui-icon-closethick'				)				.text(options.closeText)				.appendTo(uiDialogTitlebarClose),			uiDialogTitle = $('<span></span>')				.addClass('ui-dialog-title')				.attr('id', titleId)				.html(title)				.prependTo(uiDialogTitlebar);								if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {			options.beforeClose = options.beforeclose;		}		uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();		if (options.draggable && $.fn.draggable) {			self._makeDraggable();		}		if (options.resizable && $.fn.resizable) {			self._makeResizable();		}		self._createButtons(options.buttons);		self._isOpen = false;		if ($.fn.bgiframe) {			uiDialog.bgiframe();		}	},	_init: function() {		if ( this.options.autoOpen ) {			this.open();		}	},	destroy: function() {		var self = this;				if (self.overlay) {			self.overlay.destroy();		}		self.uiDialog.hide();		self.element			.unbind('.dialog')			.removeData('dialog')			.removeClass('ui-dialog-content ui-widget-content')			.hide().appendTo('body');		self.uiDialog.remove();		if (self.originalTitle) {			self.element.attr('title', self.originalTitle);		}		return self;	},	widget: function() {		return this.uiDialog;	},	close: function(event) {		var self = this,			maxZ, thisZ;				if (false === self._trigger('beforeClose', event)) {			return;		}		if (self.overlay) {			self.overlay.destroy();		}		self.uiDialog.unbind('keypress.ui-dialog');		self._isOpen = false;		if (self.options.hide) {			self.uiDialog.hide(self.options.hide, function() {				self._trigger('close', event);			});		} else {			self.uiDialog.hide();			self._trigger('close', event);		}		$.ui.dialog.overlay.resize();				if (self.options.modal) {			maxZ = 0;			$('.ui-dialog').each(function() {				if (this !== self.uiDialog[0]) {					thisZ = $(this).css('z-index');					if(!isNaN(thisZ)) {						maxZ = Math.max(maxZ, thisZ);					}				}			});			$.ui.dialog.maxZ = maxZ;		}		return self;	},	isOpen: function() {		return this._isOpen;	},			moveToTop: function(force, event) {		var self = this,			options = self.options,			saveScroll;		if ((options.modal && !force) ||			(!options.stack && !options.modal)) {			return self._trigger('focus', event);		}		if (options.zIndex > $.ui.dialog.maxZ) {			$.ui.dialog.maxZ = options.zIndex;		}		if (self.overlay) {			$.ui.dialog.maxZ += 1;			self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);		}						saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') };		$.ui.dialog.maxZ += 1;		self.uiDialog.css('z-index', $.ui.dialog.maxZ);		self.element.attr(saveScroll);		self._trigger('focus', event);		return self;	},	open: function() {		if (this._isOpen) { return; }		var self = this,			options = self.options,			uiDialog = self.uiDialog;		self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;		self._size();		self._position(options.position);		uiDialog.show(options.show);		self.moveToTop(true);				if (options.modal) {			uiDialog.bind('keypress.ui-dialog', function(event) {				if (event.keyCode !== $.ui.keyCode.TAB) {					return;				}				var tabbables = $(':tabbable', this),					first = tabbables.filter(':first'),					last  = tabbables.filter(':last');				if (event.target === last[0] && !event.shiftKey) {					first.focus(1);					return false;				} else if (event.target === first[0] && event.shiftKey) {					last.focus(1);					return false;				}			});		}						$(self.element.find(':tabbable').get().concat(			uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(				uiDialog.get()))).eq(0).focus();		self._isOpen = true;		self._trigger('open');		return self;	},	_createButtons: function(buttons) {		var self = this,			hasButtons = false,			uiDialogButtonPane = $('<div></div>')				.addClass(					'ui-dialog-buttonpane ' +					'ui-widget-content ' +					'ui-helper-clearfix'				),			uiButtonSet = $( "<div></div>" )				.addClass( "ui-dialog-buttonset" )				.appendTo( uiDialogButtonPane );				self.uiDialog.find('.ui-dialog-buttonpane').remove();		if (typeof buttons === 'object' && buttons !== null) {			$.each(buttons, function() {				return !(hasButtons = true);			});		}		if (hasButtons) {			$.each(buttons, function(name, props) {				props = $.isFunction( props ) ?					{ click: props, text: name } :					props;				var button = $('<button type="button"></button>')					.click(function() {						props.click.apply(self.element[0], arguments);					})					.appendTo(uiButtonSet);								$.each( props, function( key, value ) {					if ( key === "click" ) {						return;					}					if ( key in attrFn ) {						button[ key ]( value );					} else {						button.attr( key, value );					}				});				if ($.fn.button) {					button.button();				}			});			uiDialogButtonPane.appendTo(self.uiDialog);		}	},	_makeDraggable: function() {		var self = this,			options = self.options,			doc = $(document),			heightBeforeDrag;		function filteredUi(ui) {			return {				position: ui.position,				offset: ui.offset			};		}		self.uiDialog.draggable({			cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',			handle: '.ui-dialog-titlebar',			containment: 'document',			start: function(event, ui) {				heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();				$(this).height($(this).height()).addClass("ui-dialog-dragging");				self._trigger('dragStart', event, filteredUi(ui));			},			drag: function(event, ui) {				self._trigger('drag', event, filteredUi(ui));			},			stop: function(event, ui) {				options.position = [ui.position.left - doc.scrollLeft(),					ui.position.top - doc.scrollTop()];				$(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);				self._trigger('dragStop', event, filteredUi(ui));				$.ui.dialog.overlay.resize();			}		});	},	_makeResizable: function(handles) {		handles = (handles === undefined ? this.options.resizable : handles);		var self = this,			options = self.options,									position = self.uiDialog.css('position'),			resizeHandles = (typeof handles === 'string' ?				handles	:				'n,e,s,w,se,sw,ne,nw'			);		function filteredUi(ui) {			return {				originalPosition: ui.originalPosition,				originalSize: ui.originalSize,				position: ui.position,				size: ui.size			};		}		self.uiDialog.resizable({			cancel: '.ui-dialog-content',			containment: 'document',			alsoResize: self.element,			maxWidth: options.maxWidth,			maxHeight: options.maxHeight,			minWidth: options.minWidth,			minHeight: self._minHeight(),			handles: resizeHandles,			start: function(event, ui) {				$(this).addClass("ui-dialog-resizing");				self._trigger('resizeStart', event, filteredUi(ui));			},			resize: function(event, ui) {				self._trigger('resize', event, filteredUi(ui));			},			stop: function(event, ui) {				$(this).removeClass("ui-dialog-resizing");				options.height = $(this).height();				options.width = $(this).width();				self._trigger('resizeStop', event, filteredUi(ui));				$.ui.dialog.overlay.resize();			}		})		.css('position', position)		.find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');	},	_minHeight: function() {		var options = this.options;		if (options.height === 'auto') {			return options.minHeight;		} else {			return Math.min(options.minHeight, options.height);		}	},	_position: function(position) {		var myAt = [],			offset = [0, 0],			isVisible;		if (position) {								if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {				myAt = position.split ? position.split(' ') : [position[0], position[1]];				if (myAt.length === 1) {					myAt[1] = myAt[0];				}				$.each(['left', 'top'], function(i, offsetPosition) {					if (+myAt[i] === myAt[i]) {						offset[i] = myAt[i];						myAt[i] = offsetPosition;					}				});				position = {					my: myAt.join(" "),					at: myAt.join(" "),					offset: offset.join(" ")				};			} 			position = $.extend({}, $.ui.dialog.prototype.options.position, position);		} else {			position = $.ui.dialog.prototype.options.position;		}				isVisible = this.uiDialog.is(':visible');		if (!isVisible) {			this.uiDialog.show();		}		this.uiDialog						.css({ top: 0, left: 0 })			.position($.extend({ of: window }, position));		if (!isVisible) {			this.uiDialog.hide();		}	},	_setOptions: function( options ) {		var self = this,			resizableOptions = {},			resize = false;		$.each( options, function( key, value ) {			self._setOption( key, value );						if ( key in sizeRelatedOptions ) {				resize = true;			}			if ( key in resizableRelatedOptions ) {				resizableOptions[ key ] = value;			}		});		if ( resize ) {			this._size();		}		if ( this.uiDialog.is( ":data(resizable)" ) ) {			this.uiDialog.resizable( "option", resizableOptions );		}	},	_setOption: function(key, value){		var self = this,			uiDialog = self.uiDialog;		switch (key) {												case "beforeclose":				key = "beforeClose";				break;			case "buttons":				self._createButtons(value);				break;			case "closeText":								self.uiDialogTitlebarCloseText.text("" + value);				break;			case "dialogClass":				uiDialog					.removeClass(self.options.dialogClass)					.addClass(uiDialogClasses + value);				break;			case "disabled":				if (value) {					uiDialog.addClass('ui-dialog-disabled');				} else {					uiDialog.removeClass('ui-dialog-disabled');				}				break;			case "draggable":				var isDraggable = uiDialog.is( ":data(draggable)" );				if ( isDraggable && !value ) {					uiDialog.draggable( "destroy" );				}								if ( !isDraggable && value ) {					self._makeDraggable();				}				break;			case "position":				self._position(value);				break;			case "resizable":								var isResizable = uiDialog.is( ":data(resizable)" );				if (isResizable && !value) {					uiDialog.resizable('destroy');				}								if (isResizable && typeof value === 'string') {					uiDialog.resizable('option', 'handles', value);				}								if (!isResizable && value !== false) {					self._makeResizable(value);				}				break;			case "title":								$(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || '&#160;'));				break;		}		$.Widget.prototype._setOption.apply(self, arguments);	},	_size: function() {				var options = this.options,			nonContentHeight,			minContentHeight,			isVisible = this.uiDialog.is( ":visible" );				this.element.show().css({			width: 'auto',			minHeight: 0,			height: 0		});		if (options.minWidth > options.width) {			options.width = options.minWidth;		}						nonContentHeight = this.uiDialog.css({				height: 'auto',				width: options.width			})			.height();		minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );				if ( options.height === "auto" ) {						if ( $.support.minHeight ) {				this.element.css({					minHeight: minContentHeight,					height: "auto"				});			} else {				this.uiDialog.show();				var autoHeight = this.element.css( "height", "auto" ).height();				if ( !isVisible ) {					this.uiDialog.hide();				}				this.element.height( Math.max( autoHeight, minContentHeight ) );			}		} else {			this.element.height( Math.max( options.height - nonContentHeight, 0 ) );		}		if (this.uiDialog.is(':data(resizable)')) {			this.uiDialog.resizable('option', 'minHeight', this._minHeight());		}	}});$.extend($.ui.dialog, {	version: "1.8.12",	uuid: 0,	maxZ: 0,	getTitleId: function($el) {		var id = $el.attr('id');		if (!id) {			this.uuid += 1;			id = this.uuid;		}		return 'ui-dialog-title-' + id;	},	overlay: function(dialog) {		this.$el = $.ui.dialog.overlay.create(dialog);	}});$.extend($.ui.dialog.overlay, {	instances: [],		oldInstances: [],	maxZ: 0,	events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),		function(event) { return event + '.dialog-overlay'; }).join(' '),	create: function(dialog) {		if (this.instances.length === 0) {												setTimeout(function() {								if ($.ui.dialog.overlay.instances.length) {					$(document).bind($.ui.dialog.overlay.events, function(event) {																		if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {							return false;						}					});				}			}, 1);						$(document).bind('keydown.dialog-overlay', function(event) {				if (dialog.options.closeOnEscape && event.keyCode &&					event.keyCode === $.ui.keyCode.ESCAPE) {										dialog.close(event);					event.preventDefault();				}			});						$(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);		}		var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay'))			.appendTo(document.body)			.css({				width: this.width(),				height: this.height()			});		if ($.fn.bgiframe) {			$el.bgiframe();		}		this.instances.push($el);		return $el;	},	destroy: function($el) {		var indexOf = $.inArray($el, this.instances);		if (indexOf != -1){			this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);		}		if (this.instances.length === 0) {			$([document, window]).unbind('.dialog-overlay');		}		$el.remove();						var maxZ = 0;		$.each(this.instances, function() {			maxZ = Math.max(maxZ, this.css('z-index'));		});		this.maxZ = maxZ;	},	height: function() {		var scrollHeight,			offsetHeight;				if ($.browser.msie && $.browser.version < 7) {			scrollHeight = Math.max(				document.documentElement.scrollHeight,				document.body.scrollHeight			);			offsetHeight = Math.max(				document.documentElement.offsetHeight,				document.body.offsetHeight			);			if (scrollHeight < offsetHeight) {				return $(window).height() + 'px';			} else {				return scrollHeight + 'px';			}				} else {			return $(document).height() + 'px';		}	},	width: function() {		var scrollWidth,			offsetWidth;				if ($.browser.msie && $.browser.version < 7) {			scrollWidth = Math.max(				document.documentElement.scrollWidth,				document.body.scrollWidth			);			offsetWidth = Math.max(				document.documentElement.offsetWidth,				document.body.offsetWidth			);			if (scrollWidth < offsetWidth) {				return $(window).width() + 'px';			} else {				return scrollWidth + 'px';			}				} else {			return $(document).width() + 'px';		}	},	resize: function() {				var $overlays = $([]);		$.each($.ui.dialog.overlay.instances, function() {			$overlays = $overlays.add(this);		});		$overlays.css({			width: 0,			height: 0		}).css({			width: $.ui.dialog.overlay.width(),			height: $.ui.dialog.overlay.height()		});	}});$.extend($.ui.dialog.overlay.prototype, {	destroy: function() {		$.ui.dialog.overlay.destroy(this.$el);	}});}(jQuery));(function( $, undefined ) {var numPages = 5;$.widget( "ui.slider", $.ui.mouse, {	widgetEventPrefix: "slide",	options: {		animate: false,		distance: 0,		max: 100,		min: 0,		orientation: "horizontal",		range: false,		step: 1,		value: 0,		values: null	},	_create: function() {		var self = this,			o = this.options;		this._keySliding = false;		this._mouseSliding = false;		this._animateOff = true;		this._handleIndex = null;		this._detectOrientation();		this._mouseInit();		this.element			.addClass( "ui-slider" +				" ui-slider-" + this.orientation +				" ui-widget" +				" ui-widget-content" +				" ui-corner-all" );				if ( o.disabled ) {			this.element.addClass( "ui-slider-disabled ui-disabled" );		}		this.range = $([]);		if ( o.range ) {			if ( o.range === true ) {				this.range = $( "<div></div>" );				if ( !o.values ) {					o.values = [ this._valueMin(), this._valueMin() ];				}				if ( o.values.length && o.values.length !== 2 ) {					o.values = [ o.values[0], o.values[0] ];				}			} else {				this.range = $( "<div></div>" );			}			this.range				.appendTo( this.element )				.addClass( "ui-slider-range" );			if ( o.range === "min" || o.range === "max" ) {				this.range.addClass( "ui-slider-range-" + o.range );			}									this.range.addClass( "ui-widget-header" );		}		if ( $( ".ui-slider-handle", this.element ).length === 0 ) {			$( "<a href='#'></a>" )				.appendTo( this.element )				.addClass( "ui-slider-handle" );		}		if ( o.values && o.values.length ) {			while ( $(".ui-slider-handle", this.element).length < o.values.length ) {				$( "<a href='#'></a>" )					.appendTo( this.element )					.addClass( "ui-slider-handle" );			}		}		this.handles = $( ".ui-slider-handle", this.element )			.addClass( "ui-state-default" +				" ui-corner-all" );		this.handle = this.handles.eq( 0 );		this.handles.add( this.range ).filter( "a" )			.click(function( event ) {				event.preventDefault();			})			.hover(function() {				if ( !o.disabled ) {					$( this ).addClass( "ui-state-hover" );				}			}, function() {				$( this ).removeClass( "ui-state-hover" );			})			.focus(function() {				if ( !o.disabled ) {					$( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" );					$( this ).addClass( "ui-state-focus" );				} else {					$( this ).blur();				}			})			.blur(function() {				$( this ).removeClass( "ui-state-focus" );			});		this.handles.each(function( i ) {			$( this ).data( "index.ui-slider-handle", i );		});		this.handles			.keydown(function( event ) {				var ret = true,					index = $( this ).data( "index.ui-slider-handle" ),					allowed,					curVal,					newVal,					step;					if ( self.options.disabled ) {					return;				}					switch ( event.keyCode ) {					case $.ui.keyCode.HOME:					case $.ui.keyCode.END:					case $.ui.keyCode.PAGE_UP:					case $.ui.keyCode.PAGE_DOWN:					case $.ui.keyCode.UP:					case $.ui.keyCode.RIGHT:					case $.ui.keyCode.DOWN:					case $.ui.keyCode.LEFT:						ret = false;						if ( !self._keySliding ) {							self._keySliding = true;							$( this ).addClass( "ui-state-active" );							allowed = self._start( event, index );							if ( allowed === false ) {								return;							}						}						break;				}					step = self.options.step;				if ( self.options.values && self.options.values.length ) {					curVal = newVal = self.values( index );				} else {					curVal = newVal = self.value();				}					switch ( event.keyCode ) {					case $.ui.keyCode.HOME:						newVal = self._valueMin();						break;					case $.ui.keyCode.END:						newVal = self._valueMax();						break;					case $.ui.keyCode.PAGE_UP:						newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) );						break;					case $.ui.keyCode.PAGE_DOWN:						newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) );						break;					case $.ui.keyCode.UP:					case $.ui.keyCode.RIGHT:						if ( curVal === self._valueMax() ) {							return;						}						newVal = self._trimAlignValue( curVal + step );						break;					case $.ui.keyCode.DOWN:					case $.ui.keyCode.LEFT:						if ( curVal === self._valueMin() ) {							return;						}						newVal = self._trimAlignValue( curVal - step );						break;				}					self._slide( event, index, newVal );					return ret;				})			.keyup(function( event ) {				var index = $( this ).data( "index.ui-slider-handle" );					if ( self._keySliding ) {					self._keySliding = false;					self._stop( event, index );					self._change( event, index );					$( this ).removeClass( "ui-state-active" );				}				});		this._refreshValue();		this._animateOff = false;	},	destroy: function() {		this.handles.remove();		this.range.remove();		this.element			.removeClass( "ui-slider" +				" ui-slider-horizontal" +				" ui-slider-vertical" +				" ui-slider-disabled" +				" ui-widget" +				" ui-widget-content" +				" ui-corner-all" )			.removeData( "slider" )			.unbind( ".slider" );		this._mouseDestroy();		return this;	},	_mouseCapture: function( event ) {		var o = this.options,			position,			normValue,			distance,			closestHandle,			self,			index,			allowed,			offset,			mouseOverHandle;		if ( o.disabled ) {			return false;		}		this.elementSize = {			width: this.element.outerWidth(),			height: this.element.outerHeight()		};		this.elementOffset = this.element.offset();		position = { x: event.pageX, y: event.pageY };		normValue = this._normValueFromMouse( position );		distance = this._valueMax() - this._valueMin() + 1;		self = this;		this.handles.each(function( i ) {			var thisDistance = Math.abs( normValue - self.values(i) );			if ( distance > thisDistance ) {				distance = thisDistance;				closestHandle = $( this );				index = i;			}		});								if( o.range === true && this.values(1) === o.min ) {			index += 1;			closestHandle = $( this.handles[index] );		}		allowed = this._start( event, index );		if ( allowed === false ) {			return false;		}		this._mouseSliding = true;		self._handleIndex = index;		closestHandle			.addClass( "ui-state-active" )			.focus();				offset = closestHandle.offset();		mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" );		this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {			left: event.pageX - offset.left - ( closestHandle.width() / 2 ),			top: event.pageY - offset.top -				( closestHandle.height() / 2 ) -				( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) -				( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) +				( parseInt( closestHandle.css("marginTop"), 10 ) || 0)		};		if ( !this.handles.hasClass( "ui-state-hover" ) ) {			this._slide( event, index, normValue );		}		this._animateOff = true;		return true;	},	_mouseStart: function( event ) {		return true;	},	_mouseDrag: function( event ) {		var position = { x: event.pageX, y: event.pageY },			normValue = this._normValueFromMouse( position );				this._slide( event, this._handleIndex, normValue );		return false;	},	_mouseStop: function( event ) {		this.handles.removeClass( "ui-state-active" );		this._mouseSliding = false;		this._stop( event, this._handleIndex );		this._change( event, this._handleIndex );		this._handleIndex = null;		this._clickOffset = null;		this._animateOff = false;		return false;	},		_detectOrientation: function() {		this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";	},	_normValueFromMouse: function( position ) {		var pixelTotal,			pixelMouse,			percentMouse,			valueTotal,			valueMouse;		if ( this.orientation === "horizontal" ) {			pixelTotal = this.elementSize.width;			pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );		} else {			pixelTotal = this.elementSize.height;			pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );		}		percentMouse = ( pixelMouse / pixelTotal );		if ( percentMouse > 1 ) {			percentMouse = 1;		}		if ( percentMouse < 0 ) {			percentMouse = 0;		}		if ( this.orientation === "vertical" ) {			percentMouse = 1 - percentMouse;		}		valueTotal = this._valueMax() - this._valueMin();		valueMouse = this._valueMin() + percentMouse * valueTotal;		return this._trimAlignValue( valueMouse );	},	_start: function( event, index ) {		var uiHash = {			handle: this.handles[ index ],			value: this.value()		};		if ( this.options.values && this.options.values.length ) {			uiHash.value = this.values( index );			uiHash.values = this.values();		}		return this._trigger( "start", event, uiHash );	},	_slide: function( event, index, newVal ) {		var otherVal,			newValues,			allowed;		if ( this.options.values && this.options.values.length ) {			otherVal = this.values( index ? 0 : 1 );			if ( ( this.options.values.length === 2 && this.options.range === true ) && 					( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )				) {				newVal = otherVal;			}			if ( newVal !== this.values( index ) ) {				newValues = this.values();				newValues[ index ] = newVal;								allowed = this._trigger( "slide", event, {					handle: this.handles[ index ],					value: newVal,					values: newValues				} );				otherVal = this.values( index ? 0 : 1 );				if ( allowed !== false ) {					this.values( index, newVal, true );				}			}		} else {			if ( newVal !== this.value() ) {								allowed = this._trigger( "slide", event, {					handle: this.handles[ index ],					value: newVal				} );				if ( allowed !== false ) {					this.value( newVal );				}			}		}	},	_stop: function( event, index ) {		var uiHash = {			handle: this.handles[ index ],			value: this.value()		};		if ( this.options.values && this.options.values.length ) {			uiHash.value = this.values( index );			uiHash.values = this.values();		}		this._trigger( "stop", event, uiHash );	},	_change: function( event, index ) {		if ( !this._keySliding && !this._mouseSliding ) {			var uiHash = {				handle: this.handles[ index ],				value: this.value()			};			if ( this.options.values && this.options.values.length ) {				uiHash.value = this.values( index );				uiHash.values = this.values();			}			this._trigger( "change", event, uiHash );		}	},	value: function( newValue ) {		if ( arguments.length ) {			this.options.value = this._trimAlignValue( newValue );			this._refreshValue();			this._change( null, 0 );			return;		}		return this._value();	},	values: function( index, newValue ) {		var vals,			newValues,			i;		if ( arguments.length > 1 ) {			this.options.values[ index ] = this._trimAlignValue( newValue );			this._refreshValue();			this._change( null, index );			return;		}		if ( arguments.length ) {			if ( $.isArray( arguments[ 0 ] ) ) {				vals = this.options.values;				newValues = arguments[ 0 ];				for ( i = 0; i < vals.length; i += 1 ) {					vals[ i ] = this._trimAlignValue( newValues[ i ] );					this._change( null, i );				}				this._refreshValue();			} else {				if ( this.options.values && this.options.values.length ) {					return this._values( index );				} else {					return this.value();				}			}		} else {			return this._values();		}	},	_setOption: function( key, value ) {		var i,			valsLength = 0;		if ( $.isArray( this.options.values ) ) {			valsLength = this.options.values.length;		}		$.Widget.prototype._setOption.apply( this, arguments );		switch ( key ) {			case "disabled":				if ( value ) {					this.handles.filter( ".ui-state-focus" ).blur();					this.handles.removeClass( "ui-state-hover" );					this.handles.attr( "disabled", "disabled" );					this.element.addClass( "ui-disabled" );				} else {					this.handles.removeAttr( "disabled" );					this.element.removeClass( "ui-disabled" );				}				break;			case "orientation":				this._detectOrientation();				this.element					.removeClass( "ui-slider-horizontal ui-slider-vertical" )					.addClass( "ui-slider-" + this.orientation );				this._refreshValue();				break;			case "value":				this._animateOff = true;				this._refreshValue();				this._change( null, 0 );				this._animateOff = false;				break;			case "values":				this._animateOff = true;				this._refreshValue();				for ( i = 0; i < valsLength; i += 1 ) {					this._change( null, i );				}				this._animateOff = false;				break;		}	},			_value: function() {		var val = this.options.value;		val = this._trimAlignValue( val );		return val;	},				_values: function( index ) {		var val,			vals,			i;		if ( arguments.length ) {			val = this.options.values[ index ];			val = this._trimAlignValue( val );			return val;		} else {									vals = this.options.values.slice();			for ( i = 0; i < vals.length; i+= 1) {				vals[ i ] = this._trimAlignValue( vals[ i ] );			}			return vals;		}	},			_trimAlignValue: function( val ) {		if ( val <= this._valueMin() ) {			return this._valueMin();		}		if ( val >= this._valueMax() ) {			return this._valueMax();		}		var step = ( this.options.step > 0 ) ? this.options.step : 1,			valModStep = (val - this._valueMin()) % step;			alignValue = val - valModStep;		if ( Math.abs(valModStep) * 2 >= step ) {			alignValue += ( valModStep > 0 ) ? step : ( -step );		}						return parseFloat( alignValue.toFixed(5) );	},	_valueMin: function() {		return this.options.min;	},	_valueMax: function() {		return this.options.max;	},		_refreshValue: function() {		var oRange = this.options.range,			o = this.options,			self = this,			animate = ( !this._animateOff ) ? o.animate : false,			valPercent,			_set = {},			lastValPercent,			value,			valueMin,			valueMax;		if ( this.options.values && this.options.values.length ) {			this.handles.each(function( i, j ) {				valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100;				_set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";				$( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );				if ( self.options.range === true ) {					if ( self.orientation === "horizontal" ) {						if ( i === 0 ) {							self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );						}						if ( i === 1 ) {							self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );						}					} else {						if ( i === 0 ) {							self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );						}						if ( i === 1 ) {							self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );						}					}				}				lastValPercent = valPercent;			});		} else {			value = this.value();			valueMin = this._valueMin();			valueMax = this._valueMax();			valPercent = ( valueMax !== valueMin ) ?					( value - valueMin ) / ( valueMax - valueMin ) * 100 :					0;			_set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";			this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );			if ( oRange === "min" && this.orientation === "horizontal" ) {				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate );			}			if ( oRange === "max" && this.orientation === "horizontal" ) {				this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );			}			if ( oRange === "min" && this.orientation === "vertical" ) {				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate );			}			if ( oRange === "max" && this.orientation === "vertical" ) {				this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );			}		}	}});$.extend( $.ui.slider, {	version: "1.8.12"});}(jQuery));(function( $, undefined ) {var tabId = 0,	listId = 0;function getNextTabId() {	return ++tabId;}function getNextListId() {	return ++listId;}$.widget( "ui.tabs", {	options: {		add: null,		ajaxOptions: null,		cache: false,		cookie: null, 		collapsible: false,		disable: null,		disabled: [],		enable: null,		event: "click",		fx: null, 		idPrefix: "ui-tabs-",		load: null,		panelTemplate: "<div></div>",		remove: null,		select: null,		show: null,		spinner: "<em>Loading&#8230;</em>",		tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"	},	_create: function() {		this._tabify( true );	},	_setOption: function( key, value ) {		if ( key == "selected" ) {			if (this.options.collapsible && value == this.options.selected ) {				return;			}			this.select( value );		} else {			this.options[ key ] = value;			this._tabify();		}	},	_tabId: function( a ) {		return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) ||			this.options.idPrefix + getNextTabId();	},	_sanitizeSelector: function( hash ) {				return hash.replace( /:/g, "\\:" );	},	_cookie: function() {		var cookie = this.cookie ||			( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() );		return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) );	},	_ui: function( tab, panel ) {		return {			tab: tab,			panel: panel,			index: this.anchors.index( tab )		};	},	_cleanup: function() {				this.lis.filter( ".ui-state-processing" )			.removeClass( "ui-state-processing" )			.find( "span:data(label.tabs)" )				.each(function() {					var el = $( this );					el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" );				});	},	_tabify: function( init ) {		var self = this,			o = this.options,			fragmentId = /^#.+/; 		this.list = this.element.find( "ol,ul" ).eq( 0 );		this.lis = $( " > li:has(a[href])", this.list );		this.anchors = this.lis.map(function() {			return $( "a", this )[ 0 ];		});		this.panels = $( [] );		this.anchors.each(function( i, a ) {			var href = $( a ).attr( "href" );																		var hrefBase = href.split( "#" )[ 0 ],				baseEl;			if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] ||					( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) {				href = a.hash;				a.href = href;			}						if ( fragmentId.test( href ) ) {				self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) );									} else if ( href && href !== "#" ) {								$.data( a, "href.tabs", href );												$.data( a, "load.tabs", href.replace( /#.*$/, "" ) );				var id = self._tabId( a );				a.href = "#" + id;				var $panel = self.element.find( "#" + id );				if ( !$panel.length ) {					$panel = $( o.panelTemplate )						.attr( "id", id )						.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )						.insertAfter( self.panels[ i - 1 ] || self.list );					$panel.data( "destroy.tabs", true );				}				self.panels = self.panels.add( $panel );						} else {				o.disabled.push( i );			}		});				if ( init ) {						this.element.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" );			this.list.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" );			this.lis.addClass( "ui-state-default ui-corner-top" );			this.panels.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" );																		if ( o.selected === undefined ) {				if ( location.hash ) {					this.anchors.each(function( i, a ) {						if ( a.hash == location.hash ) {							o.selected = i;							return false;						}					});				}				if ( typeof o.selected !== "number" && o.cookie ) {					o.selected = parseInt( self._cookie(), 10 );				}				if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) {					o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );				}				o.selected = o.selected || ( this.lis.length ? 0 : -1 );			} else if ( o.selected === null ) { 				o.selected = -1;			}						o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 )				? o.selected				: 0;												o.disabled = $.unique( o.disabled.concat(				$.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) {					return self.lis.index( n );				})			) ).sort();			if ( $.inArray( o.selected, o.disabled ) != -1 ) {				o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 );			}						this.panels.addClass( "ui-tabs-hide" );			this.lis.removeClass( "ui-tabs-selected ui-state-active" );						if ( o.selected >= 0 && this.anchors.length ) {				self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" );				this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" );								self.element.queue( "tabs", function() {					self._trigger( "show", null,						self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) );				});				this.load( o.selected );			}									$( window ).bind( "unload", function() {				self.lis.add( self.anchors ).unbind( ".tabs" );				self.lis = self.anchors = self.panels = null;			});				} else {			o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );		}						this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" );				if ( o.cookie ) {			this._cookie( o.selected, o.cookie );		}				for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) {			$( li )[ $.inArray( i, o.disabled ) != -1 &&								!$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" );		}				if ( o.cache === false ) {			this.anchors.removeData( "cache.tabs" );		}				this.lis.add( this.anchors ).unbind( ".tabs" );		if ( o.event !== "mouseover" ) {			var addState = function( state, el ) {				if ( el.is( ":not(.ui-state-disabled)" ) ) {					el.addClass( "ui-state-" + state );				}			};			var removeState = function( state, el ) {				el.removeClass( "ui-state-" + state );			};			this.lis.bind( "mouseover.tabs" , function() {				addState( "hover", $( this ) );			});			this.lis.bind( "mouseout.tabs", function() {				removeState( "hover", $( this ) );			});			this.anchors.bind( "focus.tabs", function() {				addState( "focus", $( this ).closest( "li" ) );			});			this.anchors.bind( "blur.tabs", function() {				removeState( "focus", $( this ).closest( "li" ) );			});		}				var hideFx, showFx;		if ( o.fx ) {			if ( $.isArray( o.fx ) ) {				hideFx = o.fx[ 0 ];				showFx = o.fx[ 1 ];			} else {				hideFx = showFx = o.fx;			}		}						function resetStyle( $el, fx ) {			$el.css( "display", "" );			if ( !$.support.opacity && fx.opacity ) {				$el[ 0 ].style.removeAttribute( "filter" );			}		}				var showTab = showFx			? function( clicked, $show ) {				$( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );				$show.hide().removeClass( "ui-tabs-hide" ) 					.animate( showFx, showFx.duration || "normal", function() {						resetStyle( $show, showFx );						self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );					});			}			: function( clicked, $show ) {				$( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );				$show.removeClass( "ui-tabs-hide" );				self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );			};				var hideTab = hideFx			? function( clicked, $hide ) {				$hide.animate( hideFx, hideFx.duration || "normal", function() {					self.lis.removeClass( "ui-tabs-selected ui-state-active" );					$hide.addClass( "ui-tabs-hide" );					resetStyle( $hide, hideFx );					self.element.dequeue( "tabs" );				});			}			: function( clicked, $hide, $show ) {				self.lis.removeClass( "ui-tabs-selected ui-state-active" );				$hide.addClass( "ui-tabs-hide" );				self.element.dequeue( "tabs" );			};				this.anchors.bind( o.event + ".tabs", function() {			var el = this,				$li = $(el).closest( "li" ),				$hide = self.panels.filter( ":not(.ui-tabs-hide)" ),				$show = self.element.find( self._sanitizeSelector( el.hash ) );															if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) ||				$li.hasClass( "ui-state-disabled" ) ||				$li.hasClass( "ui-state-processing" ) ||				self.panels.filter( ":animated" ).length ||				self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) {				this.blur();				return false;			}			o.selected = self.anchors.index( this );			self.abort();						if ( o.collapsible ) {				if ( $li.hasClass( "ui-tabs-selected" ) ) {					o.selected = -1;					if ( o.cookie ) {						self._cookie( o.selected, o.cookie );					}					self.element.queue( "tabs", function() {						hideTab( el, $hide );					}).dequeue( "tabs" );					this.blur();					return false;				} else if ( !$hide.length ) {					if ( o.cookie ) {						self._cookie( o.selected, o.cookie );					}					self.element.queue( "tabs", function() {						showTab( el, $show );					});										self.load( self.anchors.index( this ) );					this.blur();					return false;				}			}			if ( o.cookie ) {				self._cookie( o.selected, o.cookie );			}						if ( $show.length ) {				if ( $hide.length ) {					self.element.queue( "tabs", function() {						hideTab( el, $hide );					});				}				self.element.queue( "tabs", function() {					showTab( el, $show );				});				self.load( self.anchors.index( this ) );			} else {				throw "jQuery UI Tabs: Mismatching fragment identifier.";			}															if ( $.browser.msie ) {				this.blur();			}		});				this.anchors.bind( "click.tabs", function(){			return false;		});	},    _getIndex: function( index ) {						if ( typeof index == "string" ) {			index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) );		}		return index;	},	destroy: function() {		var o = this.options;		this.abort();		this.element			.unbind( ".tabs" )			.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" )			.removeData( "tabs" );		this.list.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" );		this.anchors.each(function() {			var href = $.data( this, "href.tabs" );			if ( href ) {				this.href = href;			}			var $this = $( this ).unbind( ".tabs" );			$.each( [ "href", "load", "cache" ], function( i, prefix ) {				$this.removeData( prefix + ".tabs" );			});		});		this.lis.unbind( ".tabs" ).add( this.panels ).each(function() {			if ( $.data( this, "destroy.tabs" ) ) {				$( this ).remove();			} else {				$( this ).removeClass([					"ui-state-default",					"ui-corner-top",					"ui-tabs-selected",					"ui-state-active",					"ui-state-hover",					"ui-state-focus",					"ui-state-disabled",					"ui-tabs-panel",					"ui-widget-content",					"ui-corner-bottom",					"ui-tabs-hide"				].join( " " ) );			}		});		if ( o.cookie ) {			this._cookie( null, o.cookie );		}		return this;	},	add: function( url, label, index ) {		if ( index === undefined ) {			index = this.anchors.length;		}		var self = this,			o = this.options,			$li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ),			id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] );		$li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true );				var $panel = self.element.find( "#" + id );		if ( !$panel.length ) {			$panel = $( o.panelTemplate )				.attr( "id", id )				.data( "destroy.tabs", true );		}		$panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" );		if ( index >= this.lis.length ) {			$li.appendTo( this.list );			$panel.appendTo( this.list[ 0 ].parentNode );		} else {			$li.insertBefore( this.lis[ index ] );			$panel.insertBefore( this.panels[ index ] );		}		o.disabled = $.map( o.disabled, function( n, i ) {			return n >= index ? ++n : n;		});		this._tabify();		if ( this.anchors.length == 1 ) {			o.selected = 0;			$li.addClass( "ui-tabs-selected ui-state-active" );			$panel.removeClass( "ui-tabs-hide" );			this.element.queue( "tabs", function() {				self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) );			});			this.load( 0 );		}		this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );		return this;	},	remove: function( index ) {		index = this._getIndex( index );		var o = this.options,			$li = this.lis.eq( index ).remove(),			$panel = this.panels.eq( index ).remove();						if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) {			this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) );		}		o.disabled = $.map(			$.grep( o.disabled, function(n, i) {				return n != index;			}),			function( n, i ) {				return n >= index ? --n : n;			});		this._tabify();		this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) );		return this;	},	enable: function( index ) {		index = this._getIndex( index );		var o = this.options;		if ( $.inArray( index, o.disabled ) == -1 ) {			return;		}		this.lis.eq( index ).removeClass( "ui-state-disabled" );		o.disabled = $.grep( o.disabled, function( n, i ) {			return n != index;		});		this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );		return this;	},	disable: function( index ) {		index = this._getIndex( index );		var self = this, o = this.options;				if ( index != o.selected ) {			this.lis.eq( index ).addClass( "ui-state-disabled" );			o.disabled.push( index );			o.disabled.sort();			this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );		}		return this;	},	select: function( index ) {		index = this._getIndex( index );		if ( index == -1 ) {			if ( this.options.collapsible && this.options.selected != -1 ) {				index = this.options.selected;			} else {				return this;			}		}		this.anchors.eq( index ).trigger( this.options.event + ".tabs" );		return this;	},	load: function( index ) {		index = this._getIndex( index );		var self = this,			o = this.options,			a = this.anchors.eq( index )[ 0 ],			url = $.data( a, "load.tabs" );		this.abort();				if ( !url || this.element.queue( "tabs" ).length !== 0 && $.data( a, "cache.tabs" ) ) {			this.element.dequeue( "tabs" );			return;		}				this.lis.eq( index ).addClass( "ui-state-processing" );		if ( o.spinner ) {			var span = $( "span", a );			span.data( "label.tabs", span.html() ).html( o.spinner );		}		this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, {			url: url,			success: function( r, s ) {				self.element.find( self._sanitizeSelector( a.hash ) ).html( r );								self._cleanup();				if ( o.cache ) {					$.data( a, "cache.tabs", true );				}				self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );				try {					o.ajaxOptions.success( r, s );				}				catch ( e ) {}			},			error: function( xhr, s, e ) {								self._cleanup();				self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );				try {																									o.ajaxOptions.error( xhr, s, index, a );				}				catch ( e ) {}			}		} ) );				self.element.dequeue( "tabs" );		return this;	},	abort: function() {				this.element.queue( [] );		this.panels.stop( false, true );						this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) );				if ( this.xhr ) {			this.xhr.abort();			delete this.xhr;		}				this._cleanup();		return this;	},	url: function( index, url ) {		this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url );		return this;	},	length: function() {		return this.anchors.length;	}});$.extend( $.ui.tabs, {	version: "1.8.12"});$.extend( $.ui.tabs.prototype, {	rotation: null,	rotate: function( ms, continuing ) {		var self = this,			o = this.options;		var rotate = self._rotate || ( self._rotate = function( e ) {			clearTimeout( self.rotation );			self.rotation = setTimeout(function() {				var t = o.selected;				self.select( ++t < self.anchors.length ? t : 0 );			}, ms );						if ( e ) {				e.stopPropagation();			}		});		var stop = self._unrotate || ( self._unrotate = !continuing			? function(e) {				if (e.clientX) { 					self.rotate(null);				}			}			: function( e ) {				t = o.selected;				rotate();			});				if ( ms ) {			this.element.bind( "tabsshow", rotate );			this.anchors.bind( o.event + ".tabs", stop );			rotate();				} else {			clearTimeout( self.rotation );			this.element.unbind( "tabsshow", rotate );			this.anchors.unbind( o.event + ".tabs", stop );			delete this._rotate;			delete this._unrotate;		}		return this;	}});})( jQuery );(function( $, undefined ) {$.widget( "ui.progressbar", {	options: {		value: 0,		max: 100	},	min: 0,	_create: function() {		this.element			.addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )			.attr({				role: "progressbar",				"aria-valuemin": this.min,				"aria-valuemax": this.options.max,				"aria-valuenow": this._value()			});		this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )			.appendTo( this.element );		this.oldValue = this._value();		this._refreshValue();	},	destroy: function() {		this.element			.removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )			.removeAttr( "role" )			.removeAttr( "aria-valuemin" )			.removeAttr( "aria-valuemax" )			.removeAttr( "aria-valuenow" );		this.valueDiv.remove();		$.Widget.prototype.destroy.apply( this, arguments );	},	value: function( newValue ) {		if ( newValue === undefined ) {			return this._value();		}		this._setOption( "value", newValue );		return this;	},	_setOption: function( key, value ) {		if ( key === "value" ) {			this.options.value = value;			this._refreshValue();			if ( this._value() === this.options.max ) {				this._trigger( "complete" );			}		}		$.Widget.prototype._setOption.apply( this, arguments );	},	_value: function() {		var val = this.options.value;				if ( typeof val !== "number" ) {			val = 0;		}		return Math.min( this.options.max, Math.max( this.min, val ) );	},	_percentage: function() {		return 100 * this._value() / this.options.max;	},	_refreshValue: function() {		var value = this.value();		var percentage = this._percentage();		if ( this.oldValue !== value ) {			this.oldValue = value;			this._trigger( "change" );		}		this.valueDiv			.toggle( value > this.min )			.toggleClass( "ui-corner-right", value === this.options.max )			.width( percentage.toFixed(0) + "%" );		this.element.attr( "aria-valuenow", value );	}});$.extend( $.ui.progressbar, {	version: "1.8.12"});})( jQuery );(function( $, undefined ) {$.extend($.ui, { datepicker: { version: "1.8.12" } });var PROP_NAME = 'datepicker';var dpuuid = new Date().getTime();function Datepicker() {	this.debug = false; 	this._curInst = null; 	this._keyEvent = false; 	this._disabledInputs = []; 	this._datepickerShowing = false; 	this._inDialog = false; 	this._mainDivId = 'ui-datepicker-div'; 	this._inlineClass = 'ui-datepicker-inline'; 	this._appendClass = 'ui-datepicker-append'; 	this._triggerClass = 'ui-datepicker-trigger'; 	this._dialogClass = 'ui-datepicker-dialog'; 	this._disableClass = 'ui-datepicker-disabled'; 	this._unselectableClass = 'ui-datepicker-unselectable'; 	this._currentClass = 'ui-datepicker-current-day'; 	this._dayOverClass = 'ui-datepicker-days-cell-over'; 	this.regional = []; 	this.regional[''] = { 		closeText: 'Done', 		prevText: 'Prev', 		nextText: 'Next', 		currentText: 'Today', 		monthNames: ['January','February','March','April','May','June',			'July','August','September','October','November','December'], 		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], 		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], 		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], 		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], 		weekHeader: 'Wk', 		dateFormat: 'mm/dd/yy', 		firstDay: 0, 		isRTL: false, 		showMonthAfterYear: false, 		yearSuffix: '' 	};	this._defaults = { 		showOn: 'focus', 					showAnim: 'fadeIn', 		showOptions: {}, 		defaultDate: null, 					appendText: '', 		buttonText: '...', 		buttonImage: '', 		buttonImageOnly: false, 		hideIfNoPrevNext: false, 					navigationAsDateFormat: false, 		gotoCurrent: false, 		changeMonth: false, 		changeYear: false, 		yearRange: 'c-10:c+10', 								showOtherMonths: false, 		selectOtherMonths: false, 		showWeek: false, 		calculateWeek: this.iso8601Week, 					shortYearCutoff: '+10', 								minDate: null, 		maxDate: null, 		duration: 'fast', 		beforeShowDay: null, 								beforeShow: null, 					onSelect: null, 		onChangeMonthYear: null, 		onClose: null, 		numberOfMonths: 1, 		showCurrentAtPos: 0, 		stepMonths: 1, 		stepBigMonths: 12, 		altField: '', 		altFormat: '', 		constrainInput: true, 		showButtonPanel: false, 		autoSize: false 	};	$.extend(this._defaults, this.regional['']);	this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>');}$.extend(Datepicker.prototype, {		markerClassName: 'hasDatepicker',		log: function () {		if (this.debug)			console.log.apply('', arguments);	},			_widgetDatepicker: function() {		return this.dpDiv;	},		setDefaults: function(settings) {		extendRemove(this._defaults, settings || {});		return this;	},		_attachDatepicker: function(target, settings) {				var inlineSettings = null;		for (var attrName in this._defaults) {			var attrValue = target.getAttribute('date:' + attrName);			if (attrValue) {				inlineSettings = inlineSettings || {};				try {					inlineSettings[attrName] = eval(attrValue);				} catch (err) {					inlineSettings[attrName] = attrValue;				}			}		}		var nodeName = target.nodeName.toLowerCase();		var inline = (nodeName == 'div' || nodeName == 'span');		if (!target.id) {			this.uuid += 1;			target.id = 'dp' + this.uuid;		}		var inst = this._newInst($(target), inline);		inst.settings = $.extend({}, settings || {}, inlineSettings || {});		if (nodeName == 'input') {			this._connectDatepicker(target, inst);		} else if (inline) {			this._inlineDatepicker(target, inst);		}	},		_newInst: function(target, inline) {		var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); 		return {id: id, input: target, 			selectedDay: 0, selectedMonth: 0, selectedYear: 0, 			drawMonth: 0, drawYear: 0, 			inline: inline, 			dpDiv: (!inline ? this.dpDiv : 			$('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))};	},		_connectDatepicker: function(target, inst) {		var input = $(target);		inst.append = $([]);		inst.trigger = $([]);		if (input.hasClass(this.markerClassName))			return;		this._attachments(input, inst);		input.addClass(this.markerClassName).keydown(this._doKeyDown).			keypress(this._doKeyPress).keyup(this._doKeyUp).			bind("setData.datepicker", function(event, key, value) {				inst.settings[key] = value;			}).bind("getData.datepicker", function(event, key) {				return this._get(inst, key);			});		this._autoSize(inst);		$.data(target, PROP_NAME, inst);	},		_attachments: function(input, inst) {		var appendText = this._get(inst, 'appendText');		var isRTL = this._get(inst, 'isRTL');		if (inst.append)			inst.append.remove();		if (appendText) {			inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');			input[isRTL ? 'before' : 'after'](inst.append);		}		input.unbind('focus', this._showDatepicker);		if (inst.trigger)			inst.trigger.remove();		var showOn = this._get(inst, 'showOn');		if (showOn == 'focus' || showOn == 'both') 			input.focus(this._showDatepicker);		if (showOn == 'button' || showOn == 'both') { 			var buttonText = this._get(inst, 'buttonText');			var buttonImage = this._get(inst, 'buttonImage');			inst.trigger = $(this._get(inst, 'buttonImageOnly') ?				$('<img/>').addClass(this._triggerClass).					attr({ src: buttonImage, alt: buttonText, title: buttonText }) :				$('<button type="button"></button>').addClass(this._triggerClass).					html(buttonImage == '' ? buttonText : $('<img/>').attr(					{ src:buttonImage, alt:buttonText, title:buttonText })));			input[isRTL ? 'before' : 'after'](inst.trigger);			inst.trigger.click(function() {				if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])					$.datepicker._hideDatepicker();				else					$.datepicker._showDatepicker(input[0]);				return false;			});		}	},		_autoSize: function(inst) {		if (this._get(inst, 'autoSize') && !inst.inline) {			var date = new Date(2009, 12 - 1, 20); 			var dateFormat = this._get(inst, 'dateFormat');			if (dateFormat.match(/[DM]/)) {				var findMax = function(names) {					var max = 0;					var maxI = 0;					for (var i = 0; i < names.length; i++) {						if (names[i].length > max) {							max = names[i].length;							maxI = i;						}					}					return maxI;				};				date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?					'monthNames' : 'monthNamesShort'))));				date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?					'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());			}			inst.input.attr('size', this._formatDate(inst, date).length);		}	},		_inlineDatepicker: function(target, inst) {		var divSpan = $(target);		if (divSpan.hasClass(this.markerClassName))			return;		divSpan.addClass(this.markerClassName).append(inst.dpDiv).			bind("setData.datepicker", function(event, key, value){				inst.settings[key] = value;			}).bind("getData.datepicker", function(event, key){				return this._get(inst, key);			});		$.data(target, PROP_NAME, inst);		this._setDate(inst, this._getDefaultDate(inst), true);		this._updateDatepicker(inst);		this._updateAlternate(inst);		inst.dpDiv.show();	},		_dialogDatepicker: function(input, date, onSelect, settings, pos) {		var inst = this._dialogInst; 		if (!inst) {			this.uuid += 1;			var id = 'dp' + this.uuid;			this._dialogInput = $('<input type="text" id="' + id +				'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');			this._dialogInput.keydown(this._doKeyDown);			$('body').append(this._dialogInput);			inst = this._dialogInst = this._newInst(this._dialogInput, false);			inst.settings = {};			$.data(this._dialogInput[0], PROP_NAME, inst);		}		extendRemove(inst.settings, settings || {});		date = (date && date.constructor == Date ? this._formatDate(inst, date) : date);		this._dialogInput.val(date);		this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);		if (!this._pos) {			var browserWidth = document.documentElement.clientWidth;			var browserHeight = document.documentElement.clientHeight;			var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;			var scrollY = document.documentElement.scrollTop || document.body.scrollTop;			this._pos = 				[(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];		}				this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');		inst.settings.onSelect = onSelect;		this._inDialog = true;		this.dpDiv.addClass(this._dialogClass);		this._showDatepicker(this._dialogInput[0]);		if ($.blockUI)			$.blockUI(this.dpDiv);		$.data(this._dialogInput[0], PROP_NAME, inst);		return this;	},		_destroyDatepicker: function(target) {		var $target = $(target);		var inst = $.data(target, PROP_NAME);		if (!$target.hasClass(this.markerClassName)) {			return;		}		var nodeName = target.nodeName.toLowerCase();		$.removeData(target, PROP_NAME);		if (nodeName == 'input') {			inst.append.remove();			inst.trigger.remove();			$target.removeClass(this.markerClassName).				unbind('focus', this._showDatepicker).				unbind('keydown', this._doKeyDown).				unbind('keypress', this._doKeyPress).				unbind('keyup', this._doKeyUp);		} else if (nodeName == 'div' || nodeName == 'span')			$target.removeClass(this.markerClassName).empty();	},		_enableDatepicker: function(target) {		var $target = $(target);		var inst = $.data(target, PROP_NAME);		if (!$target.hasClass(this.markerClassName)) {			return;		}		var nodeName = target.nodeName.toLowerCase();		if (nodeName == 'input') {			target.disabled = false;			inst.trigger.filter('button').				each(function() { this.disabled = false; }).end().				filter('img').css({opacity: '1.0', cursor: ''});		}		else if (nodeName == 'div' || nodeName == 'span') {			var inline = $target.children('.' + this._inlineClass);			inline.children().removeClass('ui-state-disabled');		}		this._disabledInputs = $.map(this._disabledInputs,			function(value) { return (value == target ? null : value); }); 	},		_disableDatepicker: function(target) {		var $target = $(target);		var inst = $.data(target, PROP_NAME);		if (!$target.hasClass(this.markerClassName)) {			return;		}		var nodeName = target.nodeName.toLowerCase();		if (nodeName == 'input') {			target.disabled = true;			inst.trigger.filter('button').				each(function() { this.disabled = true; }).end().				filter('img').css({opacity: '0.5', cursor: 'default'});		}		else if (nodeName == 'div' || nodeName == 'span') {			var inline = $target.children('.' + this._inlineClass);			inline.children().addClass('ui-state-disabled');		}		this._disabledInputs = $.map(this._disabledInputs,			function(value) { return (value == target ? null : value); }); 		this._disabledInputs[this._disabledInputs.length] = target;	},		_isDisabledDatepicker: function(target) {		if (!target) {			return false;		}		for (var i = 0; i < this._disabledInputs.length; i++) {			if (this._disabledInputs[i] == target)				return true;		}		return false;	},		_getInst: function(target) {		try {			return $.data(target, PROP_NAME);		}		catch (err) {			throw 'Missing instance data for this datepicker';		}	},		_optionDatepicker: function(target, name, value) {		var inst = this._getInst(target);		if (arguments.length == 2 && typeof name == 'string') {			return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :				(inst ? (name == 'all' ? $.extend({}, inst.settings) :				this._get(inst, name)) : null));		}		var settings = name || {};		if (typeof name == 'string') {			settings = {};			settings[name] = value;		}		if (inst) {			if (this._curInst == inst) {				this._hideDatepicker();			}			var date = this._getDateDatepicker(target, true);			var minDate = this._getMinMaxDate(inst, 'min');			var maxDate = this._getMinMaxDate(inst, 'max');			extendRemove(inst.settings, settings);						if (minDate !== null && settings['dateFormat'] !== undefined && settings['minDate'] === undefined)				inst.settings.minDate = this._formatDate(inst, minDate);			if (maxDate !== null && settings['dateFormat'] !== undefined && settings['maxDate'] === undefined)				inst.settings.maxDate = this._formatDate(inst, maxDate);			this._attachments($(target), inst);			this._autoSize(inst);			this._setDateDatepicker(target, date);			this._updateDatepicker(inst);		}	},		_changeDatepicker: function(target, name, value) {		this._optionDatepicker(target, name, value);	},		_refreshDatepicker: function(target) {		var inst = this._getInst(target);		if (inst) {			this._updateDatepicker(inst);		}	},		_setDateDatepicker: function(target, date) {		var inst = this._getInst(target);		if (inst) {			this._setDate(inst, date);			this._updateDatepicker(inst);			this._updateAlternate(inst);		}	},		_getDateDatepicker: function(target, noDefault) {		var inst = this._getInst(target);		if (inst && !inst.inline)			this._setDateFromField(inst, noDefault);		return (inst ? this._getDate(inst) : null);	},		_doKeyDown: function(event) {		var inst = $.datepicker._getInst(event.target);		var handled = true;		var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');		inst._keyEvent = true;		if ($.datepicker._datepickerShowing)			switch (event.keyCode) {				case 9: $.datepicker._hideDatepicker();						handled = false;						break; 				case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 									$.datepicker._currentClass + ')', inst.dpDiv);						if (sel[0])							$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);						else							$.datepicker._hideDatepicker();						return false; 						break; 				case 27: $.datepicker._hideDatepicker();						break; 				case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?							-$.datepicker._get(inst, 'stepBigMonths') :							-$.datepicker._get(inst, 'stepMonths')), 'M');						break; 				case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?							+$.datepicker._get(inst, 'stepBigMonths') :							+$.datepicker._get(inst, 'stepMonths')), 'M');						break; 				case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);						handled = event.ctrlKey || event.metaKey;						break; 				case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);						handled = event.ctrlKey || event.metaKey;						break; 				case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');						handled = event.ctrlKey || event.metaKey;												if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?									-$.datepicker._get(inst, 'stepBigMonths') :									-$.datepicker._get(inst, 'stepMonths')), 'M');												break;				case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');						handled = event.ctrlKey || event.metaKey;						break; 				case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');						handled = event.ctrlKey || event.metaKey;												if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?									+$.datepicker._get(inst, 'stepBigMonths') :									+$.datepicker._get(inst, 'stepMonths')), 'M');												break;				case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');						handled = event.ctrlKey || event.metaKey;						break; 				default: handled = false;			}		else if (event.keyCode == 36 && event.ctrlKey) 			$.datepicker._showDatepicker(this);		else {			handled = false;		}		if (handled) {			event.preventDefault();			event.stopPropagation();		}	},		_doKeyPress: function(event) {		var inst = $.datepicker._getInst(event.target);		if ($.datepicker._get(inst, 'constrainInput')) {			var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));			var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);			return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);		}	},		_doKeyUp: function(event) {		var inst = $.datepicker._getInst(event.target);		if (inst.input.val() != inst.lastVal) {			try {				var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),					(inst.input ? inst.input.val() : null),					$.datepicker._getFormatConfig(inst));				if (date) { 					$.datepicker._setDateFromField(inst);					$.datepicker._updateAlternate(inst);					$.datepicker._updateDatepicker(inst);				}			}			catch (event) {				$.datepicker.log(event);			}		}		return true;	},		_showDatepicker: function(input) {		input = input.target || input;		if (input.nodeName.toLowerCase() != 'input') 			input = $('input', input.parentNode)[0];		if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) 			return;		var inst = $.datepicker._getInst(input);		if ($.datepicker._curInst && $.datepicker._curInst != inst) {			$.datepicker._curInst.dpDiv.stop(true, true);		}		var beforeShow = $.datepicker._get(inst, 'beforeShow');		extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {}));		inst.lastVal = null;		$.datepicker._lastInput = input;		$.datepicker._setDateFromField(inst);		if ($.datepicker._inDialog) 			input.value = '';		if (!$.datepicker._pos) { 			$.datepicker._pos = $.datepicker._findPos(input);			$.datepicker._pos[1] += input.offsetHeight; 		}		var isFixed = false;		$(input).parents().each(function() {			isFixed |= $(this).css('position') == 'fixed';			return !isFixed;		});		if (isFixed && $.browser.opera) { 			$.datepicker._pos[0] -= document.documentElement.scrollLeft;			$.datepicker._pos[1] -= document.documentElement.scrollTop;		}		var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};		$.datepicker._pos = null;				inst.dpDiv.empty();				inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'});		$.datepicker._updateDatepicker(inst);						offset = $.datepicker._checkOffset(inst, offset, isFixed);		inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?			'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',			left: offset.left + 'px', top: offset.top + 'px'});		if (!inst.inline) {			var showAnim = $.datepicker._get(inst, 'showAnim');			var duration = $.datepicker._get(inst, 'duration');			var postProcess = function() {				$.datepicker._datepickerShowing = true;				var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); 				if( !! cover.length ){					var borders = $.datepicker._getBorders(inst.dpDiv);					cover.css({left: -borders[0], top: -borders[1],						width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()});				}			};			inst.dpDiv.zIndex($(input).zIndex()+1);			if ($.effects && $.effects[showAnim])				inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);			else				inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);			if (!showAnim || !duration)				postProcess();			if (inst.input.is(':visible') && !inst.input.is(':disabled'))				inst.input.focus();			$.datepicker._curInst = inst;		}	},		_updateDatepicker: function(inst) {		var self = this;		var borders = $.datepicker._getBorders(inst.dpDiv);		inst.dpDiv.empty().append(this._generateHTML(inst));		var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); 		if( !!cover.length ){ 			cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})		}		inst.dpDiv.find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a')				.bind('mouseout', function(){					$(this).removeClass('ui-state-hover');					if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover');					if(this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover');				})				.bind('mouseover', function(){					if (!self._isDisabledDatepicker( inst.inline ? inst.dpDiv.parent()[0] : inst.input[0])) {						$(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');						$(this).addClass('ui-state-hover');						if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover');						if(this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover');					}				})			.end()			.find('.' + this._dayOverClass + ' a')				.trigger('mouseover')			.end();		var numMonths = this._getNumberOfMonths(inst);		var cols = numMonths[1];		var width = 17;		if (cols > 1)			inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');		else			inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');		inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +			'Class']('ui-datepicker-multi');		inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +			'Class']('ui-datepicker-rtl');		if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&												inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)			inst.input.focus();				if( inst.yearshtml ){			var origyearshtml = inst.yearshtml;			setTimeout(function(){								if( origyearshtml === inst.yearshtml ){					inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);				}				origyearshtml = inst.yearshtml = null;			}, 0);		}	},		_getBorders: function(elem) {		var convert = function(value) {			return {thin: 1, medium: 2, thick: 3}[value] || value;		};		return [parseFloat(convert(elem.css('border-left-width'))),			parseFloat(convert(elem.css('border-top-width')))];	},		_checkOffset: function(inst, offset, isFixed) {		var dpWidth = inst.dpDiv.outerWidth();		var dpHeight = inst.dpDiv.outerHeight();		var inputWidth = inst.input ? inst.input.outerWidth() : 0;		var inputHeight = inst.input ? inst.input.outerHeight() : 0;		var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft();		var viewHeight = document.documentElement.clientHeight + $(document).scrollTop();		offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);		offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;		offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;				offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?			Math.abs(offset.left + dpWidth - viewWidth) : 0);		offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?			Math.abs(dpHeight + inputHeight) : 0);		return offset;	},		_findPos: function(obj) {		var inst = this._getInst(obj);		var isRTL = this._get(inst, 'isRTL');        while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) {            obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];        }        var position = $(obj).offset();	    return [position.left, position.top];	},		_hideDatepicker: function(input) {		var inst = this._curInst;		if (!inst || (input && inst != $.data(input, PROP_NAME)))			return;		if (this._datepickerShowing) {			var showAnim = this._get(inst, 'showAnim');			var duration = this._get(inst, 'duration');			var postProcess = function() {				$.datepicker._tidyDialog(inst);				this._curInst = null;			};			if ($.effects && $.effects[showAnim])				inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);			else				inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' :					(showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);			if (!showAnim)				postProcess();			var onClose = this._get(inst, 'onClose');			if (onClose)				onClose.apply((inst.input ? inst.input[0] : null),					[(inst.input ? inst.input.val() : ''), inst]);  			this._datepickerShowing = false;			this._lastInput = null;			if (this._inDialog) {				this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });				if ($.blockUI) {					$.unblockUI();					$('body').append(this.dpDiv);				}			}			this._inDialog = false;		}	},		_tidyDialog: function(inst) {		inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar');	},		_checkExternalClick: function(event) {		if (!$.datepicker._curInst)			return;		var $target = $(event.target);		if ($target[0].id != $.datepicker._mainDivId &&				$target.parents('#' + $.datepicker._mainDivId).length == 0 &&				!$target.hasClass($.datepicker.markerClassName) &&				!$target.hasClass($.datepicker._triggerClass) &&				$.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))			$.datepicker._hideDatepicker();	},		_adjustDate: function(id, offset, period) {		var target = $(id);		var inst = this._getInst(target[0]);		if (this._isDisabledDatepicker(target[0])) {			return;		}		this._adjustInstDate(inst, offset +			(period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), 			period);		this._updateDatepicker(inst);	},		_gotoToday: function(id) {		var target = $(id);		var inst = this._getInst(target[0]);		if (this._get(inst, 'gotoCurrent') && inst.currentDay) {			inst.selectedDay = inst.currentDay;			inst.drawMonth = inst.selectedMonth = inst.currentMonth;			inst.drawYear = inst.selectedYear = inst.currentYear;		}		else {			var date = new Date();			inst.selectedDay = date.getDate();			inst.drawMonth = inst.selectedMonth = date.getMonth();			inst.drawYear = inst.selectedYear = date.getFullYear();		}		this._notifyChange(inst);		this._adjustDate(target);	},		_selectMonthYear: function(id, select, period) {		var target = $(id);		var inst = this._getInst(target[0]);		inst._selectingMonthYear = false;		inst['selected' + (period == 'M' ? 'Month' : 'Year')] =		inst['draw' + (period == 'M' ? 'Month' : 'Year')] =			parseInt(select.options[select.selectedIndex].value,10);		this._notifyChange(inst);		this._adjustDate(target);	},		_clickMonthYear: function(id) {		var target = $(id);		var inst = this._getInst(target[0]);		if (inst.input && inst._selectingMonthYear) {			setTimeout(function() {				inst.input.focus();			}, 0);		}		inst._selectingMonthYear = !inst._selectingMonthYear;	},		_selectDay: function(id, month, year, td) {		var target = $(id);		if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {			return;		}		var inst = this._getInst(target[0]);		inst.selectedDay = inst.currentDay = $('a', td).html();		inst.selectedMonth = inst.currentMonth = month;		inst.selectedYear = inst.currentYear = year;		this._selectDate(id, this._formatDate(inst,			inst.currentDay, inst.currentMonth, inst.currentYear));	},		_clearDate: function(id) {		var target = $(id);		var inst = this._getInst(target[0]);		this._selectDate(target, '');	},		_selectDate: function(id, dateStr) {		var target = $(id);		var inst = this._getInst(target[0]);		dateStr = (dateStr != null ? dateStr : this._formatDate(inst));		if (inst.input)			inst.input.val(dateStr);		this._updateAlternate(inst);		var onSelect = this._get(inst, 'onSelect');		if (onSelect)			onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);  		else if (inst.input)			inst.input.trigger('change'); 		if (inst.inline)			this._updateDatepicker(inst);		else {			this._hideDatepicker();			this._lastInput = inst.input[0];			if (typeof(inst.input[0]) != 'object')				inst.input.focus(); 			this._lastInput = null;		}	},		_updateAlternate: function(inst) {		var altField = this._get(inst, 'altField');		if (altField) { 			var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat');			var date = this._getDate(inst);			var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));			$(altField).each(function() { $(this).val(dateStr); });		}	},		noWeekends: function(date) {		var day = date.getDay();		return [(day > 0 && day < 6), ''];	},		iso8601Week: function(date) {		var checkDate = new Date(date.getTime());				checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));		var time = checkDate.getTime();		checkDate.setMonth(0); 		checkDate.setDate(1);		return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;	},		parseDate: function (format, value, settings) {		if (format == null || value == null)			throw 'Invalid arguments';		value = (typeof value == 'object' ? value.toString() : value + '');		if (value == '')			return null;		var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;		shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :				new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));		var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;		var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;		var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;		var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;		var year = -1;		var month = -1;		var day = -1;		var doy = -1;		var literal = false;				var lookAhead = function(match) {			var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);			if (matches)				iFormat++;			return matches;		};				var getNumber = function(match) {			var isDoubled = lookAhead(match);			var size = (match == '@' ? 14 : (match == '!' ? 20 :				(match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));			var digits = new RegExp('^\\d{1,' + size + '}');			var num = value.substring(iValue).match(digits);			if (!num)				throw 'Missing number at position ' + iValue;			iValue += num[0].length;			return parseInt(num[0], 10);		};				var getName = function(match, shortNames, longNames) {			var names = (lookAhead(match) ? longNames : shortNames);			for (var i = 0; i < names.length; i++) {				if (value.substr(iValue, names[i].length).toLowerCase() == names[i].toLowerCase()) {					iValue += names[i].length;					return i + 1;				}			}			throw 'Unknown name at position ' + iValue;		};				var checkLiteral = function() {			if (value.charAt(iValue) != format.charAt(iFormat))				throw 'Unexpected literal at position ' + iValue;			iValue++;		};		var iValue = 0;		for (var iFormat = 0; iFormat < format.length; iFormat++) {			if (literal)				if (format.charAt(iFormat) == "'" && !lookAhead("'"))					literal = false;				else					checkLiteral();			else				switch (format.charAt(iFormat)) {					case 'd':						day = getNumber('d');						break;					case 'D':						getName('D', dayNamesShort, dayNames);						break;					case 'o':						doy = getNumber('o');						break;					case 'm':						month = getNumber('m');						break;					case 'M':						month = getName('M', monthNamesShort, monthNames);						break;					case 'y':						year = getNumber('y');						break;					case '@':						var date = new Date(getNumber('@'));						year = date.getFullYear();						month = date.getMonth() + 1;						day = date.getDate();						break;					case '!':						var date = new Date((getNumber('!') - this._ticksTo1970) / 10000);						year = date.getFullYear();						month = date.getMonth() + 1;						day = date.getDate();						break;					case "'":						if (lookAhead("'"))							checkLiteral();						else							literal = true;						break;					default:						checkLiteral();				}		}		if (year == -1)			year = new Date().getFullYear();		else if (year < 100)			year += new Date().getFullYear() - new Date().getFullYear() % 100 +				(year <= shortYearCutoff ? 0 : -100);		if (doy > -1) {			month = 1;			day = doy;			do {				var dim = this._getDaysInMonth(year, month - 1);				if (day <= dim)					break;				month++;				day -= dim;			} while (true);		}		var date = this._daylightSavingAdjust(new Date(year, month - 1, day));		if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)			throw 'Invalid date'; 		return date;	},		ATOM: 'yy-mm-dd', 	COOKIE: 'D, dd M yy',	ISO_8601: 'yy-mm-dd',	RFC_822: 'D, d M y',	RFC_850: 'DD, dd-M-y',	RFC_1036: 'D, d M y',	RFC_1123: 'D, d M yy',	RFC_2822: 'D, d M yy',	RSS: 'D, d M y', 	TICKS: '!',	TIMESTAMP: '@',	W3C: 'yy-mm-dd', 	_ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +		Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),		formatDate: function (format, date, settings) {		if (!date)			return '';		var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;		var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;		var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;		var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;				var lookAhead = function(match) {			var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);			if (matches)				iFormat++;			return matches;		};				var formatNumber = function(match, value, len) {			var num = '' + value;			if (lookAhead(match))				while (num.length < len)					num = '0' + num;			return num;		};				var formatName = function(match, value, shortNames, longNames) {			return (lookAhead(match) ? longNames[value] : shortNames[value]);		};		var output = '';		var literal = false;		if (date)			for (var iFormat = 0; iFormat < format.length; iFormat++) {				if (literal)					if (format.charAt(iFormat) == "'" && !lookAhead("'"))						literal = false;					else						output += format.charAt(iFormat);				else					switch (format.charAt(iFormat)) {						case 'd':							output += formatNumber('d', date.getDate(), 2);							break;						case 'D':							output += formatName('D', date.getDay(), dayNamesShort, dayNames);							break;						case 'o':							output += formatNumber('o',								(date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000, 3);							break;						case 'm':							output += formatNumber('m', date.getMonth() + 1, 2);							break;						case 'M':							output += formatName('M', date.getMonth(), monthNamesShort, monthNames);							break;						case 'y':							output += (lookAhead('y') ? date.getFullYear() :								(date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);							break;						case '@':							output += date.getTime();							break;						case '!':							output += date.getTime() * 10000 + this._ticksTo1970;							break;						case "'":							if (lookAhead("'"))								output += "'";							else								literal = true;							break;						default:							output += format.charAt(iFormat);					}			}		return output;	},		_possibleChars: function (format) {		var chars = '';		var literal = false;				var lookAhead = function(match) {			var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);			if (matches)				iFormat++;			return matches;		};		for (var iFormat = 0; iFormat < format.length; iFormat++)			if (literal)				if (format.charAt(iFormat) == "'" && !lookAhead("'"))					literal = false;				else					chars += format.charAt(iFormat);			else				switch (format.charAt(iFormat)) {					case 'd': case 'm': case 'y': case '@':						chars += '0123456789';						break;					case 'D': case 'M':						return null; 					case "'":						if (lookAhead("'"))							chars += "'";						else							literal = true;						break;					default:						chars += format.charAt(iFormat);				}		return chars;	},		_get: function(inst, name) {		return inst.settings[name] !== undefined ?			inst.settings[name] : this._defaults[name];	},		_setDateFromField: function(inst, noDefault) {		if (inst.input.val() == inst.lastVal) {			return;		}		var dateFormat = this._get(inst, 'dateFormat');		var dates = inst.lastVal = inst.input ? inst.input.val() : null;		var date, defaultDate;		date = defaultDate = this._getDefaultDate(inst);		var settings = this._getFormatConfig(inst);		try {			date = this.parseDate(dateFormat, dates, settings) || defaultDate;		} catch (event) {			this.log(event);			dates = (noDefault ? '' : dates);		}		inst.selectedDay = date.getDate();		inst.drawMonth = inst.selectedMonth = date.getMonth();		inst.drawYear = inst.selectedYear = date.getFullYear();		inst.currentDay = (dates ? date.getDate() : 0);		inst.currentMonth = (dates ? date.getMonth() : 0);		inst.currentYear = (dates ? date.getFullYear() : 0);		this._adjustInstDate(inst);	},		_getDefaultDate: function(inst) {		return this._restrictMinMax(inst,			this._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));	},		_determineDate: function(inst, date, defaultDate) {		var offsetNumeric = function(offset) {			var date = new Date();			date.setDate(date.getDate() + offset);			return date;		};		var offsetString = function(offset) {			try {				return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),					offset, $.datepicker._getFormatConfig(inst));			}			catch (e) {							}			var date = (offset.toLowerCase().match(/^c/) ?				$.datepicker._getDate(inst) : null) || new Date();			var year = date.getFullYear();			var month = date.getMonth();			var day = date.getDate();			var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;			var matches = pattern.exec(offset);			while (matches) {				switch (matches[2] || 'd') {					case 'd' : case 'D' :						day += parseInt(matches[1],10); break;					case 'w' : case 'W' :						day += parseInt(matches[1],10) * 7; break;					case 'm' : case 'M' :						month += parseInt(matches[1],10);						day = Math.min(day, $.datepicker._getDaysInMonth(year, month));						break;					case 'y': case 'Y' :						year += parseInt(matches[1],10);						day = Math.min(day, $.datepicker._getDaysInMonth(year, month));						break;				}				matches = pattern.exec(offset);			}			return new Date(year, month, day);		};		var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) :			(typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));		newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate);		if (newDate) {			newDate.setHours(0);			newDate.setMinutes(0);			newDate.setSeconds(0);			newDate.setMilliseconds(0);		}		return this._daylightSavingAdjust(newDate);	},		_daylightSavingAdjust: function(date) {		if (!date) return null;		date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);		return date;	},		_setDate: function(inst, date, noChange) {		var clear = !date;		var origMonth = inst.selectedMonth;		var origYear = inst.selectedYear;		var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));		inst.selectedDay = inst.currentDay = newDate.getDate();		inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();		inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();		if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange)			this._notifyChange(inst);		this._adjustInstDate(inst);		if (inst.input) {			inst.input.val(clear ? '' : this._formatDate(inst));		}	},		_getDate: function(inst) {		var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :			this._daylightSavingAdjust(new Date(			inst.currentYear, inst.currentMonth, inst.currentDay)));			return startDate;	},		_generateHTML: function(inst) {		var today = new Date();		today = this._daylightSavingAdjust(			new Date(today.getFullYear(), today.getMonth(), today.getDate())); 		var isRTL = this._get(inst, 'isRTL');		var showButtonPanel = this._get(inst, 'showButtonPanel');		var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext');		var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat');		var numMonths = this._getNumberOfMonths(inst);		var showCurrentAtPos = this._get(inst, 'showCurrentAtPos');		var stepMonths = this._get(inst, 'stepMonths');		var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);		var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :			new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));		var minDate = this._getMinMaxDate(inst, 'min');		var maxDate = this._getMinMaxDate(inst, 'max');		var drawMonth = inst.drawMonth - showCurrentAtPos;		var drawYear = inst.drawYear;		if (drawMonth < 0) {			drawMonth += 12;			drawYear--;		}		if (maxDate) {			var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),				maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));			maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);			while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {				drawMonth--;				if (drawMonth < 0) {					drawMonth = 11;					drawYear--;				}			}		}		inst.drawMonth = drawMonth;		inst.drawYear = drawYear;		var prevText = this._get(inst, 'prevText');		prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,			this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),			this._getFormatConfig(inst)));		var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?			'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + dpuuid +			'.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', \'M\');"' +			' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' :			(hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+ prevText +'"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));		var nextText = this._get(inst, 'nextText');		nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,			this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),			this._getFormatConfig(inst)));		var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?			'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + dpuuid +			'.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', \'M\');"' +			' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' :			(hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+ nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));		var currentText = this._get(inst, 'currentText');		var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);		currentText = (!navigationAsDateFormat ? currentText :			this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));		var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + dpuuid +			'.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + '</button>' : '');		var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') +			(this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + dpuuid +			'.datepicker._gotoToday(\'#' + inst.id + '\');"' +			'>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';		var firstDay = parseInt(this._get(inst, 'firstDay'),10);		firstDay = (isNaN(firstDay) ? 0 : firstDay);		var showWeek = this._get(inst, 'showWeek');		var dayNames = this._get(inst, 'dayNames');		var dayNamesShort = this._get(inst, 'dayNamesShort');		var dayNamesMin = this._get(inst, 'dayNamesMin');		var monthNames = this._get(inst, 'monthNames');		var monthNamesShort = this._get(inst, 'monthNamesShort');		var beforeShowDay = this._get(inst, 'beforeShowDay');		var showOtherMonths = this._get(inst, 'showOtherMonths');		var selectOtherMonths = this._get(inst, 'selectOtherMonths');		var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week;		var defaultDate = this._getDefaultDate(inst);		var html = '';		for (var row = 0; row < numMonths[0]; row++) {			var group = '';			for (var col = 0; col < numMonths[1]; col++) {				var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));				var cornerClass = ' ui-corner-all';				var calender = '';				if (isMultiMonth) {					calender += '<div class="ui-datepicker-group';					if (numMonths[1] > 1)						switch (col) {							case 0: calender += ' ui-datepicker-group-first';								cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;							case numMonths[1]-1: calender += ' ui-datepicker-group-last';								cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;							default: calender += ' ui-datepicker-group-middle'; cornerClass = ''; break;						}					calender += '">';				}				calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +					(/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +					(/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +					this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,					row > 0 || col > 0, monthNames, monthNamesShort) + 					'</div><table class="ui-datepicker-calendar"><thead>' +					'<tr>';				var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : '');				for (var dow = 0; dow < 7; dow++) { 					var day = (dow + firstDay) % 7;					thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' +						'<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';				}				calender += thead + '</tr></thead><tbody>';				var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);				if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)					inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);				var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;				var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); 				var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));				for (var dRow = 0; dRow < numRows; dRow++) { 					calender += '<tr>';					var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' +						this._get(inst, 'calculateWeek')(printDate) + '</td>');					for (var dow = 0; dow < 7; dow++) { 						var daySettings = (beforeShowDay ?							beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);						var otherMonth = (printDate.getMonth() != drawMonth);						var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||							(minDate && printDate < minDate) || (maxDate && printDate > maxDate);						tbody += '<td class="' +							((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + 							(otherMonth ? ' ui-datepicker-other-month' : '') + 							((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || 							(defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?														' ' + this._dayOverClass : '') + 							(unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled': '') +  							(otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + 							(printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') + 							(printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + 							((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + 							(unselectable ? '' : ' onclick="DP_jQuery_' + dpuuid + '.datepicker._selectDay(\'#' +							inst.id + '\',' + printDate.getMonth() + ',' + printDate.getFullYear() + ', this);return false;"') + '>' + 							(otherMonth && !showOtherMonths ? '&#xa0;' : 							(unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +							(printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +							(printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + 							(otherMonth ? ' ui-priority-secondary' : '') + 							'" href="#">' + printDate.getDate() + '</a>')) + '</td>'; 						printDate.setDate(printDate.getDate() + 1);						printDate = this._daylightSavingAdjust(printDate);					}					calender += tbody + '</tr>';				}				drawMonth++;				if (drawMonth > 11) {					drawMonth = 0;					drawYear++;				}				calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 							((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');				group += calender;			}			html += group;		}		html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ?			'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');		inst._keyEvent = false;		return html;	},		_generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,			secondary, monthNames, monthNamesShort) {		var changeMonth = this._get(inst, 'changeMonth');		var changeYear = this._get(inst, 'changeYear');		var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');		var html = '<div class="ui-datepicker-title">';		var monthHtml = '';				if (secondary || !changeMonth)			monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';		else {			var inMinYear = (minDate && minDate.getFullYear() == drawYear);			var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);			monthHtml += '<select class="ui-datepicker-month" ' +				'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +				'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +			 	'>';			for (var month = 0; month < 12; month++) {				if ((!inMinYear || month >= minDate.getMonth()) &&						(!inMaxYear || month <= maxDate.getMonth()))					monthHtml += '<option value="' + month + '"' +						(month == drawMonth ? ' selected="selected"' : '') +						'>' + monthNamesShort[month] + '</option>';			}			monthHtml += '</select>';		}		if (!showMonthAfterYear)			html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');				if ( !inst.yearshtml ) {			inst.yearshtml = '';			if (secondary || !changeYear)				html += '<span class="ui-datepicker-year">' + drawYear + '</span>';			else {								var years = this._get(inst, 'yearRange').split(':');				var thisYear = new Date().getFullYear();				var determineYear = function(value) {					var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :						(value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :						parseInt(value, 10)));					return (isNaN(year) ? thisYear : year);				};				var year = determineYear(years[0]);				var endYear = Math.max(year, determineYear(years[1] || ''));				year = (minDate ? Math.max(year, minDate.getFullYear()) : year);				endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);				inst.yearshtml += '<select class="ui-datepicker-year" ' +					'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +					'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +					'>';				for (; year <= endYear; year++) {					inst.yearshtml += '<option value="' + year + '"' +						(year == drawYear ? ' selected="selected"' : '') +						'>' + year + '</option>';				}				inst.yearshtml += '</select>';								if( ! $.browser.mozilla ){					html += inst.yearshtml;					inst.yearshtml = null;				} else {										html += '<select class="ui-datepicker-year"><option value="' + drawYear + '" selected="selected">' + drawYear + '</option></select>';				}			}		}		html += this._get(inst, 'yearSuffix');		if (showMonthAfterYear)			html += (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '') + monthHtml;		html += '</div>'; 		return html;	},		_adjustInstDate: function(inst, offset, period) {		var year = inst.drawYear + (period == 'Y' ? offset : 0);		var month = inst.drawMonth + (period == 'M' ? offset : 0);		var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +			(period == 'D' ? offset : 0);		var date = this._restrictMinMax(inst,			this._daylightSavingAdjust(new Date(year, month, day)));		inst.selectedDay = date.getDate();		inst.drawMonth = inst.selectedMonth = date.getMonth();		inst.drawYear = inst.selectedYear = date.getFullYear();		if (period == 'M' || period == 'Y')			this._notifyChange(inst);	},		_restrictMinMax: function(inst, date) {		var minDate = this._getMinMaxDate(inst, 'min');		var maxDate = this._getMinMaxDate(inst, 'max');		var newDate = (minDate && date < minDate ? minDate : date);		newDate = (maxDate && newDate > maxDate ? maxDate : newDate);		return newDate;	},		_notifyChange: function(inst) {		var onChange = this._get(inst, 'onChangeMonthYear');		if (onChange)			onChange.apply((inst.input ? inst.input[0] : null),				[inst.selectedYear, inst.selectedMonth + 1, inst]);	},		_getNumberOfMonths: function(inst) {		var numMonths = this._get(inst, 'numberOfMonths');		return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));	},		_getMinMaxDate: function(inst, minMax) {		return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);	},		_getDaysInMonth: function(year, month) {		return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();	},		_getFirstDayOfMonth: function(year, month) {		return new Date(year, month, 1).getDay();	},		_canAdjustMonth: function(inst, offset, curYear, curMonth) {		var numMonths = this._getNumberOfMonths(inst);		var date = this._daylightSavingAdjust(new Date(curYear,			curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));		if (offset < 0)			date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));		return this._isInRange(inst, date);	},		_isInRange: function(inst, date) {		var minDate = this._getMinMaxDate(inst, 'min');		var maxDate = this._getMinMaxDate(inst, 'max');		return ((!minDate || date.getTime() >= minDate.getTime()) &&			(!maxDate || date.getTime() <= maxDate.getTime()));	},		_getFormatConfig: function(inst) {		var shortYearCutoff = this._get(inst, 'shortYearCutoff');		shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :			new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));		return {shortYearCutoff: shortYearCutoff,			dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),			monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')};	},		_formatDate: function(inst, day, month, year) {		if (!day) {			inst.currentDay = inst.selectedDay;			inst.currentMonth = inst.selectedMonth;			inst.currentYear = inst.selectedYear;		}		var date = (day ? (typeof day == 'object' ? day :			this._daylightSavingAdjust(new Date(year, month, day))) :			this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));		return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));	}});function extendRemove(target, props) {	$.extend(target, props);	for (var name in props)		if (props[name] == null || props[name] == undefined)			target[name] = props[name];	return target;};function isArray(a) {	return (a && (($.browser.safari && typeof a == 'object' && a.length) ||		(a.constructor && a.constructor.toString().match(/\Array\(\)/))));};$.fn.datepicker = function(options){			if ( !this.length ) {		return this;	}			if (!$.datepicker.initialized) {		$(document).mousedown($.datepicker._checkExternalClick).			find('body').append($.datepicker.dpDiv);		$.datepicker.initialized = true;	}	var otherArgs = Array.prototype.slice.call(arguments, 1);	if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))		return $.datepicker['_' + options + 'Datepicker'].			apply($.datepicker, [this[0]].concat(otherArgs));	if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')		return $.datepicker['_' + options + 'Datepicker'].			apply($.datepicker, [this[0]].concat(otherArgs));	return this.each(function() {		typeof options == 'string' ?			$.datepicker['_' + options + 'Datepicker'].				apply($.datepicker, [this].concat(otherArgs)) :			$.datepicker._attachDatepicker(this, options);	});};$.datepicker = new Datepicker(); $.datepicker.initialized = false;$.datepicker.uuid = new Date().getTime();$.datepicker.version = "1.8.12";window['DP_jQuery_' + dpuuid] = $;})(jQuery);jQuery(function($){	$.datepicker.regional['de'] = {		closeText: 'schließen',		prevText: '&#x3c;zurück',		nextText: 'Vor&#x3e;',		currentText: 'heute',		monthNames: ['Januar','Februar','März','April','Mai','Juni',		'Juli','August','September','Oktober','November','Dezember'],		monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',		'Jul','Aug','Sep','Okt','Nov','Dez'],		dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],		dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],		dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],		weekHeader: 'Wo',		dateFormat: 'dd.mm.yy',		firstDay: 1,		isRTL: false,		showMonthAfterYear: false,		yearSuffix: ''};	$.datepicker.setDefaults($.datepicker.regional['de']);});;jQuery.effects || (function($, undefined) {$.effects = {};$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor',	'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'],function(i, attr) {	$.fx.step[attr] = function(fx) {		if (!fx.colorInit) {			fx.start = getColor(fx.elem, attr);			fx.end = getRGB(fx.end);			fx.colorInit = true;		}		fx.elem.style[attr] = 'rgb(' +			Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' +			Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' +			Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')';	};});function getRGB(color) {		var result;				if ( color && color.constructor == Array && color.length == 3 )				return color;				if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))				return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)];				if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))				return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];				if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))				return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];				if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))				return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];				if (result = /rgba\(0, 0, 0, 0\)/.exec(color))				return colors['transparent'];				return colors[$.trim(color).toLowerCase()];}function getColor(elem, attr) {		var color;		do {				color = $.curCSS(elem, attr);								if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") )						break;				attr = "backgroundColor";		} while ( elem = elem.parentNode );		return getRGB(color);};var colors = {	aqua:[0,255,255],	azure:[240,255,255],	beige:[245,245,220],	black:[0,0,0],	blue:[0,0,255],	brown:[165,42,42],	cyan:[0,255,255],	darkblue:[0,0,139],	darkcyan:[0,139,139],	darkgrey:[169,169,169],	darkgreen:[0,100,0],	darkkhaki:[189,183,107],	darkmagenta:[139,0,139],	darkolivegreen:[85,107,47],	darkorange:[255,140,0],	darkorchid:[153,50,204],	darkred:[139,0,0],	darksalmon:[233,150,122],	darkviolet:[148,0,211],	fuchsia:[255,0,255],	gold:[255,215,0],	green:[0,128,0],	indigo:[75,0,130],	khaki:[240,230,140],	lightblue:[173,216,230],	lightcyan:[224,255,255],	lightgreen:[144,238,144],	lightgrey:[211,211,211],	lightpink:[255,182,193],	lightyellow:[255,255,224],	lime:[0,255,0],	magenta:[255,0,255],	maroon:[128,0,0],	navy:[0,0,128],	olive:[128,128,0],	orange:[255,165,0],	pink:[255,192,203],	purple:[128,0,128],	violet:[128,0,128],	red:[255,0,0],	silver:[192,192,192],	white:[255,255,255],	yellow:[255,255,0],	transparent: [255,255,255]};var classAnimationActions = ['add', 'remove', 'toggle'],	shorthandStyles = {		border: 1,		borderBottom: 1,		borderColor: 1,		borderLeft: 1,		borderRight: 1,		borderTop: 1,		borderWidth: 1,		margin: 1,		padding: 1	};function getElementStyles() {	var style = document.defaultView			? document.defaultView.getComputedStyle(this, null)			: this.currentStyle,		newStyle = {},		key,		camelCase;		if (style && style.length && style[0] && style[style[0]]) {		var len = style.length;		while (len--) {			key = style[len];			if (typeof style[key] == 'string') {				camelCase = key.replace(/\-(\w)/g, function(all, letter){					return letter.toUpperCase();				});				newStyle[camelCase] = style[key];			}		}	} else {		for (key in style) {			if (typeof style[key] === 'string') {				newStyle[key] = style[key];			}		}	}		return newStyle;}function filterStyles(styles) {	var name, value;	for (name in styles) {		value = styles[name];		if (						value == null ||						$.isFunction(value) ||						name in shorthandStyles ||						(/scrollbar/).test(name) ||						(!(/color/i).test(name) && isNaN(parseFloat(value)))		) {			delete styles[name];		}	}		return styles;}function styleDifference(oldStyle, newStyle) {	var diff = { _: 0 }, 		name;	for (name in newStyle) {		if (oldStyle[name] != newStyle[name]) {			diff[name] = newStyle[name];		}	}	return diff;}$.effects.animateClass = function(value, duration, easing, callback) {	if ($.isFunction(easing)) {		callback = easing;		easing = null;	}	return this.queue('fx', function() {		var that = $(this),			originalStyleAttr = that.attr('style') || ' ',			originalStyle = filterStyles(getElementStyles.call(this)),			newStyle,			className = that.attr('className');		$.each(classAnimationActions, function(i, action) {			if (value[action]) {				that[action + 'Class'](value[action]);			}		});		newStyle = filterStyles(getElementStyles.call(this));		that.attr('className', className);		that.animate(styleDifference(originalStyle, newStyle), duration, easing, function() {			$.each(classAnimationActions, function(i, action) {				if (value[action]) { that[action + 'Class'](value[action]); }			});						if (typeof that.attr('style') == 'object') {				that.attr('style').cssText = '';				that.attr('style').cssText = originalStyleAttr;			} else {				that.attr('style', originalStyleAttr);			}			if (callback) { callback.apply(this, arguments); }		});						var queue = $.queue(this),			anim = queue.splice(queue.length - 1, 1)[0];		queue.splice(1, 0, anim);		$.dequeue(this);	});};$.fn.extend({	_addClass: $.fn.addClass,	addClass: function(classNames, speed, easing, callback) {		return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames);	},	_removeClass: $.fn.removeClass,	removeClass: function(classNames,speed,easing,callback) {		return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames);	},	_toggleClass: $.fn.toggleClass,	toggleClass: function(classNames, force, speed, easing, callback) {		if ( typeof force == "boolean" || force === undefined ) {			if ( !speed ) {								return this._toggleClass(classNames, force);			} else {				return $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]);			}		} else {						return $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]);		}	},	switchClass: function(remove,add,speed,easing,callback) {		return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]);	}});$.extend($.effects, {	version: "1.8.12",		save: function(element, set) {		for(var i=0; i < set.length; i++) {			if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]);		}	},		restore: function(element, set) {		for(var i=0; i < set.length; i++) {			if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i]));		}	},	setMode: function(el, mode) {		if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; 		return mode;	},	getBaseline: function(origin, original) { 				var y, x;		switch (origin[0]) {			case 'top': y = 0; break;			case 'middle': y = 0.5; break;			case 'bottom': y = 1; break;			default: y = origin[0] / original.height;		};		switch (origin[1]) {			case 'left': x = 0; break;			case 'center': x = 0.5; break;			case 'right': x = 1; break;			default: x = origin[1] / original.width;		};		return {x: x, y: y};	},		createWrapper: function(element) {				if (element.parent().is('.ui-effects-wrapper')) {			return element.parent();		}				var props = {				width: element.outerWidth(true),				height: element.outerHeight(true),				'float': element.css('float')			},			wrapper = $('<div></div>')				.addClass('ui-effects-wrapper')				.css({					fontSize: '100%',					background: 'transparent',					border: 'none',					margin: 0,					padding: 0				});		element.wrap(wrapper);		wrapper = element.parent(); 				if (element.css('position') == 'static') {			wrapper.css({ position: 'relative' });			element.css({ position: 'relative' });		} else {			$.extend(props, {				position: element.css('position'),				zIndex: element.css('z-index')			});			$.each(['top', 'left', 'bottom', 'right'], function(i, pos) {				props[pos] = element.css(pos);				if (isNaN(parseInt(props[pos], 10))) {					props[pos] = 'auto';				}			});			element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' });		}		return wrapper.css(props).show();	},	removeWrapper: function(element) {		if (element.parent().is('.ui-effects-wrapper'))			return element.parent().replaceWith(element);		return element;	},	setTransition: function(element, list, factor, value) {		value = value || {};		$.each(list, function(i, x){			unit = element.cssUnit(x);			if (unit[0] > 0) value[x] = unit[0] * factor + unit[1];		});		return value;	}});function _normalizeArguments(effect, options, speed, callback) {		if (typeof effect == 'object') {		callback = options;		speed = null;		options = effect;		effect = options.effect;	}	if ($.isFunction(options)) {		callback = options;		speed = null;		options = {};	}        if (typeof options == 'number' || $.fx.speeds[options]) {		callback = speed;		speed = options;		options = {};	}	if ($.isFunction(speed)) {		callback = speed;		speed = null;	}	options = options || {};	speed = speed || options.duration;	speed = $.fx.off ? 0 : typeof speed == 'number'		? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default;	callback = callback || options.complete;	return [effect, options, speed, callback];}function standardSpeed( speed ) {		if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) {		return true;	}			if ( typeof speed === "string" && !$.effects[ speed ] ) {		return true;	}		return false;}$.fn.extend({	effect: function(effect, options, speed, callback) {		var args = _normalizeArguments.apply(this, arguments),						args2 = {				options: args[1],				duration: args[2],				callback: args[3]			},			mode = args2.options.mode,			effectMethod = $.effects[effect];				if ( $.fx.off || !effectMethod ) {						if ( mode ) {				return this[ mode ]( args2.duration, args2.callback );			} else {				return this.each(function() {					if ( args2.callback ) {						args2.callback.call( this );					}				});			}		}				return effectMethod.call(this, args2);	},	_show: $.fn.show,	show: function(speed) {		if ( standardSpeed( speed ) ) {			return this._show.apply(this, arguments);		} else {			var args = _normalizeArguments.apply(this, arguments);			args[1].mode = 'show';			return this.effect.apply(this, args);		}	},	_hide: $.fn.hide,	hide: function(speed) {		if ( standardSpeed( speed ) ) {			return this._hide.apply(this, arguments);		} else {			var args = _normalizeArguments.apply(this, arguments);			args[1].mode = 'hide';			return this.effect.apply(this, args);		}	},		__toggle: $.fn.toggle,	toggle: function(speed) {		if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) {			return this.__toggle.apply(this, arguments);		} else {			var args = _normalizeArguments.apply(this, arguments);			args[1].mode = 'toggle';			return this.effect.apply(this, args);		}	},		cssUnit: function(key) {		var style = this.css(key), val = [];		$.each( ['em','px','%','pt'], function(i, unit){			if(style.indexOf(unit) > 0)				val = [parseFloat(style), unit];		});		return val;	}});$.easing.jswing = $.easing.swing;$.extend($.easing,{	def: 'easeOutQuad',	swing: function (x, t, b, c, d) {				return $.easing[$.easing.def](x, t, b, c, d);	},	easeInQuad: function (x, t, b, c, d) {		return c*(t/=d)*t + b;	},	easeOutQuad: function (x, t, b, c, d) {		return -c *(t/=d)*(t-2) + b;	},	easeInOutQuad: function (x, t, b, c, d) {		if ((t/=d/2) < 1) return c/2*t*t + b;		return -c/2 * ((--t)*(t-2) - 1) + b;	},	easeInCubic: function (x, t, b, c, d) {		return c*(t/=d)*t*t + b;	},	easeOutCubic: function (x, t, b, c, d) {		return c*((t=t/d-1)*t*t + 1) + b;	},	easeInOutCubic: function (x, t, b, c, d) {		if ((t/=d/2) < 1) return c/2*t*t*t + b;		return c/2*((t-=2)*t*t + 2) + b;	},	easeInQuart: function (x, t, b, c, d) {		return c*(t/=d)*t*t*t + b;	},	easeOutQuart: function (x, t, b, c, d) {		return -c * ((t=t/d-1)*t*t*t - 1) + b;	},	easeInOutQuart: function (x, t, b, c, d) {		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;		return -c/2 * ((t-=2)*t*t*t - 2) + b;	},	easeInQuint: function (x, t, b, c, d) {		return c*(t/=d)*t*t*t*t + b;	},	easeOutQuint: function (x, t, b, c, d) {		return c*((t=t/d-1)*t*t*t*t + 1) + b;	},	easeInOutQuint: function (x, t, b, c, d) {		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;		return c/2*((t-=2)*t*t*t*t + 2) + b;	},	easeInSine: function (x, t, b, c, d) {		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;	},	easeOutSine: function (x, t, b, c, d) {		return c * Math.sin(t/d * (Math.PI/2)) + b;	},	easeInOutSine: function (x, t, b, c, d) {		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;	},	easeInExpo: function (x, t, b, c, d) {		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;	},	easeOutExpo: function (x, t, b, c, d) {		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;	},	easeInOutExpo: function (x, t, b, c, d) {		if (t==0) return b;		if (t==d) return b+c;		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;	},	easeInCirc: function (x, t, b, c, d) {		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;	},	easeOutCirc: function (x, t, b, c, d) {		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;	},	easeInOutCirc: function (x, t, b, c, d) {		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;	},	easeInElastic: function (x, t, b, c, d) {		var s=1.70158;var p=0;var a=c;		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;		if (a < Math.abs(c)) { a=c; var s=p/4; }		else var s = p/(2*Math.PI) * Math.asin (c/a);		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;	},	easeOutElastic: function (x, t, b, c, d) {		var s=1.70158;var p=0;var a=c;		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;		if (a < Math.abs(c)) { a=c; var s=p/4; }		else var s = p/(2*Math.PI) * Math.asin (c/a);		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;	},	easeInOutElastic: function (x, t, b, c, d) {		var s=1.70158;var p=0;var a=c;		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);		if (a < Math.abs(c)) { a=c; var s=p/4; }		else var s = p/(2*Math.PI) * Math.asin (c/a);		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;	},	easeInBack: function (x, t, b, c, d, s) {		if (s == undefined) s = 1.70158;		return c*(t/=d)*t*((s+1)*t - s) + b;	},	easeOutBack: function (x, t, b, c, d, s) {		if (s == undefined) s = 1.70158;		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;	},	easeInOutBack: function (x, t, b, c, d, s) {		if (s == undefined) s = 1.70158;		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;	},	easeInBounce: function (x, t, b, c, d) {		return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b;	},	easeOutBounce: function (x, t, b, c, d) {		if ((t/=d) < (1/2.75)) {			return c*(7.5625*t*t) + b;		} else if (t < (2/2.75)) {			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;		} else if (t < (2.5/2.75)) {			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;		} else {			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;		}	},	easeInOutBounce: function (x, t, b, c, d) {		if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;		return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;	}});})(jQuery);(function( $, undefined ) {$.effects.blind = function(o) {	return this.queue(function() {				var el = $(this), props = ['position','top','bottom','left','right'];				var mode = $.effects.setMode(el, o.options.mode || 'hide'); 		var direction = o.options.direction || 'vertical'; 				$.effects.save(el, props); el.show(); 		var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); 		var ref = (direction == 'vertical') ? 'height' : 'width';		var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width();		if(mode == 'show') wrapper.css(ref, 0); 				var animation = {};		animation[ref] = mode == 'show' ? distance : 0;				wrapper.animate(animation, o.duration, o.options.easing, function() {			if(mode == 'hide') el.hide(); 			$.effects.restore(el, props); $.effects.removeWrapper(el); 			if(o.callback) o.callback.apply(el[0], arguments); 			el.dequeue();		});	});};})(jQuery);(function( $, undefined ) {$.effects.bounce = function(o) {	return this.queue(function() {				var el = $(this), props = ['position','top','bottom','left','right'];				var mode = $.effects.setMode(el, o.options.mode || 'effect'); 		var direction = o.options.direction || 'up'; 		var distance = o.options.distance || 20; 		var times = o.options.times || 5; 		var speed = o.duration || 250; 		if (/show|hide/.test(mode)) props.push('opacity'); 				$.effects.save(el, props); el.show(); 		$.effects.createWrapper(el); 		var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';		var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';		var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 3 : el.outerWidth({margin:true}) / 3);		if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); 		if (mode == 'hide') distance = distance / (times * 2);		if (mode != 'hide') times--;				if (mode == 'show') { 			var animation = {opacity: 1};			animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance;			el.animate(animation, speed / 2, o.options.easing);			distance = distance / 2;			times--;		};		for (var i = 0; i < times; i++) { 			var animation1 = {}, animation2 = {};			animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;			animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;			el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing);			distance = (mode == 'hide') ? distance * 2 : distance / 2;		};		if (mode == 'hide') { 			var animation = {opacity: 0};			animation[ref] = (motion == 'pos' ? '-=' : '+=')  + distance;			el.animate(animation, speed / 2, o.options.easing, function(){				el.hide(); 				$.effects.restore(el, props); $.effects.removeWrapper(el); 				if(o.callback) o.callback.apply(this, arguments); 			});		} else {			var animation1 = {}, animation2 = {};			animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;			animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;			el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){				$.effects.restore(el, props); $.effects.removeWrapper(el); 				if(o.callback) o.callback.apply(this, arguments); 			});		};		el.queue('fx', function() { el.dequeue(); });		el.dequeue();	});};})(jQuery);(function( $, undefined ) {$.effects.clip = function(o) {	return this.queue(function() {				var el = $(this), props = ['position','top','bottom','left','right','height','width'];				var mode = $.effects.setMode(el, o.options.mode || 'hide'); 		var direction = o.options.direction || 'vertical'; 				$.effects.save(el, props); el.show(); 		var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); 		var animate = el[0].tagName == 'IMG' ? wrapper : el;		var ref = {			size: (direction == 'vertical') ? 'height' : 'width',			position: (direction == 'vertical') ? 'top' : 'left'		};		var distance = (direction == 'vertical') ? animate.height() : animate.width();		if(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } 				var animation = {};		animation[ref.size] = mode == 'show' ? distance : 0;		animation[ref.position] = mode == 'show' ? 0 : distance / 2;				animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {			if(mode == 'hide') el.hide(); 			$.effects.restore(el, props); $.effects.removeWrapper(el); 			if(o.callback) o.callback.apply(el[0], arguments); 			el.dequeue();		}});	});};})(jQuery);(function( $, undefined ) {$.effects.drop = function(o) {	return this.queue(function() {				var el = $(this), props = ['position','top','bottom','left','right','opacity'];				var mode = $.effects.setMode(el, o.options.mode || 'hide'); 		var direction = o.options.direction || 'left'; 				$.effects.save(el, props); el.show(); 		$.effects.createWrapper(el); 		var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';		var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';		var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 2 : el.outerWidth({margin:true}) / 2);		if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); 				var animation = {opacity: mode == 'show' ? 1 : 0};		animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;				el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {			if(mode == 'hide') el.hide(); 			$.effects.restore(el, props); $.effects.removeWrapper(el); 			if(o.callback) o.callback.apply(this, arguments); 			el.dequeue();		}});	});};})(jQuery);(function( $, undefined ) {$.effects.explode = function(o) {	return this.queue(function() {	var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;	var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;	o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode;	var el = $(this).show().css('visibility', 'hidden');	var offset = el.offset();		offset.top -= parseInt(el.css("marginTop"),10) || 0;	offset.left -= parseInt(el.css("marginLeft"),10) || 0;	var width = el.outerWidth(true);	var height = el.outerHeight(true);	for(var i=0;i<rows;i++) { 		for(var j=0;j<cells;j++) { 			el				.clone()				.appendTo('body')				.wrap('<div></div>')				.css({					position: 'absolute',					visibility: 'visible',					left: -j*(width/cells),					top: -i*(height/rows)				})				.parent()				.addClass('ui-effects-explode')				.css({					position: 'absolute',					overflow: 'hidden',					width: width/cells,					height: height/rows,					left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0),					top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0),					opacity: o.options.mode == 'show' ? 0 : 1				}).animate({					left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)),					top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)),					opacity: o.options.mode == 'show' ? 1 : 0				}, o.duration || 500);		}	}		setTimeout(function() {		o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide();				if(o.callback) o.callback.apply(el[0]); 				el.dequeue();				$('div.ui-effects-explode').remove();	}, o.duration || 500);	});};})(jQuery);(function( $, undefined ) {$.effects.fade = function(o) {	return this.queue(function() {		var elem = $(this),			mode = $.effects.setMode(elem, o.options.mode || 'hide');		elem.animate({ opacity: mode }, {			queue: false,			duration: o.duration,			easing: o.options.easing,			complete: function() {				(o.callback && o.callback.apply(this, arguments));				elem.dequeue();			}		});	});};})(jQuery);(function( $, undefined ) {$.effects.fold = function(o) {	return this.queue(function() {				var el = $(this), props = ['position','top','bottom','left','right'];				var mode = $.effects.setMode(el, o.options.mode || 'hide'); 		var size = o.options.size || 15; 		var horizFirst = !(!o.options.horizFirst); 		var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2;				$.effects.save(el, props); el.show(); 		var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); 		var widthFirst = ((mode == 'show') != horizFirst);		var ref = widthFirst ? ['width', 'height'] : ['height', 'width'];		var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()];		var percent = /([0-9]+)%/.exec(size);		if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1];		if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); 				var animation1 = {}, animation2 = {};		animation1[ref[0]] = mode == 'show' ? distance[0] : size;		animation2[ref[1]] = mode == 'show' ? distance[1] : 0;				wrapper.animate(animation1, duration, o.options.easing)		.animate(animation2, duration, o.options.easing, function() {			if(mode == 'hide') el.hide(); 			$.effects.restore(el, props); $.effects.removeWrapper(el); 			if(o.callback) o.callback.apply(el[0], arguments); 			el.dequeue();		});	});};})(jQuery);(function( $, undefined ) {$.effects.highlight = function(o) {	return this.queue(function() {		var elem = $(this),			props = ['backgroundImage', 'backgroundColor', 'opacity'],			mode = $.effects.setMode(elem, o.options.mode || 'show'),			animation = {				backgroundColor: elem.css('backgroundColor')			};		if (mode == 'hide') {			animation.opacity = 0;		}		$.effects.save(elem, props);		elem			.show()			.css({				backgroundImage: 'none',				backgroundColor: o.options.color || '#ffff99'			})			.animate(animation, {				queue: false,				duration: o.duration,				easing: o.options.easing,				complete: function() {					(mode == 'hide' && elem.hide());					$.effects.restore(elem, props);					(mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter'));					(o.callback && o.callback.apply(this, arguments));					elem.dequeue();				}			});	});};})(jQuery);(function( $, undefined ) {$.effects.pulsate = function(o) {	return this.queue(function() {		var elem = $(this),			mode = $.effects.setMode(elem, o.options.mode || 'show');			times = ((o.options.times || 5) * 2) - 1;			duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2,			isVisible = elem.is(':visible'),			animateTo = 0;		if (!isVisible) {			elem.css('opacity', 0).show();			animateTo = 1;		}		if ((mode == 'hide' && isVisible) || (mode == 'show' && !isVisible)) {			times--;		}		for (var i = 0; i < times; i++) {			elem.animate({ opacity: animateTo }, duration, o.options.easing);			animateTo = (animateTo + 1) % 2;		}		elem.animate({ opacity: animateTo }, duration, o.options.easing, function() {			if (animateTo == 0) {				elem.hide();			}			(o.callback && o.callback.apply(this, arguments));		});		elem			.queue('fx', function() { elem.dequeue(); })			.dequeue();	});};})(jQuery);(function( $, undefined ) {$.effects.puff = function(o) {	return this.queue(function() {		var elem = $(this),			mode = $.effects.setMode(elem, o.options.mode || 'hide'),			percent = parseInt(o.options.percent, 10) || 150,			factor = percent / 100,			original = { height: elem.height(), width: elem.width() };		$.extend(o.options, {			fade: true,			mode: mode,			percent: mode == 'hide' ? percent : 100,			from: mode == 'hide'				? original				: {					height: original.height * factor,					width: original.width * factor				}		});		elem.effect('scale', o.options, o.duration, o.callback);		elem.dequeue();	});};$.effects.scale = function(o) {	return this.queue(function() {				var el = $(this);				var options = $.extend(true, {}, o.options);		var mode = $.effects.setMode(el, o.options.mode || 'effect'); 		var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); 		var direction = o.options.direction || 'both'; 		var origin = o.options.origin; 		if (mode != 'effect') { 			options.origin = origin || ['middle','center'];			options.restore = true;		}		var original = {height: el.height(), width: el.width()}; 		el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); 				var factor = { 			y: direction != 'horizontal' ? (percent / 100) : 1,			x: direction != 'vertical' ? (percent / 100) : 1		};		el.to = {height: original.height * factor.y, width: original.width * factor.x}; 		if (o.options.fade) { 			if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;};			if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;};		};				options.from = el.from; options.to = el.to; options.mode = mode;				el.effect('size', options, o.duration, o.callback);		el.dequeue();	});};$.effects.size = function(o) {	return this.queue(function() {				var el = $(this), props = ['position','top','bottom','left','right','width','height','overflow','opacity'];		var props1 = ['position','top','bottom','left','right','overflow','opacity']; 		var props2 = ['width','height','overflow']; 		var cProps = ['fontSize'];		var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom'];		var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight'];				var mode = $.effects.setMode(el, o.options.mode || 'effect'); 		var restore = o.options.restore || false; 		var scale = o.options.scale || 'both'; 		var origin = o.options.origin; 		var original = {height: el.height(), width: el.width()}; 		el.from = o.options.from || original; 		el.to = o.options.to || original; 				if (origin) { 			var baseline = $.effects.getBaseline(origin, original);			el.from.top = (original.height - el.from.height) * baseline.y;			el.from.left = (original.width - el.from.width) * baseline.x;			el.to.top = (original.height - el.to.height) * baseline.y;			el.to.left = (original.width - el.to.width) * baseline.x;		};		var factor = { 			from: {y: el.from.height / original.height, x: el.from.width / original.width},			to: {y: el.to.height / original.height, x: el.to.width / original.width}		};		if (scale == 'box' || scale == 'both') { 			if (factor.from.y != factor.to.y) { 				props = props.concat(vProps);				el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from);				el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to);			};			if (factor.from.x != factor.to.x) { 				props = props.concat(hProps);				el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from);				el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to);			};		};		if (scale == 'content' || scale == 'both') { 			if (factor.from.y != factor.to.y) { 				props = props.concat(cProps);				el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from);				el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to);			};		};		$.effects.save(el, restore ? props : props1); el.show(); 		$.effects.createWrapper(el); 		el.css('overflow','hidden').css(el.from); 				if (scale == 'content' || scale == 'both') { 			vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); 			hProps = hProps.concat(['marginLeft','marginRight']); 			props2 = props.concat(vProps).concat(hProps); 			el.find("*[width]").each(function(){				child = $(this);				if (restore) $.effects.save(child, props2);				var c_original = {height: child.height(), width: child.width()}; 				child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x};				child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x};				if (factor.from.y != factor.to.y) { 					child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from);					child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to);				};				if (factor.from.x != factor.to.x) { 					child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from);					child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to);				};				child.css(child.from); 				child.animate(child.to, o.duration, o.options.easing, function(){					if (restore) $.effects.restore(child, props2); 				}); 			});		};				el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {			if (el.to.opacity === 0) {				el.css('opacity', el.from.opacity);			}			if(mode == 'hide') el.hide(); 			$.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); 			if(o.callback) o.callback.apply(this, arguments); 			el.dequeue();		}});	});};})(jQuery);(function( $, undefined ) {$.effects.shake = function(o) {	return this.queue(function() {				var el = $(this), props = ['position','top','bottom','left','right'];				var mode = $.effects.setMode(el, o.options.mode || 'effect'); 		var direction = o.options.direction || 'left'; 		var distance = o.options.distance || 20; 		var times = o.options.times || 3; 		var speed = o.duration || o.options.duration || 140; 				$.effects.save(el, props); el.show(); 		$.effects.createWrapper(el); 		var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';		var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';				var animation = {}, animation1 = {}, animation2 = {};		animation[ref] = (motion == 'pos' ? '-=' : '+=')  + distance;		animation1[ref] = (motion == 'pos' ? '+=' : '-=')  + distance * 2;		animation2[ref] = (motion == 'pos' ? '-=' : '+=')  + distance * 2;				el.animate(animation, speed, o.options.easing);		for (var i = 1; i < times; i++) { 			el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing);		};		el.animate(animation1, speed, o.options.easing).		animate(animation, speed / 2, o.options.easing, function(){ 			$.effects.restore(el, props); $.effects.removeWrapper(el); 			if(o.callback) o.callback.apply(this, arguments); 		});		el.queue('fx', function() { el.dequeue(); });		el.dequeue();	});};})(jQuery);(function( $, undefined ) {$.effects.slide = function(o) {	return this.queue(function() {				var el = $(this), props = ['position','top','bottom','left','right'];				var mode = $.effects.setMode(el, o.options.mode || 'show'); 		var direction = o.options.direction || 'left'; 				$.effects.save(el, props); el.show(); 		$.effects.createWrapper(el).css({overflow:'hidden'}); 		var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';		var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';		var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true}));		if (mode == 'show') el.css(ref, motion == 'pos' ? (isNaN(distance) ? "-" + distance : -distance) : distance); 				var animation = {};		animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;				el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {			if(mode == 'hide') el.hide(); 			$.effects.restore(el, props); $.effects.removeWrapper(el); 			if(o.callback) o.callback.apply(this, arguments); 			el.dequeue();		}});	});};})(jQuery);(function( $, undefined ) {$.effects.transfer = function(o) {	return this.queue(function() {		var elem = $(this),			target = $(o.options.to),			endPosition = target.offset(),			animation = {				top: endPosition.top,				left: endPosition.left,				height: target.innerHeight(),				width: target.innerWidth()			},			startPosition = elem.offset(),			transfer = $('<div class="ui-effects-transfer"></div>')				.appendTo(document.body)				.addClass(o.options.className)				.css({					top: startPosition.top,					left: startPosition.left,					height: elem.innerHeight(),					width: elem.innerWidth(),					position: 'absolute'				})				.animate(animation, o.duration, o.options.easing, function() {					transfer.remove();					(o.callback && o.callback.apply(elem[0], arguments));					elem.dequeue();				});	});};})(jQuery);(function($) { 			$.tools = $.tools || {version: '1.2.5'};		$.tools.tooltip = {				conf: { 									effect: 'toggle',						fadeOutSpeed: "fast",			predelay: 0,			delay: 30,			opacity: 1,						tip: 0,									position: ['top', 'center'], 			offset: [0, 0],			relative: false,			cancelDefault: true,									events: {				def: 			"mouseenter,mouseleave",				input: 		"focus,blur",				widget:		"focus mouseenter,blur mouseleave",				tooltip:		"mouseenter,mouseleave"			},									layout: '<div/>',			tipClass: 'tooltip'		},				addEffect: function(name, loadFn, hideFn) {			effects[name] = [loadFn, hideFn];			} 	};			var effects = { 		toggle: [ 			function(done) { 				var conf = this.getConf(), tip = this.getTip(), o = conf.opacity;				if (o < 1) { tip.css({opacity: o}); }				tip.show();				done.call();			},						function(done) { 				this.getTip().hide();				done.call();			} 		],				fade: [			function(done) { 				var conf = this.getConf();				this.getTip().fadeTo(conf.fadeInSpeed, conf.opacity, done); 			},  			function(done) { 				this.getTip().fadeOut(this.getConf().fadeOutSpeed, done); 			} 		]			};   			  		function getPosition(trigger, tip, conf) {							var top = conf.relative ? trigger.position().top : trigger.offset().top, 			 left = conf.relative ? trigger.position().left : trigger.offset().left,			 pos = conf.position[0];		top  -= tip.outerHeight() - conf.offset[0];		left += trigger.outerWidth() + conf.offset[1];						if (/iPad/i.test(navigator.userAgent)) {			top -= $(window).scrollTop();		}						var height = tip.outerHeight() + trigger.outerHeight();		if (pos == 'center') 	{ top += height / 2; }		if (pos == 'bottom') 	{ top += height; }								pos = conf.position[1]; 			var width = tip.outerWidth() + trigger.outerWidth();		if (pos == 'center') 	{ left -= width / 2; }		if (pos == 'left')   	{ left -= width; }	 				return {top: top, left: left};	}					function Tooltip(trigger, conf) {		var self = this, 			 fire = trigger.add(self),			 tip,			 timer = 0,			 pretimer = 0, 			 title = trigger.attr("title"),			 tipAttr = trigger.attr("data-tooltip"),			 effect = effects[conf.effect],			 shown,				 			 			 isInput = trigger.is(":input"), 			 isWidget = isInput && trigger.is(":checkbox, :radio, select, :button, :submit"),						 type = trigger.attr("type"),			 evt = conf.events[type] || conf.events[isInput ? (isWidget ? 'widget' : 'input') : 'def']; 								if (!effect) { throw "Nonexistent effect \"" + conf.effect + "\""; }									evt = evt.split(/,\s*/); 		if (evt.length != 2) { throw "Tooltip: bad events configuration for " + type; } 								trigger.bind(evt[0], function(e) {			clearTimeout(timer);			if (conf.predelay) {				pretimer = setTimeout(function() { self.show(e); }, conf.predelay);								} else {				self.show(e);				}							}).bind(evt[1], function(e)  {			clearTimeout(pretimer);			if (conf.delay)  {				timer = setTimeout(function() { self.hide(e); }, conf.delay);								} else {				self.hide(e);					}					}); 								if (title && conf.cancelDefault) { 			trigger.removeAttr("title");			trigger.data("title", title);					}						$.extend(self, {							show: function(e) {  								if (!tip) {															if (tipAttr) {						tip = $(tipAttr);										} else if (conf.tip) { 						tip = $(conf.tip).eq(0);																} else if (title) { 						tip = $(conf.layout).addClass(conf.tipClass).appendTo(document.body)							.hide().append(title);										} else {							tip = trigger.next();  						if (!tip.length) { tip = trigger.parent().next(); } 	 					}										if (!tip.length) { throw "Cannot find tooltip for " + trigger;	}				} 			 				 	if (self.isShown()) { return self; }  							 				 	tip.stop(true, true); 			 				 									var pos = getPosition(trigger, tip, conf);													if (conf.tip) {					tip.html(trigger.data("title"));				}								e = e || $.Event();				e.type = "onBeforeShow";				fire.trigger(e, [pos]);								if (e.isDefaultPrevented()) { return self; }														pos = getPosition(trigger, tip, conf);												tip.css({position:'absolute', top: pos.top, left: pos.left});													shown = true;												effect[0].call(self, function() {					e.type = "onShow";					shown = 'full';					fire.trigger(e);		 				});						 									var event = conf.events.tooltip.split(/,\s*/);				if (!tip.data("__set")) {										tip.bind(event[0], function() { 						clearTimeout(timer);						clearTimeout(pretimer);					});										if (event[1] && !trigger.is("input:not(:checkbox, :radio), textarea")) { 											tip.bind(event[1], function(e) {															if (e.relatedTarget != trigger[0]) {								trigger.trigger(evt[1].split(" ")[0]);							}						}); 					} 										tip.data("__set", true);				}								return self;			},						hide: function(e) {				if (!tip || !self.isShown()) { return self; }											e = e || $.Event();				e.type = "onBeforeHide";				fire.trigger(e);								if (e.isDefaultPrevented()) { return; }					shown = false;								effects[conf.effect][1].call(self, function() {					e.type = "onHide";					fire.trigger(e);		 				});								return self;			},						isShown: function(fully) {				return fully ? shown == 'full' : shown;				},							getConf: function() {				return conf;				},							getTip: function() {				return tip;				},						getTrigger: function() {				return trigger;				}				});						$.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","), function(i, name) {										if ($.isFunction(conf[name])) { 				$(self).bind(name, conf[name]); 			}						self[name] = function(fn) {				if (fn) { $(self).bind(name, fn); }				return self;			};		});			}					$.fn.tooltip = function(conf) {						var api = this.data("tooltip");		if (api) { return api; }		conf = $.extend(true, {}, $.tools.tooltip.conf, conf);						if (typeof conf.position == 'string') {			conf.position = conf.position.split(/,?\s/);			}						this.each(function() {			api = new Tooltip($(this), conf); 			$(this).data("tooltip", api); 		});				return conf.api ? api: this;		 	};		}) (jQuery);		(function($) { 		var t = $.tools.tooltip;				$.extend(t.conf, { 		direction: 'up', 		bounce: false,		slideOffset: 10,		slideInSpeed: 200,		slideOutSpeed: 200, 		slideFade: !$.browser.msie	});						var dirs = {		up: ['-', 'top'],		down: ['+', 'top'],		left: ['-', 'left'],		right: ['+', 'left']	};			t.addEffect("slide", 						function(done) { 						var conf = this.getConf(), 				 tip = this.getTip(),				 params = conf.slideFade ? {opacity: conf.opacity} : {}, 				 dir = dirs[conf.direction] || dirs.up;						params[dir[1]] = dir[0] +'='+ conf.slideOffset;									if (conf.slideFade) { tip.css({opacity:0}); }			tip.show().animate(params, conf.slideInSpeed, done); 		}, 						function(done) {									var conf = this.getConf(), 				 offset = conf.slideOffset,				 params = conf.slideFade ? {opacity: 0} : {}, 				 dir = dirs[conf.direction] || dirs.up;									var sign = "" + dir[0];			if (conf.bounce) { sign = sign == '+' ? '-' : '+'; }						params[dir[1]] = sign +'='+ offset;												this.getTip().animate(params, conf.slideOutSpeed, function()  {				$(this).hide();				done.call();					});		}	);  	})(jQuery);			(function($) { 		var t = $.tools.tooltip;		t.dynamic = {		conf: {			classNames: "top right bottom left"		}	};				function getCropping(el) {				var w = $(window); 		var right = w.width() + w.scrollLeft();		var bottom = w.height() + w.scrollTop();						return [			el.offset().top <= w.scrollTop(), 									right <= el.offset().left + el.width(),							bottom <= el.offset().top + el.height(),						w.scrollLeft() >= el.offset().left 							]; 	}			function isVisible(crop) {		var i = crop.length;		while (i--) {			if (crop[i]) { return false; }			}		return true;	}			$.fn.dynamic = function(conf) {				if (typeof conf == 'number') { conf = {speed: conf}; }				conf = $.extend({}, t.dynamic.conf, conf);				var cls = conf.classNames.split(/\s/), orig;						this.each(function() {									var api = $(this).tooltip().onBeforeShow(function(e, pos) {												var tip = this.getTip(), tipConf = this.getConf();  													if (!orig) {					orig = [						tipConf.position[0], 						tipConf.position[1], 						tipConf.offset[0], 						tipConf.offset[1], 						$.extend({}, tipConf)					];				}												$.extend(tipConf, orig[4]);				tipConf.position = [orig[0], orig[1]];				tipConf.offset = [orig[2], orig[3]];				tip.css({					visibility: 'hidden',					position: 'absolute',					top: pos.top,					left: pos.left 				}).show(); 												var crop = getCropping(tip);																		if (!isVisible(crop)) {															if (crop[2]) { $.extend(tipConf, conf.top);		tipConf.position[0] = 'top'; 		tip.addClass(cls[0]); }					if (crop[3]) { $.extend(tipConf, conf.right);	tipConf.position[1] = 'right'; 	tip.addClass(cls[1]); }										if (crop[0]) { $.extend(tipConf, conf.bottom); 	tipConf.position[0] = 'bottom';	tip.addClass(cls[2]); } 					if (crop[1]) { $.extend(tipConf, conf.left);		tipConf.position[1] = 'left'; 	tip.addClass(cls[3]); }																				if (crop[0] || crop[2]) { tipConf.offset[0] *= -1; }															if (crop[1] || crop[3]) { tipConf.offset[1] *= -1; }				}  								tip.css({visibility: 'visible'}).hide();					});									api.onBeforeShow(function() {				var c = this.getConf(), tip = this.getTip();		 				setTimeout(function() { 					c.position = [orig[0], orig[1]];					c.offset = [orig[2], orig[3]];				}, 0);			});									api.onHide(function() {				var tip = this.getTip(); 				tip.removeClass(conf.classNames);			});							ret = api;					});				return conf.api ? ret : this;	};		}) (jQuery);
