/*
* jQuery Frame Dialog 1.1.2
*
* Copyright (c) 2009 SolutionStream.com & Michael J. Ryan (http://www.solutionstream.com/)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
* 
* Requires:
*	jquery ui dialog
*
*	jQuery.FrameDialog namespaced
*		.create()	function will create an iframe, pass on the options 
*					and return from a jQueryUI Dialog.
*					additional url option
*
*	TODO:	- Add logic to allow for relative URLs.
*
*	CUSTOMIZATION:
*		see FrameDialog._defaultOptions below for additional changes from ui dialog defaults
*		Returns a jQuery.dialog extension, with the same options passed in.
*
*		refer to jQueryUI Dialog for more customization options
*
*
*	LOCALIZATION: create a window.localization object
*				localization.OK			override text for the OK button
*				localization.Cancel		override text for the Cancel button
*
*
*	FROM PARENT WINDOW: use the full url, including protocol://host/ portions
*				jQuery.FrameDialog
*					.create({
*						url: baseURL + 'framed-modal-test.aspx',
*						title: 'test title',
*						... Other jQueryUI Dialog Options ...
*					})
*					.bind('dialogclose', function(event, ui) {
*						alert("result: " + event.result);
*					});
*
*	INSIDE MODAL:
*				jQuery.FrameDialog.setResult(value);	//sets the result value
*				jQuery.FrameDialog.clearResult();		//clears the result value
*				jQuery.FrameDialog.closeDialog();		//close the dialog (same as OK)
*				jQuery.FrameDialog.cancelDialog();		//cancel the dialot (same as Cancel
*
*
*
*	!!!!!!!!!! WARNING WARNING WARNING WARNING !!!!!!!!!!
*	Modal must set the result from the same host address in order to access 
*	the parent for setting the result.
*/
(function($) {

	//create FrameDialog namespace
	$.FrameDialog = $.FrameDialog || {};

	//array for return values, placeholder
	$.FrameDialog._results = $.FrameDialog._results || {};

	//set localized variables
	var OK = (window.localization && window.localization.OK) || "OK";
	var Cancel = (window.localization && window.localization.CANCEL) || "Cancel";
	var buttons = {};
	var winSize = { w:$(window).width(), h:$(window).height() }
	buttons[OK] = function() {
				$(this).dialog("close");
			}
	buttons[Cancel] = function() {
				var frame = $(this);
				$.FrameDialog.clearResult(frame.attr("id"));
				frame.dialog("close");
			}

	//default options
	$.FrameDialog._defaultOptions = {
		modal: true,
		closeOnEscape: false,
		position: 'center',
		buttons: buttons
	}

	var retry = false;
	$.FrameDialog.create = function(options) {
		try	{
			//generate unique id
			var uid = Math.random().toString(16).replace(".", "") + (new Date()).valueOf().toString(16);

			//extend frame dialog options with passed in options.
			var opts = $.extend(
				$.FrameDialog._defaultOptions,
				options || {}
			)

			var url = (opts && opts.url) || null;
			if (url === null)
				throw new Error("MODAL ERROR: Option 'url' not specified!"); //diagnostic error

			//clean up redundant forward slashes in the url.
			url = url.replace(/(^|[^:])\/+/g, "$1/");

			//remove url argument from options to be passed to dialog.
			try {
				delete opts.url;
			} catch (err) { }

			//create iframe object
			//	object type="text/html doesn't seem to work in IE :(
			//	using iframe, which seems to work cross browser, tested in IE7, and Firefox 3.0.7
			var iframe = $("<iframe frameborder='0' scrolling='auto' background='transparent' />")
				.attr("id", uid + "-VIEW")
				.attr("name", uid + "-VIEW")
				.attr("src", url)
				.css("margin", "0")
				.css("border", "0")
				.css("padding", "0")
				.css("top", "0")
				.css("left", "0")
				.css("right", "0")
				.css("bottom", "0")
				.css("width", "100%")
				.css("height", "100%")
				;

			var overlay = $("<div>&nbsp;</div>")
				.css("position", "absolute")
				.css("margin", "0")
				.css("border", "0")
				.css("padding", "0")
				.css("top", "0")
				.css("left", "0")
				.css("right", "0")
				.css("bottom", "0")
				.css("width", "100%")
				.css("height", "100%")
				.css("display", "none")
				;

			var ret = $("<div />")
				.attr("id", uid)
				.css("margin", "0")
				.css("border", "0")
				.css("padding", "0")
				.css("top", "0")
				.css("left", "0")
				.css("right", "0")
				.css("bottom", "0")
				.css("overflow", "hidden")
				.hide()
				.append(iframe)
				.append(overlay)
				.appendTo(document.body)
				.bind("dialogbeforeclose", function(event, ui) {
					var frame = $(this);
					var uid = frame.attr("id");

					//default close (firefox) - clear response
					if (event && event.originalTarget && event.originalTarget.nodeName && event.originalTarget.nodeName == "SPAN")
						$.FrameDialog.clearResult(uid);

					//default close (IE7) - clear response
					if (event && event.originalEvent && event.originalEvent.currentTarget && event.originalEvent.currentTarget.tagName && event.originalEvent.currentTarget.tagName == "A")
						$.FrameDialog.clearResult(uid);

					//get the response value, attach to the object.
					var result = $.FrameDialog._results[uid] || null; //result or an explicit null

					return result;
				})
				.bind('dialogclose', function(event, ui) {
					var frame = $(this);
					var uid = frame.attr("id");
					var result = $.FrameDialog._results[uid] || null; //result or an explicit null
					frame.attr("result", result);

					//Cleanup remnants in 15 seconds
					//		Should be enough time for the results of the close to finish up.
					window.setTimeout(
						function() {
							//cleanup the dialog
							frame.dialog('destroy')

							//destroy the iframe, remove from the DOM
							frame.remove();
							overlay.remove();
							ret.remove();

							//remove the placeholder for the result
							try {
								delete $.FrameDialog._results[uid];
							} catch (err) { /*nothing to delete*/ }
						},
						100
					);

					return result;
				})
				.dialog(opts)
				;

			/*** BEGIN FIX FOR jQueryUI 1.7 Dialog's sizing bug *************************************************/
			//store the window width at the start
			var winw = $(document).width();
			var wrap = ret.parent(".ui-resizable")

			//set the window to the appropriate size - fix bug with jQueryUI's Dialog
			//	uses an overlay over the iframe, to prevent focus change.
			wrap.css('width', (opts.minWidth || opts.width || 200) + 'px')
					.css('height', (opts.minHeight || opts.height || 120) + 'px')
					.bind('dragstart', function() {
						overlay.show();
					})
					.bind('dragstop', function() {
						overlay.hide();
					})
					.bind('resizestart', function() {
						overlay.show();
					})
					.bind('resize', function() {
						iframe.css('height', ret.height() + 'px')
									.css('width', ret.width() + 'px');
					})
					.bind('resizestop', function() {
						overlay.hide();
						iframe.css('height', ret.height() + 'px')
								.css('width', ret.width() + 'px');
					});


			//force resize event.
			window.setTimeout(function(){ 
				wrap.trigger('resizestop');
			}, 100);

			//get window's new width
			var ww = wrap.width();

			//reset the center position, if needed
			if (opts.position == 'center' || (opts.position && (opts.position[0] == 'center' || opts.position[1] == 'center'))) {
				var pos = parseInt(parseFloat(winw - ww) / 2);
				if (pos < 0) pos = 0;

				wrap.css('left', pos + 'px');
			}

			//reset right position, as needed
			if (opts.position == 'right' || (opts.position && (opts.position[0] == 'right' || opts.position[1] == 'right'))) {
				var pos = winw - ww - 5; //set to rightmost, - 5 px
				if (pos < 0) pos = 0;

				wrap.css('left', pos + 'px');
			}
			/*** END FIX FOR jQueryUI 1.7 Dialog's sizing bug *************************************************/
			retry = false; //reset the retry state.
			return ret;
		} catch (err) {
			//cleanup any left over ui elements...
			try { ret.dialog('destroy'); } catch(err) {}
			try { ret.remove(); } catch(err) {}
			try { overlay.remove(); } catch(err) {}
			try { iframe.remove(); } catch(err) {}

			//it was a TypeError (seems to be happening with the modal's overlay mask, retry once.
			if (err instanceof TypeError && !retry) {
				retry = true;
				return $.FrameDialog.create(options); //retry once only
			}

			throw err; //rethrow error if something else
		}
	}

	//retrieves the uid for the current frame within the parent.
	$.FrameDialog._getUid = function() {
		//find the current frame within the parent window
		if (window.parent && window.parent.frames && window.parent.document && window.parent.document.getElementsByTagName) {
			var iframes = window.parent.document.getElementsByTagName("IFRAME");
			for (var i = 0; i < iframes.length; i++) {
				var id = iframes[i].id || iframes[i].name || i;
				if (window.parent.frames[id] == window) {
					return id.replace("-VIEW", "");
				}
			}
		}
		return null; //no match
	}

	//Returns the current dialog handle in the parent window as a jquery object.
	$.FrameDialog.current = function() {
		if (window.parent && window.parent.jQuery)
			return window.parent.jQuery("#" + $.FrameDialog._getUid());
		
		return null;
	}


	//clear the result value
	//	uid - id for child window, or empty for current in parent.
	$.FrameDialog.clearResult = function(uid) {
		if (uid) {
			//clear child's value
			try {
				delete $.FrameDialog._results[uid];
			} catch (err) { /*nothing to delete*/ }
		} else {
			//clear for current dialog
			var uid = $.FrameDialog._getUid();

			if (uid != null && window.parent && window.parent.jQuery && window.parent.jQuery.FrameDialog && window.parent.jQuery.FrameDialog._results) {
				try {
					delete window.parent.jQuery.FrameDialog._results[uid];
				} catch (err) { /*nothing to delete*/ }
			}
		}
	}

	//helper function to set response value	to the parent
	//	value - result value for the given FrameDialog
	//	uid - child id, or empty for current FrameDialog
	$.FrameDialog.setResult = function(value, uid) {
		if (uid) {
			//set child value
			jQuery.FrameDialog._results[uid] = value;
		} else {
			//set value from inside
			var uid = $.FrameDialog._getUid();

			if (uid != null && window.parent && window.parent.jQuery && window.parent.jQuery.FrameDialog && window.parent.jQuery.FrameDialog._results) {
				window.parent.jQuery.FrameDialog._results[uid] = value;
			}
		}
	}

	//same as clicking OK button
	//	uuid - for a child node, or empty for current
	$.FrameDialog.closeDialog = function(uid) {
		if (uid) {
			//close child
			jQuery("#" + uid).dialog('close');
		} else {
			//close self			
			var uid = $.FrameDialog._getUid();
			if (uid != null && window.parent && window.parent.jQuery) {
				window.parent.jQuery("#" + uid).dialog('close');
			}
		}

		return false;
	}

	//same as clicking Cancel button
	//	uid - for a child node, or empty for current frame
	$.FrameDialog.cancelDialog = function(uid) {
		$.FrameDialog.clearResult(uid);
		$.FrameDialog.closeDialog(uid);
		return false;
	}


	//extension methods for shortcuts in dealing with a framedialog handle
	$.fn.setResult = function(result) {
		return this.each(function() {
			$.FrameDialog.setResult(result, $(this).attr("id"));
		});
	}

	$.fn.clearResult = function() {
		return this.each(function() {
			$.FrameDialog.clearResult($(this).attr("id"));
		});
	}
	
	$.fn.closeDialog = function() {
		return this.dialog('close');
	}

	$.fn.cancelDialog = function() {
		return this.clearResult().closeDialog();
	}
	
	//get the window context for the object/iframe in question
	$.fn.window = function() {
		//this item is a frame or iframe
		if (this.attr('tagName') == "IFRAME" || this.attr('tagName') == "FRAME")
			return window.frames[this.attr('name') || this.attr('id')];
			
		//get the first frame/iframe child
		var frame = this.find('iframe, frame')[0];
		return (frame && window.frames[frame.name || frame.id]) || null;
	}

})(jQuery);

/*!
 * Sizzle CSS Selector Engine
 *  Copyright 2011, The Dojo Foundation
 *  Released under the MIT, BSD, and GPL Licenses.
 *  More information: http://sizzlejs.com/
 */
(function(){

var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
	done = 0,
	toString = Object.prototype.toString,
	hasDuplicate = false,
	baseHasDuplicate = true,
	rBackslash = /\\/g,
	rNonWord = /\W/;

// Here we check if the JavaScript engine is using some sort of
// optimization where it does not always call our comparision
// function. If that is the case, discard the hasDuplicate value.
//   Thus far that includes Google Chrome.
[0, 0].sort(function() {
	baseHasDuplicate = false;
	return 0;
});

var Sizzle = function( selector, context, results, seed ) {
	results = results || [];
	context = context || document;

	var origContext = context;

	if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
		return [];
	}
	
	if ( !selector || typeof selector !== "string" ) {
		return results;
	}

	var m, set, checkSet, extra, ret, cur, pop, i,
		prune = true,
		contextXML = Sizzle.isXML( context ),
		parts = [],
		soFar = selector;
	
	// Reset the position of the chunker regexp (start from head)
	do {
		chunker.exec( "" );
		m = chunker.exec( soFar );

		if ( m ) {
			soFar = m[3];
		
			parts.push( m[1] );
		
			if ( m[2] ) {
				extra = m[3];
				break;
			}
		}
	} while ( m );

	if ( parts.length > 1 && origPOS.exec( selector ) ) {

		if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
			set = posProcess( parts[0] + parts[1], context );

		} else {
			set = Expr.relative[ parts[0] ] ?
				[ context ] :
				Sizzle( parts.shift(), context );

			while ( parts.length ) {
				selector = parts.shift();

				if ( Expr.relative[ selector ] ) {
					selector += parts.shift();
				}
				
				set = posProcess( selector, set );
			}
		}

	} else {
		// Take a shortcut and set the context if the root selector is an ID
		// (but not if it'll be faster if the inner selector is an ID)
		if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
				Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {

			ret = Sizzle.find( parts.shift(), context, contextXML );
			context = ret.expr ?
				Sizzle.filter( ret.expr, ret.set )[0] :
				ret.set[0];
		}

		if ( context ) {
			ret = seed ?
				{ expr: parts.pop(), set: makeArray(seed) } :
				Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );

			set = ret.expr ?
				Sizzle.filter( ret.expr, ret.set ) :
				ret.set;

			if ( parts.length > 0 ) {
				checkSet = makeArray( set );

			} else {
				prune = false;
			}

			while ( parts.length ) {
				cur = parts.pop();
				pop = cur;

				if ( !Expr.relative[ cur ] ) {
					cur = "";
				} else {
					pop = parts.pop();
				}

				if ( pop == null ) {
					pop = context;
				}

				Expr.relative[ cur ]( checkSet, pop, contextXML );
			}

		} else {
			checkSet = parts = [];
		}
	}

	if ( !checkSet ) {
		checkSet = set;
	}

	if ( !checkSet ) {
		Sizzle.error( cur || selector );
	}

	if ( toString.call(checkSet) === "[object Array]" ) {
		if ( !prune ) {
			results.push.apply( results, checkSet );

		} else if ( context && context.nodeType === 1 ) {
			for ( i = 0; checkSet[i] != null; i++ ) {
				if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
					results.push( set[i] );
				}
			}

		} else {
			for ( i = 0; checkSet[i] != null; i++ ) {
				if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
					results.push( set[i] );
				}
			}
		}

	} else {
		makeArray( checkSet, results );
	}

	if ( extra ) {
		Sizzle( extra, origContext, results, seed );
		Sizzle.uniqueSort( results );
	}

	return results;
};

Sizzle.uniqueSort = function( results ) {
	if ( sortOrder ) {
		hasDuplicate = baseHasDuplicate;
		results.sort( sortOrder );

		if ( hasDuplicate ) {
			for ( var i = 1; i < results.length; i++ ) {
				if ( results[i] === results[ i - 1 ] ) {
					results.splice( i--, 1 );
				}
			}
		}
	}

	return results;
};

Sizzle.matches = function( expr, set ) {
	return Sizzle( expr, null, null, set );
};

Sizzle.matchesSelector = function( node, expr ) {
	return Sizzle( expr, null, null, [node] ).length > 0;
};

Sizzle.find = function( expr, context, isXML ) {
	var set;

	if ( !expr ) {
		return [];
	}

	for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
		var 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;
				}
			}
		}

		// Improper expression
		if ( expr === old ) {
			if ( anyFound == null ) {
				Sizzle.error( expr );

			} else {
				break;
			}
		}

		old = expr;
	}

	return curLoop;
};

Sizzle.error = function( msg ) {
	throw "Syntax error, unrecognized expression: " + msg;
};

var Expr = Sizzle.selectors = {
	order: [ "ID", "NAME", "TAG" ],

	match: {
		ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
		CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
		NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
		ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\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]);
				// Check parentNode to catch when Blackberry 4.6 returns
				// nodes that are no longer in the document #6963
				return m && m.parentNode ? [m] : [];
			}
		},

		NAME: function( match, context ) {
			if ( typeof context.getElementsByName !== "undefined" ) {
				var ret = [],
					results = context.getElementsByName( match[1] );

				for ( var i = 0, l = results.length; i < l; i++ ) {
					if ( results[i].getAttribute("name") === match[1] ) {
						ret.push( results[i] );
					}
				}

				return ret.length === 0 ? null : ret;
			}
		},

		TAG: function( match, context ) {
			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, '');

				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
				var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
					match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);

				// calculate the numbers (first)n+(last) including if they are negative
				match[2] = (test[1] + (test[2] || 1)) - 0;
				match[3] = test[3] - 0;
			}
			else if ( match[2] ) {
				Sizzle.error( match[0] );
			}

			// TODO: Move to normal caching system
			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];
			}

			// Handle if an un-quoted value was used
			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 we're dealing with a complex expression, or a simple one
				if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
					match[3] = Sizzle(match[3], null, null, curLoop);

				} else {
					var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);

					if ( !inplace ) {
						result.push.apply( result, ret );
					}

					return false;
				}

			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
				return true;
			}
			
			return match;
		},

		POS: function( match ) {
			match.unshift( true );

			return match;
		}
	},
	
	filters: {
		enabled: function( elem ) {
			return elem.disabled === false && elem.type !== "hidden";
		},

		disabled: function( elem ) {
			return elem.disabled === true;
		},

		checked: function( elem ) {
			return elem.checked === true;
		},
		
		selected: function( elem ) {
			// Accessing this property makes selected-by-default
			// options in Safari work properly
			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;
			// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) 
			// use getAttribute instead to test this case
			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;
};

// Perform a simple check to determine if the browser is capable of
// converting a NodeList to an array using builtin methods.
// Also verifies that the returned array holds DOM nodes
// (which is not the case in the Blackberry browser)
try {
	Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;

// Provide a fallback method if it does not work
} catch( e ) {
	makeArray = function( array, results ) {
		var 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;

		// The nodes are identical, we can exit early
		if ( a === b ) {
			hasDuplicate = true;
			return 0;

		// If the nodes are siblings (or identical) we can do a quick check
		} else if ( aup === bup ) {
			return siblingCheck( a, b );

		// If no parents were found then the nodes are disconnected
		} else if ( !aup ) {
			return -1;

		} else if ( !bup ) {
			return 1;
		}

		// Otherwise they're somewhere else in the tree so we need
		// to build up a full list of the parentNodes for comparison
		while ( cur ) {
			ap.unshift( cur );
			cur = cur.parentNode;
		}

		cur = bup;

		while ( cur ) {
			bp.unshift( cur );
			cur = cur.parentNode;
		}

		al = ap.length;
		bl = bp.length;

		// Start walking down the tree looking for a discrepancy
		for ( var i = 0; i < al && i < bl; i++ ) {
			if ( ap[i] !== bp[i] ) {
				return siblingCheck( ap[i], bp[i] );
			}
		}

		// We ended someplace up the tree so do a sibling check
		return i === al ?
			siblingCheck( a, bp[i], -1 ) :
			siblingCheck( ap[i], b, 1 );
	};

	siblingCheck = function( a, b, ret ) {
		if ( a === b ) {
			return ret;
		}

		var cur = a.nextSibling;

		while ( cur ) {
			if ( cur === b ) {
				return -1;
			}

			cur = cur.nextSibling;
		}

		return 1;
	};
}

// Utility function for retreiving the text value of an array of DOM nodes
Sizzle.getText = function( elems ) {
	var ret = "", elem;

	for ( var i = 0; elems[i]; i++ ) {
		elem = elems[i];

		// Get the text from text nodes and CDATA nodes
		if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
			ret += elem.nodeValue;

		// Traverse everything else, except comment nodes
		} else if ( elem.nodeType !== 8 ) {
			ret += Sizzle.getText( elem.childNodes );
		}
	}

	return ret;
};

// Check to see if the browser returns elements by name when
// querying by getElementById (and provide a workaround)
(function(){
	// We're going to inject a fake input element with a specified name
	var form = document.createElement("div"),
		id = "script" + (new Date()).getTime(),
		root = document.documentElement;

	form.innerHTML = "<a name='" + id + "'/>";

	// Inject it into the root element, check its status, and remove it quickly
	root.insertBefore( form, root.firstChild );

	// The workaround has to do additional checks after a getElementById
	// Which slows things down for other browsers (hence the branching)
	if ( document.getElementById( id ) ) {
		Expr.find.ID = function( match, context, isXML ) {
			if ( typeof context.getElementById !== "undefined" && !isXML ) {
				var m = context.getElementById(match[1]);

				return m ?
					m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
						[m] :
						undefined :
					[];
			}
		};

		Expr.filter.ID = function( elem, match ) {
			var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");

			return elem.nodeType === 1 && node && node.nodeValue === match;
		};
	}

	root.removeChild( form );

	// release memory in IE
	root = form = null;
})();

(function(){
	// Check to see if the browser returns only elements
	// when doing getElementsByTagName("*")

	// Create a fake element
	var div = document.createElement("div");
	div.appendChild( document.createComment("") );

	// Make sure no comments are found
	if ( div.getElementsByTagName("*").length > 0 ) {
		Expr.find.TAG = function( match, context ) {
			var results = context.getElementsByTagName( match[1] );

			// Filter out possible comments
			if ( match[1] === "*" ) {
				var tmp = [];

				for ( var i = 0; results[i]; i++ ) {
					if ( results[i].nodeType === 1 ) {
						tmp.push( results[i] );
					}
				}

				results = tmp;
			}

			return results;
		};
	}

	// Check to see if an attribute returns normalized href attributes
	div.innerHTML = "<a href='#'></a>";

	if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
			div.firstChild.getAttribute("href") !== "#" ) {

		Expr.attrHandle.href = function( elem ) {
			return elem.getAttribute( "href", 2 );
		};
	}

	// release memory in IE
	div = null;
})();

if ( document.querySelectorAll ) {
	(function(){
		var oldSizzle = Sizzle,
			div = document.createElement("div"),
			id = "__sizzle__";

		div.innerHTML = "<p class='TEST'></p>";

		// Safari can't handle uppercase or unicode characters when
		// in quirks mode.
		if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
			return;
		}
	
		Sizzle = function( query, context, extra, seed ) {
			context = context || document;

			// Only use querySelectorAll on non-XML documents
			// (ID selectors don't work in non-HTML documents)
			if ( !seed && !Sizzle.isXML(context) ) {
				// See if we find a selector to speed up
				var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
				
				if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
					// Speed-up: Sizzle("TAG")
					if ( match[1] ) {
						return makeArray( context.getElementsByTagName( query ), extra );
					
					// Speed-up: Sizzle(".CLASS")
					} else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
						return makeArray( context.getElementsByClassName( match[2] ), extra );
					}
				}
				
				if ( context.nodeType === 9 ) {
					// Speed-up: Sizzle("body")
					// The body element only exists once, optimize finding it
					if ( query === "body" && context.body ) {
						return makeArray( [ context.body ], extra );
						
					// Speed-up: Sizzle("#ID")
					} else if ( match && match[3] ) {
						var elem = context.getElementById( match[3] );

						// Check parentNode to catch when Blackberry 4.6 returns
						// nodes that are no longer in the document #6963
						if ( elem && elem.parentNode ) {
							// Handle the case where IE and Opera return items
							// by name instead of ID
							if ( elem.id === match[3] ) {
								return makeArray( [ elem ], extra );
							}
							
						} else {
							return makeArray( [], extra );
						}
					}
					
					try {
						return makeArray( context.querySelectorAll(query), extra );
					} catch(qsaError) {}

				// qSA works strangely on Element-rooted queries
				// We can work around this by specifying an extra ID on the root
				// and working up from there (Thanks to Andrew Dupont for the technique)
				// IE 8 doesn't work on object elements
				} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
					var 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 ];
		}

		// release memory in IE
		div = null;
	})();
}

(function(){
	var html = document.documentElement,
		matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;

	if ( matches ) {
		// Check to see if it's possible to do matchesSelector
		// on a disconnected node (IE 9 fails this)
		var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
			pseudoWorks = false;

		try {
			// This should fail with an exception
			// Gecko does not error, returns false instead
			matches.call( document.documentElement, "[test!='']:sizzle" );
	
		} catch( pseudoError ) {
			pseudoWorks = true;
		}

		Sizzle.matchesSelector = function( node, expr ) {
			// Make sure that attribute selectors are quoted
			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 );

						// IE 9's matchesSelector returns false on disconnected nodes
						if ( ret || !disconnectedMatch ||
								// As well, disconnected nodes are said to be in a document
								// fragment in IE 9, so check for that
								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>";

	// Opera can't find a second classname (in 9.6)
	// Also, make sure that getElementsByClassName actually exists
	if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
		return;
	}

	// Safari caches class attributes, doesn't catch changes (in 3.2)
	div.lastChild.className = "e";

	if ( div.getElementsByClassName("e").length === 1 ) {
		return;
	}
	
	Expr.order.splice(1, 0, "CLASS");
	Expr.find.CLASS = function( match, context, isXML ) {
		if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
			return context.getElementsByClassName(match[1]);
		}
	};

	// release memory in IE
	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 ) {
	// documentElement is verified for cases where it doesn't yet exist
	// (such as loading iframes in IE - #4833) 
	var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;

	return documentElement ? documentElement.nodeName !== "HTML" : false;
};

var posProcess = function( selector, context ) {
	var match,
		tmpSet = [],
		later = "",
		root = context.nodeType ? [context] : context;

	// Position selectors must be done after the filter
	// And so must :not(positional) so we move all PSEUDOs to the end
	while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
		later += match[0];
		selector = selector.replace( Expr.match.PSEUDO, "" );
	}

	selector = Expr.relative[selector] ? selector + "*" : selector;

	for ( var i = 0, l = root.length; i < l; i++ ) {
		Sizzle( selector, root[i], tmpSet );
	}

	return Sizzle.filter( later, tmpSet );
};

// EXPOSE

window.Sizzle = Sizzle;

})();

/*
 *  * Droppy 0.1.2
 *   * (c) 2008 Jason Frame (jason@onehackoranother.com)
 *    */
$.fn.droppy = function(options) {
    
  options = $.extend({speed: 250}, options || {});
  
  this.each(function() {
    
    var root = this, zIndex = 1000;
    
    function getSubnav(ele) {
      if (ele.nodeName.toLowerCase() == 'li') {
        var subnav = $('> ul', ele);
        return subnav.length ? subnav[0] : null;
      } else {
        return ele;
      }
    }
    
    function getActuator(ele) {
      if (ele.nodeName.toLowerCase() == 'ul') {
        return $(ele).parents('li')[0];
      } else {
        return ele;
      }
    }
    
    function hide() {
      var subnav = getSubnav(this);
      if (!subnav) return;
      $.data(subnav, 'cancelHide', false);
      setTimeout(function() {
        if (!$.data(subnav, 'cancelHide')) {
          $(subnav).slideUp(options.speed);
        }
      }, 500);
    }
  
    function show() {
      var subnav = getSubnav(this);
      if (!subnav) return;
      $.data(subnav, 'cancelHide', true);
      $(subnav).css({zIndex: zIndex++}).slideDown(options.speed);
      if (this.nodeName.toLowerCase() == 'ul') {
        var li = getActuator(this);
        $(li).addClass('hover');
        $('> a', li).addClass('hover');
      }
    }
    
    $('ul, li', this).hover(show, hide);
    $('li', this).hover(
      function() { $(this).addClass('hover'); $('> a', this).addClass('hover'); },
      function() { $(this).removeClass('hover'); $('> a', this).removeClass('hover'); }
    );
    
  });
  
};

/*
 * jQuery UI Stars v2.1.1
 * http://plugins.jquery.com/project/Star_Rating_widget
 *
 * Copyright (c) 2009 Orkan (orkans@gmail.com)
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * $Rev: 114 $
 * $Date:: 2009-06-12 #$
 * $Build: 32 (2009-06-12)
 *
 * Depends:
 *  ui.core.js
 *
 */
(function(a){a.widget("ui.stars",{_init:function(){var b=this,e=this.options,f=0;e.isSelect=e.inputType=="select";this.$form=a(this.element).closest("form");this.$selec=e.isSelect?a("select",this.element):null;this.$rboxs=e.isSelect?a("option",this.$selec):a(":radio",this.element);this.$stars=this.$rboxs.map(function(j){var k={value:this.value,title:(e.isSelect?this.text:this.title)||this.value,isDefault:(e.isSelect&&this.defaultSelected)||this.defaultChecked};if(j==0){e.split=typeof e.split!="number"?0:e.split;e.val2id=[];e.id2val=[];e.id2title=[];e.name=e.isSelect?b.$selec.get(0).name:this.name;e.disabled=e.disabled||(e.isSelect?a(b.$selec).attr("disabled"):a(this).attr("disabled"))}if(k.value==e.cancelValue){e.cancelTitle=k.title;return null}e.val2id[k.value]=f;e.id2val[f]=k.value;e.id2title[f]=k.title;if(k.isDefault){e.checked=f;e.value=e.defaultValue=k.value;e.title=k.title}var h=a("<div/>").addClass(e.starClass);var l=a("<a/>").attr("title",e.showTitles?k.title:"").text(k.value);if(e.split){var g=(f%e.split);var n=Math.floor(e.starWidth/e.split);h.width(n);l.css("margin-left","-"+(g*n)+"px")}f++;return h.append(l).get(0)});e.items=f;e.isSelect?this.$selec.remove():this.$rboxs.remove();this.$cancel=a("<div/>").addClass(e.cancelClass).append(a("<a/>").attr("title",e.showTitles?e.cancelTitle:"").text(e.cancelValue));e.cancelShow&=!e.disabled&&!e.oneVoteOnly;e.cancelShow&&this.element.append(this.$cancel);this.element.append(this.$stars);if(e.checked===undefined){e.checked=-1;e.value=e.defaultValue=e.cancelValue;e.title=""}this.$value=a('<input type="hidden" name="'+e.name+'" value="'+e.value+'" />');this.element.append(this.$value);this.$stars.bind("click.stars",function(h){if(!e.forceSelect&&e.disabled){return false}var g=b.$stars.index(this);e.checked=g;e.value=e.id2val[g];e.title=e.id2title[g];b.$value.attr({disabled:e.disabled?"disabled":"",value:e.value});c(g,false);b._disableCancel();!e.forceSelect&&b.callback(h,"star")}).bind("mouseover.stars",function(){if(e.disabled){return false}var g=b.$stars.index(this);c(g,true)}).bind("mouseout.stars",function(){if(e.disabled){return false}c(b.options.checked,false)});this.$cancel.bind("click.stars",function(g){if(!e.forceSelect&&(e.disabled||e.value==e.cancelValue)){return false}e.checked=-1;e.value=e.cancelValue;e.title="";b.$value.val(e.value).attr({disabled:"disabled"});d();b._disableCancel();!e.forceSelect&&b.callback(g,"cancel")}).bind("mouseover.stars",function(){if(b._disableCancel()){return false}b.$cancel.addClass(e.cancelHoverClass);d();b._showCap(e.cancelTitle)}).bind("mouseout.stars",function(){if(b._disableCancel()){return false}b.$cancel.removeClass(e.cancelHoverClass);b.$stars.triggerHandler("mouseout.stars")});this.$form.bind("reset.stars",function(){!e.disabled&&b.select(e.defaultValue)});a(window).unload(function(){b.$cancel.unbind(".stars");b.$stars.unbind(".stars");b.$form.unbind(".stars");b.$selec=b.$rboxs=b.$stars=b.$value=b.$cancel=b.$form=null});function c(g,j){if(g!=-1){var k=j?e.starHoverClass:e.starOnClass;var h=j?e.starOnClass:e.starHoverClass;b.$stars.eq(g).prevAll("."+e.starClass).andSelf().removeClass(h).addClass(k);b.$stars.eq(g).nextAll("."+e.starClass).removeClass(e.starHoverClass+" "+e.starOnClass);b._showCap(e.id2title[g])}else{d()}}function d(){b.$stars.removeClass(e.starOnClass+" "+e.starHoverClass);b._showCap("")}this.select(e.value);e.disabled&&this.disable()},_disableCancel:function(){var c=this.options,b=c.disabled||c.oneVoteOnly||(c.value==c.cancelValue);if(b){this.$cancel.removeClass(c.cancelHoverClass).addClass(c.cancelDisabledClass)}else{this.$cancel.removeClass(c.cancelDisabledClass)}this.$cancel.css("opacity",b?0.5:1);return b},_disableAll:function(){var b=this.options;this._disableCancel();if(b.disabled){this.$stars.filter("div").addClass(b.starDisabledClass)}else{this.$stars.filter("div").removeClass(b.starDisabledClass)}},_showCap:function(b){var c=this.options;if(c.captionEl){c.captionEl.text(b)}},value:function(){return this.options.value},select:function(d){var c=this.options,b=(d==c.cancelValue)?this.$cancel:this.$stars.eq(c.val2id[d]);c.forceSelect=true;b.triggerHandler("click.stars");c.forceSelect=false},selectID:function(d){var c=this.options,b=(d==-1)?this.$cancel:this.$stars.eq(d);c.forceSelect=true;b.triggerHandler("click.stars");c.forceSelect=false},enable:function(){this.options.disabled=false;this._disableAll()},disable:function(){this.options.disabled=true;this._disableAll()},destroy:function(){this.options.isSelect?this.$selec.appendTo(this.element):this.$rboxs.appendTo(this.element);this.$form.unbind(".stars");this.$cancel.unbind(".stars").remove();this.$stars.unbind(".stars").remove();this.$value.remove();this.element.unbind(".stars").removeData("stars")},callback:function(c,b){var d=this.options;d.callback&&d.callback(this,b,d.value,c);d.oneVoteOnly&&!d.disabled&&this.disable()}});a.extend(a.ui.stars,{version:"2.1.1",getter:"value",defaults:{inputType:"radio",split:0,disabled:false,cancelTitle:"Cancel Rating",cancelValue:0,cancelShow:true,oneVoteOnly:false,showTitles:false,captionEl:null,callback:null,starWidth:16,cancelClass:"ui-stars-cancel",starClass:"ui-stars-star",starOnClass:"ui-stars-star-on",starHoverClass:"ui-stars-star-hover",starDisabledClass:"ui-stars-star-disabled",cancelHoverClass:"ui-stars-cancel-hover",cancelDisabledClass:"ui-stars-cancel-disabled"}})})(jQuery);(function(a){a.widget("ui.dropdownchecklist",{_appendDropContainer:function(){var c=a("<div/>");c.addClass("ui-dropdownchecklist-dropcontainer-wrapper");c.css({position:"absolute",left:"-3300",top:"-3300px",width:"3000px",height:"3000px"});var b=a("<div/>");b.addClass("ui-dropdownchecklist-dropcontainer").css("overflow-y","auto");c.append(b);a(document.body).append(c);c.drop=false;return c},_appendControl:function(){var b=this,c=this.options,d=this.sourceSelect;var g=a("<span/>");g.addClass("ui-dropdownchecklist-wrapper");g.css({display:"inline-block",cursor:"default"});var f=a("<span/>");f.addClass("ui-dropdownchecklist");f.css({display:"inline-block"});g.append(f);var e=a("<span/>");e.addClass("ui-dropdownchecklist-text");e.css({display:"inline-block",overflow:"hidden"});f.append(e);g.hover(function(){if(!b.disabled){f.toggleClass("ui-dropdownchecklist-hover")}},function(){if(!b.disabled){f.toggleClass("ui-dropdownchecklist-hover")}});g.click(function(h){if(!b.disabled){h.stopPropagation();b._toggleDropContainer()}});g.insertAfter(d);return g},_createDropItem:function(f,h,k,j,c){var n=this;var l=a("<div/>");l.addClass("ui-dropdownchecklist-item");l.css({whiteSpace:"nowrap"});var b=j?' checked="checked"':"";var e=a('<input type="checkbox"'+b+"/>").attr("index",f).val(h);l.append(e);var g=a("<span/>");g.addClass("ui-dropdownchecklist-text").css({cursor:"default",width:"100%"}).text(k);if(c){l.addClass("ui-dropdownchecklist-indent")}l.append(g);l.hover(function(){l.addClass("ui-dropdownchecklist-item-hover")},function(){l.removeClass("ui-dropdownchecklist-item-hover")});e.click(function(o){o.stopPropagation();n._syncSelected(a(this));n.sourceSelect.trigger("change")});var d=function(q){q.stopPropagation();var o=e.attr("checked");e.attr("checked",!o);n._syncSelected(e);n.sourceSelect.trigger("change")};g.click(d);l.click(d);return l},_createGroupItem:function(e){var b=this;var d=a("<div />");d.addClass("ui-dropdownchecklist-group");d.css({whiteSpace:"nowrap"});var c=a("<span/>");c.addClass("ui-dropdownchecklist-text").css({cursor:"default",width:"100%"}).text(e);d.append(c);return d},_appendItems:function(){var d=this,h=this.sourceSelect,f=this.controlWrapper,g=this.dropWrapper;var b=g.find(".ui-dropdownchecklist-dropcontainer");b.css({"float":"left"});h.children().each(function(j){var k=a(this);if(k.is("option")){d._appendOption(k,b,j,false)}else{var n=k.attr("label");var l=d._createGroupItem(n);b.append(l);d._appendOptions(k,b,j,true)}});var c=b.outerWidth();var e=b.outerHeight();b.css({"float":""});return{width:c,height:e}},_appendOptions:function(f,c,e,b){var d=this;f.children("option").each(function(g){var h=a(this);var j=(e+"."+g);d._appendOption(h,c,j,b)})},_appendOption:function(e,b,f,c){var k=this;var h=e.text();var g=e.val();var d=e.attr("selected");var j=k._createDropItem(f,g,h,d,c);b.append(j)},_syncSelected:function(h){var j=this,l=this.options,c=this.sourceSelect,g=this.controlWrapper,d=this.dropWrapper;var f=d.find("input");if(l.firstItemChecksAll){if(h.attr("index")==0){f.attr("checked",h.attr("checked"))}else{var e;e=true;f.each(function(n){if(n>0){var o=a(this).attr("checked");if(!o){e=false}}});var k=f.filter(":first");k.attr("checked",false);if(e){k.attr("checked",true)}}}var b=c.get(0).options;f.each(function(n){a(b[n]).attr("selected",a(this).attr("checked"))});j._updateControlText()},_updateControlText:function(){var j=this,b=this.sourceSelect,k=this.options,f=this.controlWrapper,d=this.dropWrapper;var l=b.find("option:first");var g=null!=l&&l.attr("selected");var c=b.find("option");var h=j._formatText(c,k.firstItemChecksAll,g);var e=f.find(".ui-dropdownchecklist-text");e.text(h);e.attr("title",h)},_formatText:function(c,d,b){var e;if(d&&b){e=c.filter(":first").text()}else{e="";c.each(function(){if(a(this).attr("selected")){e+=a(this).text()+", "}});if(e.length>0){e=e.substring(0,e.length-2)}}return e},_toggleDropContainer:function(){var c=this,f=this.dropWrapper,e=this.controlWrapper;var d=function(){var g=a.ui.dropdownchecklist.drop;if(null!=g){g.dropWrapper.css({top:"-3300px",left:"-3300px"});g.controlWrapper.find(".ui-dropdownchecklist").toggleClass("ui-dropdownchecklist-active");g.dropWrapper.drop=false;a.ui.dropdownchecklist.drop=null;a(document).unbind("click",d);c.sourceSelect.trigger("blur")}};var b=function(g){if(null!=a.ui.dropdownchecklist.drop){d()}g.dropWrapper.css({top:g.controlWrapper.offset().top+g.controlWrapper.outerHeight()+"px",left:g.controlWrapper.offset().left+"px"});g.controlWrapper.find(".ui-dropdownchecklist").toggleClass("ui-dropdownchecklist-active");g.dropWrapper.drop=true;a.ui.dropdownchecklist.drop=g;a(document).bind("click",d);c.sourceSelect.trigger("focus")};if(f.drop){d(c)}else{b(c)}},_setSize:function(b){var k=this.options,e=this.dropWrapper,h=this.controlWrapper;var g;if(k.width){g=parseInt(k.width)}else{g=b.width;var c=k.minWidth;if(g<c){g=c}}h.find(".ui-dropdownchecklist-text").css({width:g+"px"});var j=h.outerWidth();var f=k.maxDropHeight?parseInt(k.maxDropHeight):b.height;var d=b.width<j?j:b.width;a(e).css({width:d+"px",height:f+"px"});e.find(".ui-dropdownchecklist-dropcontainer").css({height:f+"px"})},_init:function(){var c=this,d=this.options;var g=c.element;c.initialDisplay=g.css("display");g.css("display","none");c.initialMultiple=g.attr("multiple");g.attr("multiple","multiple");c.sourceSelect=g;var f=c._appendDropContainer();c.dropWrapper=f;var b=c._appendItems();var e=c._appendControl();c.controlWrapper=e;c._updateControlText(e,f,g);c._setSize(b)},enable:function(){this.controlWrapper.find(".ui-dropdownchecklist").removeClass("ui-dropdownchecklist-disabled");this.disabled=false},disable:function(){this.controlWrapper.find(".ui-dropdownchecklist").addClass("ui-dropdownchecklist-disabled");this.disabled=true},destroy:function(){a.widget.prototype.destroy.apply(this,arguments);this.sourceSelect.css("display",this.initialDisplay);this.sourceSelect.attr("multiple",this.initialMultiple);this.controlWrapper.unbind().remove();this.dropWrapper.remove()}});a.extend(a.ui.dropdownchecklist,{defaults:{width:null,maxDropHeight:null,firstItemChecksAll:false,minWidth:50}})})(jQuery);$.fn.droppy=function(a){a=$.extend({speed:250},a||{});this.each(function(){var c=this,g=1000;function f(j){if(j.nodeName.toLowerCase()=="li"){var h=$("> ul",j);return h.length?h[0]:null}else{return j}}function d(h){if(h.nodeName.toLowerCase()=="ul"){return $(h).parents("li")[0]}else{return h}}function e(){var h=f(this);if(!h){return}$.data(h,"cancelHide",false);setTimeout(function(){if(!$.data(h,"cancelHide")){$(h).slideUp(a.speed)}},500)}function b(){var j=f(this);if(!j){return}$.data(j,"cancelHide",true);$(j).css({zIndex:g++}).slideDown(a.speed);if(this.nodeName.toLowerCase()=="ul"){var h=d(this);$(h).addClass("hover");$("> a",h).addClass("hover")}}$("ul, li",this).hover(b,e);$("li",this).hover(function(){$(this).addClass("hover");$("> a",this).addClass("hover")},function(){$(this).removeClass("hover");$("> a",this).removeClass("hover")})})};jQuery.extend({createUploadIframe:function(d,b){var a="jUploadFrame"+d;if(window.ActiveXObject){var c=document.createElement('<iframe id="'+a+'" name="'+a+'" />');if(typeof b=="boolean"){c.src="javascript:false"}else{if(typeof b=="string"){c.src=b}}}else{var c=document.createElement("iframe");c.id=a;c.name=a}c.style.position="absolute";c.style.top="-1000px";c.style.left="-1000px";document.body.appendChild(c);return c},createUploadForm:function(g,b){var e="jUploadForm"+g;var a="jUploadFile"+g;var d=$('<form  action="" method="POST" name="'+e+'" id="'+e+'" enctype="multipart/form-data"></form>');var c=$("#"+b);var f=$(c).clone();$(c).attr("id",a);$(c).before(f);$(c).appendTo(d);$(d).css("position","absolute");$(d).css("top","-1200px");$(d).css("left","-1200px");$(d).appendTo("body");return d},ajaxFileUpload:function(l){l=jQuery.extend({},jQuery.ajaxSettings,l);var a=new Date().getTime();var b=jQuery.createUploadForm(a,l.fileElementId);var j=jQuery.createUploadIframe(a,l.secureuri);var h="jUploadFrame"+a;var k="jUploadForm"+a;if(l.global&&!jQuery.active++){jQuery.event.trigger("ajaxStart")}var c=false;var f={};if(l.global){jQuery.event.trigger("ajaxSend",[f,l])}var d=function(n){var u=document.getElementById(h);try{if(u.contentWindow){f.responseText=u.contentWindow.document.body?u.contentWindow.document.body.innerHTML:null;f.responseXML=u.contentWindow.document.XMLDocument?u.contentWindow.document.XMLDocument:u.contentWindow.document}else{if(u.contentDocument){f.responseText=u.contentDocument.document.body?u.contentDocument.document.body.innerHTML:null;f.responseXML=u.contentDocument.document.XMLDocument?u.contentDocument.document.XMLDocument:u.contentDocument.document}}}catch(r){jQuery.handleError(l,f,null,r)}if(f||n=="timeout"){c=true;var o;try{o=n!="timeout"?"success":"error";if(o!="error"){var q=jQuery.uploadHttpData(f,l.dataType);if(l.success){l.success(q,o)}if(l.global){jQuery.event.trigger("ajaxSuccess",[f,l])}}else{jQuery.handleError(l,f,o)}}catch(r){o="error";jQuery.handleError(l,f,o,r)}if(l.global){jQuery.event.trigger("ajaxComplete",[f,l])}if(l.global&&!--jQuery.active){jQuery.event.trigger("ajaxStop")}if(l.complete){l.complete(f,o)}jQuery(u).unbind();setTimeout(function(){try{$(u).remove();$(b).remove()}catch(v){jQuery.handleError(l,f,null,v)}},100);f=null}};if(l.timeout>0){setTimeout(function(){if(!c){d("timeout")}},l.timeout)}try{var b=$("#"+k);$(b).attr("action",l.url);$(b).attr("method","POST");$(b).attr("target",h);if(b.encoding){b.encoding="multipart/form-data"}else{b.enctype="multipart/form-data"}$(b).submit()}catch(g){jQuery.handleError(l,f,null,g)}if(window.attachEvent){document.getElementById(h).attachEvent("onload",d)}else{document.getElementById(h).addEventListener("load",d,false)}return{abort:function(){}}},uploadHttpData:function(r,type){var data=!type;data=type=="xml"||data?r.responseXML:r.responseText;if(type=="script"){jQuery.globalEval(data)}if(type=="json"){eval("data = "+data)}if(type=="html"){jQuery("<div>").html(data).evalScripts()}return data}});var animatedcollapse={divholders:{},show:function(b){if(typeof b=="object"){for(var a=0;a<b.length;a++){this.showhide(b[a],"show")}}else{this.showhide(b,"show")}},hide:function(b){if(typeof b=="object"){for(var a=0;a<b.length;a++){this.showhide(b[a],"hide")}}else{this.showhide(b,"hide")}},toggle:function(a){this.showhide(a,"toggle")},addDiv:function(b,a){this.divholders[b]=({id:b,$divref:null,attrs:a});this.divholders[b].getAttr=function(d){var c=new RegExp(d+"=([^,]+)","i");return(c.test(this.attrs)&&parseInt(RegExp.$1)!=0)?RegExp.$1:null}},showhide:function(c,b){var a=this.divholders[c].$divref;if(this.divholders[c]&&a.length==1){this.slideengine(c,b)}},slideengine:function(d,c){var a=this.divholders[d].$divref;if(this.divholders[d]&&a.length==1){var b={height:c};if(a.attr("fade")){b.opacity=c}a.animate(b,a.attr("speed")?parseInt(a.attr("speed")):500);return false}},generatemap:function(){var b={};for(var a=0;a<arguments.length;a++){if(arguments[a][1]!=null){b[arguments[a][0]]=arguments[a][1]}}return b},init:function(){var a=this;jQuery(document).ready(function(c){var b=a.getCookie("acopendivids");if(b!=null){b=(b=="nada")?[]:b.split(",")}jQuery.each(a.divholders,function(){this.$divref=c("#"+this.id);if(this.getAttr("persist")&&b!=null){var d=(jQuery.inArray(this.id,b)!=-1)?"none":"block"}else{var d=this.getAttr("hide")?"none":null}this.$divref.css(a.generatemap(["height",this.getAttr("height")],["display",d]));this.$divref.attr(a.generatemap(["fade",this.getAttr("fade")],["speed",this.getAttr("speed")]))});c(window).bind("unload",function(){a.uninit()})})},uninit:function(){var b="";var a=this.getCookie("acopendivids");if(a!=null){a=(a=="nada")?[]:a.split(",")}jQuery.each(this.divholders,function(){if(this.$divref.css("display")=="none"){b+=this.id+","}else{if(a!=null){if(jQuery.inArray(this.id,a)!=-1&&this.$divref.css("display")!="block"){b+=this.id+","}}}});b=(b=="")?"nada":b.replace(/,$/,"");this.setCookie("acopendivids",b,"16")},getCookie:function(a){var b=new RegExp(a+"=[^;]*","i");if(document.cookie.match(b)){return document.cookie.match(b)[0].split("=")[1]}return null},setCookie:function(b,c,d){if(typeof d!="undefined"){var a=new Date();a.setDate(a.getDate()+d);document.cookie=b+"="+c+"; path=/; expires="+a.toGMTString()}else{document.cookie=b+"="+c+"; path=/"}}};(function(a){a.fn.hoverIntent=function(l,k){var n={sensitivity:7,interval:100,timeout:0};n=a.extend(n,k?{over:l,out:k}:l);var q,o,h,d;var e=function(f){q=f.pageX;o=f.pageY};var c=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);if((Math.abs(h-q)+Math.abs(d-o))<n.sensitivity){a(f).unbind("mousemove",e);f.hoverIntent_s=1;return n.over.apply(f,[g])}else{h=q;d=o;f.hoverIntent_t=setTimeout(function(){c(g,f)},n.interval)}};var j=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);f.hoverIntent_s=0;return n.out.apply(f,[g])};var b=function(u){var r=(u.type=="mouseover"?u.fromElement:u.toElement)||u.relatedTarget;while(r&&r!=this){try{r=r.parentNode}catch(u){r=this}}if(r==this){return false}var g=jQuery.extend({},u);var f=this;if(f.hoverIntent_t){f.hoverIntent_t=clearTimeout(f.hoverIntent_t)}if(u.type=="mouseover"){h=g.pageX;d=g.pageY;a(f).bind("mousemove",e);if(f.hoverIntent_s!=1){f.hoverIntent_t=setTimeout(function(){c(g,f)},n.interval)}}else{a(f).unbind("mousemove",e);if(f.hoverIntent_s==1){f.hoverIntent_t=setTimeout(function(){j(g,f)},n.timeout)}}};return this.mouseover(b).mouseout(b)}})(jQuery);(function(b){b.fn.superfish=function(l){var g=b.fn.superfish,k=g.c,f=b(['<span class="',k.arrowClass,'"> &#187;</span>'].join("")),j=function(){var c=b(this),n=d(c);clearTimeout(n.sfTimer);c.showSuperfishUl().siblings().hideSuperfishUl()},e=function(){var c=b(this),q=d(c),n=g.op;clearTimeout(q.sfTimer);q.sfTimer=setTimeout(function(){n.retainPath=(b.inArray(c[0],n.$path)>-1);c.hideSuperfishUl();if(n.$path.length&&c.parents(["li.",n.hoverClass].join("")).length<1){j.call(n.$path)}},n.delay)},d=function(c){var n=c.parents(["ul.",k.menuClass,":first"].join(""))[0];g.op=g.o[n.serial];return n},h=function(c){c.addClass(k.anchorClass).append(f.clone())};return this.each(function(){var c=this.serial=g.o.length;var q=b.extend({},g.defaults,l);q.$path=b("li."+q.pathClass,this).slice(0,q.pathLevels).each(function(){b(this).addClass([q.hoverClass,k.bcClass].join(" ")).filter("li:has(ul)").removeClass(q.pathClass)});g.o[c]=g.op=q;b("li:has(ul)",this)[(b.fn.hoverIntent&&!q.disableHI)?"hoverIntent":"hover"](j,e).each(function(){if(q.autoArrows){h(b(">a:first-child",this))}}).not("."+k.bcClass).hideSuperfishUl();var n=b("a",this);n.each(function(o){var r=n.eq(o).parents("li");n.eq(o).focus(function(){j.call(r)}).blur(function(){e.call(r)})});q.onInit.call(this)}).each(function(){var c=[k.menuClass];if(g.op.dropShadows&&!(b.browser.msie&&b.browser.version<7)){c.push(k.shadowClass)}b(this).addClass(c.join(" "))})};var a=b.fn.superfish;a.o=[];a.op={};a.IE7fix=function(){var c=a.op;if(b.browser.msie&&b.browser.version>6&&c.dropShadows&&c.animation.opacity!=undefined){this.toggleClass(a.c.shadowClass+"-off")}};a.c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",arrowClass:"sf-sub-indicator",shadowClass:"sf-shadow"};a.defaults={hoverClass:"sfHover",pathClass:"overideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},speed:"normal",autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};b.fn.extend({hideSuperfishUl:function(){var e=a.op,d=(e.retainPath===true)?e.$path:"";e.retainPath=false;var c=b(["li.",e.hoverClass].join(""),this).add(this).not(d).removeClass(e.hoverClass).find(">ul").hide().css("visibility","hidden");e.onHide.call(c);return this},showSuperfishUl:function(){var e=a.op,d=a.c.shadowClass+"-off",c=this.addClass(e.hoverClass).find(">ul:hidden").css("visibility","visible");a.IE7fix.call(c);e.onBeforeShow.call(c);c.animate(e.animation,e.speed,function(){a.IE7fix.call(c);e.onShow.call(c)});return this}})})(jQuery);(function(a){a.fn.supersubs=function(b){var c=a.extend({},a.fn.supersubs.defaults,b);return this.each(function(){var d=a(this);var e=a.meta?a.extend({},c,d.data()):c;var f=a('<li id="menu-fontsize">&#8212;</li>').css({padding:0,position:"absolute",top:"-999em",width:"auto"}).appendTo(d).width();a("#menu-fontsize").remove();$ULs=d.find("ul");$ULs.each(function(l){var k=$ULs.eq(l);var j=k.children();var g=j.children("a");var n=j.css("white-space","nowrap").css("float");var h=k.add(j).add(g).css({"float":"none",width:"auto"}).end().end()[0].clientWidth/f;h+=e.extraWidth;if(h>e.maxWidth){h=e.maxWidth}else{if(h<e.minWidth){h=e.minWidth}}h+="em";k.css("width",h);j.css({"float":n,width:"100%","white-space":"normal"}).each(function(){var q=a(">ul",this);var o=q.css("left")!==undefined?"left":"right";q.css(o,h)})})})};a.fn.supersubs.defaults={minWidth:9,maxWidth:25,extraWidth:0}})(jQuery);(function(a){a.fn.rssReader=function(g){var e=this;var f=a.extend({targeturl:"http://www.clashdesign.net/blog/index.php/feed/rss2",items:5,Maxlength:80,loadingImg:"35-1.gif",background:"#fff",lang_readmore:"Read more",lang_loadingalt:"Feed is loading ...",lang_errorpage:"Error requesting page"},g);if(!g.targeturl){return false}var d=a.extend(f,g);var c=(a.browser.msie);if(c){a(e).ajaxStart(function(){a(e).css({backgroundColor:"#ccc","z-index":90,opacity:0.4});a('<img class="loading" src="'+d.loadingImg+'" alt="'+d.lang_loadingalt+'" />').css({opacity:1}).appendTo(e)});a(e).ajaxError(function(){a(this).append("<strong>"+d.lang_errorpage+"</strong>")});a.get(d.targeturl,function(n){a(e).children("img").remove();a(e).css({backgroundColor:d.background,opacity:1});var j=0;var l=g.items;function k(o){a(n).find("item").each(function(u){if(u>o-1){return}var r=a(this).find("title").text();var q=a(this).find("pubDate").text();var w=a(this).find("link").text();var v=a(this).find("description").text();a('<a href="'+w+'">'+r+"</a>").html(r).appendTo(e);a('<div class="date">'+q+"</div>").html(q).appendTo(e);a('<div class="description">'+b(v,g.Maxlength)+"</div>").html(b(v,g.Maxlength)+"...").appendTo(e);a(e).children(".description").find("img").remove();a('<a class="rss_readmore" href="'+w+'">'+d.lang_readmore+"</a><br />").appendTo(e)})}return k(l)})}else{var h="xml";a.ajax({type:"get",url:d.targeturl,dataType:h,processData:false,beforeSend:function(){a(e).css({"z-index":90,opacity:0.4});a('<img class="loading" src="'+d.loadingImg+'" alt="'+d.lang_loadingalt+'" />').css({opacity:1}).appendTo(e)},success:function(n){a(e).css({opacity:1});a(e).children("img").remove();var j=0;var l=g.items;function k(o){a(n).find("item").each(function(u){if(u>o-1){return}var r=a(this).find("title").text();var q=a(this).find("pubDate").text();var w=a(this).find("link").text();var v=a(this).find("description").text();a('<a class="targetblank" href="'+w+'">'+r+"</a>").html(r).appendTo(e);a('<div class="date">'+q+"</div>").html(q).appendTo(e);a('<div class="description">'+b(v,g.Maxlength)+"</div>").html(b(v,g.Maxlength)+"...").appendTo(e);a(e).children(".description").find("img").remove();a('<a class="rss_readmore" href="'+w+'">'+d.lang_readmore+"</a><br /><br />").appendTo(e)})}return k(l)}})}};function b(f,e){var j=f.split(/\s/);if(j.length<=e){return f}var h="";for(var g=0;g<e;g++){h+=j[g]+" "}return h}})(jQuery);(function(a){a.fn.extend({jtimepicker:function(b){var c={clockIcon:"images/icon_clock_2.gif",orientation:"horizontal",hourCombo:"hourcombo",hourMode:24,hourInterval:1,hourDefaultValue:0,hourSlider:"hourSlider",hourLabel:"hour",minCombo:"mincombo",minLength:60,minInterval:5,minDefaultValue:0,minSlider:"minSlider",minLabel:"min",secView:true,secCombo:"seccombo",secLength:60,secInterval:5,secDefaultValue:0,secSlider:"secSlider",secLabel:"sec"};var b=a.extend(c,b);return this.each(function(){var h=b;var g=a(this);var e="";var d=(h.orientation=="horizontal")?"auto":"vertical";var f=[{label:h.hourLabel,slider:h.hourSlider,combo:h.hourCombo},{label:h.minLabel,slider:h.minSlider,combo:h.minCombo}];e+=g.createCombo(h.hourCombo,h.hourMode,h.hourInterval,h.hourDefaultValue);e+=g.createCombo(h.minCombo,h.minLength,h.minInterval,h.minDefaultValue);if(h.secView){f.push({label:h.secLabel,slider:h.secSlider,combo:h.secCombo});e+=g.createCombo(h.secCombo,h.secLength,h.secInterval,h.secDefaultValue)}e+='<img src="'+h.clockIcon+'" class="clock" />';e+=g.createSliderWrap(f);g.html(e);a("#sliderWrap").addClass(d);g.createSlider(h.hourSlider,h.hourMode,h.hourCombo,h.hourInterval,h.hourDefaultValue,h.orientation);g.createSlider(h.minSlider,h.minLength,h.minCombo,h.minInterval,h.minDefaultValue,h.orientation);if(h.secView){g.createSlider(h.secSlider,h.secLength,h.secCombo,h.secInterval,h.secDefaultValue,h.orientation)}a.each(f,function(j,k){a("."+k.combo).change(function(){var l=a(this).val();a("."+k.slider).slider("option","value",l)})});g.find(".clock").click(function(){g.find("#sliderWrap").toggle(function(){a(document).click(function(j){if(!(a(j.target).is("#sliderWrap")||a(j.target).parents("#sliderWrap").length||a(j.target).is(".clock"))){g.find("#sliderWrap").hide(500)}})})})})}});a.fn.createCombo=function(h,f,c,g){var d='<select class="'+h+' combo">';for(i=0;i<f;i+=c){var e=i==g?' selected="selected"':"";var b=i<10?"0"+i:i;d+='<option value="'+i+'"'+e+">"+b+"</option>"}d+="</select>";return d};a.fn.createSliderWrap=function(c){var b='<div id="sliderWrap">';a.each(c,function(d,e){b+="   <div><label>"+e.label+':</label> <p class="'+e.slider+'"></p></div>'});b+="</div>";return b};a.fn.createSlider=function(h,g,f,b,d,c){var e=a(this);e.find("."+h).slider({orientation:c,range:"min",min:0,max:g-b,value:d,step:b,animate:true,slide:function(j,k){e.find("."+f).val(k.value)}})}})(jQuery);(function(e){var b;e.jqplot=function(r,o,l){var n,k;if(o==null){throw"No data specified"}if(o.constructor==Array&&o.length==0||o[0].constructor!=Array){throw"Improper Data Array"}if(l==null){if(o instanceof Array){n=o;k=null}else{if(o.constructor==Object){n=null;k=o}}}else{n=o;k=l}var q=new h();q.init(r,n,k);q.draw();return q};e.jqplot.debug=1;e.jqplot.preInitHooks=[];e.jqplot.postInitHooks=[];e.jqplot.preParseOptionsHooks=[];e.jqplot.postParseOptionsHooks=[];e.jqplot.preDrawHooks=[];e.jqplot.postDrawHooks=[];e.jqplot.preDrawSeriesHooks=[];e.jqplot.postDrawSeriesHooks=[];e.jqplot.preDrawLegendHooks=[];e.jqplot.addLegendRowHooks=[];e.jqplot.preSeriesInitHooks=[];e.jqplot.postSeriesInitHooks=[];e.jqplot.preParseSeriesOptionsHooks=[];e.jqplot.postParseSeriesOptionsHooks=[];e.jqplot.eventListenerHooks=[];e.jqplot.preDrawSeriesShadowHooks=[];e.jqplot.postDrawSeriesShadowHooks=[];e.jqplot.ElemContainer=function(){this._elem;this._plotWidth;this._plotHeight;this._plotDimensions={height:null,width:null}};e.jqplot.ElemContainer.prototype.getWidth=function(){return this._elem.outerWidth(true)};e.jqplot.ElemContainer.prototype.getHeight=function(){return this._elem.outerHeight(true)};e.jqplot.ElemContainer.prototype.getPosition=function(){return this._elem.position()};e.jqplot.ElemContainer.prototype.getTop=function(){return this.getPosition().top};e.jqplot.ElemContainer.prototype.getLeft=function(){return this.getPosition().left};e.jqplot.ElemContainer.prototype.getBottom=function(){return this._elem.css("bottom")};e.jqplot.ElemContainer.prototype.getRight=function(){return this._elem.css("right")};function g(k){e.jqplot.ElemContainer.call(this);this.name=k;this._series=[];this.show=false;this.tickRenderer=e.jqplot.AxisTickRenderer;this.tickOptions={};this.labelRenderer=e.jqplot.AxisLabelRenderer;this.labelOptions={};this.label=null;this.showLabel=true;this.min=null;this.max=null;this.autoscale=false;this.pad=1.2;this.padMax=null;this.padMin=null;this.ticks=[];this.numberTicks;this.tickInterval;this.renderer=e.jqplot.LinearAxisRenderer;this.rendererOptions={};this.showTicks=true;this.showTickMarks=true;this.showMinorTicks=true;this.useSeriesColor=false;this.borderWidth=null;this.borderColor=null;this._dataBounds={min:null,max:null};this._offsets={min:null,max:null};this._ticks=[];this._label=null}g.prototype=new e.jqplot.ElemContainer();g.prototype.constructor=g;g.prototype.init=function(){this.renderer=new this.renderer();this.tickOptions.axis=this.name;if(this.label==null||this.label==""){this.showLabel=false}else{this.labelOptions.label=this.label}if(this.showLabel==false){this.labelOptions.show=false}if(this.pad==0){this.pad=1}if(this.padMax==0){this.padMax=1}if(this.padMin==0){this.padMin=1}if(this.padMax==null){this.padMax=(this.pad-1)/2+1}if(this.padMin==null){this.padMin=(this.pad-1)/2+1}if(this.min!=null||this.max!=null){this.autoscale=false}this.renderer.init.call(this,this.rendererOptions)};g.prototype.draw=function(k){return this.renderer.draw.call(this,k)};g.prototype.set=function(){this.renderer.set.call(this)};g.prototype.pack=function(l,k){if(this.show){this.renderer.pack.call(this,l,k)}};function a(){e.jqplot.ElemContainer.call(this);this.show=false;this.location="ne";this.xoffset=12;this.yoffset=12;this.border;this.background;this.textColor;this.fontFamily;this.fontSize;this.rowSpacing="0.5em";this.renderer=e.jqplot.TableLegendRenderer;this.rendererOptions={};this.preDraw=false;this.escapeHtml=false;this._series=[]}a.prototype=new e.jqplot.ElemContainer();a.prototype.constructor=a;a.prototype.init=function(){this.renderer=new this.renderer();this.renderer.init.call(this,this.rendererOptions)};a.prototype.draw=function(l){for(var k=0;k<e.jqplot.preDrawLegendHooks.length;k++){e.jqplot.preDrawLegendHooks[k].call(this,l)}return this.renderer.draw.call(this,l)};a.prototype.pack=function(k){this.renderer.pack.call(this,k)};e.jqplot.TableLegendRenderer=function(){};function f(k){e.jqplot.ElemContainer.call(this);this.text=k;this.show=true;this.fontFamily;this.fontSize;this.textAlign;this.textColor;this.renderer=e.jqplot.DivTitleRenderer;this.rendererOptions={}}f.prototype=new e.jqplot.ElemContainer();f.prototype.constructor=f;f.prototype.init=function(){this.renderer=new this.renderer();this.renderer.init.call(this,this.rendererOptions)};f.prototype.draw=function(k){return this.renderer.draw.call(this,k)};f.prototype.pack=function(){this.renderer.pack.call(this)};function j(){e.jqplot.ElemContainer.call(this);this.show=true;this.xaxis="xaxis";this._xaxis;this.yaxis="yaxis";this._yaxis;this.gridBorderWidth=2;this.renderer=e.jqplot.LineRenderer;this.rendererOptions={};this.data=[];this.gridData=[];this.label="";this.color;this.lineWidth=2.5;this.shadow=true;this.shadowAngle=45;this.shadowOffset=1.25;this.shadowDepth=3;this.shadowAlpha="0.1";this.breakOnNull=false;this.markerRenderer=e.jqplot.MarkerRenderer;this.markerOptions={};this.showLine=true;this.showMarker=true;this.index;this.fill=false;this.fillColor;this.fillAlpha;this.fillAndStroke=false;this._stack=false;this.neighborThreshold=4;this._stackData=[];this._plotData=[];this._prevPlotData=[];this._prevGridData=[];this._stackAxis="y";this._primaryAxis="_xaxis";this.plugins={}}j.prototype=new e.jqplot.ElemContainer();j.prototype.constructor=j;j.prototype.init=function(l,r){this.index=l;this.gridBorderWidth=r;var q=this.data;for(var n=0;n<q.length;n++){if(!this.breakOnNull){if(q[n]==null||q[n][0]==null||q[n][1]==null){q.splice(n,1);continue}}else{if(q[n]==null||q[n][0]==null||q[n][1]==null){var o}}}if(!this.fillColor){this.fillColor=this.color}if(this.fillAlpha){var k=e.jqplot.normalize2rgb(this.fillColor);var k=e.jqplot.getColorComponents(k);this.fillColor="rgba("+k[0]+","+k[1]+","+k[2]+","+this.fillAlpha+")"}this.renderer=new this.renderer();this.renderer.init.call(this,this.rendererOptions);this.markerRenderer=new this.markerRenderer();if(!this.markerOptions.color){this.markerOptions.color=this.color}if(this.markerOptions.show==null){this.markerOptions.show=this.showMarker}this.markerRenderer.init(this.markerOptions)};j.prototype.draw=function(r,o){var l=(o==b)?{}:o;for(var k=0;k<e.jqplot.preDrawSeriesHooks.length;k++){e.jqplot.preDrawSeriesHooks[k].call(this,r,l)}if(this.show){this.renderer.setGridData.call(this);if(!l.preventJqPlotSeriesDrawTrigger){e(r.canvas).trigger("jqplotSeriesDraw",[this.data,this.gridData])}var q=[];if(l.data){q=l.data}else{if(!this._stack){q=this.data}else{q=this._plotData}}var n=l.gridData||this.renderer.makeGridData.call(this,q);this.renderer.draw.call(this,r,n,l)}for(var k=0;k<e.jqplot.postDrawSeriesHooks.length;k++){e.jqplot.postDrawSeriesHooks[k].call(this,r,l)}};j.prototype.drawShadow=function(r,o){var l=(o==b)?{}:o;for(var k=0;k<e.jqplot.preDrawSeriesShadowHooks.length;k++){e.jqplot.preDrawSeriesShadowHooks[k].call(this,r,l)}if(this.shadow){this.renderer.setGridData.call(this);var q=[];if(l.data){q=l.data}else{if(!this._stack){q=this.data}else{q=this._plotData}}var n=l.gridData||this.renderer.makeGridData.call(this,q);this.renderer.drawShadow.call(this,r,n,l)}for(var k=0;k<e.jqplot.postDrawSeriesShadowHooks.length;k++){e.jqplot.postDrawSeriesShadowHooks[k].call(this,r,l)}};function d(){e.jqplot.ElemContainer.call(this);this.drawGridlines=true;this.gridLineColor="#cccccc";this.gridLineWidth=1;this.background="#fffdf6";this.borderColor="#999999";this.borderWidth=2;this.shadow=true;this.shadowAngle=45;this.shadowOffset=1.5;this.shadowWidth=3;this.shadowDepth=3;this.shadowAlpha="0.07";this._left;this._top;this._right;this._bottom;this._width;this._height;this._axes=[];this.renderer=e.jqplot.CanvasGridRenderer;this.rendererOptions={};this._offsets={top:null,bottom:null,left:null,right:null}}d.prototype=new e.jqplot.ElemContainer();d.prototype.constructor=d;d.prototype.init=function(){this.renderer=new this.renderer();this.renderer.init.call(this,this.rendererOptions)};d.prototype.createElement=function(k){this._offsets=k;return this.renderer.createElement.call(this)};d.prototype.draw=function(){this.renderer.draw.call(this)};e.jqplot.GenericCanvas=function(){e.jqplot.ElemContainer.call(this);this._ctx};e.jqplot.GenericCanvas.prototype=new e.jqplot.ElemContainer();e.jqplot.GenericCanvas.prototype.constructor=e.jqplot.GenericCanvas;e.jqplot.GenericCanvas.prototype.createElement=function(q,n,l){this._offsets=q;var k="jqplot";if(n!=b){k=n}var o=document.createElement("canvas");if(l!=b){this._plotDimensions=l}o.width=this._plotDimensions.width-this._offsets.left-this._offsets.right;o.height=this._plotDimensions.height-this._offsets.top-this._offsets.bottom;this._elem=e(o);this._elem.addClass(k);this._elem.css({position:"absolute",left:this._offsets.left,top:this._offsets.top});if(e.browser.msie){window.G_vmlCanvasManager.init_(document)}if(e.browser.msie){o=window.G_vmlCanvasManager.initElement(o)}return this._elem};e.jqplot.GenericCanvas.prototype.setContext=function(){this._ctx=this._elem.get(0).getContext("2d");return this._ctx};function h(){this.data=[];this.targetId=null;this.target=null;this.defaults={axesDefaults:{},axes:{xaxis:{},yaxis:{},x2axis:{},y2axis:{},y3axis:{},y4axis:{},y5axis:{},y6axis:{},y7axis:{},y8axis:{},y9axis:{}},seriesDefaults:{},gridPadding:{top:10,right:10,bottom:10,left:10},series:[]};this.series=[];this.axes={xaxis:new g("xaxis"),yaxis:new g("yaxis"),x2axis:new g("x2axis"),y2axis:new g("y2axis"),y3axis:new g("y3axis"),y4axis:new g("y4axis"),y5axis:new g("y5axis"),y6axis:new g("y6axis"),y7axis:new g("y7axis"),y8axis:new g("y8axis"),y9axis:new g("y9axis")};this.grid=new d();this.legend=new a();this.baseCanvas=new e.jqplot.GenericCanvas();this.seriesCanvas=new e.jqplot.GenericCanvas();this.eventCanvas=new e.jqplot.GenericCanvas();this._width=null;this._height=null;this._plotDimensions={height:null,width:null};this._gridPadding={top:10,right:10,bottom:10,left:10};this.equalXTicks=true;this.equalYTicks=true;this.seriesColors=["#4bb2c5","#EAA228","#c5b47f","#579575","#839557","#958c12","#953579","#4b5de4","#d8b83f","#ff5800","#0085cc"];this.sortData=true;var o=0;this.textColor;this.fontFamily;this.fontSize;this.title=new f();this.options={};this.stackSeries=false;this._stackData=[];this._plotData=[];this.plugins={};this.colorGenerator=ColorGenerator;this.init=function(x,w,u){for(var v=0;v<e.jqplot.preInitHooks.length;v++){e.jqplot.preInitHooks[v].call(this,x,w,u)}this.targetId=x;this.target=e("#"+x);if(!this.target.get(0)){throw"No plot target specified"}if(this.target.css("position")=="static"){this.target.css("position","relative")}if(!this.target.hasClass("jqplot-target")){this.target.addClass("jqplot-target")}if(!this.target.height()){this._height=300;this.target.css("height","300px")}else{this._height=this.target.height()}if(!this.target.width()){this._width=400;this.target.css("width","400px")}else{this._width=this.target.width()}this._plotDimensions.height=this._height;this._plotDimensions.width=this._width;this.grid._plotDimensions=this._plotDimensions;this.title._plotDimensions=this._plotDimensions;this.baseCanvas._plotDimensions=this._plotDimensions;this.seriesCanvas._plotDimensions=this._plotDimensions;this.eventCanvas._plotDimensions=this._plotDimensions;this.legend._plotDimensions=this._plotDimensions;if(this._height<=0||this._width<=0||!this._height||!this._width){throw"Canvas dimensions <=0"}this.data=w;this.parseOptions(u);if(this.textColor){this.target.css("color",this.textColor)}if(this.fontFamily){this.target.css("font-family",this.fontFamily)}if(this.fontSize){this.target.css("font-size",this.fontSize)}this.title.init();this.legend.init();for(var v=0;v<this.series.length;v++){for(var r=0;r<e.jqplot.preSeriesInitHooks.length;r++){e.jqplot.preSeriesInitHooks[r].call(this.series[v],x,w,this.options.seriesDefaults,this.options.series[v])}this.populatePlotData(this.series[v],v);this.series[v]._plotDimensions=this._plotDimensions;this.series[v].init(v,this.grid.borderWidth);for(var r=0;r<e.jqplot.postSeriesInitHooks.length;r++){e.jqplot.postSeriesInitHooks[r].call(this.series[v],x,w,this.options.seriesDefaults,this.options.series[v])}}for(var q in this.axes){this.axes[q]._plotDimensions=this._plotDimensions;this.axes[q].init()}if(this.sortData){k(this.series)}this.grid.init();this.grid._axes=this.axes;this.legend._series=this.series;for(var v=0;v<e.jqplot.postInitHooks.length;v++){e.jqplot.postInitHooks[v].call(this,x,w,u)}};function k(r){var u;for(var q=0;q<r.length;q++){u=r[q].data;if(r[q]._stackAxis=="x"){u.sort(function(w,v){var x=w[1]-v[1];if(x){return x}return 0})}else{u.sort(function(w,v){var x=w[0]-v[0];if(x){return x}return 0})}}}this.populatePlotData=function(v,w){this._plotData=[];this._stackData=[];v._stackData=[];v._plotData=[];if(this.stackSeries){v._stack=true;var x=v._stackAxis=="x"?0:1;var y=x?0:1;var z=e.extend(true,[],v.data);var A=e.extend(true,[],v.data);for(var u=0;u<w;u++){var q=this.series[u].data;for(var r=0;r<q.length;r++){z[r][0]+=q[r][0];z[r][1]+=q[r][1];A[r][x]+=q[r][x]}}this._plotData.push(A);this._stackData.push(z);v._stackData=z;v._plotData=A}else{this._stackData.push(v.data);this.series[w]._stackData=v.data;this._plotData.push(v.data);v._plotData=v.data}if(w>0){v._prevPlotData=this.series[w-1]._plotData}};this.getNextSeriesColor=(function(r){var q=0;var u=r.seriesColors;return function(){if(q<u.length){return u[q++]}else{q=0;return u[q++]}}})(this);this.parseOptions=function(v){for(var w=0;w<e.jqplot.preParseOptionsHooks.length;w++){e.jqplot.preParseOptionsHooks[w].call(this,v)}this.options=e.extend(true,{},this.defaults,v);this.stackSeries=this.options.stackSeries;if(this.options.seriesColors){this.seriesColors=this.options.seriesColors}var y=new this.colorGenerator(this.seriesColors);this._gridPadding=this.options.gridPadding;this.sortData=(this.options.sortData!=null)?this.options.sortData:this.sortData;for(var z in this.axes){var x=this.axes[z];e.extend(true,x,this.options.axesDefaults,this.options.axes[z]);x._plotWidth=this._width;x._plotHeight=this._height}if(this.data.length==0){this.data=[];for(var w=0;w<this.options.series.length;w++){this.data.push(this.options.series.data)}}var u=function(C){var A=[];var B;if(!(C[0] instanceof Array)){for(var B=0;B<C.length;B++){A.push([B+1,C[B]])}}else{e.extend(true,A,C)}return A};for(var w=0;w<this.data.length;w++){var q=new j();for(var r=0;r<e.jqplot.preParseSeriesOptionsHooks.length;r++){e.jqplot.preParseSeriesOptionsHooks[r].call(q,this.options.seriesDefaults,this.options.series[w])}e.extend(true,q,this.options.seriesDefaults,this.options.series[w]);q.data=u(this.data[w]);switch(q.xaxis){case"xaxis":q._xaxis=this.axes.xaxis;break;case"x2axis":q._xaxis=this.axes.x2axis;break;default:break}q._yaxis=this.axes[q.yaxis];q._xaxis._series.push(q);q._yaxis._series.push(q);if(q.show){q._xaxis.show=true;q._yaxis.show=true}if(!q.color&&q.show!=false){q.color=y.next()}if(!q.label){q.label="Series "+(w+1).toString()}this.series.push(q);for(var r=0;r<e.jqplot.postParseSeriesOptionsHooks.length;r++){e.jqplot.postParseSeriesOptionsHooks[r].call(this.series[w],this.options.seriesDefaults,this.options.series[w])}}e.extend(true,this.grid,this.options.grid);for(var z in this.axes){var x=this.axes[z];if(x.borderWidth==null){x.borderWidth=this.grid.borderWidth}if(x.borderColor==null){if(z!="xaxis"&&z!="x2axis"&&x.useSeriesColor===true&&x.show){x.borderColor=x._series[0].color}else{x.borderColor=this.grid.borderColor}}}if(typeof this.options.title=="string"){this.title.text=this.options.title}else{if(typeof this.options.title=="object"){e.extend(true,this.title,this.options.title)}}this.title._plotWidth=this._width;e.extend(true,this.legend,this.options.legend);for(var w=0;w<e.jqplot.postParseOptionsHooks.length;w++){e.jqplot.postParseOptionsHooks[w].call(this,v)}};this.redraw=function(){this.target.trigger("jqplotPreRedraw");this.target.empty();for(var r in this.axes){this.axes[r]._ticks=[]}for(var q=0;q<this.series.length;q++){this.populatePlotData(this.series[q],q)}this.draw();this.target.trigger("jqplotPostRedraw")};this.draw=function(){this.target.trigger("jqplotPreDraw");for(var y=0;y<e.jqplot.preDrawHooks.length;y++){e.jqplot.preDrawHooks[y].call(this)}this.target.append(this.baseCanvas.createElement({left:0,right:0,top:0,bottom:0},"jqplot-base-canvas"));var x=this.baseCanvas.setContext();this.target.append(this.title.draw());this.title.pack({top:0,left:0});for(var u in this.axes){this.target.append(this.axes[u].draw(x));this.axes[u].set()}if(this.axes.yaxis.show){this._gridPadding.left=this.axes.yaxis.getWidth()}var v=["y2axis","y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis"];var r=[0,0,0,0];var A=0;for(var w=8;w>0;w--){var q=this.axes[v[w-1]];if(q.show){r[w-1]=A;A+=q.getWidth()}}if(A>this._gridPadding.right){this._gridPadding.right=A}if(this.title.show&&this.axes.x2axis.show){this._gridPadding.top=this.title.getHeight()+this.axes.x2axis.getHeight()}else{if(this.title.show){this._gridPadding.top=this.title.getHeight()}else{if(this.axes.x2axis.show){this._gridPadding.top=this.axes.x2axis.getHeight()}}}if(this.axes.xaxis.show){this._gridPadding.bottom=this.axes.xaxis.getHeight()}this.axes.xaxis.pack({position:"absolute",bottom:0,left:0,width:this._width},{min:this._gridPadding.left,max:this._width-this._gridPadding.right});this.axes.yaxis.pack({position:"absolute",top:0,left:0,height:this._height},{min:this._height-this._gridPadding.bottom,max:this._gridPadding.top});this.axes.x2axis.pack({position:"absolute",top:this.title.getHeight(),left:0,width:this._width},{min:this._gridPadding.left,max:this._width-this._gridPadding.right});for(var y=8;y>0;y--){this.axes[v[y-1]].pack({position:"absolute",top:0,right:r[y-1]},{min:this._height-this._gridPadding.bottom,max:this._gridPadding.top})}this.target.append(this.grid.createElement(this._gridPadding));this.grid.draw();this.target.append(this.seriesCanvas.createElement(this._gridPadding,"jqplot-series-canvas"));var C=this.seriesCanvas.setContext();this.target.append(this.eventCanvas.createElement(this._gridPadding,"jqplot-event-canvas"));var B=this.eventCanvas.setContext();B.fillStyle="rgba(0,0,0,0)";B.fillRect(0,0,B.canvas.width,B.canvas.height);this.bindCustomEvents();if(this.legend.preDraw){this.target.append(this.legend.draw());this.legend.pack(this._gridPadding);if(this.legend._elem){this.drawSeries(C,{legendInfo:{location:this.legend.location,width:this.legend.getWidth(),height:this.legend.getHeight(),xoffset:this.legend.xoffset,yoffset:this.legend.yoffset}})}else{this.drawSeries(C)}}else{this.drawSeries(C);this.target.append(this.legend.draw());this.legend.pack(this._gridPadding)}for(var y=0;y<e.jqplot.eventListenerHooks.length;y++){var z=e.jqplot.eventListenerHooks[y];this.eventCanvas._elem.bind(z[0],{plot:this},z[1])}for(var y=0;y<e.jqplot.postDrawHooks.length;y++){e.jqplot.postDrawHooks[y].call(this)}this.target.trigger("jqplotPostDraw",[this])};this.bindCustomEvents=function(){this.eventCanvas._elem.bind("click",{plot:this},this.onClick);this.eventCanvas._elem.bind("dblclick",{plot:this},this.onDblClick);this.eventCanvas._elem.bind("mousedown",{plot:this},this.onMouseDown);this.eventCanvas._elem.bind("mouseup",{plot:this},this.onMouseUp);this.eventCanvas._elem.bind("mousemove",{plot:this},this.onMouseMove);this.eventCanvas._elem.bind("mouseenter",{plot:this},this.onMouseEnter);this.eventCanvas._elem.bind("mouseleave",{plot:this},this.onMouseLeave)};function l(A){var z=A.data.plot;var v=z.eventCanvas._elem.offset();var y={x:A.pageX-v.left,y:A.pageY-v.top};var w={xaxis:null,yaxis:null,x2axis:null,y2axis:null,y3axis:null,y4axis:null,y5axis:null,y6axis:null,y7axis:null,y8axis:null,y9axis:null};var x=["xaxis","yaxis","x2axis","y2axis","y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis"];var q=z.axes;for(var r=11;r>0;r--){var u=x[r-1];if(q[u].show){w[u]=q[u].series_p2u(y[u.charAt(0)])}}return({offsets:v,gridPos:y,dataPos:w})}function n(B,F,E){var C=null;var G,z,v,D,w,u;var A;for(var z=0;z<B.series.length;z++){G=B.series[z];u=G.renderer;if(G.show){A=Math.abs(G.markerRenderer.size/2+G.neighborThreshold);for(var w=0;w<G.gridData.length;w++){p=G.gridData[w];if(u.constructor==e.jqplot.OHLCRenderer){if(u.candleStick){var q=G._yaxis.series_u2p;if(F>=p[0]-u.bodyWidth/2&&F<=p[0]+u.bodyWidth/2&&E>=q(G.data[w][2])&&E<=q(G.data[w][3])){C={seriesIndex:z,pointIndex:w,gridData:p,data:G.data[w]}}}else{if(!u.hlc){var q=G._yaxis.series_u2p;if(F>=p[0]-u.tickLength&&F<=p[0]+u.tickLength&&E>=q(G.data[w][2])&&E<=q(G.data[w][3])){C={seriesIndex:z,pointIndex:w,gridData:p,data:G.data[w]}}}else{var q=G._yaxis.series_u2p;if(F>=p[0]-u.tickLength&&F<=p[0]+u.tickLength&&E>=q(G.data[w][1])&&E<=q(G.data[w][2])){C={seriesIndex:z,pointIndex:w,gridData:p,data:G.data[w]}}}}}else{D=Math.sqrt((F-p[0])*(F-p[0])+(E-p[1])*(E-p[1]));if(D<=A&&(D<=v||v==null)){v=D;C={seriesIndex:z,pointIndex:w,gridData:p,data:G.data[w]}}}}}}return C}this.onClick=function(r){var q=l(r);var v=r.data.plot;var u=n(v,q.gridPos.x,q.gridPos.y);r.data.plot.eventCanvas._elem.trigger("jqplotClick",[q.gridPos,q.dataPos,u,v])};this.onDblClick=function(r){var q=l(r);var v=r.data.plot;var u=n(v,q.gridPos.x,q.gridPos.y);r.data.plot.eventCanvas._elem.trigger("jqplotDblClick",[q.gridPos,q.dataPos,u,v])};this.onMouseDown=function(r){var q=l(r);var v=r.data.plot;var u=n(v,q.gridPos.x,q.gridPos.y);r.data.plot.eventCanvas._elem.trigger("jqplotMouseDown",[q.gridPos,q.dataPos,u,v])};this.onMouseUp=function(r){var q=l(r);r.data.plot.eventCanvas._elem.trigger("jqplotMouseUp",[q.gridPos,q.dataPos,null,r.data.plot])};this.onMouseMove=function(r){var q=l(r);var v=r.data.plot;var u=n(v,q.gridPos.x,q.gridPos.y);r.data.plot.eventCanvas._elem.trigger("jqplotMouseMove",[q.gridPos,q.dataPos,u,v])};this.onMouseEnter=function(r){var q=l(r);var u=r.data.plot;r.data.plot.eventCanvas._elem.trigger("jqplotMouseEnter",[q.gridPos,q.dataPos,null,u])};this.onMouseLeave=function(r){var q=l(r);var u=r.data.plot;r.data.plot.eventCanvas._elem.trigger("jqplotMouseLeave",[q.gridPos,q.dataPos,null,u])};this.drawSeries=function(u,q){u.clearRect(0,0,u.canvas.width,u.canvas.height);for(var r=0;r<this.series.length;r++){this.series[r].drawShadow(u,q)}for(var r=0;r<this.series.length;r++){this.series[r].draw(u,q)}}}ColorGenerator=function(l){var k=0;this.next=function(){if(k<l.length){return l[k++]}else{k=0;return l[k++]}};this.previous=function(){if(k>0){return l[k--]}else{k=l.length-1;return l[k]}};this.setColors=function(n){l=n};this.reset=function(){k=0}};e.jqplot.hex2rgb=function(n,k){n=n.replace("#","");if(n.length==3){n=n[0]+n[0]+n[1]+n[1]+n[2]+n[2]}var l;l="rgba("+parseInt(n.slice(0,2),16)+", "+parseInt(n.slice(2,4),16)+", "+parseInt(n.slice(4,6),16);if(k){l+=", "+k}l+=")";return l};e.jqplot.rgb2hex=function(q){var n=/rgba?\( *([0-9]{1,3}\.?[0-9]*%?) *, *([0-9]{1,3}\.?[0-9]*%?) *, *([0-9]{1,3}\.?[0-9]*%?) *(?:, *[0-9.]*)?\)/;var k=q.match(n);var o="#";for(i=1;i<4;i++){var l;if(k[i].search(/%/)!=-1){l=parseInt(255*k[i]/100,10).toString(16);if(l.length==1){l="0"+l}}else{l=parseInt(k[i],10).toString(16);if(l.length==1){l="0"+l}}o+=l}return o};e.jqplot.normalize2rgb=function(l,k){if(l.search(/^ *rgba?\(/)!=-1){return l}else{if(l.search(/^ *#?[0-9a-fA-F]?[0-9a-fA-F]/)!=-1){return e.jqplot.hex2rgb(l,k)}else{throw"invalid color spec"}}};e.jqplot.getColorComponents=function(q){var o=e.jqplot.normalize2rgb(q);var n=/rgba?\( *([0-9]{1,3}\.?[0-9]*%?) *, *([0-9]{1,3}\.?[0-9]*%?) *, *([0-9]{1,3}\.?[0-9]*%?) *,? *([0-9.]* *)?\)/;var k=o.match(n);var l=[];for(i=1;i<4;i++){if(k[i].search(/%/)!=-1){l[i-1]=parseInt(255*k[i]/100,10)}else{l[i-1]=parseInt(k[i],10)}}l[3]=parseFloat(k[4])?parseFloat(k[4]):1;return l};e.jqplot.log=function(){if(window.console&&e.jqplot.debug){if(arguments.length==1){console.log(arguments[0])}else{console.log(arguments)}}};var c=e.jqplot.log;e.jqplot.AxisLabelRenderer=function(k){e.jqplot.ElemContainer.call(this);this.axis;this.show=true;this.label="";this._elem;this.escapeHTML=false;e.extend(true,this,k)};e.jqplot.AxisLabelRenderer.prototype=new e.jqplot.ElemContainer();e.jqplot.AxisLabelRenderer.prototype.constructor=e.jqplot.AxisLabelRenderer;e.jqplot.AxisLabelRenderer.prototype.init=function(k){e.extend(true,this,k)};e.jqplot.AxisLabelRenderer.prototype.draw=function(){this._elem=e('<div style="position:absolute;" class="jqplot-'+this.axis+'-label"></div>');if(Number(this.label)){this._elem.css("white-space","nowrap")}if(!this.escapeHTML){this._elem.html(this.label)}else{this._elem.text(this.label)}return this._elem};e.jqplot.AxisLabelRenderer.prototype.pack=function(){};e.jqplot.AxisTickRenderer=function(k){e.jqplot.ElemContainer.call(this);this.mark="outside";this.axis;this.showMark=true;this.showGridline=true;this.isMinorTick=false;this.size=4;this.markSize=6;this.show=true;this.showLabel=true;this.label="";this.value=null;this._styles={};this.formatter=e.jqplot.DefaultTickFormatter;this.formatString="";this.fontFamily;this.fontSize;this.textColor;this._elem;e.extend(true,this,k)};e.jqplot.AxisTickRenderer.prototype.init=function(k){e.extend(true,this,k)};e.jqplot.AxisTickRenderer.prototype=new e.jqplot.ElemContainer();e.jqplot.AxisTickRenderer.prototype.constructor=e.jqplot.AxisTickRenderer;e.jqplot.AxisTickRenderer.prototype.setTick=function(k,n,l){this.value=k;this.axis=n;if(l){this.isMinorTick=true}return this};e.jqplot.AxisTickRenderer.prototype.draw=function(){if(!this.label){this.label=this.formatter(this.formatString,this.value)}style='style="position:absolute;';if(Number(this.label)){style+="white-space:nowrap;"}style+='"';this._elem=e("<div "+style+' class="jqplot-'+this.axis+'-tick">'+this.label+"</div>");for(var k in this._styles){this._elem.css(k,this._styles[k])}if(this.fontFamily){this._elem.css("font-family",this.fontFamily)}if(this.fontSize){this._elem.css("font-size",this.fontSize)}if(this.textColor){this._elem.css("color",this.textColor)}return this._elem};e.jqplot.DefaultTickFormatter=function(k,l){if(typeof l=="number"){if(!k){k="%.1f"}return e.jqplot.sprintf(k,l)}else{return String(l)}};e.jqplot.AxisTickRenderer.prototype.pack=function(){};e.jqplot.CanvasGridRenderer=function(){this.shadowRenderer=new e.jqplot.ShadowRenderer()};e.jqplot.CanvasGridRenderer.prototype.init=function(l){this._ctx;e.extend(true,this,l);var k={lineJoin:"miter",lineCap:"round",fill:false,isarc:false,angle:this.shadowAngle,offset:this.shadowOffset,alpha:this.shadowAlpha,depth:this.shadowDepth,lineWidth:this.shadowWidth,closePath:false};this.renderer.shadowRenderer.init(k)};e.jqplot.CanvasGridRenderer.prototype.createElement=function(){var n=document.createElement("canvas");var k=this._plotDimensions.width;var l=this._plotDimensions.height;n.width=k;n.height=l;this._elem=e(n);this._elem.addClass("jqplot-grid-canvas");this._elem.css({position:"absolute",left:0,top:0});if(e.browser.msie){window.G_vmlCanvasManager.init_(document)}if(e.browser.msie){n=window.G_vmlCanvasManager.initElement(n)}this._top=this._offsets.top;this._bottom=l-this._offsets.bottom;this._left=this._offsets.left;this._right=k-this._offsets.right;this._width=this._right-this._left;this._height=this._bottom-this._top;return this._elem};e.jqplot.CanvasGridRenderer.prototype.draw=function(){this._ctx=this._elem.get(0).getContext("2d");var E=this._ctx;var x=this._axes;E.save();E.fillStyle=this.background;E.fillRect(this._left,this._top,this._width,this._height);if(this.drawGridlines){E.save();E.lineJoin="miter";E.lineCap="butt";E.lineWidth=this.gridLineWidth;E.strokeStyle=this.gridLineColor;var z,w;var k=["xaxis","yaxis","x2axis","y2axis"];for(var r=4;r>0;r--){var l=k[r-1];var o=x[l];var A=o._ticks;if(o.show){for(var q=A.length;q>0;q--){var D=A[q-1];if(D.show){var y=Math.round(o.u2p(D.value))+0.5;switch(l){case"xaxis":if(D.showGridline){v(y,this._top,y,this._bottom)}if(D.showMark&&D.mark){s=D.markSize;m=D.mark;var y=Math.round(o.u2p(D.value))+0.5;switch(m){case"outside":z=this._bottom;w=this._bottom+s;break;case"inside":z=this._bottom-s;w=this._bottom;break;case"cross":z=this._bottom-s;w=this._bottom+s;break;default:z=this._bottom;w=this._bottom+s;break}if(this.shadow){this.renderer.shadowRenderer.draw(E,[[y,z],[y,w]],{lineCap:"butt",lineWidth:this.gridLineWidth,offset:this.gridLineWidth*0.75,depth:2,fill:false,closePath:false})}v(y,z,y,w)}break;case"yaxis":if(D.showGridline){v(this._right,y,this._left,y)}if(D.showMark&&D.mark){s=D.markSize;m=D.mark;var y=Math.round(o.u2p(D.value))+0.5;switch(m){case"outside":z=this._left-s;w=this._left;break;case"inside":z=this._left;w=this._left+s;break;case"cross":z=this._left-s;w=this._left+s;break;default:z=this._left-s;w=this._left;break}if(this.shadow){this.renderer.shadowRenderer.draw(E,[[z,y],[w,y]],{lineCap:"butt",lineWidth:this.gridLineWidth*1.5,offset:this.gridLineWidth*0.75,fill:false,closePath:false})}v(z,y,w,y,{strokeStyle:o.borderColor})}break;case"x2axis":if(D.showGridline){v(y,this._bottom,y,this._top)}if(D.showMark&&D.mark){s=D.markSize;m=D.mark;var y=Math.round(o.u2p(D.value))+0.5;switch(m){case"outside":z=this._top-s;w=this._top;break;case"inside":z=this._top;w=this._top+s;break;case"cross":z=this._top-s;w=this._top+s;break;default:z=this._top-s;w=this._top;break}if(this.shadow){this.renderer.shadowRenderer.draw(E,[[y,z],[y,w]],{lineCap:"butt",lineWidth:this.gridLineWidth,offset:this.gridLineWidth*0.75,depth:2,fill:false,closePath:false})}v(y,z,y,w)}break;case"y2axis":if(D.showGridline){v(this._left,y,this._right,y)}if(D.showMark&&D.mark){s=D.markSize;m=D.mark;var y=Math.round(o.u2p(D.value))+0.5;switch(m){case"outside":z=this._right;w=this._right+s;break;case"inside":z=this._right-s;w=this._right;break;case"cross":z=this._right-s;w=this._right+s;break;default:z=this._right;w=this._right+s;break}if(this.shadow){this.renderer.shadowRenderer.draw(E,[[z,y],[w,y]],{lineCap:"butt",lineWidth:this.gridLineWidth*1.5,offset:this.gridLineWidth*0.75,fill:false,closePath:false})}v(z,y,w,y,{strokeStyle:o.borderColor})}break;default:break}}}}}k=["y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis"];for(var r=7;r>0;r--){var o=x[k[r-1]];var A=o._ticks;if(o.show){var C=A[o.numberTicks-1];var u=A[0];var n=o.getLeft();var B=[[n,C.getTop()+C.getHeight()/2],[n,u.getTop()+u.getHeight()/2+1]];if(this.shadow){this.renderer.shadowRenderer.draw(E,B,{lineCap:"butt",fill:false,closePath:false})}v(B[0][0],B[0][1],B[1][0],B[1][1],{lineCap:"butt",strokeStyle:o.borderColor,lineWidth:o.borderWidth});for(var q=A.length;q>0;q--){var D=A[q-1];s=D.markSize;m=D.mark;var y=Math.round(o.u2p(D.value))+0.5;if(D.show&&D.showGridline){switch(m){case"outside":z=n;w=n+s;break;case"inside":z=n-s;w=n;break;case"cross":z=n-s;w=n+s;break;default:z=n;w=n+s;break}B=[[z,y],[w,y]];if(this.shadow){this.renderer.shadowRenderer.draw(E,B,{lineCap:"butt",lineWidth:this.gridLineWidth*1.5,offset:this.gridLineWidth*0.75,fill:false,closePath:false})}v(z,y,w,y,{strokeStyle:o.borderColor})}}}}E.restore()}function v(J,I,G,F,H){E.save();H=H||{};e.extend(true,E,H);E.beginPath();E.moveTo(J,I);E.lineTo(G,F);E.stroke();E.restore()}if(this.shadow){var B=[[this._left,this._bottom],[this._right,this._bottom],[this._right,this._top]];this.renderer.shadowRenderer.draw(E,B)}v(this._left,this._top,this._right,this._top,{lineCap:"round",strokeStyle:x.x2axis.borderColor,lineWidth:x.x2axis.borderWidth});v(this._right,this._top,this._right,this._bottom,{lineCap:"round",strokeStyle:x.y2axis.borderColor,lineWidth:x.y2axis.borderWidth});v(this._right,this._bottom,this._left,this._bottom,{lineCap:"round",strokeStyle:x.xaxis.borderColor,lineWidth:x.xaxis.borderWidth});v(this._left,this._bottom,this._left,this._top,{lineCap:"round",strokeStyle:x.yaxis.borderColor,lineWidth:x.yaxis.borderWidth});E.restore()};e.jqplot.DivTitleRenderer=function(){};e.jqplot.DivTitleRenderer.prototype.init=function(k){e.extend(true,this,k)};e.jqplot.DivTitleRenderer.prototype.draw=function(){var l=this.renderer;if(!this.text){this.show=false;this._elem=e('<div style="height:0px;width:0px;"></div>')}else{if(this.text){var k="position:absolute;top:0px;left:0px;";k+=(this._plotWidth)?"width:"+this._plotWidth+"px;":"";k+=(this.fontFamily)?"font-family:"+this.fontFamily+";":"";k+=(this.fontSize)?"font-size:"+this.fontSize+";":"";k+=(this.textAlign)?"text-align:"+this.textAlign+";":"text-align:center;";k+=(this.textColor)?"color:"+this.textColor+";":"";this._elem=e('<div class="jqplot-title" style="'+k+'">'+this.text+"</div>")}}return this._elem};e.jqplot.DivTitleRenderer.prototype.pack=function(){};e.jqplot.LineRenderer=function(){this.shapeRenderer=new e.jqplot.ShapeRenderer();this.shadowRenderer=new e.jqplot.ShadowRenderer()};e.jqplot.LineRenderer.prototype.init=function(l){e.extend(true,this.renderer,l);var o={lineJoin:"round",lineCap:"round",fill:this.fill,isarc:false,strokeStyle:this.color,fillStyle:this.fillColor,lineWidth:this.lineWidth,closePath:this.fill};this.renderer.shapeRenderer.init(o);if(this.lineWidth>2.5){var n=this.shadowOffset*(1+(Math.atan((this.lineWidth/2.5))/0.785398163-1)*0.6)}else{var n=this.shadowOffset*Math.atan((this.lineWidth/2.5))/0.785398163}var k={lineJoin:"round",lineCap:"round",fill:this.fill,isarc:false,angle:this.shadowAngle,offset:n,alpha:this.shadowAlpha,depth:this.shadowDepth,lineWidth:this.lineWidth,closePath:this.fill};this.renderer.shadowRenderer.init(k)};e.jqplot.LineRenderer.prototype.setGridData=function(){var l=this._xaxis.series_u2p;var q=this._yaxis.series_u2p;var n=this._plotData;var o=this._prevPlotData;this.gridData=[];this._prevGridData=[];for(var k=0;k<this.data.length;k++){if(n[k]!=null){this.gridData.push([l.call(this._xaxis,n[k][0]),q.call(this._yaxis,n[k][1])])}if(o[k]!=null){this._prevGridData.push([l.call(this._xaxis,o[k][0]),q.call(this._yaxis,o[k][1])])}}};e.jqplot.LineRenderer.prototype.makeGridData=function(o){var n=this._xaxis.series_u2p;var q=this._yaxis.series_u2p;var l=[];var r=[];for(var k=0;k<o.length;k++){if(o[k]!=null){l.push([n.call(this._xaxis,o[k][0]),q.call(this._yaxis,o[k][1])])}}return l};e.jqplot.LineRenderer.prototype.draw=function(z,w,A){var q;var l=(A!=b)?A:{};var x=(l.shadow!=b)?l.shadow:this.shadow;var u=(l.showLine!=b)?l.showLine:this.showLine;var y=(l.fill!=b)?l.fill:this.fill;var k=(l.fillAndStroke!=b)?l.fillAndStroke:this.fillAndStroke;z.save();if(w.length){if(u){if(y){if(k){var r=w.slice(0)}if(this.index==0||!this._stack){var v=this._yaxis.series_u2p(this._yaxis.min)-this.gridBorderWidth/2;w.unshift([w[0][0],v]);len=w.length;w.push([w[len-1][0],v])}else{var o=this._prevGridData;for(var q=o.length;q>0;q--){w.push(o[q-1])}}}if(x){this.renderer.shadowRenderer.draw(z,w,l)}this.renderer.shapeRenderer.draw(z,w,l);if(k){var n=e.extend(true,{},l,{fill:false,closePath:false});this.renderer.shapeRenderer.draw(z,r,n);if(this.markerRenderer.show){for(q=0;q<r.length;q++){this.markerRenderer.draw(r[q][0],r[q][1],z,l.markerOptions)}}}}if(this.markerRenderer.show&&!y){for(q=0;q<w.length;q++){this.markerRenderer.draw(w[q][0],w[q][1],z,l.markerOptions)}}}z.restore()};e.jqplot.LineRenderer.prototype.drawShadow=function(k,n,l){};e.jqplot.LinearAxisRenderer=function(){};e.jqplot.LinearAxisRenderer.prototype.init=function(n){e.extend(true,this,n);var k=this._dataBounds;for(var o=0;o<this._series.length;o++){var q=this._series[o];var r=q._plotData;for(var l=0;l<r.length;l++){if(this.name=="xaxis"||this.name=="x2axis"){if(r[l][0]<k.min||k.min==null){k.min=r[l][0]}if(r[l][0]>k.max||k.max==null){k.max=r[l][0]}}else{if(r[l][1]<k.min||k.min==null){k.min=r[l][1]}if(r[l][1]>k.max||k.max==null){k.max=r[l][1]}}}}};e.jqplot.LinearAxisRenderer.prototype.draw=function(k){if(this.show){this.renderer.createTicks.call(this);var u=0;var l;this._elem=e('<div class="jqplot-axis jqplot-'+this.name+'" style="position:absolute;"></div>');if(this.name=="xaxis"||this.name=="x2axis"){this._elem.width(this._plotDimensions.width)}else{this._elem.height(this._plotDimensions.height)}this.labelOptions.axis=this.name;this._label=new this.labelRenderer(this.labelOptions);if(this._label.show){var r=this._label.draw(k);r.appendTo(this._elem)}if(this.showTicks){var q=this._ticks;for(var o=0;o<q.length;o++){var n=q[o];if(n.showLabel&&(!n.isMinorTick||this.showMinorTicks)){var r=n.draw(k);r.appendTo(this._elem)}}}}return this._elem};e.jqplot.LinearAxisRenderer.prototype.set=function(){var v=0;var n;var l=0;var u=0;var k=(this._label==null)?false:this._label.show;if(this.show&&this.showTicks){var r=this._ticks;for(var q=0;q<r.length;q++){var o=r[q];if(o.showLabel&&(!o.isMinorTick||this.showMinorTicks)){if(this.name=="xaxis"||this.name=="x2axis"){n=o._elem.outerHeight(true)}else{n=o._elem.outerWidth(true)}if(n>v){v=n}}}if(k){l=this._label._elem.outerWidth(true);u=this._label._elem.outerHeight(true)}if(this.name=="xaxis"){v=v+u;this._elem.css({height:v+"px",left:"0px",bottom:"0px"})}else{if(this.name=="x2axis"){v=v+u;this._elem.css({height:v+"px",left:"0px",top:"0px"})}else{if(this.name=="yaxis"){v=v+l;this._elem.css({width:v+"px",left:"0px",top:"0px"});if(k&&this._label.constructor==e.jqplot.AxisLabelRenderer){this._label._elem.css("width",l+"px")}}else{v=v+l;this._elem.css({width:v+"px",right:"0px",top:"0px"});if(k&&this._label.constructor==e.jqplot.AxisLabelRenderer){this._label._elem.css("width",l+"px")}}}}}};e.jqplot.LinearAxisRenderer.prototype.createTicks=function(){var I=this._ticks;var F=this.ticks;var J=this.name;var H=this._dataBounds;var B,G;var z,C;var n,l;var k,D;if(F.length){for(D=0;D<F.length;D++){var q=F[D];var u=new this.tickRenderer(this.tickOptions);if(q.constructor==Array){u.value=q[0];u.label=q[1];if(!this.showTicks){u.showLabel=false;u.showMark=false}else{if(!this.showTickMarks){u.showMark=false}}u.setTick(q[0],this.name);this._ticks.push(u)}else{u.value=q;if(!this.showTicks){u.showLabel=false;u.showMark=false}else{if(!this.showTickMarks){u.showMark=false}}u.setTick(q,this.name);this._ticks.push(u)}}this.numberTicks=F.length;this.min=this._ticks[0].value;this.max=this._ticks[this.numberTicks-1].value;this.tickInterval=(this.max-this.min)/(this.numberTicks-1)}else{if(J=="xaxis"||J=="x2axis"){B=this._plotDimensions.width}else{B=this._plotDimensions.height}if(!this.autoscale&&this.min!=null&&this.max!=null&&this.numberTicks!=null){this.tickInterval=null}z=((this.min!=null)?this.min:H.min);C=((this.max!=null)?this.max:H.max);if(z==C){var r=0.05;if(z>0){r=Math.max(Math.log(z)/Math.LN10,0.05)}z-=r;C+=r}var w=C-z;var y,A;var E;if(this.autoscale&&this.min==null&&this.max==null){var v,o,x;if(this.numberTicks==null){if(B>100){this.numberTicks=parseInt(3+(B-100)/75,10)}else{this.numberTicks=2}}if(this.tickInterval==null){o=w/(this.numberTicks-1);if(o<1){E=Math.pow(10,Math.abs(Math.floor(Math.log(o)/Math.LN10)))}else{E=1}this.tickInterval=Math.ceil(o*E*this.pad)/E}v=this.tickInterval*(this.numberTicks-1);x=(v-w)/2;if(this.min==null){this.min=Math.floor(E*(z-x))/E}if(this.max==null){this.max=this.min+v}}else{y=(this.min!=null)?this.min:z-w*(this.padMin-1);A=(this.max!=null)?this.max:C+w*(this.padMax-1);this.min=y;this.max=A;w=this.max-this.min;if(this.numberTicks==null){if(this.tickInterval!=null){this.numberTicks=Math.ceil((this.max-this.min)/this.tickInterval)+1;this.max=this.min+this.tickInterval*(this.numberTicks-1)}else{if(B>100){this.numberTicks=parseInt(3+(B-100)/75,10)}else{this.numberTicks=2}}}if(this.tickInterval==null){this.tickInterval=w/(this.numberTicks-1)}}for(var D=0;D<this.numberTicks;D++){k=this.min+D*this.tickInterval;var u=new this.tickRenderer(this.tickOptions);if(!this.showTicks){u.showLabel=false;u.showMark=false}else{if(!this.showTickMarks){u.showMark=false}}u.setTick(k,this.name);this._ticks.push(u)}}};e.jqplot.LinearAxisRenderer.prototype.pack=function(y,q){var B=this._ticks;var z=this.max;var u=this.min;var o=q.max;var F=q.min;var v=(this._label==null)?false:this._label.show;for(var k in y){this._elem.css(k,y[k])}this._offsets=q;var n=o-F;var E=z-u;this.p2u=function(w){return(w-F)*E/n+u};this.u2p=function(w){return(w-u)*n/E+F};if(this.name=="xaxis"||this.name=="x2axis"){this.series_u2p=function(w){return(w-u)*n/E};this.series_p2u=function(w){return w*E/n+u}}else{this.series_u2p=function(w){return(w-z)*n/E};this.series_p2u=function(w){return w*E/n+z}}if(this.show){if(this.name=="xaxis"||this.name=="x2axis"){for(i=0;i<B.length;i++){var D=B[i];if(D.show&&D.showLabel){var r;if(D.constructor==e.jqplot.CanvasAxisTickRenderer&&D.angle){var C=(this.name=="xaxis")?1:-1;switch(D.labelPosition){case"auto":if(C*D.angle<0){r=-D.getWidth()+D._textRenderer.height*Math.sin(-D._textRenderer.angle)/2}else{r=-D._textRenderer.height*Math.sin(D._textRenderer.angle)/2}break;case"end":r=-D.getWidth()+D._textRenderer.height*Math.sin(-D._textRenderer.angle)/2;break;case"start":r=-D._textRenderer.height*Math.sin(D._textRenderer.angle)/2;break;case"middle":r=-D.getWidth()/2+D._textRenderer.height*Math.sin(-D._textRenderer.angle)/2;break;default:r=-D.getWidth()/2+D._textRenderer.height*Math.sin(-D._textRenderer.angle)/2;break}}else{r=-D.getWidth()/2}var l=this.u2p(D.value)+r+"px";D._elem.css("left",l);D.pack()}}if(v){var A=this._label._elem.outerWidth(true);this._label._elem.css("left",F+n/2-A/2+"px");if(this.name=="xaxis"){this._label._elem.css("bottom","0px")}else{this._label._elem.css("top","0px")}this._label.pack()}}else{for(i=0;i<B.length;i++){var D=B[i];if(D.show&&D.showLabel){var r;if(D.constructor==e.jqplot.CanvasAxisTickRenderer&&D.angle){var C=(this.name=="yaxis")?1:-1;switch(D.labelPosition){case"auto":case"end":if(C*D.angle<0){r=-D._textRenderer.height*Math.cos(-D._textRenderer.angle)/2}else{r=-D.getHeight()+D._textRenderer.height*Math.cos(D._textRenderer.angle)/2}break;case"start":if(D.angle>0){r=-D._textRenderer.height*Math.cos(-D._textRenderer.angle)/2}else{r=-D.getHeight()+D._textRenderer.height*Math.cos(D._textRenderer.angle)/2}break;case"middle":r=-D.getHeight()/2;break;default:r=-D.getHeight()/2;break}}else{r=-D.getHeight()/2}var l=this.u2p(D.value)+r+"px";D._elem.css("top",l);D.pack()}}if(v){var x=this._label._elem.outerHeight(true);this._label._elem.css("top",o-n/2-x/2+"px");if(this.name=="yaxis"){this._label._elem.css("left","0px")}else{this._label._elem.css("right","0px")}this._label.pack()}}}};e.jqplot.MarkerRenderer=function(k){this.show=true;this.style="filledCircle";this.lineWidth=2;this.size=9;this.color="#666666";this.shadow=true;this.shadowAngle=45;this.shadowOffset=1;this.shadowDepth=3;this.shadowAlpha="0.07";this.shadowRenderer=new e.jqplot.ShadowRenderer();this.shapeRenderer=new e.jqplot.ShapeRenderer();e.extend(true,this,k)};e.jqplot.MarkerRenderer.prototype.init=function(k){e.extend(true,this,k);var n={angle:this.shadowAngle,offset:this.shadowOffset,alpha:this.shadowAlpha,lineWidth:this.lineWidth,depth:this.shadowDepth,closePath:true};if(this.style.indexOf("filled")!=-1){n.fill=true}if(this.style.indexOf("ircle")!=-1){n.isarc=true;n.closePath=false}this.shadowRenderer.init(n);var l={fill:false,isarc:false,strokeStyle:this.color,fillStyle:this.color,lineWidth:this.lineWidth,closePath:true};if(this.style.indexOf("filled")!=-1){l.fill=true}if(this.style.indexOf("ircle")!=-1){l.isarc=true;l.closePath=false}this.shapeRenderer.init(l)};e.jqplot.MarkerRenderer.prototype.drawDiamond=function(n,l,r,q,v){var k=1.2;var w=this.size/2/k;var u=this.size/2*k;var o=[[n-w,l],[n,l+u],[n+w,l],[n,l-u]];if(this.shadow){this.shadowRenderer.draw(r,o)}this.shapeRenderer.draw(r,o,v);r.restore()};e.jqplot.MarkerRenderer.prototype.drawSquare=function(n,l,r,q,v){var k=1;var w=this.size/2/k;var u=this.size/2*k;var o=[[n-w,l-u],[n-w,l+u],[n+w,l+u],[n+w,l-u]];if(this.shadow){this.shadowRenderer.draw(r,o)}this.shapeRenderer.draw(r,o,v);r.restore()};e.jqplot.MarkerRenderer.prototype.drawCircle=function(l,v,o,u,q){var k=this.size/2;var n=2*Math.PI;var r=[l,v,k,0,n,true];if(this.shadow){this.shadowRenderer.draw(o,r)}this.shapeRenderer.draw(o,r,q);o.restore()};e.jqplot.MarkerRenderer.prototype.draw=function(k,o,l,n){n=n||{};switch(this.style){case"diamond":this.drawDiamond(k,o,l,false,n);break;case"filledDiamond":this.drawDiamond(k,o,l,true,n);break;case"circle":this.drawCircle(k,o,l,false,n);break;case"filledCircle":this.drawCircle(k,o,l,true,n);break;case"square":this.drawSquare(k,o,l,false,n);break;case"filledSquare":this.drawSquare(k,o,l,true,n);break;default:this.drawDiamond(k,o,l,false,n);break}};e.jqplot.ShadowRenderer=function(k){this.angle=45;this.offset=1;this.alpha=0.07;this.lineWidth=1.5;this.lineJoin="miter";this.lineCap="round";this.closePath=false;this.fill=false;this.depth=3;this.isarc=false;e.extend(true,this,k)};e.jqplot.ShadowRenderer.prototype.init=function(k){e.extend(true,this,k)};e.jqplot.ShadowRenderer.prototype.draw=function(x,v,y){x.save();var k=(y!=null)?y:{};var w=(k.fill!=null)?k.fill:this.fill;var u=(k.closePath!=null)?k.closePath:this.closePath;var o=(k.offset!=null)?k.offset:this.offset;var l=(k.alpha!=null)?k.alpha:this.alpha;var r=(k.depth!=null)?k.depth:this.depth;x.lineWidth=(k.lineWidth!=null)?k.lineWidth:this.lineWidth;x.lineJoin=(k.lineJoin!=null)?k.lineJoin:this.lineJoin;x.lineCap=(k.lineCap!=null)?k.lineCap:this.lineCap;x.strokeStyle="rgba(0,0,0,"+l+")";x.fillStyle="rgba(0,0,0,"+l+")";for(var n=0;n<r;n++){x.translate(Math.cos(this.angle*Math.PI/180)*o,Math.sin(this.angle*Math.PI/180)*o);x.beginPath();if(this.isarc){x.arc(v[0],v[1],v[2],v[3],v[4],true)}else{x.moveTo(v[0][0],v[0][1]);for(var q=1;q<v.length;q++){x.lineTo(v[q][0],v[q][1])}}if(u){x.closePath()}if(w){x.fill()}else{x.stroke()}}x.restore()};e.jqplot.ShapeRenderer=function(k){this.lineWidth=1.5;this.lineJoin="miter";this.lineCap="round";this.closePath=false;this.fill=false;this.isarc=false;this.fillRect=false;this.strokeRect=false;this.clearRect=false;this.strokeStyle="#999999";this.fillStyle="#999999";e.extend(true,this,k)};e.jqplot.ShapeRenderer.prototype.init=function(k){e.extend(true,this,k)};e.jqplot.ShapeRenderer.prototype.draw=function(w,u,y){w.save();var k=(y!=null)?y:{};var v=(k.fill!=null)?k.fill:this.fill;var q=(k.closePath!=null)?k.closePath:this.closePath;var r=(k.fillRect!=null)?k.fillRect:this.fillRect;var n=(k.strokeRect!=null)?k.strokeRect:this.strokeRect;var l=(k.clearRect!=null)?k.clearRect:this.clearRect;var x=(k.isarc!=null)?k.isarc:this.isarc;w.lineWidth=k.lineWidth||this.lineWidth;w.lineJoin=k.lineJoing||this.lineJoin;w.lineCap=k.lineCap||this.lineCap;w.strokeStyle=(k.strokeStyle||k.color)||this.strokeStyle;w.fillStyle=k.fillStyle||this.fillStyle;w.beginPath();if(x){w.arc(u[0],u[1],u[2],u[3],u[4],true);if(q){w.closePath()}if(v){w.fill()}else{w.stroke()}}else{if(r){w.fillRect(u[0],u[1],u[2],u[3])}else{if(n){w.strokeRect(u[0],u[1],u[2],u[3])}else{if(l){w.clearRect(u[0],u[1],u[2],u[3])}else{w.moveTo(u[0][0],u[0][1]);for(var o=1;o<u.length;o++){w.lineTo(u[o][0],u[o][1])}if(q){w.closePath()}if(v){w.fill()}else{w.stroke()}}}}}w.restore()};e.jqplot.TableLegendRenderer.prototype.init=function(k){e.extend(true,this,k)};e.jqplot.TableLegendRenderer.prototype.draw=function(){var u=this;if(this.show){var q=this._series;var x="position:absolute;";x+=(this.background)?"background:"+this.background+";":"";x+=(this.border)?"border:"+this.border+";":"";x+=(this.fontSize)?"font-size:"+this.fontSize+";":"";x+=(this.fontFamily)?"font-family:"+this.fontFamily+";":"";x+=(this.textColor)?"color:"+this.textColor+";":"";this._elem=e('<table class="jqplot-legend" style="'+x+'"></table>');var k=false;for(var r=0;r<q.length;r++){s=q[r];if(s.show){var o=s.label.toString();if(o){var l=s.color;if(s._stack&&!s.fill){l=""}w.call(this,o,l,k);k=true}for(var n=0;n<e.jqplot.addLegendRowHooks.length;n++){var v=e.jqplot.addLegendRowHooks[n].call(this,s);if(v){w.call(this,v.label,v.color,k);k=true}}}}}function w(A,z,D){var y=(D)?this.rowSpacing:"0";var C=e('<tr class="jqplot-legend"></tr>').appendTo(this._elem);e('<td class="jqplot-legend" style="vertical-align:middle;text-align:center;padding-top:'+y+';"><div style="border:1px solid #cccccc;padding:0.2em;"><div style="width:1.2em;height:0.7em;background-color:'+z+';"></div></div></td>').appendTo(C);var B=e('<td class="jqplot-legend" style="vertical-align:middle;padding-top:'+y+';"></td>');B.appendTo(C);if(this.escapeHtml){B.text(A)}else{B.html(A)}}return this._elem};e.jqplot.TableLegendRenderer.prototype.pack=function(o){if(this.show){var n={_top:o.top,_left:o.left,_right:o.right,_bottom:this._plotDimensions.height-o.bottom};switch(this.location){case"nw":var l=n._left+this.xoffset;var k=n._top+this.yoffset;this._elem.css("left",l);this._elem.css("top",k);break;case"n":var l=(o.left+(this._plotDimensions.width-o.right))/2-this.getWidth()/2;var k=n._top+this.yoffset;this._elem.css("left",l);this._elem.css("top",k);break;case"ne":var l=o.right+this.xoffset;var k=n._top+this.yoffset;this._elem.css({right:l,top:k});break;case"e":var l=o.right+this.xoffset;var k=(o.top+(this._plotDimensions.height-o.bottom))/2-this.getHeight()/2;this._elem.css({right:l,top:k});break;case"se":var l=o.right+this.xoffset;var k=o.bottom+this.yoffset;this._elem.css({right:l,bottom:k});break;case"s":var l=(o.left+(this._plotDimensions.width-o.right))/2-this.getWidth()/2;var k=o.bottom+this.yoffset;this._elem.css({left:l,bottom:k});break;case"sw":var l=n._left+this.xoffset;var k=o.bottom+this.yoffset;this._elem.css({left:l,bottom:k});break;case"w":var l=n._left+this.xoffset;var k=(o.top+(this._plotDimensions.height-o.bottom))/2-this.getHeight()/2;this._elem.css({left:l,top:k});break;default:var l=n._right-this.xoffset;var k=n._bottom+this.yoffset;this._elem.css({right:l,bottom:k});break}}};e.jqplot.sprintf=function(){function r(z,v,w,y){var x=(z.length>=v)?"":Array(1+v-z.length>>>0).join(w);return y?z+x:x+z}function n(y,x,A,v,w){var z=v-y.length;if(z>0){if(A||!w){y=r(y,v," ",A)}else{y=y.slice(0,x.length)+r("",z,"0",true)+y.slice(x.length)}}return y}function u(B,A,z,C,w,v,y){var x=B>>>0;z=z&&x&&{"2":"0b","8":"0","16":"0x"}[A]||"";B=z+r(x.toString(A),v||0,"0",false);return n(B,z,C,w,y)}function k(y,z,w,v,x){if(v!=null){y=y.slice(0,v)}return n(y,"",z,w,x)}var l=arguments,o=0,q=l[o++];return q.replace(e.jqplot.sprintf.regex,function(N,A,B,E,P,L,z){if(N=="%%"){return"%"}var F=false,C="",D=false,M=false;for(var K=0;B&&K<B.length;K++){switch(B.charAt(K)){case" ":C=" ";break;case"+":C="+";break;case"-":F=true;break;case"0":D=true;break;case"#":M=true;break}}if(!E){E=0}else{if(E=="*"){E=+l[o++]}else{if(E.charAt(0)=="*"){E=+l[E.slice(1,-1)]}else{E=+E}}}if(E<0){E=-E;F=true}if(!isFinite(E)){throw new Error("$.jqplot.sprintf: (minimum-)width must be finite")}if(!L){L="fFeE".indexOf(z)>-1?6:(z=="d")?0:void (0)}else{if(L=="*"){L=+l[o++]}else{if(L.charAt(0)=="*"){L=+l[L.slice(1,-1)]}else{L=+L}}}var H=A?l[A.slice(0,-1)]:l[o++];switch(z){case"s":return k(String(H),F,E,L,D);case"c":return k(String.fromCharCode(+H),F,E,L,D);case"b":return u(H,2,M,F,E,L,D);case"o":return u(H,8,M,F,E,L,D);case"x":return u(H,16,M,F,E,L,D);case"X":return u(H,16,M,F,E,L,D).toUpperCase();case"u":return u(H,10,M,F,E,L,D);case"i":case"d":var x=parseInt(+H);var J=x<0?"-":C;H=J+r(String(Math.abs(x)),L,"0",false);return n(H,J,F,E,D);case"e":case"E":case"f":case"F":case"g":case"G":var x=+H;var J=x<0?"-":C;var y=["toExponential","toFixed","toPrecision"]["efg".indexOf(z.toLowerCase())];var O=["toString","toUpperCase"]["eEfFgG".indexOf(z)%2];H=J+Math.abs(x)[y](L);return n(H,J,F,E,D)[O]();case"p":case"P":var x=+H;var J=x<0?"-":C;var G=String(Number(Math.abs(x)).toExponential()).split(/e|E/);var w=(G[0].indexOf(".")!=-1)?G[0].length-1:G[0].length;var I=(G[1]<0)?-G[1]-1:0;if(Math.abs(x)<1){if(w+I<=L){H=J+Math.abs(x).toPrecision(w)}else{if(w<=L-1){H=J+Math.abs(x).toExponential(w-1)}else{H=J+Math.abs(x).toExponential(L-1)}}}else{var v=(w<=L)?w:L;H=J+Math.abs(x).toPrecision(v)}var O=["toString","toUpperCase"]["pP".indexOf(z)%2];return n(H,J,F,E,D)[O]();default:return N}})};e.jqplot.sprintf.regex=/%%|%(\d+\$)?([-+#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuidfegpEGP])/g})(jQuery);(function(b){b.jqplot.PieRenderer=function(){b.jqplot.LineRenderer.call(this)};b.jqplot.PieRenderer.prototype=new b.jqplot.LineRenderer();b.jqplot.PieRenderer.prototype.constructor=b.jqplot.PieRenderer;b.jqplot.PieRenderer.prototype.init=function(d){this.diameter=null;this.padding=20;this.sliceMargin=0;this.fill=true;this.shadowOffset=2;this.shadowAlpha=0.07;this.shadowDepth=5;this.tickRenderer=b.jqplot.PieTickRenderer;b.extend(true,this,d);if(this.diameter!=null){this.diameter=this.diameter-this.sliceMargin}};b.jqplot.PieRenderer.prototype.setGridData=function(){};b.jqplot.PieRenderer.prototype.makeGridData=function(g){var d=[];var h=[];for(var f=0;f<g.length;f++){d.push(g[f][1]);h.push([g[f][0]]);if(f>0){d[f]+=d[f-1]}}var e=Math.PI*2/d[d.length-1];for(var f=0;f<d.length;f++){h[f][1]=d[f]*e}return h};b.jqplot.PieRenderer.prototype.drawSlice=function(o,l,k,f,h){var d=this.diameter/2;var n=this.fill;var j=this.lineWidth;o.save();o.translate(this.sliceMargin*Math.cos((l+k)/2),this.sliceMargin*Math.sin((l+k)/2));if(h){for(var g=0;g<this.shadowDepth;g++){o.save();o.translate(this.shadowOffset*Math.cos(this.shadowAngle/180*Math.PI),this.shadowOffset*Math.sin(this.shadowAngle/180*Math.PI));e()}}else{e()}function e(){o.beginPath();o.moveTo(0,0);o.fillStyle=f;o.strokeStyle=f;o.lineWidth=j;o.arc(0,0,d,l,k,false);o.closePath();if(n){o.fill()}else{o.stroke()}}if(h){for(var g=0;g<this.shadowDepth;g++){o.restore()}}o.restore()};b.jqplot.PieRenderer.prototype.draw=function(A,F,k){var C;var x=(k!=undefined)?k:{};var g=0;var f=0;var l=1;var e=new this.colorGenerator(this.seriesColors);if(k.legendInfo){var v=k.legendInfo;switch(v.location){case"nw":g=v.width+v.xoffset;break;case"w":g=v.width+v.xoffset;break;case"sw":g=v.width+v.xoffset;break;case"ne":g=v.width+v.xoffset;l=-1;break;case"e":g=v.width+v.xoffset;l=-1;break;case"se":g=v.width+v.xoffset;l=-1;break;case"n":f=v.height+v.yoffset;break;case"s":f=v.height+v.yoffset;l=-1;break;default:break}}var o=(x.shadow!=undefined)?x.shadow:this.shadow;var G=(x.showLine!=undefined)?x.showLine:this.showLine;var B=(x.fill!=undefined)?x.fill:this.fill;var j=A.canvas.width;var u=A.canvas.height;var q=j-g-2*this.padding;var D=u-f-2*this.padding;var E=Math.min(q,D);this.diameter=this.diameter||E-this.sliceMargin;var y=this.diameter/2;A.save();A.translate((j-l*g)/2+l*g,(u-l*f)/2+l*f);if(this.shadow){var z="rgba(0,0,0,"+this.shadowAlpha+")";for(var C=0;C<F.length;C++){var n=(C==0)?0:F[C-1][1];this.renderer.drawSlice.call(this,A,n,F[C][1],z,true)}}for(var C=0;C<F.length;C++){var n=(C==0)?0:F[C-1][1];this.renderer.drawSlice.call(this,A,n,F[C][1],e.next())}A.restore()};b.jqplot.PieAxisRenderer=function(){b.jqplot.LinearAxisRenderer.call(this)};b.jqplot.PieAxisRenderer.prototype=new b.jqplot.LinearAxisRenderer();b.jqplot.PieAxisRenderer.prototype.constructor=b.jqplot.PieAxisRenderer;b.jqplot.PieAxisRenderer.prototype.init=function(d){this.tickRenderer=b.jqplot.PieTickRenderer;b.extend(true,this,d);this._dataBounds={min:0,max:100};this.min=0;this.max=100;this.showTicks=false;this.ticks=[];this.showMark=false;this.show=false};b.jqplot.PieTickRenderer=function(){b.jqplot.AxisTickRenderer.call(this)};b.jqplot.PieTickRenderer.prototype=new b.jqplot.AxisTickRenderer();b.jqplot.PieTickRenderer.prototype.constructor=b.jqplot.PieTickRenderer;b.jqplot.PieLegendRenderer=function(){b.jqplot.TableLegendRenderer.call(this)};b.jqplot.PieLegendRenderer.prototype=new b.jqplot.TableLegendRenderer();b.jqplot.PieLegendRenderer.prototype.constructor=b.jqplot.PieLegendRenderer;b.jqplot.PieLegendRenderer.prototype.draw=function(){var k=this;if(this.show){var f=this._series;var o="position:absolute;";o+=(this.background)?"background:"+this.background+";":"";o+=(this.border)?"border:"+this.border+";":"";o+=(this.fontSize)?"font-size:"+this.fontSize+";":"";o+=(this.fontFamily)?"font-family:"+this.fontFamily+";":"";o+=(this.textColor)?"color:"+this.textColor+";":"";this._elem=b('<table class="jqplot-legend" style="'+o+'"></table>');var d=false;var n=f[0];var h=new n.colorGenerator(n.seriesColors);if(n.show){var j=n.data;for(var g=0;g<j.length;g++){var e=j[g][0].toString();if(e){l.call(this,e,h.next(),d);d=true}}}}function l(u,r,x){var q=(x)?this.rowSpacing:"0";var w=b('<tr class="jqplot-legend"></tr>').appendTo(this._elem);b('<td class="jqplot-legend" style="vertical-align:middle;text-align:center;padding-top:'+q+';"><div style="border:1px solid #cccccc;padding:0.2em;"><div style="width:1.2em;height:0.7em;background-color:'+r+';"></div></div></td>').appendTo(w);var v=b('<td class="jqplot-legend" style="vertical-align:middle;padding-top:'+q+';"></td>');v.appendTo(w);if(this.escapeHtml){v.text(u)}else{v.html(u)}}return this._elem};function a(h,g,e){e=e||{};e.axesDefaults=e.axesDefaults||{};e.legend=e.legend||{};e.seriesDefaults=e.seriesDefaults||{};var d=false;if(e.seriesDefaults.renderer==b.jqplot.PieRenderer){d=true}else{if(e.series){for(var f=0;f<e.series.length;f++){if(e.series[f].renderer==b.jqplot.PieRenderer){d=true}}}}if(d){e.axesDefaults.renderer=b.jqplot.PieAxisRenderer;e.legend.renderer=b.jqplot.PieLegendRenderer;e.legend.preDraw=true}}function c(d){for(var e=0;e<this.series.length;e++){this.series[e].seriesColors=this.seriesColors;this.series[e].colorGenerator=this.colorGenerator}}b.jqplot.preInitHooks.push(a);b.jqplot.postParseOptionsHooks.push(c);b.jqplot.PieTickRenderer=function(){b.jqplot.AxisTickRenderer.call(this)};b.jqplot.PieTickRenderer.prototype=new b.jqplot.AxisTickRenderer();b.jqplot.PieTickRenderer.prototype.constructor=b.jqplot.PieTickRenderer})(jQuery);mySettings_bb={previewParserPath:"~/templates/preview.html",markupSet:[{name:"Bold",key:"B",openWith:"[b]",closeWith:"[/b]"},{name:"Italic",key:"I",openWith:"[i]",closeWith:"[/i]"},{name:"Underline",key:"U",openWith:"[u]",closeWith:"[/u]"},{separator:"---------------"},{name:"Left",openWith:"[left]",closeWith:"[/left]"},{name:"Center",openWith:"[center]",closeWith:"[/center]"},{name:"Right",openWith:"[right]",closeWith:"[/right]"},{separator:"---------------"},{name:"Picture",key:"P",replaceWith:"[img][![Url]!][/img]"},{name:"Link",key:"L",openWith:"[url=[![Url]!]]",closeWith:"[/url]",placeHolder:"Your text to link here..."},{separator:"---------------"},{name:"Colors",openWith:"[color=[![Color]!]]",closeWith:"[/color]",dropMenu:[{name:"Yellow",openWith:"[color=#FFFF00]",closeWith:"[/color]",className:"col1-1"},{name:"Orange",openWith:"[color=#FFA500]",closeWith:"[/color]",className:"col1-2"},{name:"Red",openWith:"[color=#FF0000]",closeWith:"[/color]",className:"col1-3"},{name:"Blue",openWith:"[color=#0000FF]",closeWith:"[/color]",className:"col2-1"},{name:"Purple",openWith:"[color=#800080]",closeWith:"[/color]",className:"col2-2"},{name:"Green",openWith:"[color=#008000]",closeWith:"[/color]",className:"col2-3"},{name:"White",openWith:"[color=#FFFFFF]",closeWith:"[/color]",className:"col3-1"},{name:"Gray",openWith:"[color=#808080]",closeWith:"[/color]",className:"col3-2"},{name:"Black",openWith:"[color=#000000]",closeWith:"[/color]",className:"col3-3"}]},{name:"Size",key:"S",openWith:"[size=[![Text size]!]]",closeWith:"[/size]",dropMenu:[{name:"Big",openWith:"[size=200]",closeWith:"[/size]"},{name:"Normal",openWith:"[size=100]",closeWith:"[/size]"},{name:"Small",openWith:"[size=50]",closeWith:"[/size]"}]},{separator:"---------------"},{name:"Bulleted list",openWith:"[list]\n",closeWith:"\n[/list]"},{name:"List item",openWith:"[*] "},{separator:"---------------"},{name:"Code",openWith:"[code]",closeWith:"[/code]"},{separator:"---------------"},{name:"Item",openWith:"[item]",closeWith:"[/item]"},{name:"Item Icon",openWith:"[itemicon]",closeWith:"[/itemicon]"},{separator:"---------------"},{name:"Clean",className:"clean",replaceWith:function(a){return a.selection.replace(/\[(.*?)\]/g,"")}}]};mySettings_html={previewParserPath:"~/templates/preview.html",onShiftEnter:{keepDefault:false,replaceWith:"<br />\n"},onCtrlEnter:{keepDefault:false,openWith:"\n<p>",closeWith:"</p>"},onTab:{keepDefault:false,replaceWith:"    "},markupSet:[{name:"Bold",key:"B",openWith:"(!(<strong>|!|<b>)!)",closeWith:"(!(</strong>|!|</b>)!)"},{name:"Italic",key:"I",openWith:"(!(<em>|!|<i>)!)",closeWith:"(!(</em>|!|</i>)!)"},{name:"Stroke through",key:"S",openWith:"<del>",closeWith:"</del>"},{separator:"---------------"},{name:"Picture",key:"P",replaceWith:'<img src="[![Source:!:http://]!]" alt="[![Alternative text]!]" />'},{name:"Link",key:"L",openWith:'<a href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>',closeWith:"</a>",placeHolder:"Your text to link..."},{separator:"---------------"},{name:"Clean",className:"clean",replaceWith:function(a){return a.selection.replace(/<(.*?)>/g,"")}},{name:"Preview",className:"preview",call:"preview"}]};
/*
 * jQuery Impromptu
 * By: Trent Richardson [http://trentrichardson.com]
 * Version 3.1
 * Last Modified: 3/30/2010
 * 
 * Copyright 2010 Trent Richardson
 * Dual licensed under the MIT and GPL licenses.
 * http://trentrichardson.com/Impromptu/GPL-LICENSE.txt
 * http://trentrichardson.com/Impromptu/MIT-LICENSE.txt
 * 
 */
 
(function($) {
	$.prompt = function(message, options) {
		options = $.extend({},$.prompt.defaults,options);
		$.prompt.currentPrefix = options.prefix;

		var ie6		= ($.browser.msie && $.browser.version < 7);
		var $body	= $(document.body);
		var $window	= $(window);
		
		options.classes = $.trim(options.classes);
		if(options.classes != '')
			options.classes = ' '+ options.classes;
			
		//build the box and fade
		var msgbox = '<div class="'+ options.prefix +'box'+ options.classes +'" id="'+ options.prefix +'box">';
		if(options.useiframe && (($('object, applet').length > 0) || ie6)) {
			msgbox += '<iframe src="javascript:false;" style="display:block;position:absolute;z-index:-1;" class="'+ options.prefix +'fade" id="'+ options.prefix +'fade"></iframe>';
		} else {
			if(ie6) {
				$('select').css('visibility','hidden');
			}
			msgbox +='<div class="'+ options.prefix +'fade" id="'+ options.prefix +'fade"></div>';
		}
		msgbox += '<div class="'+ options.prefix +'" id="'+ options.prefix +'"><div class="'+ options.prefix +'container"><div class="';
		msgbox += options.prefix +'close">X</div><div id="'+ options.prefix +'states"></div>';
		msgbox += '</div></div></div>';

		var $jqib	= $(msgbox).appendTo($body);
		var $jqi	= $jqib.children('#'+ options.prefix);
		var $jqif	= $jqib.children('#'+ options.prefix +'fade');

		//if a string was passed, convert to a single state
		if(message.constructor == String){
			message = {
				state0: {
					html: message,
				 	buttons: options.buttons,
				 	focus: options.focus,
				 	submit: options.submit
			 	}
		 	};
		}

		//build the states
		var states = "";

		$.each(message,function(statename,stateobj){
			stateobj = $.extend({},$.prompt.defaults.state,stateobj);
			message[statename] = stateobj;

			states += '<div id="'+ options.prefix +'_state_'+ statename +'" class="'+ options.prefix + '_state" style="display:none;"><div class="'+ options.prefix +'message">' + stateobj.html +'</div><div class="'+ options.prefix +'buttons">';
			$.each(stateobj.buttons, function(k, v){
				if(typeof v == 'object')
					states += '<button name="' + options.prefix + '_' + statename + '_button' + v.title.replace(/[^a-z0-9]+/gi,'') + '" id="' + options.prefix + '_' + statename + '_button' + v.title.replace(/[^a-z0-9]+/gi,'') + '" value="' + v.value + '">' + v.title + '</button>';
				else states += '<button name="' + options.prefix + '_' + statename + '_button' + k + '" id="' + options.prefix +	'_' + statename + '_button' + k + '" value="' + v + '">' + k + '</button>';
			});
			states += '</div></div>';
		});

		//insert the states...
		$jqi.find('#'+ options.prefix +'states').html(states).children('.'+ options.prefix +'_state:first').css('display','block');
		$jqi.find('.'+ options.prefix +'buttons:empty').css('display','none');
		
		//Events
		$.each(message,function(statename,stateobj){
			var $state = $jqi.find('#'+ options.prefix +'_state_'+ statename);

			$state.children('.'+ options.prefix +'buttons').children('button').click(function(){
				var msg = $state.children('.'+ options.prefix +'message');
				var clicked = stateobj.buttons[$(this).text()];
				if(clicked == undefined){
					for(var i in stateobj.buttons)
						if(stateobj.buttons[i].title == $(this).text())
							clicked = stateobj.buttons[i].value;
				}
				
				if(typeof clicked == 'object')
					clicked = clicked.value;
				var forminputs = {};

				//collect all form element values from all states
				$.each($jqi.find('#'+ options.prefix +'states :input').serializeArray(),function(i,obj){
					if (forminputs[obj.name] === undefined) {
						forminputs[obj.name] = obj.value;
					} else if (typeof forminputs[obj.name] == Array || typeof forminputs[obj.name] == 'object') {
						forminputs[obj.name].push(obj.value);
					} else {
						forminputs[obj.name] = [forminputs[obj.name],obj.value];	
					} 
				});

				var close = stateobj.submit(clicked,msg,forminputs);
				if(close === undefined || close) {
					removePrompt(true,clicked,msg,forminputs);
				}
			});
			$state.find('.'+ options.prefix +'buttons button:eq('+ stateobj.focus +')').addClass(options.prefix +'defaultbutton');

		});

		var ie6scroll = function(){
			$jqib.css({ top: $window.scrollTop() });
		};

		var fadeClicked = function(){
			if(options.persistent){
				var i = 0;
				$jqib.addClass(options.prefix +'warning');
				var intervalid = setInterval(function(){
					$jqib.toggleClass(options.prefix +'warning');
					if(i++ > 1){
						clearInterval(intervalid);
						$jqib.removeClass(options.prefix +'warning');
					}
				}, 100);
			}
			else {
				removePrompt();
			}
		};
		
		var keyPressEventHandler = function(e){
			var key = (window.event) ? event.keyCode : e.keyCode; // MSIE or Firefox?
			
			//escape key closes
			if(key==27) {
				fadeClicked();	
			}
			
			//constrain tabs
			if (key == 9){
				var $inputels = $(':input:enabled:visible',$jqib);
				var fwd = !e.shiftKey && e.target == $inputels[$inputels.length-1];
				var back = e.shiftKey && e.target == $inputels[0];
				if (fwd || back) {
				setTimeout(function(){ 
					if (!$inputels)
						return;
					var el = $inputels[back===true ? $inputels.length-1 : 0];

					if (el)
						el.focus();						
				},10);
				return false;
				}
			}
		};
		
		var positionPrompt = function(){
			$jqib.css({
				position: (ie6) ? "absolute" : "fixed",
				height: $window.height(),
				width: "100%",
				top: (ie6)? $window.scrollTop() : 0,
				left: 0,
				right: 0,
				bottom: 0
			});
			$jqif.css({
				position: "absolute",
				height: $window.height(),
				width: "100%",
				top: 0,
				left: 0,
				right: 0,
				bottom: 0
			});
			$jqi.css({
				position: "absolute",
				top: options.top,
				left: "50%",
				marginLeft: (($jqi.outerWidth()/2)*-1)
			});
		};

		var stylePrompt = function(){
			$jqif.css({
				zIndex: options.zIndex,
				display: "none",
				opacity: options.opacity
			});
			$jqi.css({
				zIndex: options.zIndex+1,
				display: "none"
			});
			$jqib.css({
				zIndex: options.zIndex
			});
		};

		var removePrompt = function(callCallback, clicked, msg, formvals){
			$jqi.remove();
			//ie6, remove the scroll event
			if(ie6) {
				$body.unbind('scroll',ie6scroll);
			}
			$window.unbind('resize',positionPrompt);
			$jqif.fadeOut(options.overlayspeed,function(){
				$jqif.unbind('click',fadeClicked);
				$jqif.remove();
				if(callCallback) {
					options.callback(clicked,msg,formvals);
				}
				$jqib.unbind('keypress',keyPressEventHandler);
				$jqib.remove();
				if(ie6 && !options.useiframe) {
					$('select').css('visibility','visible');
				}
			});
		};

		positionPrompt();
		stylePrompt();
		
		//ie6, add a scroll event to fix position:fixed
		if(ie6) {
			$window.scroll(ie6scroll);
		}
		$jqif.click(fadeClicked);
		$window.resize(positionPrompt);
		$jqib.bind("keydown keypress",keyPressEventHandler);
		$jqi.find('.'+ options.prefix +'close').click(removePrompt);

		//Show it
		$jqif.fadeIn(options.overlayspeed);
		$jqi[options.show](options.promptspeed,options.loaded);
		$jqi.find('#'+ options.prefix +'states .'+ options.prefix +'_state:first .'+ options.prefix +'defaultbutton').focus();
		
		if(options.timeout > 0)
			setTimeout($.prompt.close,options.timeout);

		return $jqib;
	};
	
	$.prompt.defaults = {
		prefix:'jqi',
		classes: '',
		buttons: {
			Ok: true
		},
	 	loaded: function(){

	 	},
	  	submit: function(){
	  		return true;
		},
	 	callback: function(){

	 	},
		opacity: 0.6,
	 	zIndex: 999,
	  	overlayspeed: 'slow',
	   	promptspeed: 'fast',
   		show: 'fadeIn',
	   	focus: 0,
	   	useiframe: false,
	 	top: "15%",
	  	persistent: true,
	  	timeout: 0,
	  	state: {
			html: '',
		 	buttons: {
		 		Ok: true
		 	},
		  	focus: 0,
		   	submit: function(){
		   		return true;
		   }
	  	}
	};
	
	$.prompt.currentPrefix = $.prompt.defaults.prefix;

	$.prompt.setDefaults = function(o) {
		$.prompt.defaults = $.extend({}, $.prompt.defaults, o);
	};
	
	$.prompt.setStateDefaults = function(o) {
		$.prompt.defaults.state = $.extend({}, $.prompt.defaults.state, o);
	};
	
	$.prompt.getStateContent = function(state) {
		return $('#'+ $.prompt.currentPrefix +'_state_'+ state);
	};
	
	$.prompt.getCurrentState = function() {
		return $('.'+ $.prompt.currentPrefix +'_state:visible');
	};
	
	$.prompt.getCurrentStateName = function() {
		var stateid = $.prompt.getCurrentState().attr('id');
		
		return stateid.replace($.prompt.currentPrefix +'_state_','');
	};
	
	$.prompt.goToState = function(state, callback) {
		$('.'+ $.prompt.currentPrefix +'_state').slideUp('slow');
		$('#'+ $.prompt.currentPrefix +'_state_'+ state).slideDown('slow',function(){
			$(this).find('.'+ $.prompt.currentPrefix +'defaultbutton').focus();
			if (typeof callback == 'function')
				callback();
		});
	};
	
	$.prompt.nextState = function(callback) {
		var $next = $('.'+ $.prompt.currentPrefix +'_state:visible').next();

		$('.'+ $.prompt.currentPrefix +'_state').slideUp('slow');
		
		$next.slideDown('slow',function(){
			$next.find('.'+ $.prompt.currentPrefix +'defaultbutton').focus();
			if (typeof callback == 'function')
				callback();
		});
	};
	
	$.prompt.prevState = function(callback) {
		var $next = $('.'+ $.prompt.currentPrefix +'_state:visible').prev();

		$('.'+ $.prompt.currentPrefix +'_state').slideUp('slow');
		
		$next.slideDown('slow',function(){
			$next.find('.'+ $.prompt.currentPrefix +'defaultbutton').focus();
			if (typeof callback == 'function')
				callback();
		});
	};
	
	$.prompt.close = function() {
		$('#'+ $.prompt.currentPrefix +'box').fadeOut('fast',function(){
        		$(this).remove();
		});
	};
	
	$.fn.prompt = function(options){
		if(options == undefined) 
			options = {};
		if(options.withDataAndEvents == undefined)
			options.withDataAndEvents = false;
			
		$.prompt($(this).clone(options.withDataAndEvents).html(),options);
	}
	
})(jQuery);

