
/*
 * jQuery JavaScript Library v1.3.2
 * http://jquery.com/
 *
 * Copyright (c) 2009 John Resig
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
 * Revision: 6246
 */
(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
/*
 * Sizzle CSS Selector Engine - v0.9.3
 *  Copyright 2009, The Dojo Foundation
 *  Released under the MIT, BSD, and GPL Licenses.
 *  More information: http://sizzlejs.com/
 */
(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

/**
 * Create a cookie with the given name and value and other optional parameters.
 *
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Set the value of a cookie.
 * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
 * @desc Create a cookie with all available options.
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Create a session cookie.
 * @example $.cookie('the_cookie', null);
 * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
 *       used when the cookie was set.
 *
 * @param String name The name of the cookie.
 * @param String value The value of the cookie.
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
 *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
 *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
 *                             when the the browser exits.
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
 *                        require a secure protocol (like HTTPS).
 * @type undefined
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */

/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};function adriver (ph, prm, defer){ 
	if(this instanceof adriver){
		var p = null;
		if (typeof(ph) == "string"){
			p = document.getElementById(ph);
		}else{
			p = ph; ph = p.id;
		}
		
		if(!p) {return null}
		if (adriver.items[ph]){ return adriver.items[ph]}
		
		adriver.items[ph] = this;
		this.ph = ph;
		this.p = p;

		this.reply = {};
		this.prm = p.title ? adriver.parseJSON(p.title) : {};
		adriver.extend(this.prm, prm, {ph: ph});
		this.className = p.className.match(/\w+\b/); 

		this.loadCompleteQueue = new adriver.queue();
		this.domReadyQueue = new adriver.queue(adriver.isDomReady);

		var my = this;
		adriver.onDomReady(function(){my.domReady()});
		if (!defer) this.load(); 
		return this;
	}else{
		return arguments.length ? adriver.items[ph] : adriver.items;
	}
}
	
adriver.loadScript = function(req){ 
	try {
		req = req.replace(/!\[rnd\]/,Math.round(Math.random()*10000000));  
		var head = document.getElementsByTagName("head").item(0);
		var s = document.createElement("script");
		s.setAttribute("type", "text/javascript");
		s.setAttribute("charset", "windows-1251");
		s.setAttribute("src", req);
		s.onreadystatechange = function(){if (/loaded|complete/.test(this.readyState))head.removeChild(s)};
		s.onload = function (e) {head.removeChild(s)};
		head.insertBefore(s, head.firstChild); 
	}catch(e){}
} 

adriver.extend = function (){
	var l = arguments[0]; 
	for (var i = 1, len = arguments.length; i<len; i++){
		var r = arguments[i]; 
		for (var j in r){ 
			if(r.hasOwnProperty(j)){ 
				if (r[j] instanceof Object){if(l[j]) {adriver.extend(l[j], r[j]);}else{l[j] = adriver.extend(r[j] instanceof Array ? [] : {}, r[j]);}}else{l[j] = r[j];}
			}
		}
	}
	return l
}

adriver.extendL = function (l, r){for(var i in l){if (l.hasOwnProperty(i) && r.hasOwnProperty(i)) l[i] = r[i]}; return l}

adriver.toQueryString = function (o, delimiter, assign) {
	delimiter = delimiter || "&"; 
	assign = assign || "=";
	var l = []; 
	for (var i in o){if (o.hasOwnProperty(i)) l.push (i + assign + o[i])}
	return l.join(delimiter)
}

adriver.parseJSON = function (text){
	var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
	if (cx.test(text)) {text = text.replace(cx, function (a) {return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4)})}
	if (!(/^\s*\{.*\}\s*$/).test(text)) text = "{" + text + "}";	
	text = text.replace(/'/g,"\"");
	
	return /^[\],:{}\s]*$/.
		test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").
		replace(/\w+(?=\s+|:)|"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").
		replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ? eval("(" + text + ")") : {};
}


adriver.prototype = {
	isLoading : false,
	
	load : function (){ 
		try { 
			if (!this.isLoading){
				this.isLoading = true;
				var req = adriver.extend({}, adriver.defaults, this.prm);
				adriver.loadScript(adriver.redirectHost + "/cgi-bin/merle.cgi?rnd=![rnd]&" + adriver.toQueryString(req)); 
			}
		}catch(e){}
		return this;
	}, 
		
	reload: function (){
		this.reset();
		this.load();
		return this;
	},

	onLoadComplete : function (f) {
		this.loadCompleteQueue.push(f);
		return this;
	},
	
	loadComplete : function (){	
		this.isLoading = false; 
		this.loadCompleteQueue.execute(); 
		return this;
	},
	
	onDomReady : function (f) {
		this.domReadyQueue.push(f);
		return this;
	},
	
	domReady : function (){
		this.domReadyQueue.execute();
		return this;
	},
	
	reset : function (){	
		this.loadCompleteQueue.flush();
		this.domReadyQueue.flush(adriver.isDomReady);
		this.isLoading = false;
		return this;
	}
}

adriver.onDomReady = function (f){
	adriver.domReadyQueue.push(f);
}

adriver.onBeforeDomReady = function (f){
	adriver.domReadyQueue.unshift(f);
}

adriver.domReady = function(){ 
	adriver.isDomReady = true;
	adriver.domReadyQueue.execute();
}


adriver.setDefaults = function (defaults){adriver.extend(adriver.defaults, defaults)}
adriver.setOptions = function (options){adriver.extend(adriver.options, options)}
adriver.setPluginPath = function(path){adriver.extend(adriver.pluginPath, path)}


adriver.queue = function (flag){ this.q = []; this.flag = flag ? true: false }

adriver.queue.prototype = {
	push : function (f){this.flag ? f() : this.q.push(f)}, 
	unshift : function (f){this.flag ? f() : this.q.unshift(f)},
	execute : function (flag){var f; var undefined; while (f = this.q.shift()) f(); if (flag == undefined) flag=true; this.flag = flag ? true : false},	
	flush : function (flag){this.q.length = 0; this.flag = flag ? true: false}
}


adriver.Plugin = function (id){
	if(this instanceof adriver.Plugin){
		if(id && !adriver.plugins[id]){
			this.id = id;
			this.q = new adriver.queue();
			this.loadingStatus = 0;
			adriver.plugins[id] = this;
			return this;
		}
	}
	return adriver.plugins[id];
}

adriver.Plugin.prototype = {
	load: function (){
		this.loadingStatus = 1; 
		var suffix = this.id.substr(this.id.lastIndexOf('.')+1);
		var pluginPath = adriver.pluginPath[suffix] || adriver.defaultMirror + "/plugins/";
		adriver.loadScript(pluginPath + this.id + ".js");
	},
	loadComplete: function (){ this.loadingStatus = 2; this.q.execute(); return this },
	onLoadComplete: function (f){ this.q.push(f); return this }
}


adriver.Plugin.require = function(){ 
	var me = this, counter = 0; 
	this.q = new adriver.queue();
	
	for (var i = 0, len = arguments.length; i < len; i ++){
		var p = new adriver.Plugin(arguments[i]); 
		if (p.loadingStatus != 2){
			counter++;
			p.onLoadComplete(function (){if(counter-- == 1) {me.q.execute()}});
			if (!p.loadingStatus) p.load();
		}
	}
	if(!counter) {this.q.execute()}
}

adriver.Plugin.require.prototype.onLoadComplete = function (f){this.q.push(f); return this}


adriver.start = function (){
	adriver.version = "2.0";
	adriver.items = {};
	adriver.defaults = {tail256: (document.referrer ? escape(document.referrer) : 'unknown')};
	adriver.options = {};
	adriver.plugins = {};
	adriver.pluginPath = {};
	adriver.redirectHost = "http://ad.adriver.ru";
	adriver.defaultMirror = "http://content.adriver.ru";
	adriver.isDomReady = false;
	adriver.domReadyQueue = new adriver.queue();

	adriver.checkDomReady(adriver.domReady); 
}


adriver.checkDomReady = function(f){
	try {
		var d = document, oldOnload = window.onload;
		if (/WebKit/i.test(navigator.userAgent)) {(function(){/loaded|complete/.test(d.readyState) ? f() : setTimeout (arguments.callee, 100)})()} 
		else if (d.addEventListener) {d.addEventListener("DOMContentLoaded", f, false)} 
		else if (d.all && !window.opera){
			document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
			document.getElementById("__onDOMContentLoaded").onreadystatechange = function(){if (this.readyState == "complete" ) { f() }}
		}
		window.onload = function(){if(oldOnload) oldOnload(); f()}
	} catch (e){}
}


adriver.start();
    var manageCookie = function(name, value, options) {
        if (typeof value != 'undefined') { // name and value given, set cookie
            options = options || {};
            if (value === null) {
                value = '';
                options.expires = -1;
            }
            var expires = '';
            if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
                var date;
                if (typeof options.expires == 'number') {
                    date = new Date();
                    date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
                } else {
                    date = options.expires;
                }
                expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
            }
            // CAUTION: Needed to parenthesize options.path and options.domain
            // in the following expressions, otherwise they evaluate to undefined
            // in the packed version for some reason...
            var path = options.path ? '; path=' + (options.path) : '';
            var domain = options.domain ? '; domain=' + (options.domain) : '';
            var secure = options.secure ? '; secure' : '';
            document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
        } else { // only name given, get cookie
            var cookieValue = null;
            if (document.cookie && document.cookie != '') {
                var cookies = document.cookie.split(';');
                for (var i = 0; i < cookies.length; i++) {
                    var cookie = cookies[i].replace( /^\s+|\s+$/g, "" );
                    // Does this cookie string begin with the name we want?
                    if (cookie.substring(0, name.length + 1) == (name + '=')) {
                        cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                        break;
                    }
                }
            }
            return cookieValue;
        }
    };

    var genAdRiverValues = function () {
        var adRiverCookieName = 'adRiverGenValues';
        var cookieVal = manageCookie(adRiverCookieName);
        
        var cookieDomain = 'marka.az';
        var cookiePath = '/';

        var secondParts = new Array('s1', 's2', 's3','s4');
        var date = new Date();
        var today = date.getUTCMonth().toString() + date.getUTCDate().toString();

        var firstPart = '';
        if(typeof cookieVal == 'string') {
            var split = cookieVal.split(/,/);

            var dayNMonthUTC = split[0];

            //start page visit count all over again if the cookie wasn't set today
            if(dayNMonthUTC == today) {
                firstPart = split[1];
            }
        }

        var newVal = '';
        switch(firstPart) {
            case 'p1':
                newVal = 'p2';
                break;

            case 'p2':
                newVal = 'p3';
                break;

            case 'p3':
            case 'p4':
                newVal = 'p4';
                break;

            default:
                newVal = 'p1';
        }

        var randIdx = Math.floor(Math.random() * 4);
        var secPart = secondParts[randIdx];

        var returnVal = newVal + ', ' + secPart;
        cookieVal = today + ',' + returnVal;
        manageCookie(adRiverCookieName, cookieVal, {expires: 0, path: cookiePath, domain: cookieDomain});

        return returnVal;
    }

    //prevent function from accidentaly executing more than once per page view
    if(!adRiverValsAlreadyGenerated) {
        var ar_bn1 = genAdRiverValues();
        var adRiverValsAlreadyGenerated = true;
    }




if (typeof getSelTextWorked == 'undefined'){
	var getSelTextWorked=function(){
		var txt = '';
		if (window.getSelection!=undefined){
			txt = window.getSelection();
		}else if (document.getSelection!=undefined){
			txt = document.getSelection();
		}else if (document.selection!=undefined){
			txt = document.selection.createRange().text;
		}
		return txt;
	}
}

if (typeof ctrlEnter == 'undefined'){
	var ctrlEnter=function(e)
	{
	    if(((e.keyCode == 13) || (e.keyCode == 10)) && (e.ctrlKey == true)){
			var descr = getSelTextWorked();
		    var feedbackInit = {
		    	'type' : 'error',
		    	'link' : location.href
		    }
		    if (descr != ''){
		    	feedbackInit.messageText = '%ERROR%: "' + descr + '"';
		    }
		    
		    $('a.feedback').feedback(feedbackInit);
	    } else if(e.keyCode == 13){		
			if ($('#captchaBlock').css('display') != 'none'){
				$('#captcha_button').click();
				return false;
			}
		}
	}
}
// JavaScript Document

var urlGrabber = function(){
	var matches = new Array();
	matches = location.href.match(/\#(.*)$/);
	if (matches){
		var link = matches[1];
		if (link.search('http://') != -1){
			return matches[1];
		}
	}
	return false;
}


	$(document).ready(function() {
		
	$(document).keypress(function(event){ctrlEnter(event)})
		var topNewsFlag = 0;
		var link = urlGrabber();
		if (link){
			$('#NewFeaturedNews div.tabsContainer ul.tabs').find('a.image').each(function(i){
				if ($(this).attr('href').replace('/ua/', '/') == link.replace('/ua/', '/')){
					// afterload all topnews images
					topNewsFlag++;
					showAllTopnewsImages();
					var leftId = $(this).attr('rel');
					$('#NewFeaturedNews').find('div.TabContent').hide();
					$(leftId).show();
					
					var sdvig = 0;
					if (i > $('#NewFeaturedNews div.tabsContainer ul.tabs').find('a.image').size() - 3) {
						sdvig = i-2;
					} else {
						sdvig = i; 
					}
					
					$('#NewFeaturedNews div.tabsContainer ul.tabs').css('top', -92*sdvig);
					$(this).parent().parent().parent().find('li').removeClass('selected');
					$(this).parent().parent().addClass('selected');
				}
			});			
		}
		
	/* MOUSE OVER AND PRESSDOWN*/
		var buttons = $('span.button_red');
		buttons.mouseover(function(){
			$(this).addClass('MouseOver');
		});
		buttons.mousedown(function(){
			$(this).addClass('MousePressDown');
		});
		buttons.mouseup(function(){
			$(this).removeClass('MousePressDown');
		});
		buttons.mouseleave(function(){
			$(this).removeClass('MouseOver');
			$(this).removeClass('MousePressDown');
		});
	/* MOUSE OVER AND PRESSDOWN*/
	
		var ActivePopUp = false;
		$('.open_LogoSearch_select, div.dropdown, div.DropDownList').live('mousemove',function(){
			ActivePopUp = true;
		});
		$(document).click(function(){
			if (ActivePopUp == true) {
				$('div.dropdown, div.DropDownList').filter('.activePopUp').hide().removeClass('activePopUp');
				$(".LogoSearch_select").removeClass("open_LogoSearch_select");
				ActivePopUp = false;
			}
		});

		$('.barMenu').mouseover(function(){
			$('#portal_sections').show().addClass('activePopUp');
		});
		$('.barMenu').mouseleave(function(){
			$('#portal_sections').hide().removeClass('activePopUp'); 
		});
		$('.startpage').mouseover(function(){
			$('#startpage_menu').show().addClass('activePopUp'); 
		});
		$('.startpage').mouseleave(function(){
			$('#startpage_menu').hide().removeClass('activePopUp'); 
		});
		
		
		// polls
		$('#poll_form li *').live('click',function(){
			$(this).parent().parent().find('li input').removeAttr('checked');
			$(this).parent().parent().find('li').removeClass('selected');
			$(this).parent().find('input').attr("checked", "checked");
			$(this).parent().addClass('selected');
			return false;
		});
	
		$('div.quickSearch ul.tabs>li').live('click', function(){
			$(this).parent().find('li').removeClass('current');
			$(this).addClass('current');
			if(!$(this).parent().hasClass("disable_pages")) {
				selTab = $(this).find('a').attr('href').replace('#', '');
				$(this).parents('div.quickSearch').find('div.TabContent').hide().filter('#'+selTab).show();
			}
			return false;
		});
		

		$('div.ContentBlock ul.tabs>li:not(.fakeTab)').live('click', function(){
            var customEventName = 'contentBlockTabClick';

			$(this).parent().find('li').removeClass('current');
			$(this).addClass('current');
			var selTab = $(this).find('a').attr('href').replace('#', '');

			if ($(this).parents('div.ContentBlock').hasClass('TVWidget')){
				$(this).parents('div.ContentBlock').find('div.TabContent').hide()
				.filter('#'+selTab).show()
				.find('div.scrollHandleVertical').show()
				;

				$(window).resize();
                $(this).trigger(customEventName, [selTab]);
                return false;

			} else if(!$(this).parent().hasClass("disable_pages")) {
				if ($(this).parents('div.ContentBlock').find('div.TabContent').size() > 0) {
					$(this).parents('div.ContentBlock').find('div.TabContent').hide().filter('#'+selTab).show();
				} else {					
					$(this).parents('div.ContentBlock').find('div.content').hide().filter('#'+selTab).show();
				}
                
                $(this).trigger(customEventName, [selTab]);

				if(!$(this).parent().hasClass("href_action")) {
                    return false;
                }
			}	       
       });


		$('div.quickSearch img.dd_button').live('click', function(){
			$('div.ContentBlock').css({'z-index':'100'});
			$(this).parents('div.ContentBlock').css({'z-index':'110'});
			$(this).parents('li.current').find('div.dropdown').show().addClass('activePopUp');
		});
		$('div.quickSearch div.dropdown img.dd_button').live('click', function(){
			$(this).parents('li.current').find('div.dropdown').hide().removeClass('activePopUp');
		});
		$('div.quickSearch div.dropdown li a').live('click',function(){
			$(this).parent().parent().find("li").show();
			$(this).parent().hide();
			$(this).parents('li.current').find('font').text($(this).text());
			$(this).parents('div.dropdown').hide();
			return false;
		});
	
		$('div.BestPlaces ul.tabs>li').live('click', function(){
			$(this).parent().find('li').removeClass('current');
			$(this).addClass('current')
			selTab = $(this).find('a').attr('href').replace('#', '');
			$(this).parents('div.BestPlaces').find('div.TabContent').hide().filter('#'+selTab).show();
			return false;
		});


		$('div.DropDownElement a.dd_button').live('click', function(){
			$('div.ContentBlock').css({'z-index':'100'});
			$(this).parents('div.ContentBlock').css({'z-index':'110'});
			$(this).parent().find('div.DropDownList').show().addClass('activePopUp');
			return false;
		});
		$('div.DropDownElement div.DropDownList li a').live('click',function(){
			$(this).parents('div.DropDownElement').find('font').text($(this).text());
			$(this).parents('div.DropDownList').hide();			
			if (!$(this).parent().parent().parent().hasClass('href_action')){
				return false;
			}
		});


		$('div.select input').click(function(){
			$(this).parent().find('ul:not(.inactive)').toggle();
			$('div.ContentBlock').css({'z-index':'100'});
			$(this).parents('div.ContentBlock').css({'z-index':'110'});
			$(this).parents('div.ContentBlock').find('div.select').css({'z-index':'200'});
			$(this).parents('div.select').css({'z-index':'210'});
		});
		$('div.select').mouseleave(function(){
			$(this).find('ul').hide();
		});
		$('div.select ul li').mouseenter(function(){
			if(!$(this).hasClass('current')) {
				$(this).addClass('current');
				if ($.browser.msie) {
					$(this).parent().animate({opacity: 1.0}, 50); 
				}				
			}
		});		
		$('div.select ul li').mouseleave(function(){
			if($(this).hasClass('current')) {
				$(this).removeClass('current');
			}
		});
		$('div.select ul li').live('click', function(){
			$(this).parents('div.select').find('input:text').val($(this).text());
			var key = $(this).attr('key'); 
			$(this).parent().hide();
			if (key != ''){
				$(this).parents('div.select').find("input[type='hidden']").val(key);
			}
			$(this).trigger('selectLiClick', [key]);
		});
		
		
		$('#main:not(.frontpage, .news, .finance) div.Center_2inRow').each(function(){
			var maxHeight = 0;
			var itm = $(this).find('div.ContentBlock div.CB_inner');
			itm.each(function(){
				if ($(this).height() > maxHeight) {
					maxHeight = $(this).height();
				}
			});
			itm.height(maxHeight);
		});
		
		
		$('#main:not(.finance, .blogs) div.ContentBlock').each(function(){
			if ($(this).hasClass('fl') && $(this).next('.fr') && !$(this).hasClass('.with_2_in_col')) {
				var maxHeight = 0;
				var itm = [$(this).find('div.CB_inner'), $(this).next().find('div.CB_inner')];
				$.each(itm, function(){
					if ($(this).height() > maxHeight) {
						maxHeight = $(this).height();
					}
				});
				$.each(itm, function(){
					$(this).height(maxHeight);
				});
			}
			if ($(this).hasClass('.with_2_in_col')) {
				var leftBlock = $(this).find('div.CB_inner'),
					right1 = $(this).next().find('div.CB_inner'),

					right2 = $(this).next().next().find('div.CB_inner');

				if (right2.height() + right1.height() + 44 < leftBlock.height()){
					right2.height(leftBlock.height() -  right1.height() - 44);
				} else if (right2.height() + right1.height() + 44 > leftBlock.height()){
					leftBlock.height(right1.height() + right2.height() + 44);
				}
			}
		});

		
		$('#main div.EqHeight').each(function(){
			var maxHeight = 0;
            var itm = $(this).find('div.ContentBlock div.CB_inner');
            //indicates if the block with the max height has parent with the .headerOff class
            var headerOff = false;

			itm.each(function(){
				if ($(this).height() > maxHeight) {
					maxHeight = $(this).height();
                    if($(this).parent().hasClass('headerOff')) {
                        headerOff = true;
                    }
                    else {
                        headerOff = false;
                    }
				}
			});

            itm.each(function(){
                var height = maxHeight;

                if(headerOff && !$(this).parent().hasClass('headerOff')) {
                    height -= 25;
                }
                else
                if(!headerOff && $(this).parent().hasClass('headerOff')) {
                    height += 25;
                }

                $(this).css({'min-height' : height});
                if ($.browser.msie && $.browser.version < 7) {
                    $(this).css({'height' : height});
                }

                var more = $(this).find('.more');
                if(more.length == 1) {
                    more.addClass('AbsAlignBottom');
                }
            });			
		});
		
		$('li.gadget').each(function(){
			$(this).find('ul.tabs li:first').addClass('selected');
			i = 500;
			$(this).find('div.dropdown ul').each(function() {
				$(this).find('li').hide().filter(':first').show()
				$(this).parents('div.top').css('z-index',i);
				i = i-10;
			})
			$(this).find('div.selectBar ul').each(function() {
				$(this).find('li.selected').width($(this).find('a').width()+20);
				$(this).find('li').hide().filter(':first').show()
			})
			$(this).find('div.gadgetTab').hide().filter(':first').show();
		});
		$('li.gadget ul.tabs li').click(function(){
			$(this).parent().find('li').removeClass('selected');
			$(this).addClass('selected');
			var selTab = $(this).find('a').attr('href').replace('#', '');
			$(this).parents('div.content').find('div.gadgetTab').hide().filter('#'+selTab).show();
			return false;
		});


		$('div.NewFeaturedNews ul.tabs li').live('mouseover', function(){
			/*var currElemIndex = $('div.NewFeaturedNews ul.tabs li').index(this);
			var curPos = currElemIndex % allLiSize + 1;
			$('#NewFeaturedNews_counter').text(curPos);*/
			
			// afterload all topnews images
			showAllTopnewsImages();
			$(this).parent().find('li').removeClass('selected');
			$(this).addClass('selected');
			var selTab = $(this).find('div').attr('id').substr(4);
			$(this).parents('div.NewFeaturedNews').find('div.TabContent').hide().filter('#'+selTab).show();
			return false;
		});

		$('div.NewFeaturedNews .button_dwn').live('click',function(){
			var FeatTabs = $('div.NewFeaturedNews ul.tabs'),
				countLi = $(this).parents('div.NewFeaturedNews').find('ul.tabs > li').size(),
				liHeight = 92,
				maxTop = (countLi-3)*-liHeight,
				FeatTabsTop = parseInt(FeatTabs.css('top')),
				numLiMoved = countLi-3+FeatTabsTop/liHeight >= 3 ? 3 : countLi-3+FeatTabsTop/liHeight;

			if (FeatTabs.is(':animated')) return false;
			if (FeatTabsTop > maxTop || FeatTabsTop == 0) {
				// afterload all topnews images
				showAllTopnewsImages();
				
				FeatTabs.animate({top: '-='+liHeight*numLiMoved}, 'slow', '', function(){
					var ul = '<ul>'+allLi+'</ul>',
						carusLength = $(ul).find('li').size();
					if (countLi > carusLength){
						FeatTabs.find('li:lt('+(carusLength)+')').remove();
						FeatTabs.css('top', -3*liHeight+'px');
					}
				});
			} else {
				FeatTabs.append(allLi).animate({top: '-='+liHeight*3}, 'slow');
			}
			var n = numLiMoved != 0 ? numLiMoved : 3;
			var current = Math.round((-parseInt(FeatTabs.css('top'))/liHeight + n) % allLiSize+1);
			$('#NewFeaturedNews_counter').text(current + '-' + (current+2));
			
			FeatTabs.find('li.selected').removeClass('selected');
			return false;
		});
		
		$('div.NewFeaturedNews .button_up').live('click',function(){
			var FeatTabs = $('div.NewFeaturedNews ul.tabs'),
				countLi = $(this).parents('div.NewFeaturedNews').find('ul.tabs > li').size(),
				liHeight = 92,
				maxTop = (countLi-3)*-liHeight,
				FeatTabsTop = parseInt(FeatTabs.css('top')),
				numLiMoved = countLi-3+(maxTop-FeatTabsTop)/liHeight >= 3 ? 3 : countLi-3+(maxTop-FeatTabsTop)/liHeight;
			if (FeatTabs.is(':animated')) return false;
			if (FeatTabsTop < 0) {
				FeatTabs.animate({top: '+='+liHeight*numLiMoved}, 'slow');
			} else {
				FeatTabs.css('top', -allLiSize*liHeight+'px')
						.prepend(allLi)
						.animate({top: '+='+liHeight*3}, 'slow', '', function(){
					var ul = '<ul>'+allLi+'</ul>',
						carusLength = $(ul).find('li').size();
					FeatTabs.find('li:gt('+(carusLength-1)+')').remove();
				});
			};
			var n = numLiMoved != 0 ? numLiMoved : 3;
			var current = Math.round((-parseInt(FeatTabs.css('top')) / liHeight + (allLiSize-n)) % allLiSize + 1);
			$('#NewFeaturedNews_counter').text(current + '-' + (current+2));
			
			FeatTabs.find('li.selected').removeClass('selected');
			return false;
		});

        $('#main div.GalleryBigImg').mouseover(function(){
                $(this).parent().find('a.btn_prev, a.btn_next').show();
        })
        $('#main div.GalleryBigImg').mouseout(function(){
                $(this).parent().find('a.btn_prev, a.btn_next').hide();
        })

        $('div.selectNew span').live('click', function(){
			$(this).parent().find('ul').toggle();
			$('div.ContentBlock').css({'z-index':'100'});
			$(this).parents('div.ContentBlock').css({'z-index':'110'});
			$(this).parents('div.ContentBlock').find('div.selectNew').css({'z-index':'200'});
			$(this).parents('div.selectNew').css({'z-index':'210'});
		});
		$('div.selectNew').bind('mouseleave', function(){
			$(this).find('ul').hide();
			$(this).find('li').removeClass('current');
		});
		$('div.selectNew ul li').bind('mouseenter', function(){
			$(this).addClass('current');
			if ($.browser.msie) {
				$(this).parent().animate({opacity: 1.0}, 50);
			}
		});
		$('div.selectNew ul li').bind('mouseleave', function(){
			$(this).removeClass('current');
		});
		$('div.selectNew ul li').live('click', function(){
			$(this).parents('div.selectNew').find('span.selectedValue').html($(this).html());
            var key = $(this).attr('key');
			$(this).parents('div.selectNew').find('input').val(key);
			$(this).parent().hide();
            $(this).trigger('selectNewLiClick', [key]);
		});

		$('#main .rightColumn .CurrencyWidget table.RatesDataTable').each(function(){
			$(this).find('tr:last').css({'background-image' : 'none'});
		});
		$('#main .rightColumn .CurrencyWidget table.switchableRows').each(function(){
			$(this).find('tr:first th:last').css({'border-right' : '#f8de75 1px solid'});
		});

		$('#main .rightColumn .CurrencyWidget table.switchableRows tr:not(.selected, .headerTR)').live('click',function(){
			/*selTab = $(this).attr('id').replace('T_', '');;
			$(this).parents('div.content').find('div.RatesGraphics').hide().filter('#'+selTab).show();*/

			$(this).parents('table').find('tr.selected').prev().removeClass('noneBG');
			$(this).parents('table').find('tr.selected').removeClass('selected');
			$(this).parents('table').find('tr td').css({'border-bottom' : '#cccccc 0px dashed'});

			$(this).addClass('selected');
			$('table.switchableRows tr.selected').each(function(){
				$(this).parents('table').find('tr').find('td:first').css({'border-left' : '#f8de75 0px solid'});
				$(this).parents('table').find('tr').find('td:last').css({'border-right' : '#f8de75 1px solid'});
				$(this).find('td:first').css({'border-left' : '#f8de75 1px solid'});
				$(this).find('td:last').css({'border-right' : '#fffcea 0px solid'});
				$(this).prev().addClass('noneBG');
				$(this).parents('table').find('tr:last td').css({'border-bottom' : '#fff 0px solid'});
			});
		});
		$('#main .rightColumn .CurrencyWidget table.switchableRows tr.selected').each(function(){
			$(this).parents('table').find('tr').find('td:first').css({'border-left' : '#f8de75 0px solid'});
			$(this).parents('table').find('tr').find('td:last, th:last').css({'border-right' : '#f8de75 1px solid'});
			$(this).find('td:first').css({'border-left' : '#f8de75 1px solid'});
			$(this).find('td:last').css({'border-right' : '#fffcea 0px solid'});
			$(this).prev().find('td').css({'border-bottom' : '#f8de75 1px solid'});
		});
		$('#main .rightColumn .CurrencyWidget').each(function(){
			if ($(this).find('table.RatesDataTable').height() > $(this).find('div.RatesGraphics').height()-2) {
				$(this).find('div.RatesGraphics').height($(this).find('table.RatesDataTable').height()-2);
			}
			if ($.browser.msie && $.browser.version < 7) {
				$(this).find('div.content').height($('.RatesGraphics').height()-4);
			}
		});

		$('#stripedates').find('li a').click(function(){
			location.href = $(this).attr('href');
		});
		
		if (typeof $.fn.feedback == 'undefined'){
		// Feedback
		$.fn.tabs = function(options){
			return this.each(function(){
				$('li', this).each(tabsActivate);
			});
		};
		var tabsActivate = function(){
			// If need setup ul height
			$(this).children("a").click(function(){
				$(this).parent().parent().children().removeClass("active");
				$(this).parent().addClass("active");
				return false;
			});
		};
		/* Automatically apply to any ul.tabsLeft */
		$('ul.tabsLeft').tabs();
		
		$.fn.feedback = function(options){
			var domain = typeof mainDomainHttp != 'undefined' ? mainDomainHttp : 'http://marka.az/',
				activeTab = typeof options != 'undefined' && typeof options.type != 'undefined' ? 'activeTab='+options.type : '',
				messageText = typeof options != 'undefined' && typeof options.messageText != 'undefined' ? 'messageText='+options.messageText : '',
				link = typeof options != 'undefined' && typeof options.link != 'undefined' ? 'fback_location='+options.link : '';
			$.getScript(domain+'feedbackform/?' + activeTab + '&' + messageText + '&' + link,
				function(){
					if ($('div.feedback').children().length == 0){
						$('body').append(feedback_form.data);
					} else {
						$('div.feedback').replaceWith(feedback_form.data);
					}
					$('div.feedback').each(setFeedback);
				}
			);
		};
		var setFeedback = function(){
			var self = this;
			var con = $(self).children(".c");
			$(self).children(".opacity").height($(document).height());
			//	$(window).resize(function(){
			//		$(self).height($(document).height());
			//	});
			$(con).css({
				marginTop: function(){
					return parseInt($(con).height()/-2);
				},
				marginLeft: '-240px'
		  	});
			$('div.feedback').find("a.fback_close, input.fback_close").live('click',function(){
				$('div.feedback').remove();
			});
			$(self).find("ul.tabsLeft").tabs();
		};
		/* Automatically apply to any a.feedback */
		$('a.feedback').click(function(){
			$(this).feedback();
		});
		
		// Feedback	
		
		$('#fback_submit').live('click',function(){
			var fback_text = $('#fback_text').val(),
				fback_type = $('div.feedback').find('ul.tabsLeft').find('li.active').attr('id'),
				fback_email = $('#fback_email').val();
			if (fback_text.trim() == ''){
				alert(typeof feedback_validate_message != 'undefined' ? feedback_validate_message : 'Поле "Текст сообщения" не заполнено');
				return false;
			}
			if (fback_email.trim() == '' || !validate_email(fback_email.trim())){
				alert(typeof feedback_validate_email != 'undefined' ? feedback_validate_email : 'Поле Email не заполнено или заполнено некорректно');
				return false;
			}
			$.post('/feedbacksend', {
				'fback_email': fback_email,
				'fback_type': fback_type,
				'fback_text': fback_text,
				'fback_location': location.href
			}, function(data){
				$('div.feedback').replaceWith(data);
				$('div.feedback').find("div.opacity").height($(document).height());
				$('div.feedback').find('div.c').css({
					marginTop: function(){
						return parseInt($(this).height()/-2);
					},
					marginLeft:  function(){
						return parseInt($(this).width()/-2);
					}
			  	});
			});
		});
		}
	});
	

  var carouselCombine = function(info)
  {
    if(info.carusel==Object)
      $carusel=$(info.carusel);
    else if(info.id==undefined)
      return false
    else
      $carusel=$('#'+info.id);

    if(info.btn_prev == undefined)
      info.btn_prev='.btn_prev'
    if(info.btn_next == undefined)
      info.btn_next='.btn_next'
    if(info.list == undefined)
      info.list='ul:first';
    
    var $btn_prev=$carusel.find(info.btn_prev)
    var $btn_next=$carusel.find(info.btn_next)
    var $list=$carusel.find(info.list)


    info.caruselWidth=$carusel.width();
    info.caruselHeight=$carusel.height();
    info.listWidth=$list.width()
    info.listHeight=$list.height()
    
    info.position=1;
    info.pageNum=1;
    
    if((info.orient == undefined && info.listHeight<=info.listWidth ) || info.orient=='hori') 
      info.sift='left'
    else
      info.sift='top';

    if(info.countEl == undefined )
      info.countEl =$list.find('li').size();
    

    if(info.sift=='left')
    {
      if(info.listSize == undefined)
        info.listSize=info.listWidth
      if(info.visibleSize == undefined)
        info.visibleSize=info.caruselWidth
    }
    else
    {
      if(info.listSize == undefined)
        info.listSize=info.listHeight
      if(info.visibleSize == undefined)
        info.visibleSize=info.caruselHeight
    }

    if(info.elSize == undefined)
      info.elSize=Math.round(info.listSize/info.countEl)


    if(info.countViewEl == undefined )
      info.countViewEl=Math.round(info.visibleSize/info.elSize);

    if(info.infinite == undefined)
    {
      if(info.countEl/info.countViewEl>=2)
      {
        info.infinite = true;
      }
      else
      {
        info.infinite = false
        if(info.countElSift == undefined)
          info.countElSift =1;
        info.pageCount=Math.ceil((info.countEl-info.countViewEl)/info.countElSift)+1
      }
    }

    if(info.countElSift == undefined)
      info.countElSift =info.countViewEl

      if(info.siftSize == undefined)
      info.siftSize=info.countElSift*info.elSize

    if(info.infinite == undefined)
      info.infinite = true;
    else if( info.pageCount == undefined && info.infinite == false)
      info.pageCount=Math.ceil((info.countEl-info.countViewEl)/info.countElSift)+1
      
    if(info.pageCount == undefined)
      info.pageCount=0

    if(!info.infinite || info.pageCount!=0)
      $btn_prev.css({'visibility': 'hidden'});






    $btn_next.live('click',function(){
      if ($list.is(':animated')) 
        return false;
      info.pageNum++;
      $btn_prev.css({'visibility': 'visible'})
      act={}
      if(info.pageCount>0 && info.pageNum==info.pageCount)
        $btn_next.css({'visibility': 'hidden'});
      if(info.pageCount>0 && info.countEl<info.countViewEl+info.countElSift+info.position-1)
      {
        countElSift=info.countEl-info.countViewEl-info.position+1
        info.position+=countElSift
        act[info.sift]='-='+(countElSift*info.elSize)
        $orig=$list.find('li:lt('+countElSift+')')
      }
      else
      {
        info.position+=info.countElSift
        act[info.sift]='-='+info.siftSize
        $orig=$list.find('li:lt('+info.countElSift+')')
      }
      $clon=$orig.clone();

      $list.width(info.listSize + info.siftSize)
      .append($clon)
      .animate(act, 'slow', '',function(){
        $clon.remove();
        $orig.appendTo($list)
        $list.css(info.sift, 0)
      });

      return false;
    })
    
    $btn_prev.live('click',function(){
      if ($list.is(':animated')) 
        return false;
      info.pageNum--;
      act={}
      $btn_next.css({'visibility': 'visible'})
      if(info.pageCount>0 && info.pageNum==1)
        $btn_prev.css({'visibility': 'hidden'});
      
      if(info.pageCount>0 && info.position<=info.countElSift)
      {
        countElSift=info.position-1
        info.position-=countElSift;

        siftSize=countElSift*info.elSize
        act[info.sift]='+='+(siftSize)+'px'
        $orig=$list.find('li:gt('+(info.countEl-1-countElSift)+')')
        $clon=$orig.clone();
        
        $list.width(info.listSize + siftSize)
        .prepend($clon)
        .css(info.sift, '-'+siftSize+'px')
        .animate(act, 'slow', '',function(){
          $list.prepend($orig)
           .css(info.sift, 0)
          $clon.remove();
        })
      }
      else
      {
        info.position-=info.countElSift;
        act[info.sift]='+='+info.siftSize+'px'
        $orig=$list.find('li:gt('+(info.countEl-1-info.countElSift)+')')
        $clon=$orig.clone();
        $list.width(info.listSize + info.siftSize)
          .css(info.sift, '-'+info.siftSize+'px')
          .prepend($clon)
          .animate(act, 'slow', '',function(){
            $list.prepend($orig).css(info.sift, 0)
            $clon.remove();
        });
      }
      return false;
    })
  }
	
var carouselMN = function(block){
	$('#'+block.id+' .btn_next').live('click',function(){
		var jokesCarusel = $(this).parent().parent().find('.carousel_container ul'),
			countLi = jokesCarusel.find('li').size(),
			liWidth = block.li_width,
			maxLeft = (countLi-1*block.li_in_row)*-liWidth,
			carusLeft = jokesCarusel.css('left') == 'auto' ? 0 :parseInt(jokesCarusel.css('left')),
			temp = jokesCarusel.html();
		if (jokesCarusel.is(':animated')) return false;
		//var ids = new Array();
		var addedLi = '';
		for (var i=0; i<block.li_per_time; i++){
			//ids[ids.length] = (i+block.right%countLi+countLi)%countLi;
			addedLi += block.elements[(i+block.right%countLi+countLi)%countLi];
		}
		//alert(ids.join());
		jokesCarusel
			.width(jokesCarusel.width() +  block.li_per_time * liWidth)
			.append(addedLi)
			.animate({left: '-='+liWidth*block.li_per_time}, 'slow', '', function(){
				jokesCarusel
					.css('left', 0)
					.width(jokesCarusel.width() -  block.li_per_time * liWidth)
					.find('li:lt('+block.li_per_time+')').remove();				
				block.right += block.li_per_time;
				block.left += block.li_per_time;
			});
		return false;
	});
	$('#'+block.id+' .btn_prev').live('click',function(){
		var jokesCarusel = $(this).parent().parent().find('.carousel_container ul'),
			countLi = jokesCarusel.find('li').size()
			carusLeft = jokesCarusel.css('left') == 'auto' ? 0 :parseInt(jokesCarusel.css('left')),
			liWidth = block.li_width,
			temp = jokesCarusel.html(),
			addedLi = '';
		if (jokesCarusel.is(':animated')) return false;
		for (var i = countLi+block.left-block.li_per_time; i<countLi+block.left; i++){
			addedLi += block.elements[(countLi+(i%countLi))%countLi];
		}
		jokesCarusel.prepend(addedLi);
		var newLeft = -block.li_per_time*liWidth;
		jokesCarusel
			.css('left', newLeft)
			.width(jokesCarusel.width() +  block.li_per_time * liWidth)
			.animate({left: '+='+liWidth*block.li_per_time}, 'slow', '', function(){
				jokesCarusel
					.width(jokesCarusel.width() -  block.li_per_time * liWidth)
					.find('li:gt('+(countLi-1)+')').remove();
				block.left -= block.li_per_time;
				block.right -= block.li_per_time;
			});
		return false;
	});
}
	
var carousel = function(block){
	$('#'+block.id+' .btn_next').live('click',function(){
		var jokesCarusel = $(this).parent().parent().find('.carousel_container ul'),
			countLi = jokesCarusel.find('li').size(),
			liWidth = block.li_width,
			maxLeft = (countLi-1*block.li_in_row)*-liWidth,
			carusLeft = jokesCarusel.css('left') == 'auto' ? 0 :parseInt(jokesCarusel.css('left')),
			temp = jokesCarusel.html();
		if (jokesCarusel.is(':animated')) return false;
		if (carusLeft > maxLeft || (carusLeft == 0 && countLi != 1) || (carusLeft == -liWidth*block.li_in_row && countLi/block.li_in_row != 2)) {
	
			jokesCarusel.animate({left: '-='+liWidth*block.li_in_row}, 'slow');
			
			$('#'+block.counter_id).text(parseInt($('#'+block.counter_id).text())+1);

			$(this).parent().find('a.notAble').removeClass('notAble');
		} else if (carusLeft < maxLeft) {
			jokesCarusel.animate({left: '-='+liWidth*block.li_in_row}, 'slow');

			$(this).addClass('notAble');
		} else {
			jokesCarusel
				.width(jokesCarusel.width()*2)
				.append(temp)
				.animate({left: '-='+liWidth*block.li_in_row}, 'slow', '', function(){
					jokesCarusel
						.width(jokesCarusel.width()/2)
						.css('left', '0px')
						.find('li:lt('+countLi+')').remove();
				});
			$('#'+block.counter_id).text(1);
		}
		if (typeof(block.function_next) == 'function'){
			(block.function_next)();
		}		
		return false;
	});
	$('#'+block.id+' .btn_prev').live('click',function(){
		var jokesCarusel = $(this).parent().parent().find('.carousel_container ul'),
			countLi = jokesCarusel.find('li').size()
			carusLeft = jokesCarusel.css('left') == 'auto' ? 0 :parseInt(jokesCarusel.css('left')),
			liWidth = block.li_width,
			temp = jokesCarusel.html();
		if (jokesCarusel.is(':animated')) return false;
		if (carusLeft == -liWidth) {
			jokesCarusel.animate({left: '+='+liWidth*block.li_in_row}, 'slow');

			$('#'+block.counter_id).text(parseInt($('#'+block.counter_id).text())-1);
			
			$(this).addClass('notAble');
		} else if (carusLeft < 0 || jokesCarusel.find('li:first').children().length == 0) {
			jokesCarusel.animate({left: '+='+liWidth*block.li_in_row}, 'slow');

			$('#'+block.counter_id).text(parseInt($('#'+block.counter_id).text())-1);

			$(this).parent().find('a.notAble').removeClass('notAble');
			if (carusLeft == -liWidth) {
				$(this).addClass('notAble');
			}
		} else {
			jokesCarusel
				.width(jokesCarusel.width()*2)
				.prepend(temp)
				.css('left', liWidth*(-countLi)+'px')
				.animate({left: '+='+liWidth*block.li_in_row}, 'slow', '', function(){
					jokesCarusel
						.width(jokesCarusel.width()/2)
						.find('li:gt('+(countLi-1)+')').remove();
				});
			$('#'+block.counter_id).text(countLi/block.li_in_row);
		}
		if (typeof(block.function_prev) == 'function'){
			(block.function_prev)();
		}			
		return false;
	});
}

var video_carousel = function(block){
	$('#'+block.id+' .btn_next').live('click',function(){
		var counter = $('#'+block.counter_id),
			counterVal = parseInt(counter.text());
		if (counterVal != block.countLi){
			counter.text(counterVal+1);
		} else {
			counter.text('1');
		}
		if (typeof(block.function_next) == 'function'){
			(block.function_next)();
		}		
		return false;
	});
	$('#'+block.id+' .btn_prev').live('click',function(){
		var counter = $('#'+block.counter_id),
			counterVal = parseInt(counter.text());
		if (counterVal != 1){
			counter.text(counterVal-1);
		} else {
			counter.text(block.countLi);
		}
		if (typeof(block.function_prev) == 'function'){
			(block.function_prev)();
		}			
		return false;
	});
}



/*
 * Same as carousel(), but this version takes into consideration only the ul
 * elements that are children of .carousel_container; same with li elements,
 * so the carousel won't break when its elements in turn contain lists of
 * elements. It'll also return false early if the list has only one li element
 * (that is, nothing will happen when btn_next, btn_prev are clicked).
 */
var carouselV2 = function(block){
	$('#'+block.id+' .btn_next').live('click',function(){
		var carousel = $(this).parent().parent().find('.carousel_container > ul'),
			countLi = carousel.children('li').length,
			liWidth = block.li_width,
			maxLeft = (countLi-1*block.li_in_row)*-liWidth,
			carusLeft = carousel.css('left') == 'auto' ? 0 : parseInt(carousel.css('left'));

		if (countLi == 1 || carousel.is(':animated')) return false;
		if (carusLeft > maxLeft || (carusLeft == 0 && countLi != 1) || (carusLeft == -liWidth*block.li_in_row && countLi != 2)) {
			carousel.animate({left: '-='+liWidth*block.li_in_row}, 'slow');

			if(block.counter_id) {
                $('#'+block.counter_id).text(parseInt($('#'+block.counter_id).text())+1);
            }

            if(block.notCyclic) {
                $(this).hide();
                $(this).parent().find('.btn_prev').show();
            }

			$(this).parent().find('a.notAble').removeClass('notAble');
		} else if (carusLeft < maxLeft) {
			carousel.animate({left: '-='+liWidth*block.li_in_row}, 'slow');

			$(this).addClass('notAble');
		} else if(!block.notCyclic) {
            var temp = carousel.html();

			carousel
				.width(carousel.width()*2)
				.append(temp)
				.animate({left: '-='+liWidth*block.li_in_row}, 'slow', '', function(){
					carousel
						.width(carousel.width()/2)
						.css('left', '0px')
						.children('li:lt('+countLi+')').remove();
				});
                
            if(block.counter_id) {
                $('#'+block.counter_id).text(1);
            }
		}
		if (typeof(block.function_next) == 'function'){
			(block.function_next)();
		}
		return false;
	});
	$('#'+block.id+' .btn_prev').live('click',function(){
		var carousel = $(this).parent().parent().find('.carousel_container > ul'),
			countLi = carousel.children('li').length,
			carusLeft = carousel.css('left') == 'auto' ? 0 :parseInt(carousel.css('left')),
			liWidth = block.li_width;
            
		if (countLi == 1 || carousel.is(':animated')) return false;
		if (carusLeft == -liWidth*block.li_in_row) {
			carousel.animate({left: '+='+liWidth*block.li_in_row}, 'slow');

			if(block.counter_id) {
                $('#'+block.counter_id).text(parseInt($('#'+block.counter_id).text())-1);
            }

            if(block.notCyclic) {
                $(this).hide();
                $(this).parent().find('.btn_next').show();
            }

			$(this).addClass('notAble');
		} else if (carusLeft < 0 || carousel.find('li:first').children().length == 0) {
			carousel.animate({left: '+='+liWidth*block.li_in_row}, 'slow');

            if(block.counter_id) {
                $('#'+block.counter_id).text(parseInt($('#'+block.counter_id).text())-1);
            }

			$(this).parent().find('a.notAble').removeClass('notAble');
			if (carusLeft == -liWidth) {
				$(this).addClass('notAble');
			}
		} else if(!block.notCyclic) {
            var temp = carousel.html();

			carousel
				.width(carousel.width()*2)
				.prepend(temp)
				.css('left', liWidth*(-countLi)+'px')
				.animate({left: '+='+liWidth*block.li_in_row}, 'slow', '', function(){
					carousel
						.width(carousel.width()/2)
						.children('li:gt('+(countLi-1)+')').remove();
				});
			$('#'+block.counter_id).text(countLi/block.li_in_row);
		}
		if (typeof(block.function_prev) == 'function'){
			(block.function_prev)();
		}
		return false;
	});
}

var carouselAJAX = function(block){
    $('#'+block.id+' .btn_next').live('click',function(){
        var jokesCarusel = $(this).parent().parent().find('.carousel_container ul'),
        	countLi = jokesCarusel.find('li').size(),
        	liWidth = block.li_width,
        	maxLeft = (countLi-1*block.li_in_row)*-liWidth,
        	carusLeft = jokesCarusel.css('left') == 'auto' ? 0 :parseInt(jokesCarusel.css('left'));
        if (jokesCarusel.is(":animated")) return false;
        $(this).parent().find('a.btn_prev').show();
        if (carusLeft > maxLeft-liWidth || carusLeft == 0  || carusLeft == -liWidth) {
            if (jokesCarusel.find('li:last').children().length == 0) {
                $.post(block.url + (countLi - 1), {}, function(data){
                    jokesCarusel.find('li:last').replaceWith(data);
                    countLi = jokesCarusel.find('li').size();
                    jokesCarusel.width(liWidth*countLi);
                    if (carusLeft == maxLeft) {
                        $(this).hide();
                    }
                });
            }
            jokesCarusel.animate({left: '-='+liWidth*block.li_per_time}, 'slow');
        } else if (maxLeft - carusLeft == 2*liWidth) {
            jokesCarusel.animate({left: '-='+liWidth}, 'slow');
            $(this).hide();
        };
        return false;
    });

    $('#'+block.id+' .btn_prev').live('click',function(){
        var jokesCarusel = $(this).parent().parent().find('.carousel_container ul');
			carusLeft = parseInt(jokesCarusel.css('left'));
        	liWidth = block.li_width;
        if (jokesCarusel.is(":animated")) return false;
		$(this).parent().find('a.btn_next').show();
        if (carusLeft == -liWidth) {
            jokesCarusel.animate({left: '+='+liWidth}, 'slow');
			$(this).hide();
        } else if (carusLeft < 0 || jokesCarusel.find('li:first').children().length == 0) {
            jokesCarusel.animate({left: '+='+liWidth*block.li_per_time}, 'slow');
            if (carusLeft == -liWidth*block.li_per_time) {
                $(this).hide();
            }
        };
        return false;
    });	
}

var showAllTopnewsImages = function(){
	var block = $('div.NewFeaturedNews');
	if (block.find('div.TabContent:eq(1)').find('a img').attr('src') == ''){
		block.find('div.TabContent').each(function(i){
			$(this).find('a img').attr('src', topnewsImages[i]);
		});	
	}
}

var cssFix = function(){

  var u = navigator.userAgent.toLowerCase(),

  is = function(t){return (u.indexOf(t)!=-1)};

  $("html").addClass([

    (!(/opera|webtv/i.test(u))&&/msie (\d)/.test(u))?('ie ie'+RegExp.$1)

      :is('firefox/2')?'gecko ff2'

      :is('firefox/3')?'gecko ff3'

      :is('gecko/')?'gecko'

      :is('opera/9')?'opera opera9':/opera (\d)/.test(u)?'opera opera'+RegExp.$1

      :is('konqueror')?'konqueror'

      :is('applewebkit/')?'webkit safari'

      :is('mozilla/')?'gecko':'',

    (is('x11')||is('linux'))?' linux'

      :is('mac')?' mac'

      :is('win')?' win':''

  ].join(''));

}();

function dump(event)
{
    var newResult = '{ ';
    for (var prop in event )
    newResult += prop + ': ' + event[prop] + ', ';
    newResult = newResult.substr(0, newResult.length - 2) + ' }';

    alert(newResult);
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g, '');
}

function validate_email(str){
	var email_regular = new RegExp(/^([a-z0-9_\-\.]+)@[a-z0-9\-]+(\.[a-z0-9\-]+)*(\.[a-z]{2,3})$/i);
	return email_regular.test(str);
}

var ProfileAuthtorizeOpenWindows = 0;

/* this is content from jquery.popupwin.js. it needed for popup login */
(function($){
	$.fn.popupWin = function(options){
		
		var $self=$(this);
		var def = {
				'title'		:	"Popup",
				'close'		:	"X",
				'content'	:	"Hello",
				'type'		:	"",
				'opacity'	:	"true",
				'plugins'	:	""
			};
		var opt=$.extend(def,options);
		$(this).click(function(){
			opt.isMail = false;
			if ($(this).hasClass('mail')) {
				opt.returnUrl = $(this).attr('href');
				opt.isMail = true;
			}
			
			$(this).buildPopup(opt);
			return false;
		});
	};
	$.fn.extend({
		buildPopup:	function(opt){
			if (0 < ProfileAuthtorizeOpenWindows) return false;
			if (opt.test == 1) return false;
			
			var cl = opt.opacity == "true" ? "popupWin" : "popupWin smallWin";
			var $p = $("<div class="+cl+">&nbsp;</div>").appendTo("body");
			if (opt.opacity == "true") {
				$('<div class="o">&nbsp;</div>').css("height", $(document).height()).prependTo($p);
			}
			var $c = $('<div class="c">&nbsp;</div>').html('<h3 class="title">'+opt.title+'</h3>'+ (opt.type == 'message' ? '<div class="content"><div class="message">' + opt.content + '</div></div>' : '<div class="content">'+opt.content+'</div>')).appendTo($p);
			$('<a href="#" class="close">&nbsp;</a>').html(opt.close).appendTo($p.children().children("h3")).click(function(){
				$p.remove();
				ProfileAuthtorizeOpenWindows = 0;
				return false;
			});
			$p.find(".f .close").click(function(){
				$p.remove();
				ProfileAuthtorizeOpenWindows = 0;
				return false;
			});
			$('div.popupWin form input[name=nick]').focus();
			opt.returnUrlPreviousState = $('div.popupWin form input[name=return_url]').val();
			
			if (opt.isMail) {
				$('div.popupWin form input[name=return_url]').val(opt.returnUrl);
			} else {
				if (typeof(globalReturnUrl) != 'undefined'){
					$('div.popupWin form input[name=return_url]').val(globalReturnUrl);
				} else {
				  $('div.popupWin form input[name=return_url]').val(opt.returnUrlPreviousState);
				}				
			}
			
			if (opt.plugins) eval(opt.plugins);
			ProfileAuthtorizeOpenWindows++;
		}
	});
})(jQuery);$(document).ready(function() {
		/*if (!$.browser.msie && location.href.indexOf('new-homepage') == -1) {
		    $("div.scroll").jscroll({axis : {y:true,x:false}});
		}*/

	/* MOUSE OVER AND PRESSDOWN*/
		var buttons = $('#main span.button_red, #main div.quickSearch form input.submit, #main .navButtons a');
		buttons.mouseover(function(){
			$(this).addClass('MouseOver');
		});
		/*
		buttons.mousedown(function(){
			$(this).addClass('MousePressDown');
		});
		buttons.mouseup(function(){
			$(this).removeClass('MousePressDown');
		});
		*/
		buttons.mouseleave(function(){
			$(this).removeClass('MouseOver');
			$(this).removeClass('MousePressDown');
		});
	/* MOUSE OVER AND PRESSDOWN*/
		
		$('div.autoSearch ul.tabs>li').live('click', function(){
			$(this).parent().find('li').removeClass('current');
			$(this).addClass('current')
			selTab = $(this).find('a').attr('href').replace('#', '');
			$(this).parents('div.autoSearch').find('div.TabContent').hide().filter('#'+selTab).show();
			return false;
		});
		
		$('#gamescatslist a').click(function(){
			var id = $(this).attr('id'),
				pref = 'gamecat_',
				cat_id = parseInt(id.substr(pref.length));
			$.post('/gameslist/'+cat_id, {}, function(data){
				$('#gameslist').replaceWith(data);
			})
		});

		$('#qacatslist a').click(function(){
			var id = $(this).attr('id'),
				pref = 'qacat_',
				cat_id = id.substr(pref.length);
			$.post('/qalist/'+cat_id, {}, function(data){
				$('#qalist').replaceWith(data);
			})
		});

		
		$('#tochka_header .categories li a').mousedown(function(){
			$(this).addClass('clicked');
		});
		$('#tochka_header .categories li a').mouseup(function(){
			$(this).removeClass('clicked');
		});
		$('#tochka_header .categories li a').mouseleave(function(){
			$(this).removeClass('clicked');
		});
		
	});

		
/**
 * Copyright (c) 2009 Chris Leonello
 * jqPlot is currently available for use in all personal or commercial projects 
 * under both the MIT and GPL version 2.0 licenses. This means that you can 
 * choose the license that best suits your project and use it accordingly. 
 *
 * Although not required, the author would appreciate an email letting him 
 * know of any substantial use of jqPlot.  You can reach the author at: 
 * chris dot leonello at gmail dot com or see http://www.jqplot.com/info.php .
 *
 * If you are feeling kind and generous, consider supporting the project by
 * making a donation at: http://www.jqplot.com/donate.php .
 */
(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.config={debug:1,enablePlugins:true,defaultHeight:300,defaultWidth:400};e.jqplot.enablePlugins=e.jqplot.config.enablePlugins;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(){if(this._elem){return this._elem.outerWidth(true)}else{return null}};e.jqplot.ElemContainer.prototype.getHeight=function(){if(this._elem){return this._elem.outerHeight(true)}else{return null}};e.jqplot.ElemContainer.prototype.getPosition=function(){if(this._elem){return this._elem.position()}else{return{top:null,left:null,bottom:null,right:null}}};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;this.syncTicks=null;this.tickSpacing=75;this._min=null;this._max=null;this._tickInterval=null;this._numberTicks=null;this.__ticks=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}this.pad=this.padMax+this.padMin-1;if(this.min!=null||this.max!=null){this.autoscale=false}if(this.syncTicks==null&&this.name.indexOf("y")>-1){this.syncTicks=true}else{if(this.syncTicks==null){this.syncTicks=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)}if(this._min==null){this._min=this.min;this._max=this.max;this._tickInterval=this.tickInterval;this._numberTicks=this.numberTicks;this.__ticks=this._ticks}};g.prototype.reset=function(){this.renderer.reset.call(this)};g.prototype.resetScale=function(){this.min=null;this.max=null;this.numberTicks=null;this.tickInterval=null};function a(k){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=[];e.extend(true,this,k)}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)};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.showLabel=true;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.disableStack=false;this._stack=false;this.neighborThreshold=4;this.fillToZero=false;this.fillAxis="y";this._stackData=[];this._plotData=[];this._plotValues={x:[],y:[]};this._intervals={x:{},y:{}};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:23,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.syncXTicks=true;this.syncYTicks=true;this.seriesColors=["#4bb2c5","#EAA228","#c5b47f","#579575","#839557","#958c12","#953579","#4b5de4","#d8b83f","#ff5800","#0085cc"];this.negativeSeriesColors=["#498991","#C08840","#9F9274","#546D61","#646C4A","#6F6621","#6E3F5F","#4F64B0","#A89050","#C45923","#187399"];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._drawCount=0;this.drawIfHidden=false;this.colorGenerator=e.jqplot.ColorGenerator;this.init=function(z,y,u){for(var v=0;v<e.jqplot.preInitHooks.length;v++){e.jqplot.preInitHooks[v].call(this,z,y,u)}this.targetId="#"+z;this.target=e("#"+z);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()){var x;if(u&&u.height){x=parseInt(u.height,10)}else{if(this.target.attr("data-height")){x=parseInt(this.target.attr("data-height"),10)}else{x=parseInt(e.jqplot.config.defaultHeight,10)}}this._height=x;this.target.css("height",x+"px")}else{this._height=this.target.height()}if(!this.target.width()){var q;if(u&&u.width){q=parseInt(u.width,10)}else{if(this.target.attr("data-width")){q=parseInt(this.target.attr("data-width"),10)}else{q=parseInt(e.jqplot.config.defaultWidth,10)}}this._width=q;this.target.css("width",q+"px")}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 dimension not set"}this.data=y;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 t=0;t<e.jqplot.preSeriesInitHooks.length;t++){e.jqplot.preSeriesInitHooks[t].call(this.series[v],z,y,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 t=0;t<e.jqplot.postSeriesInitHooks.length;t++){e.jqplot.postSeriesInitHooks[t].call(this.series[v],z,y,this.options.seriesDefaults,this.options.series[v])}}for(var r in this.axes){this.axes[r]._plotDimensions=this._plotDimensions;this.axes[r].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,z,y,u)}};this.resetAxesScale=function(u){var t=(u!=b)?u:this.axes;if(t===true){t=this.axes}if(t.constructor===Array){for(var r=0;r<t.length;r++){this.axes[t[r]].resetScale()}}else{if(t.constructor===Object){for(var q in t){this.axes[q].resetScale()}}}};this.reInitialize=function(){if(!this.target.height()){var v;if(options&&options.height){v=parseInt(options.height,10)}else{if(this.target.attr("data-height")){v=parseInt(this.target.attr("data-height"),10)}else{v=parseInt(e.jqplot.config.defaultHeight,10)}}this._height=v;this.target.css("height",v+"px")}else{this._height=this.target.height()}if(!this.target.width()){var q;if(options&&options.width){q=parseInt(options.width,10)}else{if(this.target.attr("data-width")){q=parseInt(this.target.attr("data-width"),10)}else{q=parseInt(e.jqplot.config.defaultWidth,10)}}this._width=q;this.target.css("width",q+"px")}else{this._width=this.target.width()}if(this._height<=0||this._width<=0||!this._height||!this._width){throw"Target dimension not set"}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;for(var x in this.axes){var u=this.axes[x];u._plotWidth=this._width;u._plotHeight=this._height}this.title._plotWidth=this._width;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)}for(var t=0;t<this.series.length;t++){this.populatePlotData(this.series[t],t);this.series[t]._plotDimensions=this._plotDimensions}for(var r in this.axes){this.axes[r]._plotDimensions=this._plotDimensions;this.axes[r]._ticks=[];this.axes[r].renderer.init.call(this.axes[r],{})}if(this.sortData){k(this.series)}this.grid._axes=this.axes;this.legend._series=this.series};function k(v){var w,t;for(var u=0;u<v.length;u++){w=v[u].data;var q=true;if(v[u]._stackAxis=="x"){for(var r=0;r<w.length;r++){if(typeof(w[r][1])!="number"){q=false;break}}if(q){w.sort(function(y,x){return y[1]-x[1]})}}else{for(var r=0;r<w.length;r++){if(typeof(w[r][0])!="number"){q=false;break}}if(q){w.sort(function(y,x){return y[0]-x[0]})}}}}this.populatePlotData=function(v,w){this._plotData=[];this._stackData=[];v._stackData=[];v._plotData=[];var z={x:[],y:[]};if(this.stackSeries&&!v.disableStack){v._stack=true;var x=v._stackAxis=="x"?0:1;var y=x?0:1;var A=e.extend(true,[],v.data);var B=e.extend(true,[],v.data);for(var t=0;t<w;t++){var q=this.series[t].data;for(var r=0;r<q.length;r++){A[r][0]+=q[r][0];A[r][1]+=q[r][1];B[r][x]+=q[r][x]}}for(var u=0;u<B.length;u++){z.x.push(B[u][0]);z.y.push(B[u][1])}this._plotData.push(B);this._stackData.push(A);v._stackData=A;v._plotData=B;v._plotValues=z}else{for(var u=0;u<v.data.length;u++){z.x.push(v.data[u][0]);z.y.push(v.data[u][1])}this._stackData.push(v.data);this.series[w]._stackData=v.data;this._plotData.push(v.data);v._plotData=v.data;v._plotValues=z}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(u){for(var v=0;v<e.jqplot.preParseOptionsHooks.length;v++){e.jqplot.preParseOptionsHooks[v].call(this,u)}this.options=e.extend(true,{},this.defaults,u);this.stackSeries=this.options.stackSeries;if(this.options.seriesColors){this.seriesColors=this.options.seriesColors}var x=new this.colorGenerator(this.seriesColors);e.extend(true,this._gridPadding,this.options.gridPadding);this.sortData=(this.options.sortData!=null)?this.options.sortData:this.sortData;for(var y in this.axes){var w=this.axes[y];e.extend(true,w,this.options.axesDefaults,this.options.axes[y]);w._plotWidth=this._width;w._plotHeight=this._height}if(this.data.length==0){this.data=[];for(var v=0;v<this.options.series.length;v++){this.data.push(this.options.series.data)}}var t=function(B){var z=[];var A;if(!(B[0] instanceof Array)){for(var A=0;A<B.length;A++){z.push([A+1,B[A]])}}else{e.extend(true,z,B)}return z};for(var v=0;v<this.data.length;v++){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[v])}e.extend(true,q,{seriesColors:this.seriesColors,negativeSeriesColors:this.negativeSeriesColors},this.options.seriesDefaults,this.options.series[v]);q.data=t(this.data[v]);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=x.next()}if(!q.label){q.label="Series "+(v+1).toString()}this.series.push(q);for(var r=0;r<e.jqplot.postParseSeriesOptionsHooks.length;r++){e.jqplot.postParseSeriesOptionsHooks[r].call(this.series[v],this.options.seriesDefaults,this.options.series[v])}}e.extend(true,this.grid,this.options.grid);for(var y in this.axes){var w=this.axes[y];if(w.borderWidth==null){w.borderWidth=this.grid.borderWidth}if(w.borderColor==null){if(y!="xaxis"&&y!="x2axis"&&w.useSeriesColor===true&&w.show){w.borderColor=w._series[0].color}else{w.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 v=0;v<e.jqplot.postParseOptionsHooks.length;v++){e.jqplot.postParseOptionsHooks[v].call(this,u)}};this.replot=function(r){var t=(r!=b)?r:{};var q=(t.clear!=b)?t.clear:true;var u=(t.resetAxes!=b)?t.resetAxes:false;this.target.trigger("jqplotPreReplot");if(q){this.target.empty()}if(u){this.resetAxesScale(u)}this.reInitialize();this.draw();this.target.trigger("jqplotPostReplot")};this.redraw=function(q){q=(q!=null)?q:true;this.target.trigger("jqplotPreRedraw");if(q){this.target.empty()}for(var t in this.axes){this.axes[t]._ticks=[]}for(var r=0;r<this.series.length;r++){this.populatePlotData(this.series[r],r)}this.draw();this.target.trigger("jqplotPostRedraw")};this.draw=function(){if(this.drawIfHidden||this.target.is(":visible")){this.target.trigger("jqplotPreDraw");for(var x=0;x<e.jqplot.preDrawHooks.length;x++){e.jqplot.preDrawHooks[x].call(this)}this.target.append(this.baseCanvas.createElement({left:0,right:0,top:0,bottom:0},"jqplot-base-canvas"));var w=this.baseCanvas.setContext();this.target.append(this.title.draw());this.title.pack({top:0,left:0});for(var t in this.axes){this.target.append(this.axes[t].draw(w));this.axes[t].set()}if(this.axes.yaxis.show){this._gridPadding.left=this.axes.yaxis.getWidth()}var u=["y2axis","y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis"];var r=[0,0,0,0];var z=0;for(var v=8;v>0;v--){var q=this.axes[u[v-1]];if(q.show){r[v-1]=z;z+=q.getWidth()}}if(z>this._gridPadding.right){this._gridPadding.right=z}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 x=8;x>0;x--){this.axes[u[x-1]].pack({position:"absolute",top:0,right:r[x-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 B=this.seriesCanvas.setContext();this.target.append(this.eventCanvas.createElement(this._gridPadding,"jqplot-event-canvas"));var A=this.eventCanvas.setContext();A.fillStyle="rgba(0,0,0,0)";A.fillRect(0,0,A.canvas.width,A.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(B,{legendInfo:{location:this.legend.location,width:this.legend.getWidth(),height:this.legend.getHeight(),xoffset:this.legend.xoffset,yoffset:this.legend.yoffset}})}else{this.drawSeries(B)}}else{this.drawSeries(B);e(this.seriesCanvas._elem).after(this.legend.draw());this.legend.pack(this._gridPadding)}for(var x=0;x<e.jqplot.eventListenerHooks.length;x++){var y=e.jqplot.eventListenerHooks[x];this.eventCanvas._elem.bind(y[0],{plot:this},y[1])}for(var x=0;x<e.jqplot.postDrawHooks.length;x++){e.jqplot.postDrawHooks[x].call(this)}if(this.target.is(":visible")){this._drawCount+=1}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(z){var y=z.data.plot;var u=y.eventCanvas._elem.offset();var x={x:z.pageX-u.left,y:z.pageY-u.top};var v={xaxis:null,yaxis:null,x2axis:null,y2axis:null,y3axis:null,y4axis:null,y5axis:null,y6axis:null,y7axis:null,y8axis:null,y9axis:null};var w=["xaxis","yaxis","x2axis","y2axis","y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis"];var q=y.axes;for(var r=11;r>0;r--){var t=w[r-1];if(q[t].show){v[t]=q[t].series_p2u(x[t.charAt(0)])}}return({offsets:u,gridPos:x,dataPos:v})}function n(A,E,D){var B=null;var F,w,u,C,v,t;var z;for(var w=0;w<A.series.length;w++){F=A.series[w];t=F.renderer;if(F.show){z=Math.abs(F.markerRenderer.size/2+F.neighborThreshold);for(var v=0;v<F.gridData.length;v++){p=F.gridData[v];if(t.constructor==e.jqplot.OHLCRenderer){if(t.candleStick){var q=F._yaxis.series_u2p;if(E>=p[0]-t._bodyWidth/2&&E<=p[0]+t._bodyWidth/2&&D>=q(F.data[v][2])&&D<=q(F.data[v][3])){B={seriesIndex:w,pointIndex:v,gridData:p,data:F.data[v]}}}else{if(!t.hlc){var q=F._yaxis.series_u2p;if(E>=p[0]-t._tickLength&&E<=p[0]+t._tickLength&&D>=q(F.data[v][2])&&D<=q(F.data[v][3])){B={seriesIndex:w,pointIndex:v,gridData:p,data:F.data[v]}}}else{var q=F._yaxis.series_u2p;if(E>=p[0]-t._tickLength&&E<=p[0]+t._tickLength&&D>=q(F.data[v][1])&&D<=q(F.data[v][2])){B={seriesIndex:w,pointIndex:v,gridData:p,data:F.data[v]}}}}}else{C=Math.sqrt((E-p[0])*(E-p[0])+(D-p[1])*(D-p[1]));if(C<=z&&(C<=u||u==null)){u=C;B={seriesIndex:w,pointIndex:v,gridData:p,data:F.data[v]}}}}}}return B}this.onClick=function(r){var q=l(r);var u=r.data.plot;var t=n(u,q.gridPos.x,q.gridPos.y);r.data.plot.eventCanvas._elem.trigger("jqplotClick",[q.gridPos,q.dataPos,t,u])};this.onDblClick=function(r){var q=l(r);var u=r.data.plot;var t=n(u,q.gridPos.x,q.gridPos.y);r.data.plot.eventCanvas._elem.trigger("jqplotDblClick",[q.gridPos,q.dataPos,t,u])};this.onMouseDown=function(r){var q=l(r);var u=r.data.plot;var t=n(u,q.gridPos.x,q.gridPos.y);r.data.plot.eventCanvas._elem.trigger("jqplotMouseDown",[q.gridPos,q.dataPos,t,u])};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 u=r.data.plot;var t=n(u,q.gridPos.x,q.gridPos.y);r.data.plot.eventCanvas._elem.trigger("jqplotMouseMove",[q.gridPos,q.dataPos,t,u])};this.onMouseEnter=function(r){var q=l(r);var t=r.data.plot;r.data.plot.eventCanvas._elem.trigger("jqplotMouseEnter",[q.gridPos,q.dataPos,null,t])};this.onMouseLeave=function(r){var q=l(r);var t=r.data.plot;r.data.plot.eventCanvas._elem.trigger("jqplotMouseLeave",[q.gridPos,q.dataPos,null,t])};this.drawSeries=function(t,q){t.clearRect(0,0,t.canvas.width,t.canvas.height);for(var r=0;r<this.series.length;r++){this.series[r].drawShadow(t,q)}for(var r=0;r<this.series.length;r++){this.series[r].draw(t,q)}}}e.jqplot.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.get=function(n){return l[n]};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.showMark&&D.mark){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(I,H,F,t,G){E.save();G=G||{};e.extend(true,E,G);E.beginPath();E.moveTo(I,H);E.lineTo(F,t);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(y,F,l){var C;var w=(l!=b)?l:{};var o=(w.shadow!=b)?w.shadow:this.shadow;var H=(w.showLine!=b)?w.showLine:this.showLine;var B=(w.fill!=b)?w.fill:this.fill;var k=(w.fillAndStroke!=b)?w.fillAndStroke:this.fillAndStroke;y.save();if(F.length){if(H){if(B){if(this.fillToZero){var q=new e.jqplot.ColorGenerator(this.negativeSeriesColors);var D=q.get(this.index);var u=false;var v=w.fillStyle;if(k){var G=F.slice(0)}if(this.index==0||!this._stack){var z=[];var E=this._yaxis.series_u2p(0);var n=this._xaxis.series_u2p(0);if(this.fillAxis=="y"){z.push([F[0][0],E]);for(var C=0;C<F.length-1;C++){z.push(F[C]);if(this._plotData[C][1]*this._plotData[C+1][1]<0){if(this._plotData[C][1]<0){u=true;w.fillStyle=D}else{u=false;w.fillStyle=v}var t=F[C][0]+(F[C+1][0]-F[C][0])*(E-F[C][1])/(F[C+1][1]-F[C][1]);z.push([t,E]);if(o){this.renderer.shadowRenderer.draw(y,z,w)}this.renderer.shapeRenderer.draw(y,z,w);z=[[t,E]]}}if(this._plotData[F.length-1][1]<0){u=true;w.fillStyle=D}else{u=false;w.fillStyle=v}z.push(F[F.length-1]);z.push([F[F.length-1][0],E])}if(o){this.renderer.shadowRenderer.draw(y,z,w)}this.renderer.shapeRenderer.draw(y,z,w)}else{var x=this._prevGridData;for(var C=x.length;C>0;C--){F.push(x[C-1])}if(o){this.renderer.shadowRenderer.draw(y,F,w)}this.renderer.shapeRenderer.draw(y,F,w)}}else{if(k){var G=F.slice(0)}if(this.index==0||!this._stack){var r=y.canvas.height;F.unshift([F[0][0],r]);len=F.length;F.push([F[len-1][0],r])}else{var x=this._prevGridData;for(var C=x.length;C>0;C--){F.push(x[C-1])}}if(o){this.renderer.shadowRenderer.draw(y,F,w)}this.renderer.shapeRenderer.draw(y,F,w)}if(k){var A=e.extend(true,{},w,{fill:false,closePath:false});this.renderer.shapeRenderer.draw(y,G,A);if(this.markerRenderer.show){for(C=0;C<G.length;C++){this.markerRenderer.draw(G[C][0],G[C][1],y,w.markerOptions)}}}}else{if(o){this.renderer.shadowRenderer.draw(y,F,w)}this.renderer.shapeRenderer.draw(y,F,w)}}if(this.markerRenderer.show&&!B){for(C=0;C<F.length;C++){this.markerRenderer.draw(F[C][0],F[C][1],y,w.markerOptions)}}}y.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.reset=function(){this.min=this._min;this.max=this._max;this.tickInterval=this._tickInterval;this.numberTicks=this._numberTicks};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 U=this._ticks;var Q=this.ticks;var V=this.name;var T=this._dataBounds;var L,R;var I,M;var o,n;var k,N;if(Q.length){for(N=0;N<Q.length;N++){var w=Q[N];var z=new this.tickRenderer(this.tickOptions);if(w.constructor==Array){z.value=w[0];z.label=w[1];if(!this.showTicks){z.showLabel=false;z.showMark=false}else{if(!this.showTickMarks){z.showMark=false}}z.setTick(w[0],this.name);this._ticks.push(z)}else{z.value=w;if(!this.showTicks){z.showLabel=false;z.showMark=false}else{if(!this.showTickMarks){z.showMark=false}}z.setTick(w,this.name);this._ticks.push(z)}}this.numberTicks=Q.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(V=="xaxis"||V=="x2axis"){L=this._plotDimensions.width}else{L=this._plotDimensions.height}if(!this.autoscale&&this.min!=null&&this.max!=null&&this.numberTicks!=null){this.tickInterval=null}I=((this.min!=null)?this.min:T.min);M=((this.max!=null)?this.max:T.max);if(I==M){var x=0.05;if(I>0){x=Math.max(Math.log(I)/Math.LN10,0.05)}I-=x;M+=x}var D=M-I;var H,K;var P;if(this.autoscale&&this.min==null&&this.max==null){var C,q,E;var y=false;var G=false;var l={min:null,max:null,average:null,stddev:null};for(var N=0;N<this._series.length;N++){var B=this._series[N];var u=(B.fillAxis=="x")?B._xaxis.name:B._yaxis.name;if(this.name==u){var A=B._plotValues[B.fillAxis];var r=A[0];var v=A[0];for(var J=1;J<A.length;J++){if(A[J]<r){r=A[J]}else{if(A[J]>v){v=A[J]}}}var F=(v-r)/v;if(B.renderer.constructor==e.jqplot.BarRenderer){if(r>=0&&(B.fillToZero||F>0.1)){y=true}else{y=false;if(B.fill&&B.fillToZero&&r<0&&v>0){G=true}else{G=false}}}else{if(B.fill){if(r>=0&&(B.fillToZero||F>0.1)){y=true}else{if(r<0&&v>0&&B.fillToZero){y=false;G=true}else{y=false;G=false}}}else{if(r<0){y=false}}}}}if(y){this.numberTicks=2+Math.ceil((L-(this.tickSpacing-1))/this.tickSpacing);this.min=0;q=M/(this.numberTicks-1);P=Math.pow(10,Math.abs(Math.floor(Math.log(q)/Math.LN10)));if(q/P==parseInt(q/P,10)){q+=P}this.tickInterval=Math.ceil(q/P)*P;this.max=this.tickInterval*(this.numberTicks-1)}else{if(G){this.numberTicks=2+Math.ceil((L-(this.tickSpacing-1))/this.tickSpacing);var O=Math.ceil(Math.abs(I)/D*(this.numberTicks-1));var S=this.numberTicks-1-O;q=Math.max(Math.abs(I/O),Math.abs(M/S));P=Math.pow(10,Math.abs(Math.floor(Math.log(q)/Math.LN10)));this.tickInterval=Math.ceil(q/P)*P;this.max=this.tickInterval*S;this.min=-this.tickInterval*O}else{if(this.numberTicks==null){if(this.tickInterval){this.numberTicks=3+Math.ceil(D/this.tickInterval)}else{this.numberTicks=2+Math.ceil((L-(this.tickSpacing-1))/this.tickSpacing)}}if(this.tickInterval==null){q=D/(this.numberTicks-1);if(q<1){P=Math.pow(10,Math.abs(Math.floor(Math.log(q)/Math.LN10)))}else{P=1}this.tickInterval=Math.ceil(q*P*this.pad)/P}else{P=1/this.tickInterval}C=this.tickInterval*(this.numberTicks-1);E=(C-D)/2;if(this.min==null){this.min=Math.floor(P*(I-E))/P}if(this.max==null){this.max=this.min+C}}}}else{H=(this.min!=null)?this.min:I-D*(this.padMin-1);K=(this.max!=null)?this.max:M+D*(this.padMax-1);this.min=H;this.max=K;D=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(L>100){this.numberTicks=parseInt(3+(L-100)/75,10)}else{this.numberTicks=2}}}if(this.tickInterval==null){this.tickInterval=D/(this.numberTicks-1)}}for(var N=0;N<this.numberTicks;N++){k=this.min+N*this.tickInterval;var z=new this.tickRenderer(this.tickOptions);if(!this.showTicks){z.showLabel=false;z.showMark=false}else{if(!this.showTickMarks){z.showMark=false}}z.setTick(k,this.name);this._ticks.push(z)}}};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(t){return(t-F)*E/n+u};this.u2p=function(t){return(t-u)*n/E+F};if(this.name=="xaxis"||this.name=="x2axis"){this.series_u2p=function(t){return(t-u)*n/E};this.series_p2u=function(t){return t*E/n+u}}else{this.series_u2p=function(t){return(t-z)*n/E};this.series_p2u=function(t){return t*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,u){var k=1.2;var v=this.size/2/k;var t=this.size/2*k;var o=[[n-v,l],[n,l+t],[n+v,l],[n,l-t]];if(this.shadow){this.shadowRenderer.draw(r,o)}this.shapeRenderer.draw(r,o,u);r.restore()};e.jqplot.MarkerRenderer.prototype.drawPlus=function(o,n,t,r,w){var l=1;var z=this.size/2*l;var u=this.size/2*l;var v=[[o,n-u],[o,n+u]];var q=[[o+z,n],[o-z,n]];var k=e.extend(true,{},this.options,{closePath:false});if(this.shadow){this.shadowRenderer.draw(t,v,{closePath:false});this.shadowRenderer.draw(t,q,{closePath:false})}this.shapeRenderer.draw(t,v,k);this.shapeRenderer.draw(t,q,k);t.restore()};e.jqplot.MarkerRenderer.prototype.drawX=function(o,n,t,r,w){var l=1;var z=this.size/2*l;var u=this.size/2*l;var k=e.extend(true,{},this.options,{closePath:false});var v=[[o-z,n-u],[o+z,n+u]];var q=[[o-z,n+u],[o+z,n-u]];if(this.shadow){this.shadowRenderer.draw(t,v,{closePath:false});this.shadowRenderer.draw(t,q,{closePath:false})}this.shapeRenderer.draw(t,v,k);this.shapeRenderer.draw(t,q,k);t.restore()};e.jqplot.MarkerRenderer.prototype.drawDash=function(n,l,r,q,u){var k=1;var v=this.size/2*k;var t=this.size/2*k;var o=[[n-v,l],[n+v,l]];if(this.shadow){this.shadowRenderer.draw(r,o)}this.shapeRenderer.draw(r,o,u);r.restore()};e.jqplot.MarkerRenderer.prototype.drawSquare=function(n,l,r,q,u){var k=1;var v=this.size/2/k;var t=this.size/2*k;var o=[[n-v,l-t],[n-v,l+t],[n+v,l+t],[n+v,l-t]];if(this.shadow){this.shadowRenderer.draw(r,o)}this.shapeRenderer.draw(r,o,u);r.restore()};e.jqplot.MarkerRenderer.prototype.drawCircle=function(l,u,o,t,q){var k=this.size/2;var n=2*Math.PI;var r=[l,u,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;case"x":this.drawX(k,o,l,true,n);break;case"plus":this.drawPlus(k,o,l,true,n);break;case"dash":this.drawDash(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(w,u,x){w.save();var k=(x!=null)?x:{};var v=(k.fill!=null)?k.fill:this.fill;var t=(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;w.lineWidth=(k.lineWidth!=null)?k.lineWidth:this.lineWidth;w.lineJoin=(k.lineJoin!=null)?k.lineJoin:this.lineJoin;w.lineCap=(k.lineCap!=null)?k.lineCap:this.lineCap;w.strokeStyle="rgba(0,0,0,"+l+")";w.fillStyle="rgba(0,0,0,"+l+")";for(var n=0;n<r;n++){w.translate(Math.cos(this.angle*Math.PI/180)*o,Math.sin(this.angle*Math.PI/180)*o);w.beginPath();if(this.isarc){w.arc(u[0],u[1],u[2],u[3],u[4],true)}else{w.moveTo(u[0][0],u[0][1]);for(var q=1;q<u.length;q++){w.lineTo(u[q][0],u[q][1])}}if(t){w.closePath()}if(v){w.fill()}else{w.stroke()}}w.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(v,t,x){v.save();var k=(x!=null)?x:{};var u=(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 w=(k.isarc!=null)?k.isarc:this.isarc;v.lineWidth=k.lineWidth||this.lineWidth;v.lineJoin=k.lineJoing||this.lineJoin;v.lineCap=k.lineCap||this.lineCap;v.strokeStyle=(k.strokeStyle||k.color)||this.strokeStyle;v.fillStyle=k.fillStyle||this.fillStyle;v.beginPath();if(w){v.arc(t[0],t[1],t[2],t[3],t[4],true);if(q){v.closePath()}if(u){v.fill()}else{v.stroke()}}else{if(r){v.fillRect(t[0],t[1],t[2],t[3])}else{if(n){v.strokeRect(t[0],t[1],t[2],t[3])}else{if(l){v.clearRect(t[0],t[1],t[2],t[3])}else{v.moveTo(t[0][0],t[0][1]);for(var o=1;o<t.length;o++){v.lineTo(t[o][0],t[o][1])}if(q){v.closePath()}if(u){v.fill()}else{v.stroke()}}}}}v.restore()};e.jqplot.TableLegendRenderer=function(){};e.jqplot.TableLegendRenderer.prototype.init=function(k){e.extend(true,this,k)};e.jqplot.TableLegendRenderer.prototype.addrow=function(n,l,r){var k=(r)?this.rowSpacing:"0";var q=e('<tr class="jqplot-table-legend"></tr>').appendTo(this._elem);e('<td class="jqplot-table-legend" style="text-align:center;padding-top:'+k+';"><div><div class="jqplot-table-legend-swatch" style="border-color:'+l+';"></div></div></td>').appendTo(q);var o=e('<td class="jqplot-table-legend" style="padding-top:'+k+';"></td>');o.appendTo(q);if(this.escapeHtml){o.text(n)}else{o.html(n)}};e.jqplot.TableLegendRenderer.prototype.draw=function(){var t=this;if(this.show){var q=this._series;var v="position:absolute;";v+=(this.background)?"background:"+this.background+";":"";v+=(this.border)?"border:"+this.border+";":"";v+=(this.fontSize)?"font-size:"+this.fontSize+";":"";v+=(this.fontFamily)?"font-family:"+this.fontFamily+";":"";v+=(this.textColor)?"color:"+this.textColor+";":"";this._elem=e('<table class="jqplot-table-legend" style="'+v+'"></table>');var k=false;for(var r=0;r<q.length;r++){s=q[r];if(s.show&&s.showLabel){var o=s.label.toString();if(o){var l=s.color;if(s._stack&&!s.fill){l=""}this.renderer.addrow.call(this,o,l,k);k=true}for(var n=0;n<e.jqplot.addLegendRowHooks.length;n++){var u=e.jqplot.addLegendRowHooks[n].call(this,s);if(u){this.renderer.addrow.call(this,u.label,u.color,k);k=true}}}}}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(y,u,v,x){var w=(y.length>=u)?"":Array(1+u-y.length>>>0).join(v);return x?y+w:w+y}function n(z,y,B,w,x,v){var A=w-z.length;if(A>0){var u=" ";if(v){u="&nbsp;"}if(B||!x){z=r(z,w,u,B)}else{z=z.slice(0,y.length)+r("",A,"0",true)+z.slice(y.length)}}return z}function t(C,v,A,w,u,z,B,y){var x=C>>>0;A=A&&x&&{"2":"0b","8":"0","16":"0x"}[v]||"";C=A+r(x.toString(v),z||0,"0",false);return n(C,A,w,u,B,y)}function k(y,z,w,u,x,v){if(u!=null){y=y.slice(0,u)}return n(y,"",z,w,x,v)}var l=arguments,o=0,q=l[o++];return q.replace(e.jqplot.sprintf.regex,function(N,A,B,E,P,L,y){if(N=="%%"){return"%"}var F=false,C="",D=false,M=false,z=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;case"&":z=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(y)>-1?6:(y=="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(y){case"s":if(H==null){return""}return k(String(H),F,E,L,D,z);case"c":return k(String.fromCharCode(+H),F,E,L,D,z);case"b":return t(H,2,M,F,E,L,D,z);case"o":return t(H,8,M,F,E,L,D,z);case"x":return t(H,16,M,F,E,L,D,z);case"X":return t(H,16,M,F,E,L,D,z).toUpperCase();case"u":return t(H,10,M,F,E,L,D,z);case"i":case"d":var w=parseInt(+H,10);if(isNaN(w)){return""}var J=w<0?"-":C;H=J+r(String(Math.abs(w)),L,"0",false);return n(H,J,F,E,D,z);case"e":case"E":case"f":case"F":case"g":case"G":var w=+H;if(isNaN(w)){return""}var J=w<0?"-":C;var x=["toExponential","toFixed","toPrecision"]["efg".indexOf(y.toLowerCase())];var O=["toString","toUpperCase"]["eEfFgG".indexOf(y)%2];H=J+Math.abs(w)[x](L);return n(H,J,F,E,D,z)[O]();case"p":case"P":var w=+H;if(isNaN(w)){return""}var J=w<0?"-":C;var G=String(Number(Math.abs(w)).toExponential()).split(/e|E/);var v=(G[0].indexOf(".")!=-1)?G[0].length-1:G[0].length;var I=(G[1]<0)?-G[1]-1:0;if(Math.abs(w)<1){if(v+I<=L){H=J+Math.abs(w).toPrecision(v)}else{if(v<=L-1){H=J+Math.abs(w).toExponential(v-1)}else{H=J+Math.abs(w).toExponential(L-1)}}}else{var u=(v<=L)?v:L;H=J+Math.abs(w).toPrecision(u)}var O=["toString","toUpperCase"]["pP".indexOf(y)%2];return n(H,J,F,E,D,z)[O]();case"n":return"";default:return N}})};e.jqplot.sprintf.regex=/%%|%(\d+\$)?([-+#0& ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([nAscboxXuidfegpEGP])/g})(jQuery);/**
 * Copyright (c) 2009 Chris Leonello
 * jqPlot is currently available for use in all personal or commercial projects 
 * under both the MIT and GPL version 2.0 licenses. This means that you can 
 * choose the license that best suits your project and use it accordingly. 
 *
 * The author would appreciate an email letting him know of any substantial
 * use of jqPlot.  You can reach the author at: chris dot leonello at gmail 
 * dot com or see http://www.jqplot.com/info.php .  This is, of course, 
 * not required.
 *
 * If you are feeling kind and generous, consider supporting the project by
 * making a donation at: http://www.jqplot.com/donate.php .
 *
 * Thanks for using jqPlot!
 * 
 */
(function($) {
	
	/**
	 * Class: $.jqplot.Cursor
	 * Plugin class representing the cursor as displayed on the plot.
	 */
	$.jqplot.Cursor = function(options) {
	    // Group: Properties
	    //
	    // prop: style
	    // CSS spec for cursor style
	    this.style = 'crosshair';
	    this.previousCursor = 'auto';
	    // prop: show
	    // wether to show the cursor or not.
	    this.show = $.jqplot.config.enablePlugins;
	    // prop: showTooltip
	    // show a cursor position tooltip near the cursor
	    this.showTooltip = true;
	    // prop: followMouse
	    // Tooltip follows the mouse, it is not at a fixed location.
	    // Tooltip will show on the grid at the location given by
	    // tooltipLocation, offset from the grid edge by tooltipOffset.
	    this.followMouse = false;
	    // prop: tooltipLocation
	    // Where to position tooltip.  If followMouse is true, this is
	    // relative to the cursor, otherwise, it is relative to the grid.
	    // One of 'n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw'
	    this.tooltipLocation = 'se';
	    // prop: tooltipOffset
	    // Pixel offset of tooltip from the grid boudaries or cursor center.
	    this.tooltipOffset = 6;
	    // prop: showTooltipGridPosition
	    // show the grid pixel coordinates of the mouse.
	    this.showTooltipGridPosition = false;
	    // prop: showTooltipUnitPosition
	    // show the unit (data) coordinates of the mouse.
	    this.showTooltipUnitPosition = true;
	    // prop: showTooltipDataPosition
	    // Used with showVerticalLine to show intersecting data points in the tooltip.
	    this.showTooltipDataPosition = false;
	    // prop: tooltipFormatString
	    // sprintf format string for the tooltip.
	    // Uses Ash Searle's javascript sprintf implementation
	    // found here: http://hexmen.com/blog/2007/03/printf-sprintf/
	    // See http://perldoc.perl.org/functions/sprintf.html for reference
	    // Note, if showTooltipDataPosition is true, the default tooltipFormatString
	    // will be set to the cursorLegendFormatString, not the default given here.
	    this.tooltipFormatString = '%.4P, %.4P';
	    // prop: useAxesFormatters
	    // Use the x and y axes formatters to format the text in the tooltip.
	    this.useAxesFormatters = true;
	    // prop: tooltipAxisGroups
	    // Show position for the specified axes.
	    // This is an array like [['xaxis', 'yaxis'], ['xaxis', 'y2axis']]
	    // Default is to compute automatically for all visible axes.
	    this.tooltipAxisGroups = [];
	    // prop: zoom
	    // Enable plot zooming.
	    this.zoom = false;
	    // zoomProxy and zoomTarget properties are not directly set by user.  
	    // They Will be set through call to zoomProxy method.
	    this.zoomProxy = false;
	    this.zoomTarget = false;
	    // prop: clickReset
	    // Will reset plot zoom if single click on plot without drag.
	    this.clickReset = false;
	    // prop: dblClickReset
	    // Will reset plot zoom if double click on plot without drag.
	    this.dblClickReset = true;
	    // prop: showVerticalLine
	    // draw a vertical line across the plot which follows the cursor.
	    // When the line is near a data point, a special legend and/or tooltip can
	    // be updated with the data values.
	    this.showVerticalLine = false;
	    // prop: showHorizontalLine
	    // draw a horizontal line across the plot which follows the cursor.
	    this.showHorizontalLine = false;
	    // prop: constrainZoomTo
	    // 'none', 'x' or 'y'
	    this.constrainZoomTo = 'none';
        // // prop: autoscaleConstraint
        // // when a constrained axis is specified, true will
        // // auatoscale the adjacent axis.
        // this.autoscaleConstraint = true;
	    this.shapeRenderer = new $.jqplot.ShapeRenderer();
	    this._zoom = {start:[], end:[], started: false, zooming:false, isZoomed:false, axes:{start:{}, end:{}}};
	    this._tooltipElem;
	    this.zoomCanvas;
	    this.cursorCanvas;
	    // prop: intersectionThreshold
	    // pixel distance from data point or marker to consider cursor lines intersecting with point.
	    // If data point markers are not shown, this should be >= 1 or will often miss point intersections.
	    this.intersectionThreshold = 2;
	    // prop: showCursorLegend
	    // Replace the plot legend with an enhanced legend displaying intersection information.
	    this.showCursorLegend = false;
	    // prop: cursorLegendFormatString
	    // Format string used in the cursor legend.  If showTooltipDataPosition is true,
	    // this will also be the default format string used by tooltipFormatString.
	    this.cursorLegendFormatString = $.jqplot.Cursor.cursorLegendFormatString;

        this.vlColor = '#999999';
        this.hlColor = '#999999';

        //should we use the series' colors for each line in the tooltip?
        this.useSeriesColors = false;

	    $.extend(true, this, options);

	};
	
	$.jqplot.Cursor.cursorLegendFormatString = '%s x:%s, y:%s';
	
	// called with scope of plot
	$.jqplot.Cursor.init = function (target, data, opts){
	    // add a cursor attribute to the plot
	    var options = opts || {};
	    this.plugins.cursor = new $.jqplot.Cursor(options.cursor);
	    var c = this.plugins.cursor;

        if (c.show) {
        	$.jqplot.eventListenerHooks.push(['jqplotMouseEnter', handleMouseEnter]);
        	$.jqplot.eventListenerHooks.push(['jqplotMouseLeave', handleMouseLeave]);
            $.jqplot.eventListenerHooks.push(['jqplotMouseMove', handleMouseMove]);
            
            if (c.showCursorLegend) {              
                opts.legend = opts.legend || {};
                opts.legend.renderer =  $.jqplot.CursorLegendRenderer;
                opts.legend.formatString = this.plugins.cursor.cursorLegendFormatString;
                opts.legend.show = true;
            }
            
            if (c.zoom) {
                $.jqplot.eventListenerHooks.push(['jqplotMouseDown', handleMouseDown]);
                $.jqplot.eventListenerHooks.push(['jqplotMouseUp', handleMouseUp]);
                
                if (c.clickReset) {
                    $.jqplot.eventListenerHooks.push(['jqplotClick', handleClick]);
                }
                
                if (c.dblClickReset) {
                    $.jqplot.eventListenerHooks.push(['jqplotDblClick', handleDblClick]);
                }
            }
	
        	this.resetZoom = function() {
        	    var axes = this.axes;
        	    if (!c.zoomProxy) {
            	    for (var ax in axes) {
                        axes[ax].reset();
            	    }
            	    this.redraw();
        	    }
        	    else {
                    var ctx = this.plugins.cursor.zoomCanvas._ctx;
                    ctx.clearRect(0,0,ctx.canvas.width, ctx.canvas.height);
        	    }
        	    this.plugins.cursor._zoom.isZoomed = false;
                this.target.trigger('jqplotResetZoom', [this, this.plugins.cursor]);
        	};
        	

        	if (c.showTooltipDataPosition) {
        	    c.showTooltipUnitPosition = false;
        	    c.showTooltipGridPosition = false;
        	    if (options.cursor.tooltipFormatString == undefined) {
        	        c.tooltipFormatString = $.jqplot.Cursor.cursorLegendFormatString;
        	    }
        	}
        }
	};
	
	// called with context of plot
	$.jqplot.Cursor.postDraw = function() {
    	var c = this.plugins.cursor;
        // if (c.zoom) {
        c.zoomCanvas = new $.jqplot.GenericCanvas();
        this.eventCanvas._elem.before(c.zoomCanvas.createElement(this._gridPadding, 'jqplot-zoom-canvas', this._plotDimensions));
        var zctx = c.zoomCanvas.setContext();
        // }
        c._tooltipElem = $('<div class="jqplot-cursor-tooltip" style="position:absolute;display:none"></div>');
	    c.zoomCanvas._elem.before(c._tooltipElem);
	    if (c.showVerticalLine || c.showHorizontalLine) {
	        c.cursorCanvas = new $.jqplot.GenericCanvas();
            this.eventCanvas._elem.before(c.cursorCanvas.createElement(this._gridPadding, 'jqplot-cursor-canvas', this._plotDimensions));
            var zctx = c.cursorCanvas.setContext();
	    }

        // if we are showing the positions in unit coordinates, and no axes groups
        // were specified, create a default set.
        if (c.showTooltipUnitPosition){
	        if (c.tooltipAxisGroups.length === 0) {
	            var series = this.series;
	            var s;
	            var temp = [];
	            for (var i=0; i<series.length; i++) {
	                s = series[i];
	                var ax = s.xaxis+','+s.yaxis;
	                if ($.inArray(ax, temp) == -1) {
	                    temp.push(ax);
	                }
	            }
	            for (var i=0; i<temp.length; i++) {
	                c.tooltipAxisGroups.push(temp[i].split(','));
	            }
	        }
        }
	};
	
    // Group: methods
    //
	// method: $.jqplot.Cursor.zoomProxy
    // links targetPlot to controllerPlot so that plot zooming of
    // targetPlot will be controlled by zooming on the controllerPlot.
    // controllerPlot will not actually zoom, but acts as an
    // overview plot.  Note, the zoom options must be set to true for
    // zoomProxy to work.
	$.jqplot.Cursor.zoomProxy = function(targetPlot, controllerPlot) {
	    var tc = targetPlot.plugins.cursor;
	    var cc = controllerPlot.plugins.cursor;
	    tc.zoomTarget = true;
	    tc.zoom = true;
	    tc.style = 'auto';
	    tc.dblClickReset = false;
	    cc.zoom = true;
	    cc.zoomProxy = true;
	          
        controllerPlot.target.bind('jqplotZoom', plotZoom);
        controllerPlot.target.bind('jqplotResetZoom', plotReset);

        function plotZoom(ev, gridpos, datapos, plot, cursor) {
            tc.doZoom(gridpos, datapos, targetPlot, cursor);
        } 

        function plotReset(ev, plot, cursor) {
            targetPlot.resetZoom();
        }
	};
	
	$.jqplot.Cursor.prototype.resetZoom = function(plot, cursor) {
	    var axes = plot.axes;
	    var cax = cursor._zoom.axes;
	    if (!plot.plugins.cursor.zoomProxy && cursor._zoom.isZoomed) {
    	    for (var ax in axes) {
                axes[ax]._ticks = [];
    	        axes[ax].min = cax[ax].min;
    	        axes[ax].max = cax[ax].max;
    	        axes[ax].numberTicks = cax[ax].numberTicks; 
    	        axes[ax].tickInterval = cax[ax].tickInterval;
    	        // for date axes
    	        axes[ax].daTickInterval = cax[ax].daTickInterval;
    	    }
    	    plot.redraw();
    	    cursor._zoom.isZoomed = false;
	    }
	    else {
            var ctx = cursor.zoomCanvas._ctx;
            ctx.clearRect(0,0,ctx.canvas.width, ctx.canvas.height);
	    }
        plot.target.trigger('jqplotResetZoom', [plot, cursor]);
	};
	
	$.jqplot.Cursor.resetZoom = function(plot) {
	    plot.resetZoom();
	};
	
	$.jqplot.Cursor.prototype.doZoom = function (gridpos, datapos, plot, cursor) {
	    var c = cursor;
        var axes = plot.axes;
        var zaxes = c._zoom.axes;
        var start = zaxes.start;
        var end = zaxes.end;
        var min, max;
        var ctx = plot.plugins.cursor.zoomCanvas._ctx;
        // don't zoom is zoom area is too small (in pixels)
        if ((c.constrainZoomTo == 'none' && Math.abs(gridpos.x - c._zoom.start[0]) > 6 && Math.abs(gridpos.y - c._zoom.start[1]) > 6) || (c.constrainZoomTo == 'x' && Math.abs(gridpos.x - c._zoom.start[0]) > 6) ||  (c.constrainZoomTo == 'y' && Math.abs(gridpos.y - c._zoom.start[1]) > 6)) {
            if (!plot.plugins.cursor.zoomProxy) {
                for (var ax in datapos) {
                    // make a copy of the original axes to revert back.
                    if (c._zoom.axes[ax] == undefined) {
                        c._zoom.axes[ax] = {};
                        c._zoom.axes[ax].numberTicks = axes[ax].numberTicks;
                        c._zoom.axes[ax].tickInterval = axes[ax].tickInterval;
                        // for date axes...
                        c._zoom.axes[ax].daTickInterval = axes[ax].daTickInterval;
                        c._zoom.axes[ax].min = axes[ax].min;
                        c._zoom.axes[ax].max = axes[ax].max;
                    }
                    if ((c.constrainZoomTo == 'none') || (c.constrainZoomTo == 'x' && ax.charAt(0) == 'x') || (c.constrainZoomTo == 'y' && ax.charAt(0) == 'y')) {   
                        dp = datapos[ax];
                        if (dp != null) {           
                            if (dp > start[ax]) { 
                                axes[ax].min = start[ax];
                                axes[ax].max = dp;
                            }
                            else {
                                span = start[ax] - dp;
                                axes[ax].max = start[ax];
                                axes[ax].min = dp;
                            }
                            axes[ax].tickInterval = null;
                            // for date axes...
                            axes[ax].daTickInterval = null;
                            axes[ax]._ticks = [];
                        }
                    }
                            
                    // if ((c.constrainZoomTo == 'x' && ax.charAt(0) == 'y' && c.autoscaleConstraint) || (c.constrainZoomTo == 'y' && ax.charAt(0) == 'x' && c.autoscaleConstraint)) {
                    //     dp = datapos[ax];
                    //     if (dp != null) {
                    //         axes[ax].max == null;
                    //         axes[ax].min = null;
                    //     }
                    // }
                }
                ctx.clearRect(0,0,ctx.canvas.width, ctx.canvas.height);
                plot.redraw();
                c._zoom.isZoomed = true;
            }
            plot.target.trigger('jqplotZoom', [gridpos, datapos, plot, cursor]);
        }
	};
	
	$.jqplot.preInitHooks.push($.jqplot.Cursor.init);
	$.jqplot.postDrawHooks.push($.jqplot.Cursor.postDraw);
	
	function updateTooltip(gridpos, datapos, plot) {

    	var c = plot.plugins.cursor;

        var s = '';
        var addbr = false;
        if (c.showTooltipGridPosition) {
            s = gridpos.x+', '+gridpos.y;
            addbr = true;
        }
        if (c.showTooltipUnitPosition) {
            var g;
            for (var i=0; i<c.tooltipAxisGroups.length; i++) {
                g = c.tooltipAxisGroups[i];
                if (addbr) {
                    s += '<br />';
                }
                if (c.useAxesFormatters) {
                    var xf = plot.axes[g[0]]._ticks[0].formatter;
                    var yf = plot.axes[g[1]]._ticks[0].formatter;
                    var xfstr = plot.axes[g[0]]._ticks[0].formatString;
                    var yfstr = plot.axes[g[1]]._ticks[0].formatString;
                    s += xf(xfstr, datapos[g[0]]) + ', '+ yf(yfstr, datapos[g[1]]);
                }
                else {
                    s += $.jqplot.sprintf(c.tooltipFormatString, datapos[g[0]], datapos[g[1]]);
                }
                addbr = true;
            }
        }
        
        if (c.showTooltipDataPosition) {
            var series = plot.series; 
	        var ret = getIntersectingPoints(plot, gridpos.x, gridpos.y);
	        var addbr = false;

            //no intersecting points, hide tooltip
            if(ret.indices.length == 0){
                c._tooltipElem.hide(0);
            }
            else {
                for (var i = 0; i< series.length; i++) {
                    if (series[i].show) {
                        var idx = series[i].index;
                        var label = series[i].label.toString();
                        var cellid = $.inArray(idx, ret.indices);
                        var sx = undefined;
                        var sy = undefined;
                        if (cellid != -1) {
                            var data = ret.data[cellid].data;
                            var xf = series[i]._xaxis._ticks[0].formatter;
                            var yf = series[i]._yaxis._ticks[0].formatter;

                            //a hack to allow custom tooltip date formatting
                            if(c.txFormat) {
                                sx = xf(c.txFormat, data[0]);
                            }
                            else
                            if (c.useAxesFormatters){
                                var xfstr = series[i]._xaxis._ticks[0].formatString;
                                sx = xf(xfstr, data[0]);
                            }
                            else {
                                sx = data[0];
                            }

                            if(c.tyFormat) {
                                sy = yf(c.tyFormat, data[1]);
                            }
                            else
                            if (c.useAxesFormatters){
                                var yfstr = series[i]._yaxis._ticks[0].formatString;
                                sy = yf(yfstr, data[1]);
                            }
                            else {
                                sy = data[1];
                            }

                            if (addbr) {
                                s += '<br />';
                            }

                            //a hack to allow custom values' positioning in the tooltip
                            //%l - label text
                            //%x - absciss value
                            //%y - ordinate value
                            var outStr = c.tooltipFormatString.replace(/%l/,label);
                            outStr = outStr.replace(/%x/, sx);
                            outStr = outStr.replace(/%y/, sy);

                            //apply series' custom colors if required
                            if(c.useSeriesColors) {
                                outStr = $.jqplot.sprintf('<span style="color:%s">%s</span>', series[i].color, outStr);
                            }

                            s += outStr;

    //                        s += $.jqplot.sprintf(c.tooltipFormatString, label, sx, sy);
                            addbr = true;
                        }
                    }
                }
                c._tooltipElem.show(0);
            }
        }
        c._tooltipElem.html(s);
	}
	
	function moveLine(gridpos, plot) {
	    var c = plot.plugins.cursor;
	    var ctx = c.cursorCanvas._ctx;
        ctx.clearRect(0,0,ctx.canvas.width, ctx.canvas.height);
	    if (c.showVerticalLine) {
            c.shapeRenderer.draw(ctx, [[gridpos.x, 0], [gridpos.x, ctx.canvas.height]], {strokeStyle: c.vlColor});
	    }
	    if (c.showHorizontalLine) {
	        c.shapeRenderer.draw(ctx, [[0, gridpos.y], [ctx.canvas.width, gridpos.y]], {strokeStyle: c.hlColor});
	    }
	    var ret = getIntersectingPoints(plot, gridpos.x, gridpos.y);
	    if (c.showCursorLegend) {
	        var cells = $(plot.targetId + ' td.jqplot-cursor-legend-label');
	        for (var i=0; i<cells.length; i++) {
	            var idx = $(cells[i]).data('seriesIndex');
	            var series = plot.series[idx];
	            var label = series.label.toString();
	            var cellid = $.inArray(idx, ret.indices);
	            var sx = undefined;
	            var sy = undefined;
	            if (cellid != -1) {
	                var data = ret.data[cellid].data;
                    if (c.useAxesFormatters) {
                        var xf = series._xaxis._ticks[0].formatter;
                        var yf = series._yaxis._ticks[0].formatter;
                        var xfstr = series._xaxis._ticks[0].formatString;
                        var yfstr = series._yaxis._ticks[0].formatString;
                        sx = xf(xfstr, data[0]);
                        sy = yf(yfstr, data[1]);
                    }
                    else {
                        sx = data[0];
                        sy = data[1];
                    }
	            }
	            if (plot.legend.escapeHtml) {
	                $(cells[i]).text($.jqplot.sprintf(c.cursorLegendFormatString, label, sx, sy));
	            }
	            else {
	                $(cells[i]).html($.jqplot.sprintf(c.cursorLegendFormatString, label, sx, sy));
	            }
	        }        
	    }
	}
        
    function getIntersectingPoints(plot, x, y) {
        var ret = {indices:[], data:[]};
        var s, i, d0, d, j, r;
        var threshold;
        var c = plot.plugins.cursor;
        for (var i=0; i<plot.series.length; i++) {
            s = plot.series[i];
            r = s.renderer;
            if (s.show) {
                threshold = c.intersectionThreshold;
                if (s.showMarker) {
                    threshold += s.markerRenderer.size/2;
                }
                for (var j=0; j<s.gridData.length; j++) {
                    p = s.gridData[j];
                    // check vertical line
                    if (c.showVerticalLine) {
                        if (Math.abs(x-p[0]) <= threshold) {
                            ret.indices.push(i);
                            ret.data.push({seriesIndex: i, pointIndex:j, gridData:p, data:s.data[j]});
                        }
                    }
                } 
            }
        }
        return ret;
    }
	
	function moveTooltip(gridpos, plot) {
    	var c = plot.plugins.cursor;  
    	var elem = c._tooltipElem;
        switch (c.tooltipLocation) {
            case 'nw':
                var x = gridpos.x + plot._gridPadding.left - elem.outerWidth(true) - c.tooltipOffset;
                var y = gridpos.y + plot._gridPadding.top - c.tooltipOffset - elem.outerHeight(true);
                break;
            case 'n':
                var x = gridpos.x + plot._gridPadding.left - elem.outerWidth(true)/2;
                var y = gridpos.y + plot._gridPadding.top - c.tooltipOffset - elem.outerHeight(true);
                break;
            case 'ne':
                var x = gridpos.x + plot._gridPadding.left + c.tooltipOffset;
                var y = gridpos.y + plot._gridPadding.top - c.tooltipOffset - elem.outerHeight(true);
                break;
            case 'e':
                var x = gridpos.x + plot._gridPadding.left + c.tooltipOffset;
                var y = gridpos.y + plot._gridPadding.top - elem.outerHeight(true)/2;
                break;
            case 'se':
                var x = gridpos.x + plot._gridPadding.left + c.tooltipOffset;
                var y = gridpos.y + plot._gridPadding.top + c.tooltipOffset;
                break;
            case 's':
                var x = gridpos.x + plot._gridPadding.left - elem.outerWidth(true)/2;
                var y = gridpos.y + plot._gridPadding.top + c.tooltipOffset;
                break;
            case 'sw':
                var x = gridpos.x + plot._gridPadding.left - elem.outerWidth(true) - c.tooltipOffset;
                var y = gridpos.y + plot._gridPadding.top + c.tooltipOffset;
                break;
            case 'w':
                var x = gridpos.x + plot._gridPadding.left - elem.outerWidth(true) - c.tooltipOffset;
                var y = gridpos.y + plot._gridPadding.top - elem.outerHeight(true)/2;
                break;
            default:
                var x = gridpos.x + plot._gridPadding.left + c.tooltipOffset;
                var y = gridpos.y + plot._gridPadding.top + c.tooltipOffset;
                break;
        }
            
        c._tooltipElem.css('left', x);
        c._tooltipElem.css('top', y);
	}
	
	function positionTooltip(plot) { 
	    // fake a grid for positioning
	    var grid = plot._gridPadding; 
    	var c = plot.plugins.cursor;
    	var elem = c._tooltipElem;  
        switch (c.tooltipLocation) {
            case 'nw':
                var a = grid.left + c.tooltipOffset;
                var b = grid.top + c.tooltipOffset;
                elem.css('left', a);
                elem.css('top', b);
                break;
            case 'n':
                var a = (grid.left + (plot._plotDimensions.width - grid.right))/2 - elem.outerWidth(true)/2;
                var b = grid.top + c.tooltipOffset;
                elem.css('left', a);
                elem.css('top', b);
                break;
            case 'ne':
                var a = grid.right + c.tooltipOffset;
                var b = grid.top + c.tooltipOffset;
                elem.css({right:a, top:b});
                break;
            case 'e':
                var a = grid.right + c.tooltipOffset;
                var b = (grid.top + (plot._plotDimensions.height - grid.bottom))/2 - elem.outerHeight(true)/2;
                elem.css({right:a, top:b});
                break;
            case 'se':
                var a = grid.right + c.tooltipOffset;
                var b = grid.bottom + c.tooltipOffset;
                elem.css({right:a, bottom:b});
                break;
            case 's':
                var a = (grid.left + (plot._plotDimensions.width - grid.right))/2 - elem.outerWidth(true)/2;
                var b = grid.bottom + c.tooltipOffset;
                elem.css({left:a, bottom:b});
                break;
            case 'sw':
                var a = grid.left + c.tooltipOffset;
                var b = grid.bottom + c.tooltipOffset;
                elem.css({left:a, bottom:b});
                break;
            case 'w':
                var a = grid.left + c.tooltipOffset;
                var b = (grid.top + (plot._plotDimensions.height - grid.bottom))/2 - elem.outerHeight(true)/2;
                elem.css({left:a, top:b});
                break;
            default:  // same as 'se'
                var a = grid.right - c.tooltipOffset;
                var b = grid.bottom + c.tooltipOffset;
                elem.css({right:a, bottom:b});
                break;
        }
	}
	
	function handleClick (ev, gridpos, datapos, neighbor, plot) {
	    ev.stopPropagation();
	    ev.preventDefault();
	    var c = plot.plugins.cursor;
        if (c.clickReset) {
            c.resetZoom(plot, c);
        }
        return false;
	}
	
	function handleDblClick (ev, gridpos, datapos, neighbor, plot) {
	    ev.stopPropagation();
	    ev.preventDefault();
	    var c = plot.plugins.cursor;
        if (c.dblClickReset) {
            c.resetZoom(plot, c);
        }
        return false;
	}
	
	function handleMouseLeave(ev, gridpos, datapos, neighbor, plot) {
	    var c = plot.plugins.cursor;
	    if (c.show) {
	        $(ev.target).css('cursor', c.previousCursor);
            if (c.showTooltip) {
                c._tooltipElem.hide();
            }
            if (c.zoom) {
                c._zoom.started = false;
                c._zoom.zooming = false;
                if (!c.zoomProxy) {
                    var ctx = c.zoomCanvas._ctx;
                    ctx.clearRect(0,0,ctx.canvas.width, ctx.canvas.height);
                }
            }
            if (c.showVerticalLine || c.showHorizontalLine) {
	            var ctx = c.cursorCanvas._ctx;
                ctx.clearRect(0,0,ctx.canvas.width, ctx.canvas.height);
            }if (c.showCursorLegend) {
	        var cells = $(plot.targetId + ' td.jqplot-cursor-legend-label');
	        for (var i=0; i<cells.length; i++) {
	            var idx = $(cells[i]).data('seriesIndex');
	            var series = plot.series[idx];
	            var label = series.label.toString();
	            if (plot.legend.escapeHtml) {
	                $(cells[i]).text($.jqplot.sprintf(c.cursorLegendFormatString, label, undefined, undefined));
	            }
	            else {
	                $(cells[i]).html($.jqplot.sprintf(c.cursorLegendFormatString, label, undefined, undefined));
	            }
                
	        }        
	    }
	    }
	}
	
	function handleMouseEnter(ev, gridpos, datapos, neighbor, plot) {
	    var c = plot.plugins.cursor;
	    if (c.show) {
    	    c.previousCursor = ev.target.style.cursor;
    	    ev.target.style.cursor = c.style;
            if (c.showTooltip) {
                updateTooltip(gridpos, datapos, plot);
                if (c.followMouse) {
                    moveTooltip(gridpos, plot);
                }
                else {
                    positionTooltip(plot);
                }
                c._tooltipElem.show();
            }
            if (c.showVerticalLine || c.showHorizontalLine) {
                moveLine(gridpos, plot);
            }
	    }
	}
	
	function handleMouseMove(ev, gridpos, datapos, neighbor, plot) {
    	var c = plot.plugins.cursor;
    	var ctx = c.zoomCanvas._ctx;
    	if (c.show) {
    	    if (c.showTooltip) {
                updateTooltip(gridpos, datapos, plot);
                if (c.followMouse) {
                    moveTooltip(gridpos, plot);
                }
    	    }
            if (c.zoom && c._zoom.started && !c.zoomTarget) {
                c._zoom.zooming = true;
    	        if (c.constrainZoomTo == 'x') {
    	            c._zoom.end = [gridpos.x, ctx.canvas.height];
    	        }
    	        else if (c.constrainZoomTo == 'y') {
    	            c._zoom.end = [ctx.canvas.width, gridpos.y];
    	        }
    	        else {
    	            c._zoom.end = [gridpos.x, gridpos.y];
    	        }
                drawZoomBox.call(c);
            }
            if (c.showVerticalLine || c.showHorizontalLine) {
                moveLine(gridpos, plot);
            }
    	}
	}
	
	function handleMouseDown(ev, gridpos, datapos, neighbor, plot) {
	    var c = plot.plugins.cursor;
	    var axes = plot.axes;
	    if (c.zoom) {
	        if (!c.zoomProxy) {
                var ctx = c.zoomCanvas._ctx;
                ctx.clearRect(0,0,ctx.canvas.width, ctx.canvas.height);
            }
	        if (c.constrainZoomTo == 'x') {
	            c._zoom.start = [gridpos.x, 0];
	        }
	        else if (c.constrainZoomTo == 'y') {
	            c._zoom.start = [0, gridpos.y];
	        }
	        else {
	            c._zoom.start = [gridpos.x, gridpos.y];
	        }
	        c._zoom.started = true;
            for (var ax in datapos) {
                // get zoom starting position.
                c._zoom.axes.start[ax] = datapos[ax];
            }
	    }
	}
	
	function handleMouseUp(ev, gridpos, datapos, neighbor, plot) {
	    var c = plot.plugins.cursor;
	    if (c.zoom && c._zoom.zooming && !c.zoomTarget) {
	        c.doZoom(gridpos, datapos, plot, c);
        }
        c._zoom.started = false;
        c._zoom.zooming = false;
	}
	
	function drawZoomBox() {
	    var start = this._zoom.start;
	    var end = this._zoom.end;
	    var ctx = this.zoomCanvas._ctx;
	    var l, t, h, w;
	    if (end[0] > start[0]) {
	        l = start[0];
	        w = end[0] - start[0];
	    }
	    else {
	        l = end[0];
	        w = start[0] - end[0];
	    }
	    if (end[1] > start[1]) {
	        t = start[1];
	        h = end[1] - start[1];
	    }
	    else {
	        t = end[1];
	        h = start[1] - end[1];
	    }
	    ctx.fillStyle = 'rgba(0,0,0,0.2)';
	    ctx.strokeStyle = '#999999';
	    ctx.lineWidth = 1.0;
        ctx.clearRect(0,0,ctx.canvas.width, ctx.canvas.height);
	    ctx.fillRect(0,0,ctx.canvas.width, ctx.canvas.height);
	    ctx.clearRect(l, t, w, h);
	    // IE won't show transparent fill rect, so stroke a rect also.
	    ctx.strokeRect(l,t,w,h);
	}
	
	$.jqplot.CursorLegendRenderer = function(options) {
	    $.jqplot.TableLegendRenderer.call(this, options);
	    this.formatString = '%s';
	};
	
	$.jqplot.CursorLegendRenderer.prototype = new $.jqplot.TableLegendRenderer();
	$.jqplot.CursorLegendRenderer.prototype.constructor = $.jqplot.CursorLegendRenderer;
    
    // called in context of a Legend
    $.jqplot.CursorLegendRenderer.prototype.draw = function() {
        if (this.show) {
            var series = this._series;
            // make a table.  one line label per row.
            this._elem = $('<table class="jqplot-legend jqplot-cursor-legend" style="position:absolute"></table>');
        
            var pad = false;
            for (var i = 0; i< series.length; i++) {
                s = series[i];
                if (s.show) {
                    var lt = $.jqplot.sprintf(this.formatString, s.label.toString());
                    if (lt) {
                        var color = s.color;
                        if (s._stack && !s.fill) {
                            color = '';
                        }
                        addrow.call(this, lt, color, pad, i);
                        pad = true;
                    }
                    // let plugins add more rows to legend.  Used by trend line plugin.
                    for (var j=0; j<$.jqplot.addLegendRowHooks.length; j++) {
                        var item = $.jqplot.addLegendRowHooks[j].call(this, s);
                        if (item) {
                            addrow.call(this, item.label, item.color, pad);
                            pad = true;
                        } 
                    }
                }
            }
        }
        
        function addrow(label, color, pad, idx) {
            var rs = (pad) ? this.rowSpacing : '0';
            var tr = $('<tr class="jqplot-legend jqplot-cursor-legend"></tr>').appendTo(this._elem);
            tr.data('seriesIndex', idx);
            $('<td class="jqplot-legend jqplot-cursor-legend-swatch" style="padding-top:'+rs+';">'+
                '<div style="border:1px solid #cccccc;padding:0.2em;">'+
                '<div class="jqplot-cursor-legend-swatch" style="background-color:'+color+';"></div>'+
                '</div></td>').appendTo(tr);
            var td = $('<td class="jqplot-legend jqplot-cursor-legend-label" style="vertical-align:middle;padding-top:'+rs+';"></td>');
            td.appendTo(tr);
            td.data('seriesIndex', idx);
            if (this.escapeHtml) {
                td.text(label);
            }
            else {
                td.html(label);
            }
        }
        return this._elem;
    };
	
})(jQuery);/**
 * Copyright (c) 2009 Chris Leonello
 * jqPlot is currently available for use in all personal or commercial projects 
 * under both the MIT and GPL version 2.0 licenses. This means that you can 
 * choose the license that best suits your project and use it accordingly. 
 *
 * Although not required, the author would appreciate an email letting him 
 * know of any substantial use of jqPlot.  You can reach the author at: 
 * chris dot leonello at gmail dot com or see http://www.jqplot.com/info.php .
 *
 * If you are feeling kind and generous, consider supporting the project by
 * making a donation at: http://www.jqplot.com/donate.php .
 */
(function(d){d.jqplot.DateAxisRenderer=function(){d.jqplot.LinearAxisRenderer.call(this)};d.jqplot.DateAxisRenderer.prototype=new d.jqplot.LinearAxisRenderer();d.jqplot.DateAxisRenderer.prototype.constructor=d.jqplot.DateAxisRenderer;d.jqplot.DateTickFormatter=function(j,k){if(!j){j="%Y/%m/%d"}return Date.create(k).strftime(j)};d.jqplot.DateAxisRenderer.prototype.init=function(n){this.tickOptions.formatter=d.jqplot.DateTickFormatter;this.daTickInterval=null;this._daTickInterval=null;d.extend(true,this,n);var l=this._dataBounds;for(var o=0;o<this._series.length;o++){var p=this._series[o];var r=p.data;var k=p._plotData;var q=p._stackData;for(var m=0;m<r.length;m++){if(this.name=="xaxis"||this.name=="x2axis"){r[m][0]=Date.create(r[m][0]).getTime();k[m][0]=Date.create(r[m][0]).getTime();q[m][0]=Date.create(r[m][0]).getTime();if(r[m][0]<l.min||l.min==null){l.min=r[m][0]}if(r[m][0]>l.max||l.max==null){l.max=r[m][0]}}else{r[m][1]=Date.create(r[m][1]).getTime();k[m][1]=Date.create(r[m][1]).getTime();q[m][1]=Date.create(r[m][1]).getTime();if(r[m][1]<l.min||l.min==null){l.min=r[m][1]}if(r[m][1]>l.max||l.max==null){l.max=r[m][1]}}}}};d.jqplot.DateAxisRenderer.prototype.reset=function(){this.min=this._min;this.max=this._max;this.tickInterval=this._tickInterval;this.numberTicks=this._numberTicks;this.daTickInterval=this._daTickInterval};d.jqplot.DateAxisRenderer.prototype.createTicks=function(){var C=this._ticks;var z=this.ticks;var D=this.name;var B=this._dataBounds;var w,A;var u,x;var l,k;var j,y;if(z.length){for(y=0;y<z.length;y++){var n=z[y];var p=new this.tickRenderer(this.tickOptions);if(n.constructor==Array){p.value=Date.create(n[0]).getTime();p.label=n[1];if(!this.showTicks){p.showLabel=false;p.showMark=false}else{if(!this.showTickMarks){p.showMark=false}}p.setTick(p.value,this.name);this._ticks.push(p)}else{p.value=Date.create(n).getTime();if(!this.showTicks){p.showLabel=false;p.showMark=false}else{if(!this.showTickMarks){p.showMark=false}}p.setTick(p.value,this.name);this._ticks.push(p)}}this.numberTicks=z.length;this.min=this._ticks[0].value;this.max=this._ticks[this.numberTicks-1].value;this.daTickInterval=[(this.max-this.min)/(this.numberTicks-1)/1000,"seconds"]}else{if(D=="xaxis"||D=="x2axis"){w=this._plotDimensions.width}else{w=this._plotDimensions.height}if(this.min!=null&&this.max!=null&&this.numberTicks!=null){this.tickInterval=null}if(this.tickInterval!=null){if(Number(this.tickInterval)){this.daTickInterval=[Number(this.tickInterval),"seconds"]}else{if(typeof this.tickInterval=="string"){var r=this.tickInterval.split(" ");if(r.length==1){this.daTickInterval=[1,r[0]]}else{if(r.length==2){this.daTickInterval=[r[0],r[1]]}}}}}u=((this.min!=null)?Date.create(this.min).getTime():B.min);x=((this.max!=null)?Date.create(this.max).getTime():B.max);if(u==x){var o=24*60*60*500;u-=o;x+=o}var q=x-u;var s,v;s=(this.min!=null)?Date.create(this.min).getTime():u-q/2*(this.padMin-1);v=(this.max!=null)?Date.create(this.max).getTime():x+q/2*(this.padMax-1);this.min=s;this.max=v;q=this.max-this.min;if(this.numberTicks==null){if(this.daTickInterval!=null){var m=Date.create(this.max).diff(this.min,this.daTickInterval[1],true);this.numberTicks=Math.ceil(m/this.daTickInterval[0])+1;this.max=Date.create(this.min).add((this.numberTicks-1)*this.daTickInterval[0],this.daTickInterval[1]).getTime()}else{if(w>200){this.numberTicks=parseInt(3+(w-200)/100,10)}else{this.numberTicks=2}}}if(this.daTickInterval==null){this.daTickInterval=[q/(this.numberTicks-1)/1000,"seconds"]}for(var y=0;y<this.numberTicks;y++){var u=Date.create(this.min);j=u.add(y*this.daTickInterval[0],this.daTickInterval[1]).getTime();var p=new this.tickRenderer(this.tickOptions);if(!this.showTicks){p.showLabel=false;p.showMark=false}else{if(!this.showTickMarks){p.showMark=false}}p.setTick(j,this.name);this._ticks.push(p)}}if(this._daTickInterval==null){this._daTickInterval=this.daTickInterval}};var g=24*60*60*1000;var e=function(j,k){j=String(j);while(j.length<k){j="0"+j}return j};var c={millisecond:1,second:1000,minute:60*1000,hour:60*60*1000,day:g,week:7*g,month:{add:function(l,j){c.year.add(l,Math[j>0?"floor":"ceil"](j/12));var k=l.getMonth()+(j%12);if(k==12){k=0;l.setYear(l.getFullYear()+1)}else{if(k==-1){k=11;l.setYear(l.getFullYear()-1)}}l.setMonth(k)},diff:function(n,l){var j=n.getFullYear()-l.getFullYear();var k=n.getMonth()-l.getMonth()+(j*12);var m=n.getDate()-l.getDate();return k+(m/30)}},year:{add:function(k,j){k.setYear(k.getFullYear()+Math[j>0?"floor":"ceil"](j))},diff:function(k,j){return c.month.diff(k,j)/12}}};for(var i in c){if(i.substring(i.length-1)!="s"){c[i+"s"]=c[i]}}var h=function(m,l){if(Date.prototype.strftime.formatShortcuts[l]){return m.strftime(Date.prototype.strftime.formatShortcuts[l])}else{var j=(Date.prototype.strftime.formatCodes[l]||"").split(".");var k=m["get"+j[0]]?m["get"+j[0]]():"";if(j[1]){k=e(k,j[1])}return k}};var f={succ:function(j){return this.clone().add(1,j)},add:function(l,k){var j=c[k]||c.day;if(typeof j=="number"){this.setTime(this.getTime()+(j*l))}else{j.add(this,l)}return this},diff:function(k,n,j){k=Date.create(k);if(k===null){return null}var l=c[n]||c.day;if(typeof l=="number"){var m=(this.getTime()-k.getTime())/l}else{var m=l.diff(this,k)}return(j?m:Math[m>0?"floor":"ceil"](m))},strftime:function(k){var m=k||"%Y-%m-%d",j="",l;while(m.length>0){if(l=m.match(Date.prototype.strftime.formatCodes.matcher)){j+=m.slice(0,l.index);j+=(l[1]||"")+h(this,l[2]);m=m.slice(l.index+l[0].length)}else{j+=m;m=""}}return j},getShortYear:function(){return this.getYear()%100},getMonthNumber:function(){return this.getMonth()+1},getMonthName:function(){return Date.MONTHNAMES[this.getMonth()]},getAbbrMonthName:function(){return Date.ABBR_MONTHNAMES[this.getMonth()]},getDayName:function(){return Date.DAYNAMES[this.getDay()]},getAbbrDayName:function(){return Date.ABBR_DAYNAMES[this.getDay()]},getDayOrdinal:function(){return Date.ORDINALNAMES[this.getDate()%10]},getHours12:function(){var j=this.getHours();return j>12?j-12:(j==0?12:j)},getAmPm:function(){return this.getHours()>=12?"PM":"AM"},getUnix:function(){return Math.round(this.getTime()/1000,0)},getGmtOffset:function(){var j=this.getTimezoneOffset()/60;var k=j<0?"+":"-";j=Math.abs(j);return k+e(Math.floor(j),2)+":"+e((j%1)*60,2)},getTimezoneName:function(){var j=/(?:\((.+)\)$| ([A-Z]{3}) )/.exec(this.toString());return j[1]||j[2]||"GMT"+this.getGmtOffset()},toYmdInt:function(){return(this.getFullYear()*10000)+(this.getMonthNumber()*100)+this.getDate()},clone:function(){return new Date(this.getTime())}};for(var a in f){Date.prototype[a]=f[a]}var b={create:function(j){if(j instanceof Date){return j}if(typeof j=="number"){return new Date(j)}var o=String(j).replace(/^\s*(.+)\s*$/,"$1"),k=0,l=Date.create.patterns.length,m;var n=o;while(k<l){ms=Date.parse(n);if(!isNaN(ms)){return new Date(ms)}m=Date.create.patterns[k];if(typeof m=="function"){obj=m(n);if(obj instanceof Date){return obj}}else{n=o.replace(m[0],m[1])}k++}return NaN},MONTHNAMES:"January February March April May June July August September October November December".split(" "),ABBR_MONTHNAMES:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),DAYNAMES:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ABBR_DAYNAMES:"Sun Mon Tue Wed Thu Fri Sat".split(" "),ORDINALNAMES:"th st nd rd th th th th th th".split(" "),ISO:"%Y-%m-%dT%H:%M:%S.%N%G",SQL:"%Y-%m-%d %H:%M:%S",daysInMonth:function(j,k){if(k==2){return new Date(j,1,29).getDate()==29?29:28}return[undefined,31,undefined,31,30,31,30,31,31,30,31,30,31][k]}};for(var a in b){Date[a]=b[a]}Date.prototype.strftime.formatCodes={matcher:/()%(#?(%|[a-z]))/i,Y:"FullYear",y:"ShortYear.2",m:"MonthNumber.2","#m":"MonthNumber",B:"MonthName",b:"AbbrMonthName",d:"Date.2","#d":"Date",e:"Date",A:"DayName",a:"AbbrDayName",w:"Day",o:"DayOrdinal",H:"Hours.2","#H":"Hours",I:"Hours12.2","#I":"Hours12",p:"AmPm",M:"Minutes.2","#M":"Minutes",S:"Seconds.2","#S":"Seconds",s:"Unix",N:"Milliseconds.3","#N":"Milliseconds",O:"TimezoneOffset",Z:"TimezoneName",G:"GmtOffset"};Date.prototype.strftime.formatShortcuts={F:"%Y-%m-%d",T:"%H:%M:%S",X:"%H:%M:%S",x:"%m/%d/%y",D:"%m/%d/%y","#c":"%a %b %e %H:%M:%S %Y",v:"%e-%b-%Y",R:"%H:%M",r:"%I:%M:%S %p",t:"\t",n:"\n","%":"%"};Date.create.patterns=[[/-/g,"/"],[/st|nd|rd|th/g,""],[/(3[01]|[0-2]\d)\s*\.\s*(1[0-2]|0\d)\s*\.\s*([1-9]\d{3})/,"$2/$1/$3"],[/([1-9]\d{3})\s*-\s*(1[0-2]|0\d)\s*-\s*(3[01]|[0-2]\d)/,"$2/$3/$1"],function(m){var k=m.match(/^(?:(.+)\s+)?([012]?\d)(?:\s*\:\s*(\d\d))?(?:\s*\:\s*(\d\d(\.\d*)?))?\s*(am|pm)?\s*$/i);if(k){if(k[1]){var l=Date.create(k[1]);if(isNaN(l)){return}}else{var l=new Date();l.setMilliseconds(0)}var j=parseFloat(k[2]);if(k[6]){j=k[6].toLowerCase()=="am"?(j==12?0:j):(j==12?12:j+12)}l.setHours(j,parseInt(k[3]||0,10),parseInt(k[4]||0,10),((parseFloat(k[5]||0))||0)*1000);return l}else{return m}},function(m){var k=m.match(/^(?:(.+))[T|\s+]([012]\d)(?:\:(\d\d))(?:\:(\d\d))(?:\.\d+)([\+\-]\d\d\:\d\d)$/i);if(k){if(k[1]){var l=Date.create(k[1]);if(isNaN(l)){return}}else{var l=new Date();l.setMilliseconds(0)}var j=parseFloat(k[2]);l.setHours(j,parseInt(k[3],10),parseInt(k[4],10),parseFloat(k[5])*1000);return l}else{return m}},function(n){var l=n.match(/^([0-3]?\d)\s*[-\/.\s]{1}\s*([a-zA-Z]{3,9})\s*[-\/.\s]{1}\s*([0-3]?\d)$/);if(l){var m=new Date();var o=parseFloat(String(m.getFullYear()).slice(2,4));var p=parseInt(String(m.getFullYear())/100,10)*100;var r=1;var s=parseFloat(l[1]);var q=parseFloat(l[3]);var k,j,t;if(s>31){j=l[3];if(s<o+r){k=p+s}else{k=p-100+s}}else{j=l[1];if(q<o+r){k=p+q}else{k=p-100+q}}var t=d.inArray(l[2],Date.ABBR_MONTHNAMES);if(t==-1){t=d.inArray(l[2],Date.MONTHNAMES)}m.setFullYear(k,t,j);m.setHours(0,0,0,0);return m}else{return n}}];if(d.jqplot.config.debug){d.date=Date.create}})(jQuery);/**
 * @author alexander.farkas
 * 
 * @version 2.5.4
 * project site: http://plugins.jquery.com/project/AjaxManager
 */
(function($){
	$.support.ajax = !!(window.XMLHttpRequest);
	if(window.ActiveXObject){
		try{
			new ActiveXObject("Microsoft.XMLHTTP");
			$.support.ajax = true;
		} catch(e){
			if(window.XMLHttpRequest){
				$.ajaxSetup({xhr: function(){
					return new XMLHttpRequest();
				}});
			}
		}
	}
	$.manageAjax = (function(){
		var cache 			= {},
			queues			= {},
			presets 		= {},
			activeRequest 	= {},
			allRequests 	= {},
			triggerEndCache = {},
			defaults 		= {
						queue: true, //clear
						maxRequests: 1,
						abortOld: false,
						preventDoubbleRequests: true,
						cacheResponse: false,
						complete: function(){},
						error: function(ahr, status){
							var opts = this;
							if(status && status.indexOf('error') != -1){
								setTimeout(function(){
									var errStr = status +': ';
									if(ahr.status){
										errStr += 'status: '+ ahr.status +' | ';
									}
									errStr += 'URL: '+ opts.url;
									throw new Error(errStr);
								}, 1);
							}
						},
						success: function(){},
						abort: function(){}
				}
		;
		
		function create(name, settings){
			var publicMethods = {};
			presets[name] = presets[name] ||
				{};
			
			$.extend(true, presets[name], $.ajaxSettings, defaults, settings);
			
			if(!allRequests[name]){
				allRequests[name] 	= {};
				activeRequest[name] = {};
				activeRequest[name].queue = [];
				queues[name] 		= [];
				triggerEndCache[name] = [];
			}
			$.each($.manageAjax, function(fnName, fn){
				if($.isFunction(fn) && fnName.indexOf('_') !== 0){
					publicMethods[fnName] = function(param, param2){
						if(param2 && typeof param === 'string'){
							param = param2;
						}
						fn(name, param);
					};
				}
			});
			return publicMethods;
		}
		
		function complete(opts, args){
			
			if(args[1] == 'success' || args[1] == 'notmodified'){
				opts.success.apply(opts, [args[0].successData, args[1]]);
				if (opts.global) {
					$.event.trigger("ajaxSuccess", args);
				}
			}
			
			if(args[1] === 'abort'){
				opts.abort.apply(opts, args);
				if(opts.global){
					$.active--;
					$.event.trigger("ajaxAbort", args);
				}
			}
			
			opts.complete.apply(opts, args);
			
			if (opts.global) {
				$.event.trigger("ajaxComplete", args);
			}
			
			if (opts.global && ! $.active){
				$.event.trigger("ajaxStop");
			}
			//args[0] = null; 
		}
		
		function proxy(oldFn, fn){
			return function(xhr, s, e){
				fn.call(this, xhr, s, e);
				oldFn.call(this, xhr, s, e);
				xhr = null;
				e = null;
			};
		}
		
					
		function callQueueFn(name){
			var q = queues[name];
			if(q && q.length){
				var fn = q.shift();
				if(fn){
					fn();
				}
			}
		}

		
		function add(name, opts){
			if(!presets[name]){
				create(name, opts);
			}
			opts = $.extend({}, presets[name], opts);
			//aliases
			var allR 	= allRequests[name],
				activeR = activeRequest[name],
				queue	= queues[name];

            

			var id 				= opts.type +'_'+ opts.url.replace(/\./g, '_'),
				triggerStart 	= true,
				oldComplete 	= opts.complete,
				ajaxFn 			= function(){
									activeR.queue.push(id);
									activeR[id] = {
										xhr: false,
										ajaxManagerOpts: opts
									};
									activeR[id].xhr = $.ajax(opts);
									return id;
								}
				;
                
            if(opts.data){
				id += (typeof opts.data == 'string') ? opts.data : $.param(opts.data);
			}

            if(opts.preventDoubbleRequests && allRequests[name][id]){
				return false;
			}
			
			allR[id] = true;
			
			opts.complete = function(xhr, s, e){
				var triggerEnd = true;
				if(opts.abortOld){
					$.each(activeR.queue, function(i, activeID){
						if(activeID == id){
							return false;
						}
						abort(name, activeID);
						return activeID;
					});
				}
				oldComplete.call(this, xhr, s, e);
				//stop memory leak
				if(activeRequest[name][id]){
					if(activeRequest[name][id] && activeRequest[name][id].xhr){
						activeRequest[name][id].xhr = null;
					} 
					activeRequest[name][id] = null;
				}
				triggerEndCache[name].push({xhr: xhr, status: s});
				xhr = null;
				activeRequest[name].queue = $.grep(activeRequest[name].queue, function(qid){
					return (qid !== id);
				});
				allR[id] = false;
				
				e = null;
				
				delete activeRequest[name][id];
				
				$.each(activeR, function(id, queueRunning){
					if(id !== 'queue' || queueRunning.length){
						triggerEnd = false;
						return false;
					}
				});
				
				if(triggerEnd){
					$.event.trigger(name +'End', [triggerEndCache[name]]);
					$.each(triggerEndCache[name], function(i, cached){
						cached.xhr = null; //memory leak
					});
					triggerEndCache[name] = [];
				}
			};
			
			if(cache[id]){
				ajaxFn = function(){
					activeR.queue.push(id);
					complete(opts, cache[id]);
					return id;
				};
			} else if(opts.cacheResponse){
                 
				 opts.complete = proxy(opts.complete, function(xhr, s){
					if( s !== "success" && s !== "notmodified" ){
						return false;
					}
					cache[id][0].responseXML 	= xhr.responseXML;
					cache[id][0].responseText 	= xhr.responseText;
					cache[id][1] 				= s;
					//stop memory leak
					xhr = null;
					return id; //strict
				});
				
				opts.success = proxy(opts.success, function(data, s){
					cache[id] = [{
						successData: data,
						ajaxManagerOpts: opts
					}, s];
					data = null;
				});
			}
			
			ajaxFn.ajaxID = id;
			
			$.each(activeR, function(id, queueRunning){
				if(id !== 'queue' || queueRunning.length){
					triggerStart = false;
					return false;
				}
			});
			
			if(triggerStart){
				$.event.trigger(name +'Start');
			}
			if(opts.queue){
				opts.complete = proxy(opts.complete, function(){
					
					callQueueFn(name);
				});
				 
				if(opts.queue === 'clear'){
					queue = clear(name);
				}
				
				queue.push(ajaxFn);
				
				if(activeR.queue.length < opts.maxRequests){
					callQueueFn(name); 
				}
				return id;
			}
			
			
			
			return ajaxFn();
		}
		
		function clear(name, shouldAbort){
			$.each(queues[name], function(i, fn){
				allRequests[name][fn.ajaxID] = false;
			});
			queues[name] = [];
			
			if(shouldAbort){
				abort(name);
			}
			return queues[name];
		}
		
		function getXHR(name, id){
			var ar = activeRequest[name];
			if(!ar || !allRequests[name][id]){
				return false;
			}
			if(ar[id]){
				return ar[id].xhr;
			}
			var queue = queues[name],
				xhrFn;
			$.each(queue, function(i, fn){
				if(fn.ajaxID == id){
					xhrFn = [fn, i];
					return false;
				}
				return xhrFn;
			});
			return xhrFn;
		}
		
		function abort(name, id){
			var ar = activeRequest[name];
			if(!ar){
				return false;
			}
			function abortID(qid){
				if(qid !== 'queue' && ar[qid] && ar[qid].xhr){
					try {
						ar[qid].xhr.abort();
					} catch(e){}
					complete(ar[qid].ajaxManagerOpts, [ar[qid].xhr, 'abort']);
				}
				return null;
			}
			if(id){
				return abortID(id);
			}
			return $.each(ar, abortID);
		}
		
		function unload(){
			$.each(presets, function(name){
				clear(name, true);
			});
			cache = {};
		}
		
		return {
			defaults: 		defaults,
			add: 			add,
			create: 		create,
			cache: 			cache,
			abort: 			abort,
			clear: 			clear,
			getXHR: 		getXHR,
			_activeRequest: activeRequest,
			_complete: 		complete,
			_allRequests: 	allRequests,
			_unload: 		unload
		};
	})();
	//stop memory leaks
	$(window).unload($.manageAjax._unload);
})(jQuery);Chart = function(id, opts) {
    if(!id) {
        throw 'No id value present';
    }
    
    this.MAX_Y_AXES = 9;

    //Value of the id parameter of the div to place the chart into.
    this.id = id;
    this.plotObj = null;
    
    this.opts = {};

    //function that may alter data just before it is passed to $.jqplot
    //will be called once for each series
    this.prePlot = null;

    if(opts) {
        $.extend(true, this.opts, opts);
    }

    this.data = {};
    this.labels = {};
    this.colors = {};

    $.extend(true, Chart.prototype, {
        plot: function() {
            var plotData = [],
                seriesTags = [],
                options = {};

            $.extend(true, options, this.opts);
            if(!options.series) {
                options.series = [];
            }

            for(var seriesTag in this.data) {
                seriesTags.push(seriesTag);
            }

            for(var i=0; i<seriesTags.length; i++) {
                var sData = this.data[seriesTags[i]];
                
                plotData[i] = [];

                if(!options.series[i]) {
                    options.series[i] = {};
                }

                options.series[i].label = !this.labels[seriesTags[i]] ? '' : this.labels[seriesTags[i]];
                options.series[i].color = !this.colors[seriesTags[i]] ? '' : this.colors[seriesTags[i]];
                
                for(var j=0; j<sData.length; j++) {
                   if($.isArray(sData[j])) {
                       plotData[i][j] = [sData[j][0], sData[j][1]];
                   }
                   //process bar chart data correctly, as well as data points in case of category X axis
                   else {
                       plotData[i][j] = sData[j];
                   }
                }
            }

            if($.isFunction(this.prePlot)) {
                for(var i=0; i<plotData.length; i++) {
                    this.prePlot.call(this, plotData[i]);
                }
            }

            var i = 0;
            $('#' + this.id).empty();
           
            $.jqplot(this.id, plotData, options);

        },

        /* add data array for one series */
        addData: function(seriesTag, values) {
            if(!$.isArray(values)) {
                throw 'input parameter must be an array of data points';
            }

            if(typeof seriesTag != 'string') {
                throw 'seriesTag must be a string';
            }

            this.data[seriesTag] = values;
        },

        removeData: function(seriesTag) {
            if(typeof seriesTag != 'string') {
                throw 'seriesTag must be a string';
            }

            if(this.data[seriesTag]) {
                delete this.data[seriesTag];
            }
        },

        clearData: function() {
            this.data = {};
        },

        setLabel: function(seriesTag, label) {
            this.labels[seriesTag] = label;
        },

        removeLabel: function(seriesTag) {
            if(this.labels[seriesTag]) {
                delete this.labels[seriesTag];
            }
        },

        setColor: function(seriesTag, color) {
            this.colors[seriesTag] = color;
        },

        setOpts: function(newOpts) {
            $.extend(true, this.opts, newOpts);
        },

        replaceOpts: function(newOpts) {
            this.opts = newOpts;
        },

        getOpts: function() {
            return this.opts;
        },

        assignYAxis: function(seriesTag, axisNum, useSeriesColor) {
            if(this.data[seriesTag]) {
                if(axisNum <= 0 || axisNum > this.MAX_Y_AXES) {
                    throw 'Incorrect axis number';
                }

                var i,
                    count = 0;
                for(var tag in this.data) {
                    if(tag == seriesTag) {
                        i = count;
                    }

                    count++;
                }

                if(!this.opts.series) {
                    this.opts.series = [];

                    for(var j=0; j<=count; j++) {
                        this.opts.series[j] = {};
                    }
                }

                var axisTitle = (axisNum == 1) ? 'yaxis' : 'y' + axisNum + 'axis';

                this.opts.series[i].yaxis = axisTitle;

                if(typeof useSeriesColor != 'undefined') {
                    if(!this.opts.axes) {
                        this.opts.axes = {};
                    }

                    if(!this.opts.axes[axisTitle]) {
                        this.opts.axes[axisTitle] = {};
                    }

                    this.opts.axes[axisTitle].useSeriesColor = useSeriesColor;
                }
            }
        }
    });

}



ChartManager = function(options) {
    this.charts = {};
    this.results = {};
    this.preloadImgUrls = {};
    this.options = {
        //the name of the variable the JSON response is assigned to if dataType is 'script'
        scriptDataVar: 'chartScriptVar',
        randSDVarOnFirstRequest: false
    };
    this.lastScriptVar = null;
    this.firstRequest = true;
    
    this.ajaxMan = $.manageAjax.create('chartMan', {
        cacheResponse: true,
        preventDoubbleRequests: true,
        abortOld: true,
        queue: true
    });
//
    //clear improper scriptDataVar custom value
    if(options.scriptDataVar && typeof options.scriptDataVar != 'string') {
        delete options.scriptDataVar;
    }

    $.extend(true, this.options, options);
}

$.extend(true, ChartManager.prototype, {

    addChart: function(chartTag, chartId, opts, defValues, preloadImgUrl) {
        if(typeof chartTag != 'string') {
            throw 'chart tag must be a string';
        }

        if(!chartId){
            throw 'no chart div id was specified';
        }

        this.charts[chartTag] = {};
        this.charts[chartTag].chart = new Chart(chartId);
        this.charts[chartTag].params = {};
        this.charts[chartTag].url = '';
        
        var chart = this.charts[chartTag].chart;

        if(opts) {
            chart.setOpts(opts);
        }

        if(defValues) {
            if(defValues.url) {
                this.charts[chartTag].url = defValues.url;
            }
            if(defValues.params) {
                $.extend(true, this.charts[chartTag].params, defValues.params);
            }
        }

        if(preloadImgUrl) {
            this.preloadImgUrls[chartTag] = preloadImgUrl;
        }
    },

    setParams: function(chartTag, newParams) {
        if(this.charts[chartTag]) {
            this.charts[chartTag].params = {};
            $.extend(true, this.charts[chartTag].params, newParams);
        }
    },

    removeChart: function(chartTag) {
        if(this.charts[chartTag]) {
            delete this.charts[chartTag];
        }
    },

    clear: function() {
        this.charts = {};
    },

    storeResult: function(key, data) {
        this.results[key] = data;
    },

    retrieveResult: function(key) {
        if(this.results[key]) {
            return this.results[key];
        }

        return false;
    },
    
    loadData: function(chartTag, params, url, type) {
        if(!this.charts[chartTag] || (!this.charts[chartTag].url && !url) || (!this.charts[chartTag].params && !params)) {
            return false;
        }

        var chartMan = this,
            chart = this.charts[chartTag],
            dataUrl = !url ? chart.url : url,
            getParams = {},
            chartId = chart.chart.id,
            pImgUrl = chartMan.preloadImgUrls[chartTag] ? chartMan.preloadImgUrls[chartTag] : chartMan.options.defPreloadImgUrl;

        $('#' + chartId).empty();
        $('#' + chartId).css('background', 'url(' + pImgUrl + ') no-repeat center center');

        $.extend(true, getParams, chartMan.charts[chartTag].params);
        $.extend(true, getParams, params);

        var key = dataUrl.replace(/\./g, '_') + $.param(getParams),
            cachedData = chartMan.retrieveResult(key);

        if(cachedData !== false) {
            chartMan.lastScriptVar = 'norefresh';
            chartMan.refreshChart(chartTag, cachedData);
            return true;
        }
        
        if(!$.inArray(type, ['json', 'script', 'jsonp'])){
            type = 'json';
        }

        switch(type) {
            case 'json':
                this.ajaxMan.add({type: 'GET', url: dataUrl, dataType: type, data: getParams, success: function(data) {                    
                    if(data) {
    //                    chartMan.storeResult(key, data);

                        chartMan.refreshChart(chartTag, data);
                    }
                }});
                break;

            case 'jsonp':
                $.ajax({type: 'GET', url: dataUrl, dataType: type, data: getParams, cache: true, success: function(data) {
                    if(data) {
                        chartMan.storeResult(key, data);
                        chartMan.refreshChart(chartTag, data);
                    }
                }});
                break;

            case 'script':
                if(!chartMan.options.randSDVarOnFirstRequest
                   && this.firstRequest)
                {
                    var sdVar = chartMan.options.scriptDataVar;
                    this.firstRequest = false;
                }
                else {
                    var date = new Date(),
                        ts = date.getTime(),
                        sdVar = chartMan.options.scriptDataVar + '_' + ts;
                }

                /*
                 * do this so that each handler scope chain will contain a copy
                 * of the current sdVar value, not a reference to the sdVar
                 */
                (function(v) {                
                    $.extend(true, getParams, {scriptDataVar: v});
                    chartMan.lastScriptVar = v;

//                $.ajax({type: 'GET', url: dataUrl, dataType: type, data: getParams, cache: true, success: function() {
//                    if(window[chartMan.options.scriptDataVar]) {
//                        var data = {};
//                        $.extend(true, data, window[chartMan.options.scriptDataVar]);
//                        chartMan.storeResult(key, data);
//                        chartMan.loadData(chartTag, params, url, type);
////                        chartMan.refreshChart(chartTag, data);
//                    }
//                }});
                    $.ajax({type: 'GET', url: dataUrl, dataType: type, cache: true, data: getParams, success: function() {
                        if(window[v]) {
                            var data = {};
                            $.extend(true, data, window[v]);
                            chartMan.storeResult(key, data);
                            
                            var onTimeout = function() {
                                chartMan.refreshChart.call(chartMan, chartTag, data);
                            }

                            if(v === chartMan.lastScriptVar || chartMan.lastScriptVar === null) {
                                chartMan.lastScriptVar = null;
                                window.setTimeout(onTimeout, 500);
                            }
                        }
                    }});
                
                })(sdVar);
                
                break;
        }
            
        return true;
    },

    setUrl: function(chartTag, dataUrl) {
        if(this.charts[chartTag]) {
            this.charts[chartTag].url = dataUrl;
        }
    },

    getChart: function(chartTag) {
        if(this.charts[chartTag]) {
            return this.charts[chartTag].chart;
        }

        return false;
    },

    refreshChart: function(chartTag, data) {
        var chart = this.getChart(chartTag);
        if(this.charts[chartTag]) {

            for(var seriesTag in data) {
                var series = data[seriesTag];

                if(!$.isArray(series.data)) {
                    continue;
                }

                chart.addData(seriesTag, series.data);
                if(series.label) {
                    chart.setLabel(seriesTag, series.label);
                }

                if(series.color) {
                    chart.setColor(seriesTag, series.color);
                }
            }

            chart.plot();
            $('#' + chart.id).css('background', '');
        }
    },

    _toQueue: function(key, item){
        this.scriptQueue.push({})
    },

    _lastFromQueue: function() {
        if(!this.scriptQueue.length) {
            return false;
        }

        return this.scriptQueue[this.scriptQueue.length];
    },

    _inQueue: function(key) {
        
    }
});






CurrencyConv = function () {
    //hash of currencyName - currencyRate pairs (all rates should be in hrivnas)
	this.currencyRates = {};
    this.fromCode = '';
    this.toCode = '';
};

$.extend(true, CurrencyConv.prototype, {
	calculate: function(amount){
        var ratio = this.getRatio(),
            convertedValue =  ratio * amount;

        return parseFloat(convertedValue.toFixed(2));
    },
    getRatio: function() {
        var fromRate = this.currencyRates[this.fromCode],
            toRate = this.currencyRates[this.toCode],
            ratio = fromRate / toRate;

        return parseFloat(ratio.toFixed(2));
    },
	addCurrency: function(code, rate) {
		if(!code.match(/[A-Z]{3}/)) {
			throw 'Invalid currency code: ' + code;
		}

        this.currencyRates[code] = rate;

        return this;
	},
	removeCurrency: function(code, rate) {
        if(this.hasCurrency(code)) {
            delete this.currencyRates[code];
		}

        return this;
	},
    hasCurrency: function(code) {
        if(typeof code == 'string' && this.currencyRates[code]) {
            return true;
        }

        return false;
    },
    getCurrencyList: function() {
        var cList = {};
        $.extend(true, cList, this.currencyRates);

        return cList;
    },
    setFrom: function(code) {
        if(this.hasCurrency(code)) {
            this.fromCode = code;
        }

        return this;
    },
    setTo: function(code) {
        if(this.hasCurrency(code)) {
            this.toCode = code;
        }

        return this;
    },
    getFrom: function() {
        return this.fromCode;
    },
    getTo: function() {
        return this.toCode;
    },
    toString: function() {
        var txt = '';
        for(var code in this.currencyRates) {
            txt += code + ': ' + this.currencyRates[code] + '\n';
        }

        return txt;
    }
});
CurrencyConvManager = function(options) {
    this.converters = {};
    this.status = {};
    this.options = {defFrom: 'USD', defTo: 'UAH'};

    $.extend(true, this.options, options);
};

$.extend(true, CurrencyConvManager.prototype, {
    addConverter: function(tag, convObj, options) {
        this.converters[tag] = convObj;
    },
    removeConverter: function(tag) {
        if(this.converters[tag]) {
            delete this.converters[tag];
            delete this.currTypeSources[tag];
            delete this.currTypeSources[tag];
        }

        return this;
    },
    getConverter: function(tag) {
        return this.converters[tag];
    },
    
    storeStatus: function(tag, codeFrom, codeTo) {
        var convObj = this.getConverter(tag),
            from = convObj.hasCurrency(codeFrom) ? codeFrom : this.options.defFrom,
            to = convObj.hasCurrency(codeTo) ? codeTo : this.options.defTo;

        convObj.setFrom(from)
               .setTo(to);

        return this;
    },
    getStatus: function(tag) {
        var convObj = this.getConverter(tag),
            status = {
                from: convObj.getFrom(),
                to: convObj.getTo()
            };

        return status;
    },
    getCalculatedValue: function(tag, amount) {
        return this.getConverter(tag).calculate(amount);
    },
    getRatioMsg: function(tag) {
        var msg = '',
            convObj = this.getConverter(tag),
            from = convObj.getFrom(),
            to = convObj.getTo(),
            ratio = convObj.getRatio();

        msg += '1 ' + from + ' = ' + ratio.toFixed(2) + ' ' + to;

        return msg;
    }    
});


/**
 * @version: 1.1.3
 * Created by Fabio M. Costa on 2008-09-16. Please report any bug at http://www.meiocodigo.com
 * Copyright (c) 2008 Fabio M. Costa http://www.meiocodigo.com
 * The MIT License (http://www.opensource.org/licenses/mit-license.php)
 */
(function(D){var C=(window.orientation!=undefined),A=((D.browser.opera||(D.browser.mozilla&&parseFloat(D.browser.version.substr(0,3))<1.9))?"input":"paste");D.event.special.paste={setup:function(){if(this.addEventListener){this.addEventListener(A,B,false)}else{if(this.attachEvent){this.attachEvent(A,B)}}},teardown:function(){if(this.removeEventListener){this.removeEventListener(A,B,false)}else{if(this.detachEvent){this.detachEvent(A,B)}}}};function B(F){var E=this;F=D.event.fix(F||window.e);F.type="paste";setTimeout(function(){D.event.handle.call(E,F)},1)}D.extend({mask:{rules:{"z":/[a-z]/,"Z":/[A-Z]/,"a":/[a-zA-Z]/,"*":/[0-9a-zA-Z]/,"@":/[0-9a-zA-ZçÇáàãâéèêíìóòôõúùü]/},keyRepresentation:{8:"backspace",9:"tab",13:"enter",16:"shift",17:"control",18:"alt",27:"esc",33:"page up",34:"page down",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"delete",116:"f5",123:"f12",224:"command"},iphoneKeyRepresentation:{10:"go",127:"delete"},signals:{"+":"","-":"-"},options:{attr:"alt",mask:null,type:"fixed",maxLength:-1,defaultValue:"",signal:false,textAlign:true,selectCharsOnFocus:true,autoTab:true,setSize:false,fixedChars:"[(),.:/ -]",onInvalid:function(){},onValid:function(){},onOverflow:function(){}},masks:{"phone":{mask:"(99) 9999-9999"},"phone-us":{mask:"(999) 999-9999"},"cpf":{mask:"999.999.999-99"},"cnpj":{mask:"99.999.999/9999-99"},"date":{mask:"39/19/9999"},"date-us":{mask:"19/39/9999"},"cep":{mask:"99999-999"},"time":{mask:"29:59"},"cc":{mask:"9999 9999 9999 9999"},"integer":{mask:"999.999.999.999",type:"reverse"},"decimal":{mask:"99,999.999.999.999",type:"reverse",defaultValue:"000"},"decimal-us":{mask:"99.999,999,999,999",type:"reverse",defaultValue:"000"},"signed-decimal":{mask:"99,999.999.999.999",type:"reverse",defaultValue:"+000"},"signed-decimal-us":{mask:"99,999.999.999.999",type:"reverse",defaultValue:"+000"}},init:function(){if(!this.hasInit){var E=this,F,G=(C)?this.iphoneKeyRepresentation:this.keyRepresentation;this.ignore=false;for(F=0;F<=9;F++){this.rules[F]=new RegExp("[0-"+F+"]")}this.keyRep=G;this.ignoreKeys=[];D.each(G,function(H){E.ignoreKeys.push(parseInt(H))});this.hasInit=true}},set:function(I,F){var E=this,G=D(I),H="maxLength";F=F||{};this.init();return G.each(function(){if(F.attr){E.options.attr=F.attr}var O=D(this),Q=D.extend({},E.options),N=O.attr(Q.attr),J="";J=(typeof F=="string")?F:(N!="")?N:null;if(J){Q.mask=J}if(E.masks[J]){Q=D.extend(Q,E.masks[J])}if(typeof F=="object"&&F.constructor!=Array){Q=D.extend(Q,F)}if(D.metadata){Q=D.extend(Q,O.metadata())}if(Q.mask!=null){if(O.data("mask")){E.unset(O)}var K=Q.defaultValue,L=(Q.type=="reverse"),M=new RegExp(Q.fixedChars,"g");if(Q.maxLength==-1){Q.maxLength=O.attr(H)}Q=D.extend({},Q,{fixedCharsReg:new RegExp(Q.fixedChars),fixedCharsRegG:M,maskArray:Q.mask.split(""),maskNonFixedCharsArray:Q.mask.replace(M,"").split("")});if((Q.type=="fixed"||L)&&Q.setSize&&!O.attr("size")){O.attr("size",Q.mask.length)}if(L&&Q.textAlign){O.css("text-align","right")}if(this.value!=""||K!=""){var P=E.string((this.value!="")?this.value:K,Q);this.defaultValue=P;O.val(P)}if(Q.type=="infinite"){Q.type="repeat"}O.data("mask",Q);O.removeAttr(H);O.bind("keydown.mask",{func:E._onKeyDown,thisObj:E},E._onMask).bind("keypress.mask",{func:E._onKeyPress,thisObj:E},E._onMask).bind("keyup.mask",{func:E._onKeyUp,thisObj:E},E._onMask).bind("paste.mask",{func:E._onPaste,thisObj:E},E._onMask).bind("focus.mask",E._onFocus).bind("blur.mask",E._onBlur).bind("change.mask",E._onChange)}})},unset:function(F){var E=D(F);return E.each(function(){var H=D(this);if(H.data("mask")){var G=H.data("mask").maxLength;if(G!=-1){H.attr("maxLength",G)}H.unbind(".mask").removeData("mask")}})},string:function(J,F){this.init();var I={};if(typeof J!="string"){J=String(J)}switch(typeof F){case"string":if(this.masks[F]){I=D.extend(I,this.masks[F])}else{I.mask=F}break;case"object":I=F}if(!I.fixedChars){I.fixedChars=this.options.fixedChars}var E=new RegExp(I.fixedChars),G=new RegExp(I.fixedChars,"g");if((I.type=="reverse")&&I.defaultValue){if(typeof this.signals[I.defaultValue.charAt(0)]!="undefined"){var H=J.charAt(0);I.signal=(typeof this.signals[H]!="undefined")?this.signals[H]:this.signals[I.defaultValue.charAt(0)];I.defaultValue=I.defaultValue.substring(1)}}return this.__maskArray(J.split(""),I.mask.replace(G,"").split(""),I.mask.split(""),I.type,I.maxLength,I.defaultValue,E,I.signal)},_onFocus:function(G){var F=D(this),E=F.data("mask");E.inputFocusValue=F.val();E.changed=false;if(E.selectCharsOnFocus){F.select()}},_onBlur:function(G){var F=D(this),E=F.data("mask");if(E.inputFocusValue!=F.val()&&!E.changed){F.trigger("change")}},_onChange:function(E){D(this).data("mask").changed=true},_onMask:function(E){var G=E.data.thisObj,F={};F._this=E.target;F.$this=D(F._this);if(F.$this.attr("readonly")){return true}F.data=F.$this.data("mask");F[F.data.type]=true;F.value=F.$this.val();F.nKey=G.__getKeyNumber(E);F.range=G.__getRange(F._this);F.valueArray=F.value.split("");return E.data.func.call(G,E,F)},_onKeyDown:function(F,G){this.ignore=D.inArray(G.nKey,this.ignoreKeys)>-1||F.ctrlKey||F.metaKey||F.altKey;if(this.ignore){var E=this.keyRep[G.nKey];G.data.onValid.call(G._this,E?E:"",G.nKey)}return C?this._keyPress(F,G):true},_onKeyUp:function(E,F){if(F.nKey==9||F.nKey==16){return true}if(F.data.type=="repeat"){this.__autoTab(F);return true}return this._onPaste(E,F)},_onPaste:function(F,G){if(G.reverse){this.__changeSignal(F.type,G)}var E=this.__maskArray(G.valueArray,G.data.maskNonFixedCharsArray,G.data.maskArray,G.data.type,G.data.maxLength,G.data.defaultValue,G.data.fixedCharsReg,G.data.signal);G.$this.val(E);if(!G.reverse&&G.data.defaultValue.length&&(G.range.start==G.range.end)){this.__setRange(G._this,G.range.start,G.range.end)}if((D.browser.msie||D.browser.safari)&&!G.reverse){this.__setRange(G._this,G.range.start,G.range.end)}if(this.ignore){return true}this.__autoTab(G);return true},_onKeyPress:function(L,E){if(this.ignore){return true}if(E.reverse){this.__changeSignal(L.type,E)}var M=String.fromCharCode(E.nKey),O=E.range.start,I=E.value,G=E.data.maskArray;if(E.reverse){var H=I.substr(0,O),K=I.substr(E.range.end,I.length);I=H+M+K;if(E.data.signal&&(O-E.data.signal.length>0)){O-=E.data.signal.length}}var N=I.replace(E.data.fixedCharsRegG,"").split(""),F=this.__extraPositionsTill(O,G,E.data.fixedCharsReg);E.rsEp=O+F;if(E.repeat){E.rsEp=0}if(!this.rules[G[E.rsEp]]||(E.data.maxLength!=-1&&N.length>=E.data.maxLength&&E.repeat)){E.data.onOverflow.call(E._this,M,E.nKey);return false}else{if(!this.rules[G[E.rsEp]].test(M)){E.data.onInvalid.call(E._this,M,E.nKey);return false}else{E.data.onValid.call(E._this,M,E.nKey)}}var J=this.__maskArray(N,E.data.maskNonFixedCharsArray,G,E.data.type,E.data.maxLength,E.data.defaultValue,E.data.fixedCharsReg,E.data.signal,F);E.$this.val(J);return(E.reverse)?this._keyPressReverse(L,E):(E.fixed)?this._keyPressFixed(L,E):true},_keyPressFixed:function(E,F){if(F.range.start==F.range.end){if((F.rsEp==0&&F.value.length==0)||F.rsEp<F.value.length){this.__setRange(F._this,F.rsEp,F.rsEp+1)}}else{this.__setRange(F._this,F.range.start,F.range.end)}return true},_keyPressReverse:function(E,F){if(D.browser.msie&&((F.range.start==0&&F.range.end==0)||F.range.start!=F.range.end)){this.__setRange(F._this,F.value.length)}return false},__autoTab:function(F){if(F.data.autoTab&&((F.$this.val().length>=F.data.maskArray.length&&!F.repeat)||(F.data.maxLength!=-1&&F.valueArray.length>=F.data.maxLength&&F.repeat))){var E=this.__getNextInput(F._this,F.data.autoTab);if(E){F.$this.trigger("blur");E.focus().select()}}},__changeSignal:function(F,G){if(G.data.signal!==false){var E=(F=="paste")?G.value.charAt(0):String.fromCharCode(G.nKey);if(this.signals&&(typeof this.signals[E]!="undefined")){G.data.signal=this.signals[E]}}},__getKeyNumber:function(E){return(E.charCode||E.keyCode||E.which)},__maskArray:function(M,H,G,J,E,K,N,L,F){if(J=="reverse"){M.reverse()}M=this.__removeInvalidChars(M,H,J=="repeat"||J=="infinite");if(K){M=this.__applyDefaultValue.call(M,K)}M=this.__applyMask(M,G,F,N);switch(J){case"reverse":M.reverse();return(L||"")+M.join("").substring(M.length-G.length);case"infinite":case"repeat":var I=M.join("");return(E!=-1&&M.length>=E)?I.substring(0,E):I;default:return M.join("").substring(0,G.length)}return""},__applyDefaultValue:function(G){var E=G.length,F=this.length,H;for(H=F-1;H>=0;H--){if(this[H]==G.charAt(0)){this.pop()}else{break}}for(H=0;H<E;H++){if(!this[H]){this[H]=G.charAt(H)}}return this},__removeInvalidChars:function(H,G,E){for(var F=0,I=0;F<H.length;F++){if(G[I]&&this.rules[G[I]]&&!this.rules[G[I]].test(H[F])){H.splice(F,1);if(!E){I--}F--}if(!E){I++}}return H},__applyMask:function(H,F,I,E){if(typeof I=="undefined"){I=0}for(var G=0;G<H.length+I;G++){if(F[G]&&E.test(F[G])){H.splice(G,0,F[G])}}return H},__extraPositionsTill:function(H,F,E){var G=0;while(E.test(F[H++])){G++}return G},__getNextInput:function(N,F){var I=N.form.elements,H=D.inArray(N,I)+1,M=null,J;for(J=H;J<I.length;J++){M=D(I[J]);if(this.__isNextInput(M,F)){return M}}var E=document.forms,G=D.inArray(N.form,E)+1,L,K=null;for(L=G;L<E.length;L++){K=E[L].elements;for(J=0;J<K.length;J++){M=D(K[J]);if(this.__isNextInput(M,F)){return M}}}return null},__isNextInput:function(G,E){var F=G.get(0);return F&&(F.offsetWidth>0||F.offsetHeight>0)&&F.nodeName!="FIELDSET"&&(E===true||(typeof E=="string"&&G.is(E)))},__setRange:function(G,H,E){if(typeof E=="undefined"){E=H}if(G.setSelectionRange){G.setSelectionRange(H,E)}else{var F=G.createTextRange();F.collapse();F.moveStart("character",H);F.moveEnd("character",E-H);F.select()}},__getRange:function(F){if(!D.browser.msie){return{start:F.selectionStart,end:F.selectionEnd}}var G={start:0,end:0},E=document.selection.createRange();G.start=0-E.duplicate().moveStart("character",-100000);G.end=G.start+E.text.length;return G},unmaskedVal:function(E){return D(E).val().replace(D.mask.fixedCharsRegG,"")}}});D.fn.extend({setMask:function(E){return D.mask.set(this,E)},unsetMask:function(){return D.mask.unset(this)},unmaskedVal:function(){return D.mask.unmaskedVal(this[0])}})})(jQuery)


