
function base_url(){var base_url='http://'+window.location.host+'/';}
function site_url(path){return base_url()+path;}
(function(){if(window.jQuery)
var _jQuery=window.jQuery;var jQuery=window.jQuery=function(selector,context){return new jQuery.prototype.init(selector,context);};if(window.$)
var _$=window.$;window.$=jQuery;var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;var isSimple=/^.[^:#\[\.]*$/;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}else if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])
selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem)
if(elem.id!=match[3])
return jQuery().find(selector);else{this[0]=elem;this.length=1;return this;}
else
selector=[];}}else
return new jQuery(context).find(selector);}else if(jQuery.isFunction(selector))
return new jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(selector.constructor==Array&&selector||(selector.jquery||selector.length&&selector!=window&&!selector.nodeType&&selector[0]!=undefined&&selector[0].nodeType)&&jQuery.makeArray(selector)||[selector]);},jquery:"1.2.2",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;this.each(function(i){if(this==elem)
ret=i;});return ret;},attr:function(name,value,type){var options=name;if(name.constructor==String)
if(value==undefined)
return this.length&&jQuery[type||"attr"](this[0],name)||undefined;else{options={};options[name]=value;}
return this.each(function(i){for(name in options)
jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)
value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)
return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)
ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])
jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)
elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)
this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)
this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div"),container2=document.createElement("div");container.appendChild(clone);container2.innerHTML=container.innerHTML;return container2.firstChild;}else
return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)
this[expando]=null;});if(events===true)
this.find("*").andSelf().each(function(i){if(this.nodeType==3)
return;var events=jQuery.data(this,"events");for(var type in events)
for(var handler in events[type])
jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)
if(isSimple.test(selector))
return this.pushStack(jQuery.multiFilter(selector,this,true));else
selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return!selector?this:this.pushStack(jQuery.merge(this.get(),selector.constructor==String?jQuery(selector).get():selector.length!=undefined&&(!selector.nodeName||jQuery.nodeName(selector,"form"))?selector:[selector]));},is:function(selector){return selector?jQuery.multiFilter(selector,this).length>0:false;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)
return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)
return value;values.push(value);}}
return values;}else
return(this[0].value||"").replace(/\r/g,"");}
return undefined;}
return this.each(function(){if(this.nodeType!=1)
return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))
this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=value.constructor==Array?value:[value];jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)
this.selectedIndex=-1;}else
this.value=value;});},html:function(value){return value==undefined?(this.length?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)
elems.reverse();}
var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))
obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script")){scripts=scripts.add(elem);}else{if(elem.nodeType==1)
scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.prototype.init.prototype=jQuery.prototype;function evalScript(i,elem){if(elem.src)
jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)
elem.parentNode.removeChild(elem);}
jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}
if(typeof target!="object"&&typeof target!="function")
target={};if(length==1){target=this;i=0;}
for(;i<length;i++)
if((options=arguments[i])!=null)
for(var name in options){if(target===options[name])
continue;if(deep&&options[name]&&typeof options[name]=="object"&&target[name]&&!options[name].nodeType)
target[name]=jQuery.extend(target[name],options[name]);else if(options[name]!=undefined)
target[name]=options[name];}
return target;};var expando="jQuery"+(new Date()).getTime(),uuid=0,windowData={};var exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i;jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)
window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/function/i.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)
script.text=data;else
script.appendChild(document.createTextNode(data));head.appendChild(script);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)
id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])
jQuery.cache[id]={};if(data!=undefined)
jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])
break;if(!name)
jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)
elem.removeAttribute(expando);}
delete jQuery.cache[id];}},each:function(object,callback,args){if(args){if(object.length==undefined){for(var name in object)
if(callback.apply(object[name],args)===false)
break;}else
for(var i=0,length=object.length;i<length;i++)
if(callback.apply(object[i],args)===false)
break;}else{if(object.length==undefined){for(var name in object)
if(callback.call(object[name],name,object[name])===false)
break;}else
for(var i=0,length=object.length,value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}
return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))
value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))
elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)
elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}
callback.call(elem);for(var name in options)
elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}
if(jQuery(elem).is(":visible"))
getWH();else
jQuery.swap(elem,props,getWH);return Math.max(0,val);}
return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret;function color(elem){if(!jQuery.browser.safari)
return false;var ret=document.defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}
if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(elem.style,"opacity");return ret==""?"1":ret;}
if(jQuery.browser.opera&&name=="display"){var save=elem.style.display;elem.style.display="block";elem.style.display=save;}
if(name.match(/float/i))
name=styleFloat;if(!force&&elem.style&&elem.style[name])
ret=elem.style[name];else if(document.defaultView&&document.defaultView.getComputedStyle){if(name.match(/float/i))
name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var getComputedStyle=document.defaultView.getComputedStyle(elem,null);if(getComputedStyle&&!color(elem))
ret=getComputedStyle.getPropertyValue(name);else{var swap=[],stack=[];for(var a=elem;a&&color(a);a=a.parentNode)
stack.unshift(a);for(var i=0;i<stack.length;i++)
if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}
ret=name=="display"&&swap[stack.length-1]!=null?"none":(getComputedStyle&&getComputedStyle.getPropertyValue(name))||"";for(var i=0;i<swap.length;i++)
if(swap[i]!=null)
stack[i].style.display=swap[i];}
if(name=="opacity"&&ret=="")
ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var style=elem.style.left,runtimeStyle=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;elem.style.left=ret||0;ret=elem.style.pixelLeft+"px";elem.style.left=style;elem.runtimeStyle.left=runtimeStyle;}}
return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')
context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)
return;if(elem.constructor==Number)
elem=elem.toString();if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)
div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)
if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)
tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))
div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}
elem=jQuery.makeArray(div.childNodes);}
if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))
return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)
ret.push(elem);else
ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)
return undefined;var fix=jQuery.isXMLDoc(elem)?{}:jQuery.props;if(name=="selected"&&jQuery.browser.safari)
elem.parentNode.selectedIndex;if(fix[name]){if(value!=undefined)
elem[fix[name]]=value;return elem[fix[name]];}else if(jQuery.browser.msie&&name=="style")
return jQuery.attr(elem.style,"cssText",value);else if(value==undefined&&jQuery.browser.msie&&jQuery.nodeName(elem,"form")&&(name=="action"||name=="method"))
return elem.getAttributeNode(name).nodeValue;else if(elem.tagName){if(value!=undefined){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)
throw"type property can't be changed";elem.setAttribute(name,""+value);}
if(jQuery.browser.msie&&/href|src/.test(name)&&!jQuery.isXMLDoc(elem))
return elem.getAttribute(name,2);return elem.getAttribute(name);}else{if(name=="opacity"&&jQuery.browser.msie){if(value!=undefined){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+
(parseFloat(value).toString()=="NaN"?"":"alpha(opacity="+value*100+")");}
return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100).toString():"";}
name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(value!=undefined)
elem[name]=value;return elem[name];}},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(typeof array!="array")
for(var i=0,length=array.length;i<length;i++)
ret.push(array[i]);else
ret=array.slice(0);return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)
if(array[i]==elem)
return i;return-1;},merge:function(first,second){if(jQuery.browser.msie){for(var i=0;second[i];i++)
if(second[i].nodeType!=8)
first.push(second[i]);}else
for(var i=0;second[i];i++)
first.push(second[i]);return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}
return ret;},grep:function(elems,callback,inv){if(typeof callback=="string")
callback=eval("false||function(a,i){return "+callback+"}");var ret=[];for(var i=0,length=elems.length;i<length;i++)
if(!inv&&callback(elems[i],i)||inv&&!callback(elems[i],i))
ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!==null&&value!=undefined){if(value.constructor!=Array)
value=[value];ret=ret.concat(value);}}
return ret;}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,innerHTML:"innerHTML",className:"className",value:"value",disabled:"disabled",checked:"checked",readonly:"readOnly",selected:"selected",maxlength:"maxLength",selectedIndex:"selectedIndex",defaultValue:"defaultValue",tagName:"tagName",nodeName:"nodeName"}});jQuery.each({parent:"elem.parentNode",parents:"jQuery.dir(elem,'parentNode')",next:"jQuery.nth(elem,2,'nextSibling')",prev:"jQuery.nth(elem,2,'previousSibling')",nextAll:"jQuery.dir(elem,'nextSibling')",prevAll:"jQuery.dir(elem,'previousSibling')",siblings:"jQuery.sibling(elem.parentNode.firstChild,elem)",children:"jQuery.sibling(elem.firstChild)",contents:"jQuery.nodeName(elem,'iframe')?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes)"},function(name,fn){fn=eval("false||function(elem){return "+fn+"}");jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")
ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)
jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)
this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)
this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)
this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":"m[2]=='*'||jQuery.nodeName(a,m[2])","#":"a.getAttribute('id')==m[2]",":":{lt:"i<m[3]-0",gt:"i>m[3]-0",nth:"m[3]-0==i",eq:"m[3]-0==i",first:"i==0",last:"i==r.length-1",even:"i%2==0",odd:"i%2","first-child":"a.parentNode.getElementsByTagName('*')[0]==a","last-child":"jQuery.nth(a.parentNode.lastChild,1,'previousSibling')==a","only-child":"!jQuery.nth(a.parentNode.lastChild,2,'previousSibling')",parent:"a.firstChild",empty:"!a.firstChild",contains:"(a.textContent||a.innerText||jQuery(a).text()||'').indexOf(m[3])>=0",visible:'"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden"',hidden:'"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden"',enabled:"!a.disabled",disabled:"a.disabled",checked:"a.checked",selected:"a.selected||jQuery.attr(a,'selected')",text:"'text'==a.type",radio:"'radio'==a.type",checkbox:"'checkbox'==a.type",file:"'file'==a.type",password:"'password'==a.type",submit:"'submit'==a.type",image:"'image'==a.type",reset:"'reset'==a.type",button:'"button"==a.type||jQuery.nodeName(a,"button")',input:"/input|select|textarea|button/i.test(a.nodeName)",has:"jQuery.find(m[3],a).length",header:"/h\\d/i.test(a.nodeName)",animated:"jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length"}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}
return cur;},find:function(t,context){if(typeof t!="string")
return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)
return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false;var re=quickChild;var m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)
for(var c=ret[i].firstChild;c;c=c.nextSibling)
if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))
r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)
if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}
if(m=="+")break;}}
ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}
if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}
m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])
oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")
tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}
if(m[1]==".")
r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)
if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}
r=tmp;}
ret=r;}
t=t.replace(re2,"");}}
if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}
if(t)
ret=[];if(ret&&context==ret[0])
ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)
tmp.push(r[i]);}
return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}
if(!m)
break;if(m[1]==":"&&m[2]=="not")
r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")
r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))
z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)
tmp.push(a);}
r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)
if(n.nodeType==1)
n.nodeIndex=c++;merge[id]=true;}
var add=false;if(first==0){if(node.nodeIndex==last)
add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)
add=true;if(add^not)
tmp.push(node);}
r=tmp;}else{var f=jQuery.expr[m[1]];if(typeof f!="string")
f=jQuery.expr[m[1]][m[2]];f=eval("false||function(a,i){return "+f+"}");r=jQuery.grep(r,f,not);}}
return{r:r,t:t};},dir:function(elem,dir){var matched=[];var cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)
matched.push(cur);cur=cur[dir];}
return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])
if(cur.nodeType==1&&++num==result)
break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&(!elem||n!=elem))
r.push(n);}
return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)
return;if(jQuery.browser.msie&&elem.setInterval!=undefined)
elem=window;if(!handler.guid)
handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=function(){return fn.apply(this,arguments);};handler.data=data;handler.guid=fn.guid;}
var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){var val;if(typeof jQuery=="undefined"||jQuery.event.triggered)
return val;val=jQuery.event.handle.apply(arguments.callee.elem,arguments);return val;});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)
elem.addEventListener(type,handle,false);else if(elem.attachEvent)
elem.attachEvent("on"+type,handle);}}
handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)
return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined)
for(var type in events)
this.remove(elem,type);else{if(types.type){handler=types.handler;types=types.type;}
jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)
delete events[type][handler.guid];else
for(handler in events[type])
if(!parts[1]||events[type][handler].type==parts[1])
delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)
elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)
elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}
ret=null;delete events[type];}}});}
for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data||[]);if(!elem){if(this.global[type])
jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)
return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event)
data.unshift(this.fix({type:type,target:elem}));data[0].type=type;if(jQuery.isFunction(jQuery.data(elem,"handle")))
val=jQuery.data(elem,"handle").apply(elem,data);if(!fn&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)
val=false;if(event)
data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)
val=ret;}
if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}
this.triggered=false;}
return val;},handle:function(event){var val;event=jQuery.event.fix(event||window.event||{});var parts=event.type.split(".");event.type=parts[0];var handlers=jQuery.data(this,"events")&&jQuery.data(this,"events")[event.type],args=Array.prototype.slice.call(arguments,1);args.unshift(event);for(var j in handlers){var handler=handlers[j];args[0].handler=handler;args[0].data=handler.data;if(!parts[1]||handler.type==parts[1]){var ret=handler.apply(this,args);if(val!==false)
val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}
if(jQuery.browser.msie)
event.target=event.preventDefault=event.stopPropagation=event.handler=event.data=null;return val;},fix:function(event){var originalEvent=event;event=jQuery.extend({},originalEvent);event.preventDefault=function(){if(originalEvent.preventDefault)
originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)
originalEvent.stopPropagation();originalEvent.cancelBubble=true;};if(!event.target)
event.target=event.srcElement||document;if(event.target.nodeType==3)
event.target=originalEvent.target.parentNode;if(!event.relatedTarget&&event.fromElement)
event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}
if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))
event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)
event.metaKey=event.ctrlKey;if(!event.which&&event.button)
event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;arguments[0].type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;arguments[0].type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){return this.each(function(){jQuery.event.add(this,type,function(event){jQuery(this).unbind(event);return(fn||data).apply(this,arguments);},fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){if(this[0])
return jQuery.event.trigger(type,data,this[0],false,fn);return undefined;},toggle:function(){var args=arguments;return this.click(function(event){this.lastToggle=0==this.lastToggle?1:0;event.preventDefault();return args[this.lastToggle].apply(this,arguments)||false;});},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)
fn.call(document,jQuery);else
jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.apply(document);});jQuery.readyList=null;}
jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)
document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}
jQuery.ready();})();if(jQuery.browser.opera)
document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)
if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}
jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}
if(numStyles===undefined)
numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}
jQuery.ready();})();}
jQuery.event.add(window,"load",jQuery.ready);}
jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}
return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({load:function(url,params,callback){if(jQuery.isFunction(url))
return this.bind("load",url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}
callback=callback||function(){};var type="GET";if(params)
if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}
var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")
self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=(new Date).getTime();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}
return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}
return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,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(s){var jsonp,jsre=/=\?(&|$)/g,status,data;s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));if(s.data&&s.processData&&typeof s.data!="string")
s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(s.type.toLowerCase()=="get"){if(!s.url.match(jsre))
s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))
s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}
if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)
s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}
if(head)
head.removeChild(script);};}
if(s.dataType=="script"&&s.cache==null)
s.cache=false;if(s.cache===false&&s.type.toLowerCase()=="get"){var ts=(new Date()).getTime();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}
if(s.data&&s.type.toLowerCase()=="get"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}
if(s.global&&!jQuery.active++)
jQuery.event.trigger("ajaxStart");if((!s.url.indexOf("http")||!s.url.indexOf("//"))&&(s.dataType=="script"||s.dataType=="json")&&s.type.toLowerCase()=="get"){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)
script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}
head.appendChild(script);return undefined;}
var requestDone=false;var xml=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();xml.open(s.type,s.url,s.async,s.username,s.password);try{if(s.data)
xml.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)
xml.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xml.setRequestHeader("X-Requested-With","XMLHttpRequest");xml.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}
if(s.beforeSend)
s.beforeSend(xml);if(s.global)
jQuery.event.trigger("ajaxSend",[xml,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xml&&(xml.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}
status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xml)&&"error"||s.ifModified&&jQuery.httpNotModified(xml,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xml,s.dataType);}catch(e){status="parsererror";}}
if(status=="success"){var modRes;try{modRes=xml.getResponseHeader("Last-Modified");}catch(e){}
if(s.ifModified&&modRes)
jQuery.lastModified[s.url]=modRes;if(!jsonp)
success();}else
jQuery.handleError(s,xml,status);complete();if(s.async)
xml=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)
setTimeout(function(){if(xml){xml.abort();if(!requestDone)
onreadystatechange("timeout");}},s.timeout);}
try{xml.send(s.data);}catch(e){jQuery.handleError(s,xml,null,e);}
if(!s.async)
onreadystatechange();function success(){if(s.success)
s.success(data,status);if(s.global)
jQuery.event.trigger("ajaxSuccess",[xml,s]);}
function complete(){if(s.complete)
s.complete(xml,status);if(s.global)
jQuery.event.trigger("ajaxComplete",[xml,s]);if(s.global&&!--jQuery.active)
jQuery.event.trigger("ajaxStop");}
return xml;},handleError:function(s,xml,status,e){if(s.error)s.error(xml,status,e);if(s.global)
jQuery.event.trigger("ajaxError",[xml,s,e]);},active:0,httpSuccess:function(r){try{return!r.status&&location.protocol=="file:"||(r.status>=200&&r.status<300)||r.status==304||r.status==1223||jQuery.browser.safari&&r.status==undefined;}catch(e){}
return false;},httpNotModified:function(xml,url){try{var xmlRes=xml.getResponseHeader("Last-Modified");return xml.status==304||xmlRes==jQuery.lastModified[url]||jQuery.browser.safari&&xml.status==undefined;}catch(e){}
return false;},httpData:function(r,type){var ct=r.getResponseHeader("content-type");var xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0;var data=xml?r.responseXML:r.responseText;if(xml&&data.documentElement.tagName=="parsererror")
throw"parsererror";if(type=="script")
jQuery.globalEval(data);if(type=="json")
data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)
jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
for(var j in a)
if(a[j]&&a[j].constructor==Array)
jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
s.push(encodeURIComponent(j)+"="+encodeURIComponent(a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")
this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle(fn,fn2):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)
return false;var opt=jQuery.extend({},optall);var hidden=jQuery(this).is(":hidden"),self=this;for(var p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)
return jQuery.isFunction(opt.complete)&&opt.complete.apply(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}
if(opt.overflow!=null)
this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))
e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}
if(parts[1])
end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}
if(!type||(typeof type=="string"&&!fn))
return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)
queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)
fn.apply(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)
this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)
if(timers[i].elem==this){if(gotoEnd)
timers[i](true);timers.splice(i,1);}});if(!gotoEnd)
this.dequeue();return this;}});var queue=function(elem,type,array){if(!elem)
return undefined;type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)
q=jQuery.data(elem,type+"queue",array?jQuery.makeArray(array):[]);return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)
q[0].apply(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:{slow:600,fast:200}[opt.duration])||400;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)
jQuery(this).dequeue();if(jQuery.isFunction(opt.old))
opt.old.apply(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)
options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)
this.options.step.apply(this.elem,[this.now,this]);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")
this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)
return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=(new Date()).getTime();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}
t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)
if(!timers[i]())
timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")
this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=(new Date()).getTime();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)
if(this.options.curAnim[i]!==true)
done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")
this.elem.style.display="block";}
if(this.options.hide)
this.elem.style.display="none";if(this.options.hide||this.options.show)
for(var p in this.options.curAnim)
jQuery.attr(this.elem.style,p,this.options.orig[p]);}
if(done&&jQuery.isFunction(this.options.complete))
this.options.complete.apply(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}
return true;}};jQuery.fx.step={scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}};jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522,fixed=jQuery.css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)
border(offsetParent);if(!fixed&&jQuery.css(offsetParent,"position")=="fixed")
fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}
while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(jQuery.css(parent,"display")))
add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&jQuery.css(parent,"overflow")!="visible")
border(parent);parent=parent.parentNode;}
if((safari2&&(fixed||jQuery.css(offsetChild,"position")=="absolute"))||(mozilla&&jQuery.css(offsetChild,"position")!="absolute"))
add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)
add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}
results={top:top,left:left};}
function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}
function add(l,t){left+=parseInt(l)||0;top+=parseInt(t)||0;}
return results;};})();
(function($){$.dimensions={version:'1.2'};$.each(['Height','Width'],function(i,name){$.fn['inner'+name]=function(){if(!this[0])return;var torl=name=='Height'?'Top':'Left',borr=name=='Height'?'Bottom':'Right';return this.is(':visible')?this[0]['client'+name]:num(this,name.toLowerCase())+num(this,'padding'+torl)+num(this,'padding'+borr);};$.fn['outer'+name]=function(options){if(!this[0])return;var torl=name=='Height'?'Top':'Left',borr=name=='Height'?'Bottom':'Right';options=$.extend({margin:false},options||{});var val=this.is(':visible')?this[0]['offset'+name]:num(this,name.toLowerCase())
+num(this,'border'+torl+'Width')+num(this,'border'+borr+'Width')
+num(this,'padding'+torl)+num(this,'padding'+borr);return val+(options.margin?(num(this,'margin'+torl)+num(this,'margin'+borr)):0);};});$.each(['Left','Top'],function(i,name){$.fn['scroll'+name]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(name=='Left'?val:$(window)['scrollLeft'](),name=='Top'?val:$(window)['scrollTop']()):this['scroll'+name]=val;}):this[0]==window||this[0]==document?self[(name=='Left'?'pageXOffset':'pageYOffset')]||$.boxModel&&document.documentElement['scroll'+name]||document.body['scroll'+name]:this[0]['scroll'+name];};});$.fn.extend({position:function(){var left=0,top=0,elem=this[0],offset,parentOffset,offsetParent,results;if(elem){offsetParent=this.offsetParent();offset=this.offset();parentOffset=offsetParent.offset();offset.top-=num(elem,'marginTop');offset.left-=num(elem,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}
return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&$.css(offsetParent,'position')=='static'))
offsetParent=offsetParent.offsetParent;return $(offsetParent);}});function num(el,prop){return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;};})(jQuery);
(function($){$.ui=$.ui||{};$.extend($.ui,{plugin:{add:function(w,c,o,p){var a=$.ui[w].prototype;if(!a.plugins[c])a.plugins[c]=[];a.plugins[c].push([o,p]);},call:function(instance,name,arguments){var c=instance.plugins[name];if(!c)return;var o=instance.interaction?instance.interaction.options:instance.options;var e=instance.interaction?instance.interaction.element:instance.element;for(var i=0;i<c.length;i++){if(o[c[i][0]])c[i][1].apply(e,arguments);}}}});$.fn.mouseInteractionDestroy=function(){this.each(function(){if($.data(this,"ui-mouse"))$.data(this,"ui-mouse").destroy();});}
$.ui.mouseInteraction=function(el,o){if(!o)var o={};this.element=el;$.data(this.element,"ui-mouse",this);this.options={};$.extend(this.options,o);$.extend(this.options,{handle:o.handle?($(o.handle,el)[0]?$(o.handle,el):$(el)):$(el),helper:o.helper||'original',preventionDistance:o.preventionDistance||0,dragPrevention:o.dragPrevention?o.dragPrevention.toLowerCase().split(','):['input','textarea','button','select','option'],cursorAt:{top:((o.cursorAt&&o.cursorAt.top)?o.cursorAt.top:0),left:((o.cursorAt&&o.cursorAt.left)?o.cursorAt.left:0),bottom:((o.cursorAt&&o.cursorAt.bottom)?o.cursorAt.bottom:0),right:((o.cursorAt&&o.cursorAt.right)?o.cursorAt.right:0)},cursorAtIgnore:(!o.cursorAt)?true:false,appendTo:o.appendTo||'parent'})
o=this.options;if(!this.options.nonDestructive&&(o.helper=='clone'||o.helper=='original')){o.margins={top:parseInt($(el).css('marginTop'))||0,left:parseInt($(el).css('marginLeft'))||0,bottom:parseInt($(el).css('marginBottom'))||0,right:parseInt($(el).css('marginRight'))||0};if(o.cursorAt.top!=0)o.cursorAt.top=o.margins.top;if(o.cursorAt.left!=0)o.cursorAt.left+=o.margins.left;if(o.cursorAt.bottom!=0)o.cursorAt.bottom+=o.margins.bottom;if(o.cursorAt.right!=0)o.cursorAt.right+=o.margins.right;if(o.helper=='original')
o.wasPositioned=$(el).css('position');}else{o.margins={top:0,left:0,right:0,bottom:0};}
var self=this;this.mousedownfunc=function(e){return self.click.apply(self,[e]);}
o.handle.bind('mousedown',this.mousedownfunc);if($.browser.msie)$(this.element).attr('unselectable','on');}
$.extend($.ui.mouseInteraction.prototype,{plugins:{},currentTarget:null,lastTarget:null,timer:null,slowMode:false,init:false,destroy:function(){this.options.handle.unbind('mousedown',this.mousedownfunc);},trigger:function(e){return this.click.apply(this,arguments);},click:function(e){var o=this.options;window.focus();if(e.which!=1)return true;var targetName=(e.target)?e.target.nodeName.toLowerCase():e.srcElement.nodeName.toLowerCase();for(var i=0;i<o.dragPrevention.length;i++){if(targetName==o.dragPrevention[i])return true;}
if(o.startCondition&&!o.startCondition.apply(this,[e]))return true;var self=this;this.mouseup=function(e){return self.stop.apply(self,[e]);}
this.mousemove=function(e){return self.drag.apply(self,[e]);}
var initFunc=function(){$(document).bind('mouseup',self.mouseup);$(document).bind('mousemove',self.mousemove);self.opos=[e.pageX,e.pageY];}
if(o.preventionTimeout){if(this.timer)clearInterval(this.timer);this.timer=setTimeout(function(){initFunc();},o.preventionTimeout);return false;}
initFunc();return false;},start:function(e){var o=this.options;var a=this.element;o.co=$(a).offset();this.helper=typeof o.helper=='function'?$(o.helper.apply(a,[e,this]))[0]:(o.helper=='clone'?$(a).clone()[0]:a);if(o.appendTo=='parent'){var cp=a.parentNode;while(cp){if(cp.style&&($(cp).css('position')=='relative'||$(cp).css('position')=='absolute')){o.pp=cp;o.po=$(cp).offset();o.ppOverflow=!!($(o.pp).css('overflow')=='auto'||$(o.pp).css('overflow')=='scroll');break;}
cp=cp.parentNode?cp.parentNode:null;};if(!o.pp)o.po={top:0,left:0};}
this.pos=[this.opos[0],this.opos[1]];this.rpos=[this.pos[0],this.pos[1]];if(o.cursorAtIgnore){o.cursorAt.left=this.pos[0]-o.co.left+o.margins.left;o.cursorAt.top=this.pos[1]-o.co.top+o.margins.top;}
if(o.pp){this.pos[0]-=o.po.left;this.pos[1]-=o.po.top;}
this.slowMode=(o.cursorAt&&(o.cursorAt.top-o.margins.top>0||o.cursorAt.bottom-o.margins.bottom>0)&&(o.cursorAt.left-o.margins.left>0||o.cursorAt.right-o.margins.right>0))?true:false;if(!o.nonDestructive)$(this.helper).css('position','absolute');if(o.helper!='original')$(this.helper).appendTo((o.appendTo=='parent'?a.parentNode:o.appendTo)).show();if(o.cursorAt.right&&!o.cursorAt.left)o.cursorAt.left=this.helper.offsetWidth+o.margins.right+o.margins.left-o.cursorAt.right;if(o.cursorAt.bottom&&!o.cursorAt.top)o.cursorAt.top=this.helper.offsetHeight+o.margins.top+o.margins.bottom-o.cursorAt.bottom;this.init=true;if(o._start)o._start.apply(a,[this.helper,this.pos,o.cursorAt,this,e]);this.helperSize={width:outerWidth(this.helper),height:outerHeight(this.helper)};return false;},stop:function(e){var o=this.options;var a=this.element;var self=this;$(document).unbind('mouseup',self.mouseup);$(document).unbind('mousemove',self.mousemove);if(this.init==false)return this.opos=this.pos=null;if(o._beforeStop)o._beforeStop.apply(a,[this.helper,this.pos,o.cursorAt,this,e]);if(this.helper!=a&&!o.beQuietAtEnd){$(this.helper).remove();this.helper=null;}
if(!o.beQuietAtEnd){if(o._stop)o._stop.apply(a,[this.helper,this.pos,o.cursorAt,this,e]);}
this.init=false;this.opos=this.pos=null;return false;},drag:function(e){if(!this.opos||($.browser.msie&&!e.button))return this.stop.apply(this,[e]);var o=this.options;this.pos=[e.pageX,e.pageY];if(this.rpos&&this.rpos[0]==this.pos[0]&&this.rpos[1]==this.pos[1])return false;this.rpos=[this.pos[0],this.pos[1]];if(o.pp){this.pos[0]-=o.po.left;this.pos[1]-=o.po.top;}
if((Math.abs(this.rpos[0]-this.opos[0])>o.preventionDistance||Math.abs(this.rpos[1]-this.opos[1])>o.preventionDistance)&&this.init==false)
this.start.apply(this,[e]);else{if(this.init==false)return false;}
if(o._drag)o._drag.apply(this.element,[this.helper,this.pos,o.cursorAt,this,e]);return false;}});var num=function(el,prop){return parseInt($.css(el.jquery?el[0]:el,prop))||0;};function outerWidth(el){var $el=$(el),ow=$el.width();for(var i=0,props=['borderLeftWidth','paddingLeft','paddingRight','borderRightWidth'];i<props.length;i++)
ow+=num($el,props[i]);return ow;}
function outerHeight(el){var $el=$(el),oh=$el.width();for(var i=0,props=['borderTopWidth','paddingTop','paddingBottom','borderBottomWidth'];i<props.length;i++)
oh+=num($el,props[i]);return oh;}})($);
(function($){$.extend({tablesorter:new function(){var parsers=[],widgets=[];this.defaults={cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:false,cancelSelection:true,sortList:[],headerList:[],dateFormat:"us",debug:false};function benchmark(label,stamp){log(label+","+(new Date().getTime()-stamp.getTime())+"ms");}
function log(s){if(typeof console!="undefined"&&typeof console.debug!="undefined"){console.log(s);}else{alert(s);}}
function buildParserCache(table,$headers){if(table.config.debug){var parsersDebug="";}
var list=[],cells=table.tBodies[0].rows[0].cells,l=cells.length;for(var i=0;i<l;i++){var p=false;if($.meta&&($($headers[i]).data()&&$($headers[i]).data().sorter)){p=getParserById($($headers[i]).data().sorter);}else if((table.config.headers[i]&&table.config.headers[i].sorter)){p=getParserById(table.config.headers[i].sorter);}
if(!p){p=detectParserForColumn(table.config,cells[i]);}
if(table.config.debug){parsersDebug+="column:"+i+" parser:"+p.id+"\n";}
list.push(p);}
if(table.config.debug){log(parsersDebug);}
return list;};function detectParserForColumn(config,node){var l=parsers.length;for(var i=1;i<l;i++){if(parsers[i].is($.trim(getElementText(config,node)))){return parsers[i];}}
return parsers[0];}
function getParserById(name){var l=parsers.length;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==name.toLowerCase()){return parsers[i];}}
return false;}
function buildCache(table){if(table.config.debug){var cacheTime=new Date();}
var totalRows=(table.tBodies[0]&&table.tBodies[0].rows.length)||0,totalCells=table.tBodies[0].rows[0].cells.length,parsers=table.config.parsers,cache={row:[],normalized:[]};for(var i=0;i<totalRows;++i){var c=table.tBodies[0].rows[i],cols=[];cache.row.push($(c));for(var j=0;j<totalCells;++j){cols.push(parsers[j].format(getElementText(table.config,c.cells[j]),table,c.cells[j]));}
cols.push(i);cache.normalized.push(cols);cols=null;};if(table.config.debug){benchmark("Building cache for "+totalRows+" rows:",cacheTime);}
return cache;};function getElementText(config,node){if(!node)return"";var t="";if(typeof(config.textExtraction)=="function"){t=config.textExtraction(node);}else if(config.textExtraction=="complex"){t=$(node).text();}else{if(node.childNodes[0]&&node.childNodes[0].hasChildNodes()){t=node.childNodes[0].innerHTML;}else{t=node.innerHTML;}}
return t;}
function appendToTable(table,cache){if(table.config.debug){var appendTime=new Date()}
var c=cache,r=c.row,n=c.normalized,totalRows=n.length,checkCell=(n[0].length-1),tableBody=$("tbody:first",table).empty();rows=[];for(var i=0;i<totalRows;i++){rows.push(r[n[i][checkCell]]);if(table.config.appender==null){tableBody.append(r[n[i][checkCell]]);}}
if(table.config.appender!=null){table.config.appender(table,rows);}
rows=null;applyWidget(table);if(table.config.debug){benchmark("Rebuilt table:",appendTime);}};function buildHeaders(table){if(table.config.debug){var time=new Date();}
var meta=($.meta)?true:false,tableHeadersRows=[];for(var i=0;i<table.tHead.rows.length;i++){tableHeadersRows[i]=0;};$tableHeaders=$(checkCellColSpan(table,tableHeadersRows,0,table.tHead.rows[0].cells.length));$tableHeaders.each(function(index){this.count=0;this.column=index;this.order=formatSortingOrder(table.config.sortInitialOrder);if(checkHeaderMetadata(this)||checkHeaderOptions(table,index))this.sortDisabled=true;if(!this.sortDisabled){$(this).addClass(table.config.cssHeader);}
table.config.headerList[index]=this;});if(table.config.debug){benchmark("Built headers:",time);log($tableHeaders);}
return $tableHeaders;};function checkCellColSpan(table,headerArr,row){var arr=[],r=table.tHead.rows,c=r[row].cells;for(var i=headerArr[row];i<c.length;i++){var cell=c[i];if(cell.colSpan>1){arr=arr.concat(checkCellColSpan(table,headerArr,row+cell.rowSpan));}else{if(table.tHead.length==1||(cell.rowSpan>1||!r[row+1])){arr.push(cell);}
headerArr[row]=(i+row);}}
return arr;};function checkHeaderMetadata(cell){if(($.meta)&&($(cell).data().sorter===false)){return true;};return false;}
function checkHeaderOptions(table,i){if((table.config.headers[i])&&(table.config.headers[i].sorter===false)){return true;};return false;}
function applyWidget(table){var c=table.config.widgets;var l=c.length;for(var i=0;i<l;i++){getWidgetById(c[i]).format(table);}}
function getWidgetById(name){var l=widgets.length;for(var i=0;i<l;i++){if(widgets[i].id.toLowerCase()==name.toLowerCase()){return widgets[i];}}};function formatSortingOrder(v){if(typeof(v)!="Number"){i=(v.toLowerCase()=="desc")?1:0;}else{i=(v==(0||1))?v:0;}
return i;}
function isValueInArray(v,a){var l=a.length;for(var i=0;i<l;i++){if(a[i][0]==v){return true;}}
return false;}
function setHeadersCss(table,$headers,list,css){$headers.removeClass(css[0]).removeClass(css[1]);var h=[];$headers.each(function(offset){if(!this.sortDisabled){h[this.column]=$(this);}});var l=list.length;for(var i=0;i<l;i++){h[list[i][0]].addClass(css[list[i][1]]);}}
function fixColumnWidth(table,$headers){var c=table.config;if(c.widthFixed){var colgroup=$('<colgroup>');$("tbody:first tr:first td",table).each(function(){colgroup.append($('<col>').css('width',$(this).width()));});$(table).prepend(colgroup);};}
function updateHeaderSortCount(table,sortList){var c=table.config,l=sortList.length;for(var i=0;i<l;i++){var s=sortList[i],o=c.headerList[s[0]];o.count=s[1];o.count++;}}
function multisort(table,sortList,cache){if(table.config.debug){var sortTime=new Date();}
var dynamicExp="var sortWrapper = function(a,b) {",l=sortList.length;for(var i=0;i<l;i++){var c=sortList[i][0];var order=sortList[i][1];var s=(getCachedSortType(table.config.parsers,c)=="text")?((order==0)?"sortText":"sortTextDesc"):((order==0)?"sortNumeric":"sortNumericDesc");var e="e"+i;dynamicExp+="var "+e+" = "+s+"(a["+c+"],b["+c+"]); ";dynamicExp+="if("+e+") { return "+e+"; } ";dynamicExp+="else { ";}
for(var i=0;i<l;i++){dynamicExp+="}; ";}
dynamicExp+="return 0; ";dynamicExp+="}; ";eval(dynamicExp);cache.normalized.sort(sortWrapper);if(table.config.debug){benchmark("Sorting on "+sortList.toString()+" and dir "+order+" time:",sortTime);}
return cache;};function sortText(a,b){return((a<b)?-1:((a>b)?1:0));};function sortTextDesc(a,b){return((b<a)?-1:((b>a)?1:0));};function sortNumeric(a,b){return a-b;};function sortNumericDesc(a,b){return b-a;};function getCachedSortType(parsers,i){return parsers[i].type;};this.construct=function(settings){return this.each(function(){var $this,$document,$headers,cache,config,shiftDown=0,sortOrder;this.config={};config=$.extend(this.config,$.tablesorter.defaults,settings);if(!this.tHead||!this.tBodies)return true;$this=$(this);$headers=buildHeaders(this);this.config.parsers=buildParserCache(this,$headers);cache=buildCache(this);var sortCSS=[config.cssDesc,config.cssAsc];fixColumnWidth(this);$headers.click(function(e){if(!this.sortDisabled){var $cell=$(this);var i=this.column;this.order=this.count++%2;if(!e[config.sortMultiSortKey]){config.sortList=[];if(config.sortForce!=null){var a=config.sortForce;for(var j=0;j<a.length;j++){config.sortList.push(a[j]);}}
config.sortList.push([i,this.order]);}else{if(isValueInArray(i,config.sortList)){for(var j=0;j<config.sortList.length;j++){var s=config.sortList[j],o=config.headerList[s[0]];if(s[0]==i){o.count=s[1];o.count++;s[1]=o.count%2;}}}else{config.sortList.push([i,this.order]);}};setHeadersCss($this[0],$headers,config.sortList,sortCSS);appendToTable($this[0],multisort($this[0],config.sortList,cache));return false;}}).mousedown(function(){if(config.cancelSelection){this.onselectstart=function(){return false};return false;}});$this.bind("update",function(){cache=buildCache(this);}).bind("sorton",function(e,list){var sortList=config.sortList=list;updateHeaderSortCount(this,sortList);setHeadersCss(this,$headers,sortList,sortCSS);appendToTable(this,multisort(this,sortList,cache));}).bind("appendCache",function(){appendToTable(this,cache);}).bind("applyWidgetId",function(e,id){getWidgetById(id).format(this);});if($.meta&&($(this).data()&&$(this).data().sortlist)){config.sortList=$(this).data().sortlist;}
if(config.sortList.length>0){$this.trigger("sorton",[config.sortList]);}
applyWidget(this);});};this.addParser=function(parser){var l=parsers.length,a=true;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==parser.id.toLowerCase()){a=false;}}
if(a){parsers.push(parser);};};this.addWidget=function(widget){widgets.push(widget);};this.formatFloat=function(s){var i=parseFloat(s);return(isNaN(i))?0:i;};this.formatInt=function(s){var i=parseInt(s);return(isNaN(i))?0:i;};}});$.fn.extend({tablesorter:$.tablesorter.construct});$.tablesorter.addParser({id:"text",is:function(s){return true;},format:function(s){return $.trim(s.toLowerCase());},type:"text"});$.tablesorter.addParser({id:"integer",is:function(s){return s.match(new RegExp(/^\d+$/));},format:function(s){return $.tablesorter.formatInt(s);},type:"numeric"});$.tablesorter.addParser({id:"currency",is:function(s){return/^[£$€?.]/.test(s);},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/[^0-9.]/g),""));},type:"numeric"});$.tablesorter.addParser({id:"integer",is:function(s){return/^\d+$/.test(s);},format:function(s){return $.tablesorter.formatFloat(s);},type:"numeric"});$.tablesorter.addParser({id:"floating",is:function(s){return s.match(new RegExp(/^(\+|-)?[0-9]+\.[0-9]+((E|e)(\+|-)?[0-9]+)?$/));},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/,/),""));},type:"numeric"});$.tablesorter.addParser({id:"ipAddress",is:function(s){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s);},format:function(s){var a=s.split(".");var r="";for(var i=0,item;item=a[i];i++){if(item.length==2){r+="0"+item;}else{r+=item;}}
return $.tablesorter.formatFloat(s);},type:"numeric"});$.tablesorter.addParser({id:"url",is:function(s){return/^(https?|ftp|file):\/\/$/.test(s);},format:function(s){return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//),''));},type:"text"});$.tablesorter.addParser({id:"isoDate",is:function(s){return/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s);},format:function(s){return $.tablesorter.formatFloat((s!="")?new Date(s.replace(new RegExp(/-/g),"/")).getTime():"0");},type:"numeric"});$.tablesorter.addParser({id:"percent",is:function(s){return/^\d{1,3}%$/.test(s);},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g),""));},type:"numeric"});$.tablesorter.addParser({id:"usLongDate",is:function(s){var r=new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|\'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/);return r.test(s);},format:function(s){return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});$.tablesorter.addParser({id:"shortDate",is:function(s){return/\d{1,2}[\/-]\d{1,2}[\/-]\d{2,4}/.test(s);},format:function(s,table){var c=table.config;s=s.replace(new RegExp(/-/g),"/");if(c.dateFormat=="us"){s=s.replace(new RegExp(/(\d{1,2})[\/-](\d{1,2})[\/-](\d{4})/),"$3/$1/$2");}else if(c.dateFormat=="uk"){s=s.replace(new RegExp(/(\d{1,2})[\/-](\d{1,2})[\/-](\d{4})/),"$3/$2/$1");}else if(c.dateFormat=="dd/mm/yy"||c.dateFormat=="dd-mm-yy"){s=s.replace(new RegExp(/(\d{1,2})[\/-](\d{1,2})[\/-](\d{2})/),"$1/$2/$3");}
return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});$.tablesorter.addParser({id:"time",is:function(s){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s);},format:function(s){return $.tablesorter.formatFloat(new Date("2000/01/01 "+s).getTime());},type:"numeric"});$.tablesorter.addParser({id:"metadata",is:function(s){return false;},format:function(s,table,cell){var c=table.config,p=(!c.parserMetadataName)?'sortValue':c.parserMetadataName;return $(cell).data()[p];},type:"numeric"});$.tablesorter.addWidget({id:"zebra",format:function(table){$("> tbody:first/tr:visible:even",table).removeClass(table.config.widgetZebra.css[1]).addClass(table.config.widgetZebra.css[0]);$("> tbody:first/tr:visible:odd",table).removeClass(table.config.widgetZebra.css[0]).addClass(table.config.widgetZebra.css[1]);}});})(jQuery);
(function($)
{$.ui=$.ui||{};$.fn.dialog=function(o){return this.each(function(){if(!$(this).is(".ui-dialog"))new $.ui.dialog(this,o);});}
$.fn.dialogOpen=function(){return this.each(function(){var contentEl;if($(this).parents(".ui-dialog").length)contentEl=this;if(!contentEl&&$(this).is(".ui-dialog"))contentEl=$('.ui-dialog-content',this)[0];$.ui.dialogOpen(contentEl)});}
$.fn.dialogClose=function(){return this.each(function(){var contentEl;if($(this).parents(".ui-dialog").length)contentEl=this;if(!contentEl&&$(this).is(".ui-dialog"))contentEl=$('.ui-dialog-content',this)[0];$.ui.dialogClose(contentEl);});}
$.ui.dialog=function(el,o){var options={width:300,height:200,position:'center',buttons:[],modal:false,drag:true,resize:true,shadow:false};var o=o||{};$.extend(options,o);this.element=el;var self=this;$.data(this.element,"ui-dialog",this);var uiDialogContent=$(el).addClass('ui-dialog-content').wrap(document.createElement('div')).wrap(document.createElement('div'));var uiDialogContainer=uiDialogContent.parent().addClass('ui-dialog-container').css({position:'relative'});var uiDialog=uiDialogContainer.parent().addClass('ui-dialog').addClass(uiDialogContent.attr('className')).css({position:'absolute',width:options.width,height:options.height});if(options.modal==false&&options.resize==true){uiDialog.append("<div class='ui-resizable-n ui-resizable-handle'></div>").append("<div class='ui-resizable-s ui-resizable-handle'></div>").append("<div class='ui-resizable-e ui-resizable-handle'></div>").append("<div class='ui-resizable-w ui-resizable-handle'></div>").append("<div class='ui-resizable-ne ui-resizable-handle'></div>").append("<div class='ui-resizable-se ui-resizable-handle'></div>").append("<div class='ui-resizable-sw ui-resizable-handle'></div>").append("<div class='ui-resizable-nw ui-resizable-handle'></div>");uiDialog.resizable();}
uiDialogContainer.prepend('<div class="ui-dialog-titlebar"></div>');var uiDialogTitlebar=$('.ui-dialog-titlebar',uiDialogContainer);var title=(options.title)?options.title:(uiDialogContent.attr('title'))?uiDialogContent.attr('title'):'';uiDialogTitlebar.append('<span class="ui-dialog-title">'+title+'</span>');uiDialogTitlebar.append('<div class="ui-dialog-titlebar-close"></div>');$('.ui-dialog-titlebar-close',uiDialogTitlebar).hover(function(){$(this).addClass('ui-dialog-titlebar-close-hover');},function(){$(this).removeClass('ui-dialog-titlebar-close-hover');}).mousedown(function(ev){ev.stopPropagation();}).click(function(){self.close();});var l=0;$.each(options.buttons,function(){l=1;return false;});if(l==1){uiDialog.append('<div class="ui-dialog-buttonpane"></div>');var uiDialogButtonPane=$('.ui-dialog-buttonpane',uiDialog);$.each(options.buttons,function(name,value){var btn=$(document.createElement('button')).text(name).click(value);uiDialogButtonPane.append(btn);});}
if(options.modal==false&&options.drag==true){uiDialog.draggable({handle:'.ui-dialog-titlebar'});}
this.open=function(){var wnd=$(window),top=0,left=0;switch(options.position){case'center':top=(wnd.height()/2)-(uiDialog.height()/2);left=(wnd.width()/2)-(uiDialog.width()/2);break;case'left':top=(wnd.height()/2)-(uiDialog.height()/2);left=0;break;case'top':top=0;left=(wnd.width()/2)-(uiDialog.width()/2);break;}
uiDialog.css({top:top,left:left});uiDialog.appendTo('body').show();};this.close=function(){uiDialog.hide();};uiDialog.show();this.open();if(options.shadow&&$.fn.shadow!=undefined){uiDialog.shadow();}}
$.ui.dialogOpen=function(el){$.data(el,"ui-dialog").open();}
$.ui.dialogClose=function(el){$.data(el,"ui-dialog").close();}})(jQuery);
(function($){$.extend($.expr[':'],{resizable:"(' '+a.className+' ').indexOf(' ui-resizable ')"});$.fn.resizable=function(o){return this.each(function(){if(!$(this).is(".ui-resizable"))new $.ui.resizable(this,o);});}
var methods="destroy,enable,disable".split(",");for(var i=0;i<methods.length;i++){var cur=methods[i],f;eval('f = function() { var a = arguments; return this.each(function() { if(jQuery(this).is(".ui-resizable")) jQuery.data(this, "ui-resizable")["'+cur+'"](a); if(jQuery(this.parentNode).is(".ui-resizable")) jQuery.data(this, "ui-resizable")["'+cur+'"](a); }); }');$.fn["resizable"+cur.substr(0,1).toUpperCase()+cur.substr(1)]=f;};$.fn.resizableInstance=function(){if($(this[0]).is(".ui-resizable")||$(this[0].parentNode).is(".ui-resizable"))return $.data(this[0],"ui-resizable");return false;};$.ui.resizable=function(el,o){var options={};o=o||{};$.extend(options,o);this.element=el;var self=this;$.data(this.element,"ui-resizable",this);if(options.proxy){var helper=function(e,that){var helper=$('<div></div>').css({width:$(this).width(),height:$(this).height(),position:'absolute',left:that.options.co.left,top:that.options.co.top}).addClass(that.options.proxy);return helper;}}else{var helper="original";}
if(el.nodeName.match(/textarea|input|select|button|img/i))options.destructive=true;if(options.destructive){$(el).wrap('<div class="ui-wrapper"  style="position: relative; width: '+$(el).outerWidth()+'px; height: '+$(el).outerHeight()+';"></div>');var oel=el;el=el.parentNode;this.element=el;$(el).css({marginLeft:$(oel).css("marginLeft"),marginTop:$(oel).css("marginTop"),marginRight:$(oel).css("marginRight"),marginBottom:$(oel).css("marginBottom")});$(oel).css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});o.proportionallyResize=o.proportionallyResize||[];o.proportionallyResize.push(oel);var b=[parseInt($(oel).css('borderTopWidth')),parseInt($(oel).css('borderRightWidth')),parseInt($(oel).css('borderBottomWidth')),parseInt($(oel).css('borderLeftWidth'))];}else{var b=[0,0,0,0];}
if(options.destructive||!$(".ui-resizable-handle",el).length){var t=function(a,b){$(el).append("<div class='ui-resizable-"+a+" ui-resizable-handle' style='"+b+"'></div>");};t('e','right: '+b[1]+'px;'+(options.zIndex?'z-index: '+options.zIndex+';':''));t('s','bottom: '+b[1]+'px;'+(options.zIndex?'z-index: '+options.zIndex+';':''));t('se','bottom: '+b[2]+'px; right: '+b[1]+'px;'+(options.zIndex?'z-index: '+options.zIndex+';':''));}
options.modifyThese=[];if(o.proportionallyResize){options.proportionallyResize=o.proportionallyResize.slice(0);var propRes=options.proportionallyResize;for(var i in propRes){if(propRes[i].constructor==String)
propRes[i]=$(propRes[i],el);if(!$(propRes[i]).length)continue;var x=$(propRes[i]).width()-$(el).width();var y=$(propRes[i]).height()-$(el).height();options.modifyThese.push([$(propRes[i]),x,y]);}}
options.handles={};if(!o.handles)o.handles={n:'.ui-resizable-n',e:'.ui-resizable-e',s:'.ui-resizable-s',w:'.ui-resizable-w',se:'.ui-resizable-se',sw:'.ui-resizable-sw',ne:'.ui-resizable-ne',nw:'.ui-resizable-nw'};for(var i in o.handles){options.handles[i]=o.handles[i];}
for(var i in options.handles){if(options.handles[i].constructor==String)
options.handles[i]=$(options.handles[i],el);if(!$(options.handles[i]).length)continue;$(options.handles[i]).bind('mousedown',function(e){self.interaction.options.axis=this.resizeAxis;})[0].resizeAxis=i;}
if(o.autohide)
$(this.element).addClass("ui-resizable-autohide").hover(function(){$(this).removeClass("ui-resizable-autohide");},function(){if(self.interaction.options.autohide&&!self.interaction.init)$(this).addClass("ui-resizable-autohide");});$.extend(options,{helper:helper,nonDestructive:true,dragPrevention:'input,button,select',minHeight:options.minHeight||50,minWidth:options.minWidth||100,startCondition:function(e){if(self.disabled)return false;for(var i in options.handles){if($(options.handles[i])[0]==e.target)return true;}
return false;},_start:function(h,p,c,t,e){self.start.apply(t,[self,e]);},_beforeStop:function(h,p,c,t,e){self.stop.apply(t,[self,e]);},_drag:function(h,p,c,t,e){self.drag.apply(t,[self,e]);}});this.interaction=new $.ui.mouseInteraction(el,options);$(this.element).addClass("ui-resizable");}
$.extend($.ui.resizable.prototype,{plugins:{},prepareCallbackObj:function(self){return{helper:self.helper,resizable:self,axis:self.options.axis,options:self.options}},destroy:function(){$(this.element).removeClass("ui-resizable").removeClass("ui-resizable-disabled");this.interaction.destroy();},enable:function(){$(this.element).removeClass("ui-resizable-disabled");this.disabled=false;},disable:function(){$(this.element).addClass("ui-resizable-disabled");this.disabled=true;},start:function(that,e){this.options.originalSize=[$(this.element).width(),$(this.element).height()];this.options.originalPosition=$(this.element).css("position");this.options.originalPositionValues=$(this.element).position();this.options.modifyThese.push([$(this.helper),0,0]);$(that.element).triggerHandler("resizestart",[e,that.prepareCallbackObj(this)],this.options.start);return false;},stop:function(that,e){var o=this.options;$(that.element).triggerHandler("resizestop",[e,that.prepareCallbackObj(this)],this.options.stop);if(o.proxy){$(this.element).css({width:$(this.helper).width(),height:$(this.helper).height()});if(o.originalPosition=="absolute"||o.originalPosition=="fixed"){$(this.element).css({top:$(this.helper).css("top"),left:$(this.helper).css("left")});}}
return false;},drag:function(that,e){var o=this.options;var rel=(o.originalPosition!="absolute"&&o.originalPosition!="fixed");var co=rel?o.co:this.options.originalPositionValues;var p=o.originalSize;this.pos=rel?[this.rpos[0]-o.cursorAt.left,this.rpos[1]-o.cursorAt.top]:[this.pos[0]-o.cursorAt.left,this.pos[1]-o.cursorAt.top];var nw=p[0]+(this.pos[0]-co.left);var nh=p[1]+(this.pos[1]-co.top);if(o.axis){switch(o.axis){case'e':nh=p[1];break;case's':nw=p[0];break;case'n':case'ne':if(!o.proxy&&(o.originalPosition!="absolute"&&o.originalPosition!="fixed"))
return false;if(o.axis=='n')nw=p[0];var mod=(this.pos[1]-co.top);nh=nh-(mod*2);mod=nh<=o.minHeight?p[1]-o.minHeight:(nh>=o.maxHeight?0-(o.maxHeight-p[1]):mod);$(this.helper).css('top',co.top+mod);break;case'w':case'sw':if(!o.proxy&&(o.originalPosition!="absolute"&&o.originalPosition!="fixed"))
return false;if(o.axis=='w')nh=p[1];var mod=(this.pos[0]-co.left);nw=nw-(mod*2);mod=nw<=o.minWidth?p[0]-o.minWidth:(nw>=o.maxWidth?0-(o.maxWidth-p[0]):mod);$(this.helper).css('left',co.left+mod);break;case'nw':if(!o.proxy&&(o.originalPosition!="absolute"&&o.originalPosition!="fixed"))
return false;var modx=(this.pos[0]-co.left);nw=nw-(modx*2);modx=nw<=o.minWidth?p[0]-o.minWidth:(nw>=o.maxWidth?0-(o.maxWidth-p[0]):modx);var mody=(this.pos[1]-co.top);nh=nh-(mody*2);mody=nh<=o.minHeight?p[1]-o.minHeight:(nh>=o.maxHeight?0-(o.maxHeight-p[1]):mody);$(this.helper).css({left:co.left+modx,top:co.top+mody});break;}}
if(e.shiftKey)nh=nw*(p[1]/p[0]);if(o.minWidth)nw=nw<=o.minWidth?o.minWidth:nw;if(o.minHeight)nh=nh<=o.minHeight?o.minHeight:nh;if(o.maxWidth)nw=nw>=o.maxWidth?o.maxWidth:nw;if(o.maxHeight)nh=nh>=o.maxHeight?o.maxHeight:nh;if(e.shiftKey)nh=nw*(p[1]/p[0]);var modifier=$(that.element).triggerHandler("resize",[e,that.prepareCallbackObj(this)],o.resize);if(!modifier)modifier={};for(var i in this.options.modifyThese){var c=this.options.modifyThese[i];c[0].css({width:modifier.width?modifier.width+c[1]:nw+c[1],height:modifier.height?modifier.height+c[2]:nh+c[2]});}
return false;}});})($);
(function($){$.extend($.expr[':'],{draggable:"(' '+a.className+' ').indexOf(' ui-draggable ')"});var methods="destroy,enable,disable".split(",");for(var i=0;i<methods.length;i++){var cur=methods[i],f;eval('f = function() { var a = arguments; return this.each(function() { if(jQuery(this).is(".ui-draggable")) jQuery.data(this, "ui-draggable")["'+cur+'"](a); }); }');$.fn["draggable"+cur.substr(0,1).toUpperCase()+cur.substr(1)]=f;};$.fn.draggableInstance=function(){if($(this[0]).is(".ui-draggable"))return $.data(this[0],"ui-draggable");return false;};$.fn.draggable=function(o){return this.each(function(){new $.ui.draggable(this,o);});}
$.ui.ddmanager={current:null,droppables:[],prepareOffsets:function(t,e){var dropTop=$.ui.ddmanager.dropTop=[];var dropLeft=$.ui.ddmanager.dropLeft;var m=$.ui.ddmanager.droppables;for(var i=0;i<m.length;i++){if(m[i].item.disabled)continue;m[i].offset=$(m[i].item.element).offset();if(t&&m[i].item.options.accept(t.element))
m[i].item.activate.call(m[i].item,e);}},fire:function(oDrag,e){var oDrops=$.ui.ddmanager.droppables;var oOvers=$.grep(oDrops,function(oDrop){if(!oDrop.item.disabled&&$.ui.intersect(oDrag,oDrop,oDrop.item.options.tolerance))
oDrop.item.drop.call(oDrop.item,e);});$.each(oDrops,function(i,oDrop){if(!oDrop.item.disabled&&oDrop.item.options.accept(oDrag.element)){oDrop.out=1;oDrop.over=0;oDrop.item.deactivate.call(oDrop.item,e);}});},update:function(oDrag,e){if(oDrag.options.refreshPositions)$.ui.ddmanager.prepareOffsets();var oDrops=$.ui.ddmanager.droppables;var oOvers=$.grep(oDrops,function(oDrop){if(oDrop.item.disabled)return false;var isOver=$.ui.intersect(oDrag,oDrop,oDrop.item.options.tolerance)
if(!isOver&&oDrop.over==1){oDrop.out=1;oDrop.over=0;oDrop.item.out.call(oDrop.item,e);}
return isOver;});$.each(oOvers,function(i,oOver){if(oOver.over==0){oOver.out=0;oOver.over=1;oOver.item.over.call(oOver.item,e);}});}};$.ui.draggable=function(el,o){var options={};$.extend(options,o);var self=this;$.extend(options,{_start:function(h,p,c,t,e){self.start.apply(t,[self,e]);},_beforeStop:function(h,p,c,t,e){self.stop.apply(t,[self,e]);},_drag:function(h,p,c,t,e){self.drag.apply(t,[self,e]);},startCondition:function(e){return!(e.target.className.indexOf("ui-resizable-handle")!=-1||self.disabled);}});$.data(el,"ui-draggable",this);if(options.ghosting==true)options.helper='clone';$(el).addClass("ui-draggable");this.interaction=new $.ui.mouseInteraction(el,options);}
$.extend($.ui.draggable.prototype,{plugins:{},currentTarget:null,lastTarget:null,destroy:function(){$(this.interaction.element).removeClass("ui-draggable").removeClass("ui-draggable-disabled");this.interaction.destroy();},enable:function(){$(this.interaction.element).removeClass("ui-draggable-disabled");this.disabled=false;},disable:function(){$(this.interaction.element).addClass("ui-draggable-disabled");this.disabled=true;},prepareCallbackObj:function(self){return{helper:self.helper,position:{left:self.pos[0],top:self.pos[1]},offset:self.options.cursorAt,draggable:self,options:self.options}},start:function(that,e){var o=this.options;$.ui.ddmanager.current=this;$.ui.plugin.call(that,'start',[e,that.prepareCallbackObj(this)]);$(this.element).triggerHandler("dragstart",[e,that.prepareCallbackObj(this)],o.start);if(this.slowMode&&$.ui.droppable&&!o.dropBehaviour)
$.ui.ddmanager.prepareOffsets(this,e);return false;},stop:function(that,e){var o=this.options;$.ui.plugin.call(that,'stop',[e,that.prepareCallbackObj(this)]);$(this.element).triggerHandler("dragstop",[e,that.prepareCallbackObj(this)],o.stop);if(this.slowMode&&$.ui.droppable&&!o.dropBehaviour)
$.ui.ddmanager.fire(this,e);$.ui.ddmanager.current=null;$.ui.ddmanager.last=this;return false;},drag:function(that,e){var o=this.options;$.ui.ddmanager.update(this,e);this.pos=[this.pos[0]-o.cursorAt.left,this.pos[1]-o.cursorAt.top];$.ui.plugin.call(that,'drag',[e,that.prepareCallbackObj(this)]);var nv=$(this.element).triggerHandler("drag",[e,that.prepareCallbackObj(this)],o.drag);var nl=(nv&&nv.left)?nv.left:this.pos[0];var nt=(nv&&nv.top)?nv.top:this.pos[1];$(this.helper).css('left',nl+'px').css('top',nt+'px');return false;}});})($);
(function(jQuery){var find=jQuery.find;jQuery.find=function(selector,context){if(!selector.indexOf("/")){context=context.documentElement;selector=selector.replace(/^\/\w*/,"");if(!selector)
return[context];}
selector=selector.replace(/\/\//g," ");selector=selector.replace(/\//g,">");selector=selector.replace(/\[([^@].*?)\]/g,function(m,selector){return":has("+selector+")";});if(selector.indexOf(">..")>=0){var parts=selector.split(/>\.\.>?/g);var cur=jQuery(parts[0],context);for(var i=1;i<parts.length;i++)
cur=cur.parent(parts[i]);return cur.get();}
return find(selector,context);};})(jQuery);
(function($){var CLASSES={open:"open",closed:"closed",expandable:"expandable",collapsable:"collapsable",lastCollapsable:"lastCollapsable",lastExpandable:"lastExpandable",last:"last",hitarea:"hitarea"};var hitareaCSS={height:15,width:15,marginLeft:"-15px","float":"left",cursor:"pointer"};if($.browser.msie)
$.extend(hitareaCSS,{background:"#fff",filter:"alpha(opacity=0)",display:"inline"});$.extend($.fn,{swapClass:function(c1,c2){return this.each(function(){var $this=$(this);if($.className.has(this,c1))
$this.removeClass(c1).addClass(c2);else if($.className.has(this,c2))
$this.removeClass(c2).addClass(c1);});},replaceclass:function(c1,c2){return this.each(function(){var $this=$(this);if($.className.has(this,c1))
$this.removeClass(c1).addClass(c2);});},hoverClass:function(className){className=className||"hover";return this.hover(function(){$(this).addClass(className);},function(){$(this).removeClass(className);});},heightToggle:function(speed,callback){speed?this.animate({height:"toggle"},speed,callback):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();if(callback)
callback.apply(this,arguments);});},heightHide:function(speed,callback){if(speed){this.animate({height:"hide"},speed,callback)}else{this.hide();if(callback)
this.each(callback);}},treeview:function(settings){settings=$.extend({},settings);function treeController(tree,control){function handler(filter){return function(){toggler.apply($("div."+CLASSES.hitarea,tree).filter(function(){return filter?$(this).parent("."+filter).length:true;}));return false;}}
$(":eq(0)",control).click(handler(CLASSES.collapsable));$(":eq(1)",control).click(handler(CLASSES.expandable));$(":eq(2)",control).click(handler());}
function toggler(){$(this).parent().swapClass(CLASSES.collapsable,CLASSES.expandable).swapClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightToggle(settings.speed,settings.toggle);if(settings.unique){$(this).parent().siblings().replaceclass(CLASSES.collapsable,CLASSES.expandable).replaceclass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightHide(settings.speed,settings.toggle);}}
function serialize(){function binary(arg){return arg?1:0;}
var data=[];branches.each(function(i,e){data[i]=$(e).is(":has(>ul:visible)")?1:0;});$.cookie("treestorage",data.join(""),settings.store.expiration);}
function deserialize(){var stored=$.cookie("treestorage");if(stored){var data=stored.split("");branches.each(function(i,e){$(e).find(">ul")[parseInt(data[i])?"show":"hide"]();});}}
this.addClass("treeview");$("li:last-child",this).addClass(CLASSES.last);$((settings.collapsed?"li":"li."+CLASSES.closed)+":not(."+CLASSES.open+") > ul",this).hide();var branches=$("li:has(>ul)",this);if(settings.store){var toggleCallback=settings.toggle;settings.toggle=function(){serialize();if(toggleCallback){toggleCallback.apply(this,arguments);}}
deserialize();}
if(settings.navigation){var current=this.find("a").filter(function(){return this.href==location.href;});if(current.length){current.addClass("selected").parents("ul, li").add(current.next()).show();}}
$("li:has(ul):not(:has(>a))>span",this).click(function(event){if(this==event.target){toggler.apply($(this).next());}}).add($("a",this)).hoverClass();branches.filter(":has(>ul:hidden)").addClass(CLASSES.expandable).swapClass(CLASSES.last,CLASSES.lastExpandable);branches.not(":has(>ul:hidden)").addClass(CLASSES.collapsable).swapClass(CLASSES.last,CLASSES.lastCollapsable);branches.prepend("<div class=\""+CLASSES.hitarea+"\">").find("div."+CLASSES.hitarea).css(hitareaCSS).click(toggler);if(settings.control)
treeController(this,settings.control);return this;}});})(jQuery);
(function($)
{$.jTagging={version:"1.0.0",defaults:{normalStyle:{padding:"2px 1px 0 1px",textDecoration:"none",color:"#6665cb",backgroundColor:""},selectedStyle:{padding:"2px 1px 0 1px",textDecoration:"none",color:"#fff",backgroundColor:"#6665cb"},normalHoverStyle:{padding:"2px 1px 0 1px",textDecoration:"none",color:"#fff",backgroundColor:"#6665cb"}},arrayRemove:function(array,value)
{array=array||[];for(var o in array)
{array[o]=$.trim(array[o]);if(array[o]==value||array[o]=="")
{array.splice(o,1);}}},setClass:function(el,nc,hc)
{$(el).css(nc);$(el).hover
(function()
{$(el).css(hc);},function()
{$(el).css(nc);});}};$.fn.jTagging=function(tags,seperator,normalStyle,selectedStyle,normalHoverStyle)
{seperator=seperator||",";normalStyle=normalStyle||$.jTagging.defaults.normalStyle;selectedStyle=selectedStyle||$.jTagging.defaults.selectedStyle;normalHoverStyle=normalHoverStyle||$.jTagging.defaults.normalHoverStyle;tags=[tags];return this.each
(function()
{var name=this.nodeName.toLowerCase();var type=this.type.toLowerCase();if(name!="input"||type!="text"&&name!="textarea")
{throw"Element must be \"input:text\" or \"textarea\"";}
var input=this;$.each
(["keydown","keyup"],function(i,n)
{$(input).bind
(n,function()
{$.each
(tags,function(i,n)
{$.each
(n,function(j,o)
{$("a",o).each
(function(k)
{var value=$(input).val().split(seperator);$.jTagging.arrayRemove(value);if($(value).index($(this).text())>=0)
{$.jTagging.setClass(this,selectedStyle,normalHoverStyle);}
else
{$.jTagging.setClass(this,normalStyle,normalHoverStyle);}});});});});});$.each
(tags,function(i,n)
{$.each
(n,function(j,o)
{$("a",o).each
(function(k)
{$(this).removeClass();$(this).attr("href","#");$(this).click
(function()
{var value=$(input).val().split(seperator);$.jTagging.arrayRemove(value);if($(value).index($(this).text())>=0)
{$.jTagging.arrayRemove(value,$(this).text());$(input).val(value.join(seperator));$.jTagging.setClass(this,normalStyle,normalHoverStyle);}
else
{value.push($(this).text());$(input).val(value.join(seperator));$.jTagging.setClass(this,selectedStyle,normalHoverStyle);}
this.blur();return false;});var value=$(input).val().split(seperator);$.jTagging.arrayRemove(value);if($(value).index($(this).text())>=0)
{$.jTagging.setClass(this,selectedStyle,normalHoverStyle);}
else
{$.jTagging.setClass(this,normalStyle,normalHoverStyle);}});});});});}})
(jQuery);
jQuery.fn.jqUploader=function(options){return this.each(function(index){var $this=jQuery(this);var $thisForm=$this.parents("form");var $thisInput=$("input[@type='file']",$this);var $thisLabel=$("label",$this);var containerId=$this.attr("id")||'jqUploader-'+index;var startMessage=($thisLabel.text()=='')?'Please select a file':$thisLabel.text();var actionURL=$thisForm.attr("action");var prepender=(actionURL.lastIndexOf("?")!=-1)?"&":"?";actionURL=actionURL+prepender+'jqUploader=1';var maxFileSize=$("input[@name='MAX_FILE_SIZE']",$(this.form)).val();var opts=jQuery.extend({width:320,height:85,version:8,background:'FFFFFF',src:'jqUploader.swf',uploadScript:actionURL,afterScript:null,varName:$thisInput.attr("name"),allowedExt:'*.jpg; *.jpeg; *.png',allowedExtDescr:'Images (*.jpg; *.jpeg; *.png)',params:{menu:false},flashvars:{},hideSubmit:true,barColor:'0000CC',maxFileSize:maxFileSize,startMessage:startMessage,errorSizeMessage:'File is too big!',validFileMessage:'now click Upload to proceed',progressMessage:'Please wait, uploading ',endMessage:'You\'re all done'},options||{});if(opts.hideSubmit==true){$("*[@type='submit']",this.form).hide();}
TerminateJQUploader=function(containerId,filename,varname){$this=$('#'+containerId).empty();$this.text('').append('<span style="color:#00CC00">Upload of <strong>'+filename+'</strong> finished! Click "Continue"</span><input name="'+varname+'" type="hidden" id="'+varname+'" value="'+filename+'"/>');var myForm=$this.parents("form");myForm.submit(function(){return true});$("*[@type='submit']",myForm).show();}
var myParams='';for(var p in opts.params){myParams+=p+'='+opts.params[p]+',';}
myParams=myParams.substring(0,myParams.length-1);jQuery(this).flash({src:opts.src,width:opts.width,height:opts.height,id:'movie_player-'+index,bgcolor:'#'+opts.background,flashvars:{containerId:containerId,uploadScript:opts.uploadScript,afterScript:opts.afterScript,allowedExt:opts.allowedExt,allowedExtDescr:opts.allowedExtDescr,varName:opts.varName,barColor:opts.barColor,maxFileSize:opts.maxFileSize,startMessage:opts.startMessage,errorSizeMessage:opts.errorSizeMessage,validFileMessage:opts.validFileMessage,progressMessage:opts.progressMessage,endMessage:opts.endMessage},params:myParams},{version:opts.version,update:false},function(htmlOptions){var $el=$('<div id="'+containerId+'" class="flash-replaced"><div class="alt">'+this.innerHTML+'</div></div>');$el.prepend($.fn.flash.transform(htmlOptions));$('div.alt',$el).remove();$(this).after($el).remove();});});};;(function(){var $$;$$=jQuery.fn.flash=function(htmlOptions,pluginOptions,replace,update){var block=replace||$$.replace;pluginOptions=$$.copy($$.pluginOptions,pluginOptions);if(!$$.hasFlash(pluginOptions.version)){if(pluginOptions.expressInstall&&$$.hasFlash(6,0,65)){var expressInstallOptions={flashvars:{MMredirectURL:location,MMplayerType:'PlugIn',MMdoctitle:jQuery('title').text()}};}else if(pluginOptions.update){block=update||$$.update;}else{return this;}}
htmlOptions=$$.copy($$.htmlOptions,expressInstallOptions,htmlOptions);return this.each(function(){block.call(this,$$.copy(htmlOptions));});};$$.copy=function(){var options={},flashvars={};for(var i=0;i<arguments.length;i++){var arg=arguments[i];if(arg==undefined)continue;jQuery.extend(options,arg);if(arg.flashvars==undefined)continue;jQuery.extend(flashvars,arg.flashvars);}
options.flashvars=flashvars;return options;};$$.hasFlash=function(){if(/hasFlash\=true/.test(location))return true;if(/hasFlash\=false/.test(location))return false;var pv=$$.hasFlash.playerVersion().match(/\d+/g);var rv=String([arguments[0],arguments[1],arguments[2]]).match(/\d+/g)||String($$.pluginOptions.version).match(/\d+/g);for(var i=0;i<3;i++){pv[i]=parseInt(pv[i]||0);rv[i]=parseInt(rv[i]||0);if(pv[i]<rv[i])return false;if(pv[i]>rv[i])return true;}
return true;};$$.hasFlash.playerVersion=function(){try{try{var axo=new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');try{axo.AllowScriptAccess='always';}
catch(e){return'6,0,0';}}catch(e){}
return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g,',').match(/^,?(.+),?$/)[1];}catch(e){try{if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){return(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1];}}catch(e){}}
return'0,0,0';};$$.htmlOptions={height:240,flashvars:{},pluginspage:'http://www.adobe.com/go/getflashplayer',src:'#',type:'application/x-shockwave-flash',width:320};$$.pluginOptions={expressInstall:false,update:true,version:'6.0.65'};$$.replace=function(htmlOptions){this.innerHTML='<div class="alt">'+this.innerHTML+'</div>';jQuery(this).addClass('flash-replaced').prepend($$.transform(htmlOptions));};$$.update=function(htmlOptions){var url=String(location).split('?');url.splice(1,0,'?hasFlash=true&');url=url.join('');var msg='<p>This content requires the Flash Player. <a href="http://www.adobe.com/go/getflashplayer">Download Flash Player</a>. Already have Flash Player? <a href="'+url+'">Click here.</a></p>';this.innerHTML='<span class="alt">'+this.innerHTML+'</span>';jQuery(this).addClass('flash-update').prepend(msg);};function toAttributeString(){var s='';for(var key in this)
if(typeof this[key]!='function')
s+=key+'="'+this[key]+'" ';return s;};function toFlashvarsString(){var s='';for(var key in this)
if(typeof this[key]!='function')
s+=key+'='+encodeURIComponent(this[key])+'&';return s.replace(/&$/,'');};$$.transform=function(htmlOptions){htmlOptions.toString=toAttributeString;if(htmlOptions.flashvars)htmlOptions.flashvars.toString=toFlashvarsString;return'<embed '+String(htmlOptions)+'/>';};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};});}})();
(function($){function Plot(target_,data_,options_){var series=[];var options={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:0.85},xaxis:{ticks:null,noTicks:5,tickFormatter:defaultTickFormatter,tickDecimals:null,min:null,max:null,autoscaleMargin:0},yaxis:{noTicks:5,ticks:null,tickFormatter:defaultTickFormatter,min:null,max:null,autoscaleMargin:0.02},points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:"#ffffff"},lines:{show:false,lineWidth:2,fill:false,fillColor:null},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,fillOpacity:0.4,autoScale:false},pies:{show:false,radius:50,borderWidth:1,fill:true,fillColor:null,fillOpacity:0.85,labelWidth:30,fontSize:10,autoScale:false},grid:{color:"#545454",backgroundColor:null,tickColor:"#dddddd",labelMargin:3,clickable:null},selection:{mode:null,color:"#e8cfac"},shadowSize:4};var canvas=null,overlay=null;var ctx=null,octx=null;var target=target_;var xaxis={};var yaxis={};var plotOffset={left:0,right:0,top:0,bottom:0};var labelMaxWidth=0;var labelMaxHeight=0;var canvasWidth=0;var canvasHeight=0;var plotWidth=0;var plotHeight=0;var hozScale=0;var vertScale=0;series=parseData(data_);parseOptions(options_);setBarWidth();fillInSeriesOptions();constructCanvas();bindEvents();findDataRanges();calculateRange(xaxis,options.xaxis);extendXRangeIfNeededByBar();calculateRange(yaxis,options.yaxis);calculateTicks(xaxis,options.xaxis);calculateTicks(yaxis,options.yaxis);calculateSpacing();draw();insertLegend();this.getCanvas=function(){return canvas;};this.getPlotOffset=function(){return plotOffset;};this.clearSelection=clearSelection;this.setSelection=setSelection;function parseData(d){var res=[];for(var i=0;i<d.length;++i){var s;if(d[i].data){s={};for(var v in d[i])
s[v]=d[i][v];}
else{s={data:d[i]};}
res.push(s);}
return res;}
function parseOptions(o){$.extend(true,options,o);}
function setBarWidth()
{if(options.bars.show&&options.bars.autoScale)
options.bars.barWidth=1/series.length/2;}
function constructCanvas(){canvasWidth=target.width();canvasHeight=target.height();target.html("");target.css("position","relative");if(canvasWidth<=0||canvasHeight<=0)
throw"Invalid dimensions for plot, width = "+canvasWidth+", height = "+canvasHeight;canvas=jQuery('<canvas width="'+canvasWidth+'" height="'+canvasHeight+'"></canvas>').appendTo(target).get(0);if(jQuery.browser.msie)
canvas=window.G_vmlCanvasManager.initElement(canvas);ctx=canvas.getContext("2d");overlay=jQuery('<canvas style="position:absolute;left:0px;top:0px;" width="'+canvasWidth+'" height="'+canvasHeight+'"></canvas>').appendTo(target).get(0);if(jQuery.browser.msie)
overlay=window.G_vmlCanvasManager.initElement(overlay);octx=overlay.getContext("2d");}
function bindEvents(){if(options.selection.mode!=null){$(overlay).mousedown(onMouseDown);target.get(0).onmousemove=onMouseMove;}
if(options.grid.clickable&&options.pies.show)
$(overlay).click(onClick);}
function findDataRanges(){yaxis.datamin=xaxis.datamin=0;xaxis.datamax=yaxis.datamax=1;if(series.length==0)
return;var i,found=false;for(i=0;i<series.length;++i){if(series[i].data.length>0){xaxis.datamin=xaxis.datamax=series[i].data[0][0];yaxis.datamin=yaxis.datamax=series[i].data[0][1];found=true;break;}}
if(!found)
return;for(i=0;i<series.length;++i){var data=series[i].data;for(var j=0;j<data.length;++j){var x=data[j][0];var y=data[j][1];if(x<xaxis.datamin)
xaxis.datamin=x;else if(x>xaxis.datamax)
xaxis.datamax=x;if(y<yaxis.datamin)
yaxis.datamin=y;else if(y>yaxis.datamax)
yaxis.datamax=y;}}}
function getTickSize(noTicks,min,max,decimals){var delta=(max-min)/noTicks;var magn=getMagnitude(delta);var norm=delta/magn;var tickSize=1;if(norm<1.5)
tickSize=1;else if(norm<2.25)
tickSize=2;else if(norm<3)
tickSize=2.5;else if(norm<7.5)
tickSize=5;else
tickSize=10;if(tickSize==2.5&&decimals==0)
tickSize=2;tickSize*=magn;return tickSize;}
function calculateRange(axis,axisOptions){var min=axisOptions.min!=null?axisOptions.min:axis.datamin;var max=axisOptions.max!=null?axisOptions.max:axis.datamax;if(max-min==0.0){var widen;if(max==0.0)
widen=1.0;else
widen=0.01;min-=widen;max+=widen;}
axis.tickSize=getTickSize(axisOptions.noTicks,min,max,axisOptions.tickDecimals);var margin;if(axisOptions.min==null){margin=axisOptions.autoscaleMargin;if(margin!=0){min-=axis.tickSize*margin;if(min<0&&axis.datamin>=0)
min=0;min=axis.tickSize*Math.floor(min/axis.tickSize);}}
if(axisOptions.max==null){margin=axisOptions.autoscaleMargin;if(margin!=0){max+=axis.tickSize*margin;if(max>0&&axis.datamax<=0)
max=0;max=axis.tickSize*Math.ceil(max/axis.tickSize);}}
axis.min=min;axis.max=max;}
function extendXRangeIfNeededByBar(){if(options.xaxis.max==null){var newmax=xaxis.max;for(var i=0;i<series.length;++i)
if(series[i].bars.show&&series[i].bars.barWidth+xaxis.datamax>newmax)
newmax=xaxis.max+series[i].bars.barWidth;xaxis.max=newmax;}}
function defaultTickFormatter(val){return""+val;}
function calculateTicks(axis,axisOptions){var i;axis.ticks=[];if(axisOptions.ticks){var ticks=axisOptions.ticks;if($.isFunction(ticks))
ticks=ticks({min:axis.min,max:axis.max});for(i=0;i<ticks.length;++i){var v,label;var t=ticks[i];if(typeof(t)=="object"){v=t[0];if(t.length>1)
label=t[1];else
label=axisOptions.tickFormatter(v);}
else{v=t;label=axisOptions.tickFormatter(v);}
axis.ticks[i]={v:v,label:label};}}
else{var start=axis.tickSize*Math.ceil(axis.min/axis.tickSize);for(i=0;start+i*axis.tickSize<=axis.max;++i){v=start+i*axis.tickSize;var decimals=axisOptions.tickDecimals;if(decimals==null)
decimals=1-Math.floor(Math.log(axis.tickSize)/Math.LN10);if(decimals<0)
decimals=0;v=v.toFixed(decimals);axis.ticks.push({v:v,label:axisOptions.tickFormatter(v)});}}}
function calculateSpacing(){var i,max_label="";for(i=0;i<yaxis.ticks.length;++i){var l=yaxis.ticks[i].label.length;if(l>max_label.length)
max_label=yaxis.ticks[i].label;}
var dummyDiv=$('<div style="position:absolute;top:-10000px;font-size:smaller" class="gridLabel">'+max_label+'</div>').appendTo(target);labelMaxWidth=dummyDiv.width();labelMaxHeight=dummyDiv.height();dummyDiv.remove();var maxOutset=2;if(options.points.show)
maxOutset=Math.max(maxOutset,options.points.radius+options.points.lineWidth/2);for(i=0;i<series.length;++i){if(series[i].points.show)
maxOutset=Math.max(maxOutset,series[i].points.radius+series[i].points.lineWidth/2);}
plotOffset.left=plotOffset.right=plotOffset.top=plotOffset.bottom=maxOutset;plotOffset.left+=labelMaxWidth+options.grid.labelMargin;plotOffset.bottom+=labelMaxHeight+options.grid.labelMargin;plotWidth=canvasWidth-plotOffset.left-plotOffset.right;plotHeight=canvasHeight-plotOffset.bottom-plotOffset.top;hozScale=plotWidth/(xaxis.max-xaxis.min);vertScale=plotHeight/(yaxis.max-yaxis.min);}
function drawMyBarSeries(series)
{for(i=0;i<series.length;i++)
drawSeriesBars(series[i],i,series.length);}
function preparePieData(series)
{for(i=0;i<series.length;i++)
{var data=0;for(j=0;j<series[i].data.length;j++)
data+=parseInt(series[i].data[j][1]);series[i].data=data;}}
function drawMyPieSeries(series)
{var sumData=0;var radius=0;var centerX=plotWidth/2;var centerY=plotHeight/2;var startAngle=0;var endAngle=0;var fontSize=options.pies.fontSize;var labelWidth=options.pies.labelWidth;if(!options.pies.autoScale)
radius=options.pies.radius;else
radius=(plotHeight*0.85)/2;var labelRadius=radius*1.05;for(i=0;i<series.length;i++)
sumData+=series[i].data;for(j=0;j<series.length;j++)
{var pct=series[j].data/sumData;startAngle=endAngle;endAngle+=pct*(2*Math.PI);var sliceMiddle=(endAngle-startAngle)/2+startAngle;var labelX=centerX+Math.cos(sliceMiddle)*labelRadius;var labelY=centerY+Math.sin(sliceMiddle)*labelRadius;var anchorX=centerX+Math.cos(sliceMiddle)*2;var anchorY=centerY+Math.sin(sliceMiddle)*2;var textAlign=null;var verticalAlign=null;var left=0;var top=0;ctx.beginPath();ctx.moveTo(anchorX,anchorY);ctx.arc(anchorX,anchorY,radius,startAngle,endAngle,false);ctx.closePath();ctx.fillStyle=parseColor(series[j].color).scale(null,null,null,options.pies.fillOpacity).toString();if(options.pies.fill)
ctx.fill();if(sliceMiddle<=0.25*(2*Math.PI))
{textAlign="left";verticalAlign="top";left=labelX;top=labelY+fontSize;}
else if(sliceMiddle>0.25*(2*Math.PI)&&sliceMiddle<=0.5*(2*Math.PI))
{textAlign="left";verticalAlign="bottom";left=labelX-labelWidth;top=labelY;}
else if(sliceMiddle>0.5*(2*Math.PI)&&sliceMiddle<=0.75*(2*Math.PI))
{textAlign="right";verticalAlign="bottom";left=labelX-labelWidth;top=labelY-fontSize;}
else
{textAlign="right";verticalAlign="bottom";left=labelX;top=labelY-fontSize;}
left=left+"px";top=top+"px";var textVal=Math.round(pct*100);var html="<div style=\"position: absolute;z-index:11; width:"+labelWidth+"px;fontSize:"+fontSize+"px;overflow:hidden;top:"+top+";left:"+left+";textAlign:"+textAlign+";verticalAlign:"+verticalAlign+"\">"+textVal+"%</div>";$(html).appendTo(target);}}
function draw(){if(options.bars.show)
{xaxis.max+=(series.length+1)*options.bars.barWidth;xaxis.min-=(series.length+1)*options.bars.barWidth;extendXRangeIfNeededByBar();setSpacing();drawGrid();drawLabels();drawMyBarSeries(series);}
else if(options.pies.show)
{preparePieData(series);drawMyPieSeries(series);}
else
{drawGrid();drawLabels();for(var i=0;i<series.length;i++){drawSeries(series[i]);}}}
function tHoz(x){return(x-xaxis.min)*hozScale;}
function tVert(y){return plotHeight-(y-yaxis.min)*vertScale;}
function drawGrid(){ctx.save();ctx.translate(plotOffset.left,plotOffset.top);if(options.grid.backgroundColor!=null){ctx.fillStyle=options.grid.backgroundColor;ctx.fillRect(0,0,plotWidth,plotHeight);}
ctx.lineWidth=1;ctx.strokeStyle=options.grid.tickColor;ctx.beginPath();var i,v;for(i=0;i<xaxis.ticks.length;++i){v=xaxis.ticks[i].v;if(v==xaxis.min||v==xaxis.max)
continue;ctx.moveTo(Math.floor(tHoz(v))+ctx.lineWidth/2,0);ctx.lineTo(Math.floor(tHoz(v))+ctx.lineWidth/2,plotHeight);}
for(i=0;i<yaxis.ticks.length;++i){v=yaxis.ticks[i].v;if(v==yaxis.min||v==yaxis.max)
continue;ctx.moveTo(0,Math.floor(tVert(v))+ctx.lineWidth/2);ctx.lineTo(plotWidth,Math.floor(tVert(v))+ctx.lineWidth/2);}
ctx.stroke();ctx.lineWidth=2;ctx.strokeStyle=options.grid.color;ctx.lineJoin="round";ctx.strokeRect(0,0,plotWidth,plotHeight);ctx.restore();}
function drawLabels(){var i;var tick;var html='<div style="font-size:smaller;color:'+options.grid.color+'">';var noLabels=0;for(i=0;i<xaxis.ticks.length;++i){if(xaxis.ticks[i].label){++noLabels;}}
var xBoxWidth=plotWidth/noLabels;for(i=0;i<xaxis.ticks.length;++i){tick=xaxis.ticks[i];if(!tick.label)
continue;html+='<div style="position:absolute;top:'+(plotOffset.top+plotHeight+options.grid.labelMargin)+'px;left:'+(plotOffset.left+tHoz(tick.v)-xBoxWidth/2)+'px;width:'+xBoxWidth+'px;text-align:center" class="gridLabel">'+tick.label+"</div>";}
for(i=0;i<yaxis.ticks.length;++i){tick=yaxis.ticks[i];if(!tick.label||tick.label.length==0)
continue;html+='<div style="position:absolute;top:'+(plotOffset.top+tVert(tick.v)-labelMaxHeight/2)+'px;left:0;width:'+labelMaxWidth+'px;text-align:right" class="gridLabel">'+tick.label+"</div>";}
html+='</div>';target.append(html);}
function fillInSeriesOptions(){var i;var neededColors=series.length;var usedColors=[];var assignedColors=[];for(i=0;i<series.length;++i){var sc=series[i].color;if(sc!=null){--neededColors;if(typeof(sc)=="number")
assignedColors.push(sc);else
usedColors.push(parseColor(series[i].color));}}
for(i=0;i<assignedColors.length;++i){neededColors=Math.max(neededColors,assignedColors[i]+1);}
var colors=[];var variation=0;i=0;while(colors.length<neededColors){var c;if(options.colors.length==i)
c=new Color(100,100,100);else
c=parseColor(options.colors[i]);var sign=variation%2==1?-1:1;var factor=1+sign*Math.ceil(variation/2)*0.2;c.scale(factor,factor,factor);colors.push(c);++i;if(i>=options.colors.length){i=0;++variation;}}
var colori=0;for(i=0;i<series.length;++i){var s=series[i];if(s.color==null){s.color=colors[colori].toString();++colori;}
else if(typeof(s.color)=="number")
s.color=colors[s.color].toString();s.lines=$.extend(true,{},options.lines,s.lines);s.points=$.extend(true,{},options.points,s.points);s.bars=$.extend(true,{},options.bars,s.bars);if(s.shadowSize==null)
s.shadowSize=options.shadowSize;}}
function drawSeries(series){if(series.lines.show||(!series.bars.show&&!series.points.show))
drawSeriesLines(series);if(series.points.show)
drawSeriesPoints(series);}
function drawSeriesLines(series){function plotLine(data,offset){if(data.length<2)
return;var prevx=tHoz(data[0][0]),prevy=tVert(data[0][1])+offset;ctx.beginPath();ctx.moveTo(prevx,prevy);for(var i=0;i<data.length-1;++i){var x1=data[i][0],y1=data[i][1],x2=data[i+1][0],y2=data[i+1][1];if(y1<=y2&&y1<yaxis.min){if(y2<yaxis.min)
continue;x1=(yaxis.min-y1)/(y2-y1)*(x2-x1)+x1;y1=yaxis.min;}
else if(y2<=y1&&y2<yaxis.min){if(y1<yaxis.min)
continue;x2=(yaxis.min-y1)/(y2-y1)*(x2-x1)+x1;y2=yaxis.min;}
if(y1>=y2&&y1>yaxis.max){if(y2>yaxis.max)
continue;x1=(yaxis.max-y1)/(y2-y1)*(x2-x1)+x1;y1=yaxis.max;}
else if(y2>=y1&&y2>yaxis.max){if(y1>yaxis.max)
continue;x2=(yaxis.max-y1)/(y2-y1)*(x2-x1)+x1;y2=yaxis.max;}
if(x1<=x2&&x1<xaxis.min){if(x2<xaxis.min)
continue;y1=(xaxis.min-x1)/(x2-x1)*(y2-y1)+y1;x1=xaxis.min;}
else if(x2<=x1&&x2<xaxis.min){if(x1<xaxis.min)
continue;y2=(xaxis.min-x1)/(x2-x1)*(y2-y1)+y1;x2=xaxis.min;}
if(x1>=x2&&x1>xaxis.max){if(x2>xaxis.max)
continue;y1=(xaxis.max-x1)/(x2-x1)*(y2-y1)+y1;x1=xaxis.max;}
else if(x2>=x1&&x2>xaxis.max){if(x1>xaxis.max)
continue;y2=(xaxis.max-x1)/(x2-x1)*(y2-y1)+y1;x2=xaxis.max;}
if(prevx!=tHoz(x1)||prevy!=tVert(y1)+offset)
ctx.moveTo(tHoz(x1),tVert(y1)+offset);prevx=tHoz(x2);prevy=tVert(y2)+offset;ctx.lineTo(prevx,prevy);}
ctx.stroke();}
function plotLineArea(data){if(data.length<2)
return;var bottom=Math.min(Math.max(0,yaxis.min),yaxis.max);var top,lastX=0;var first=true;ctx.beginPath();for(var i=0;i<data.length-1;++i){var x1=data[i][0],y1=data[i][1],x2=data[i+1][0],y2=data[i+1][1];if(x1<=x2&&x1<xaxis.min){if(x2<xaxis.min)
continue;y1=(xaxis.min-x1)/(x2-x1)*(y2-y1)+y1;x1=xaxis.min;}
else if(x2<=x1&&x2<xaxis.min){if(x1<xaxis.min)
continue;y2=(xaxis.min-x1)/(x2-x1)*(y2-y1)+y1;x2=xaxis.min;}
if(x1>=x2&&x1>xaxis.max){if(x2>xaxis.max)
continue;y1=(xaxis.max-x1)/(x2-x1)*(y2-y1)+y1;x1=xaxis.max;}
else if(x2>=x1&&x2>xaxis.max){if(x1>xaxis.max)
continue;y2=(xaxis.max-x1)/(x2-x1)*(y2-y1)+y1;x2=xaxis.max;}
if(first){ctx.moveTo(tHoz(x1),tVert(bottom));first=false;}
if(y1>=yaxis.max&&y2>=yaxis.max){ctx.lineTo(tHoz(x1),tVert(yaxis.max));ctx.lineTo(tHoz(x2),tVert(yaxis.max));continue;}
else if(y1<=yaxis.min&&y2<=yaxis.min){ctx.lineTo(tHoz(x1),tVert(yaxis.min));ctx.lineTo(tHoz(x2),tVert(yaxis.min));continue;}
var x1old=x1,x2old=x2;if(y1<=y2&&y1<yaxis.min&&y2>=yaxis.min){x1=(yaxis.min-y1)/(y2-y1)*(x2-x1)+x1;y1=yaxis.min;}
else if(y2<=y1&&y2<yaxis.min&&y1>=yaxis.min){x2=(yaxis.min-y1)/(y2-y1)*(x2-x1)+x1;y2=yaxis.min;}
if(y1>=y2&&y1>yaxis.max&&y2<=yaxis.max){x1=(yaxis.max-y1)/(y2-y1)*(x2-x1)+x1;y1=yaxis.max;}
else if(y2>=y1&&y2>yaxis.max&&y1<=yaxis.max){x2=(yaxis.max-y1)/(y2-y1)*(x2-x1)+x1;y2=yaxis.max;}
if(x1!=x1old){if(y1<=yaxis.min)
top=yaxis.min;else
top=yaxis.max;ctx.lineTo(tHoz(x1old),tVert(top));ctx.lineTo(tHoz(x1),tVert(top));}
ctx.lineTo(tHoz(x1),tVert(y1));ctx.lineTo(tHoz(x2),tVert(y2));if(x2!=x2old){if(y2<=yaxis.min)
top=yaxis.min;else
top=yaxis.max;ctx.lineTo(tHoz(x2old),tVert(top));ctx.lineTo(tHoz(x2),tVert(top));}
lastX=Math.max(x2,x2old);}
ctx.lineTo(tHoz(lastX),tVert(bottom));ctx.fill();}
ctx.save();ctx.translate(plotOffset.left,plotOffset.top);ctx.lineJoin="round";var lw=series.lines.lineWidth;var sw=series.shadowSize;if(sw>0){ctx.lineWidth=sw/2;ctx.strokeStyle="rgba(0,0,0,0.1)";plotLine(series.data,lw/2+sw/2+ctx.lineWidth/2);ctx.lineWidth=sw/2;ctx.strokeStyle="rgba(0,0,0,0.2)";plotLine(series.data,lw/2+ctx.lineWidth/2);}
ctx.lineWidth=lw;ctx.strokeStyle=series.color;if(series.lines.fill){ctx.fillStyle=series.lines.fillColor!=null?series.lines.fillColor:parseColor(series.color).scale(null,null,null,0.4).toString();plotLineArea(series.data,0);}
plotLine(series.data,0);ctx.restore();}
function drawSeriesPoints(series){function plotPoints(data,radius,fill){for(var i=0;i<data.length;++i){var x=data[i][0],y=data[i][1];if(x<xaxis.min||x>xaxis.max||y<yaxis.min||y>yaxis.max)
continue;ctx.beginPath();ctx.arc(tHoz(x),tVert(y),radius,0,2*Math.PI,true);if(fill)
ctx.fill();ctx.stroke();}}
function plotPointShadows(data,offset,radius){for(var i=0;i<data.length;++i){var x=data[i][0],y=data[i][1];if(x<xaxis.min||x>xaxis.max||y<yaxis.min||y>yaxis.max)
continue;ctx.beginPath();ctx.arc(tHoz(x),tVert(y)+offset,radius,0,Math.PI,false);ctx.stroke();}}
ctx.save();ctx.translate(plotOffset.left,plotOffset.top);var lw=series.lines.lineWidth;var sw=series.shadowSize;if(sw>0){ctx.lineWidth=sw/2;ctx.strokeStyle="rgba(0,0,0,0.1)";plotPointShadows(series.data,sw/2+ctx.lineWidth/2,series.points.radius);ctx.lineWidth=sw/2;ctx.strokeStyle="rgba(0,0,0,0.2)";plotPointShadows(series.data,ctx.lineWidth/2,series.points.radius);}
ctx.lineWidth=series.points.lineWidth;ctx.strokeStyle=series.color;ctx.fillStyle=series.points.fillColor!=null?series.points.fillColor:series.color;plotPoints(series.data,series.points.radius,series.points.fill);ctx.restore();}
function drawSeriesBars(series,counter,total){function plotBars(data,barWidth,offset,fill,counter,total){if(data.length<2)
return;var shift=0;if(total%2==0)
shift=(1+(counter-total/2-1))*barWidth;else
{var interval=0.5;if(counter==(total/2-interval))
shift=-barWidth*interval;else
shift=(interval+(counter-Math.round(total/2)))*barWidth;}
for(var i=0;i<data.length;i++){var x=data[i][0],y=data[i][1];var drawLeft=true,drawTop=true,drawRight=true;var left=x+shift,right=x+shift+barWidth,bottom=0,top=y;if(right<xaxis.min||left>xaxis.max||top<yaxis.min||bottom>yaxis.max)
continue;if(left<xaxis.min){left=xaxis.min;drawLeft=false;}
if(right>xaxis.max){right=xaxis.max;drawRight=false;}
if(bottom<yaxis.min)
bottom=yaxis.min;if(top>yaxis.max){top=yaxis.max;drawTop=false;}
if(fill){ctx.beginPath();ctx.moveTo(tHoz(left),tVert(bottom)+offset);ctx.lineTo(tHoz(left),tVert(top)+offset);ctx.lineTo(tHoz(right),tVert(top)+offset);ctx.lineTo(tHoz(right),tVert(bottom)+offset);ctx.fill();}
if(drawLeft||drawRight||drawTop){ctx.beginPath();ctx.moveTo(tHoz(left),tVert(bottom)+offset);if(drawLeft)
ctx.lineTo(tHoz(left),tVert(top)+offset);else
ctx.moveTo(tHoz(left),tVert(top)+offset);if(drawTop)
ctx.lineTo(tHoz(right),tVert(top)+offset);else
ctx.moveTo(tHoz(right),tVert(top)+offset);if(drawRight)
ctx.lineTo(tHoz(right),tVert(bottom)+offset);else
ctx.moveTo(tHoz(right),tVert(bottom)+offset);ctx.stroke();}}}
ctx.save();ctx.translate(plotOffset.left,plotOffset.top);ctx.lineJoin="round";var bw=series.bars.barWidth;var lw=Math.min(series.bars.lineWidth,bw);ctx.lineWidth=lw;ctx.strokeStyle=series.color;if(series.bars.fill){ctx.fillStyle=series.bars.fillColor!=null?series.bars.fillColor:parseColor(series.color).scale(null,null,null,options.bars.fillOpacity).toString();}
plotBars(series.data,bw,0,series.bars.fill,counter,total);ctx.restore();}
function insertLegend(){if(!options.legend.show)
return;var fragments=[];var rowStarted=false;for(i=0;i<series.length;++i){if(!series[i].label)
continue;if(i%options.legend.noColumns==0){if(rowStarted)
fragments.push('</tr>');fragments.push('<tr>');rowStarted=true;}
var label=series[i].label;if(options.legend.labelFormatter!=null)
label=options.legend.labelFormatter(label);fragments.push('<td class="legendColorBox"><div style="border:1px solid '+options.legend.labelBoxBorderColor+';padding:1px"><div style="width:14px;height:10px;background-color:'+series[i].color+'"></div></div></td>'+'<td class="legendLabel">'+label+'</td>');}
if(rowStarted)
fragments.push('</tr>');if(fragments.length>0){var table='<table style="font-size:smaller;color:'+options.grid.color+'">'+fragments.join("")+'</table>';if(options.legend.container!=null)
options.legend.container.append(table);else{var pos="";var p=options.legend.position,m=options.legend.margin;if(p.charAt(0)=="n")
pos+='top:'+(m+plotOffset.top)+'px;';else if(p.charAt(0)=="s")
pos+='bottom:'+(m+plotOffset.bottom)+'px;';if(p.charAt(1)=="e")
pos+='right:'+(m+plotOffset.right)+'px;';else if(p.charAt(1)=="w")
pos+='left:'+(m+plotOffset.bottom)+'px;';var div=$('<div class="legend" style="position:absolute;z-index:2;'+pos+'">'+table+'</div>').appendTo(target);if(options.legend.backgroundOpacity!=0.0){var c=options.legend.backgroundColor;if(c==null){var tmp;if(options.grid.backgroundColor!=null)
tmp=options.grid.backgroundColor;else
tmp=extractColor(div);c=parseColor(tmp).adjust(null,null,null,1).toString();}
$('<div style="position:absolute;width:'+div.width()+'px;height:'+div.height()+'px;'+pos+'background-color:'+c+';"> </div>').appendTo(target).css('opacity',options.legend.backgroundOpacity);}}}}
var lastMousePos={pageX:null,pageY:null};var selection={first:{x:-1,y:-1},second:{x:-1,y:-1}};var prevSelection=null;var selectionInterval=null;var ignoreClick=false;function onMouseMove(ev){var e=ev||window.event;if(e.pageX==null&&e.clientX!=null){var de=document.documentElement,b=document.body;lastMousePos.pageX=e.clientX+(de&&de.scrollLeft||b.scrollLeft||0);lastMousePos.pageY=e.clientY+(de&&de.scrollTop||b.scrollTop||0);}
else{lastMousePos.pageX=e.pageX;lastMousePos.pageY=e.pageY;}}
function onMouseDown(e){if(e.which!=1)
return;setSelectionPos(selection.first,e);if(selectionInterval!=null)
clearInterval(selectionInterval);lastMousePos.pageX=null;selectionInterval=setInterval(updateSelectionOnMouseMove,200);$(document).one("mouseup",onSelectionMouseUp);}
function onClick(e){if(ignoreClick){ignoreClick=false;return;}
var offset=$(overlay).offset();var pos={};pos.x=e.pageX-offset.left-plotOffset.left;pos.x=xaxis.min+pos.x/hozScale;pos.y=e.pageY-offset.top-plotOffset.top;pos.y=yaxis.max-pos.y/vertScale;pos.orgX=e.pageX;pos.orgY=e.pageY;target.trigger("plotclick",[pos]);}
function triggerSelectedEvent(){var x1,x2,y1,y2;if(selection.first.x<=selection.second.x){x1=selection.first.x;x2=selection.second.x;}
else{x1=selection.second.x;x2=selection.first.x;}
if(selection.first.y>=selection.second.y){y1=selection.first.y;y2=selection.second.y;}
else{y1=selection.second.y;y2=selection.first.y;}
x1=xaxis.min+x1/hozScale;x2=xaxis.min+x2/hozScale;y1=yaxis.max-y1/vertScale;y2=yaxis.max-y2/vertScale;target.trigger("selected",[{x1:x1,y1:y1,x2:x2,y2:y2}]);}
function onSelectionMouseUp(e){if(selectionInterval!=null){clearInterval(selectionInterval);selectionInterval=null;}
setSelectionPos(selection.second,e);clearSelection();if(!selectionIsSane()||e.which!=1)
return false;drawSelection();triggerSelectedEvent();ignoreClick=true;return false;}
function setSelectionPos(pos,e){var offset=$(overlay).offset();if(options.selection.mode=="y"){if(pos==selection.first)
pos.x=0;else
pos.x=plotWidth;}
else{pos.x=e.pageX-offset.left-plotOffset.left;pos.x=Math.min(Math.max(0,pos.x),plotWidth);}
if(options.selection.mode=="x"){if(pos==selection.first)
pos.y=0;else
pos.y=plotHeight;}
else{pos.y=e.pageY-offset.top-plotOffset.top;pos.y=Math.min(Math.max(0,pos.y),plotHeight);}}
function updateSelectionOnMouseMove(){if(lastMousePos.pageX==null)
return;setSelectionPos(selection.second,lastMousePos);clearSelection();if(selectionIsSane())
drawSelection();}
function clearSelection(){if(prevSelection==null)
return;var x=Math.min(prevSelection.first.x,prevSelection.second.x),y=Math.min(prevSelection.first.y,prevSelection.second.y),w=Math.abs(prevSelection.second.x-prevSelection.first.x),h=Math.abs(prevSelection.second.y-prevSelection.first.y);octx.clearRect(x+plotOffset.left-octx.lineWidth,y+plotOffset.top-octx.lineWidth,w+octx.lineWidth*2,h+octx.lineWidth*2);prevSelection=null;}
function setSelection(area){clearSelection();if(options.selection.mode=="x"){selection.first.y=0;selection.second.y=plotHeight;}
else{selection.first.y=(yaxis.max-area.y1)*vertScale;selection.second.y=(yaxis.max-area.y2)*vertScale;}
if(options.selection.mode=="y"){selection.first.x=0;selection.second.x=plotWidth;}
else{selection.first.x=(area.x1-xaxis.min)*hozScale;selection.second.x=(area.x2-xaxis.min)*hozScale;}
drawSelection();triggerSelectedEvent();}
function drawSelection(){if(prevSelection!=null&&selection.first.x==prevSelection.first.x&&selection.first.y==prevSelection.first.y&&selection.second.x==prevSelection.second.x&&selection.second.y==prevSelection.second.y)
return;octx.strokeStyle=parseColor(options.selection.color).scale(null,null,null,0.8).toString();octx.lineWidth=1;ctx.lineJoin="round";octx.fillStyle=parseColor(options.selection.color).scale(null,null,null,0.4).toString();prevSelection={first:{x:selection.first.x,y:selection.first.y},second:{x:selection.second.x,y:selection.second.y}};var x=Math.min(selection.first.x,selection.second.x),y=Math.min(selection.first.y,selection.second.y),w=Math.abs(selection.second.x-selection.first.x),h=Math.abs(selection.second.y-selection.first.y);octx.fillRect(x+plotOffset.left,y+plotOffset.top,w,h);octx.strokeRect(x+plotOffset.left,y+plotOffset.top,w,h);}
function selectionIsSane(){var minSize=5;return Math.abs(selection.second.x-selection.first.x)>=minSize&&Math.abs(selection.second.y-selection.first.y)>=minSize;}}
$.plot=function(target,data,options){var plot=new Plot(target,data,options);return plot;};function getMagnitude(x){return Math.pow(10,Math.floor(Math.log(x)/Math.LN10));}
function Color(r,g,b,a){var rgba=['r','g','b','a'];var x=4;while(-1<--x){this[rgba[x]]=arguments[x]||((x==3)?1.0:0);}
this.toString=function(){if(this.a>=1.0){return"rgb("+[this.r,this.g,this.b].join(",")+")";}else{return"rgba("+[this.r,this.g,this.b,this.a].join(",")+")";}};this.scale=function(rf,gf,bf,af){x=4;while(-1<--x){if(arguments[x]!=null)
this[rgba[x]]*=arguments[x];}
return this.normalize();};this.adjust=function(rd,gd,bd,ad){x=4;while(-1<--x){if(arguments[x]!=null)
this[rgba[x]]+=arguments[x];}
return this.normalize();};this.clone=function(){return new Color(this.r,this.b,this.g,this.a);};var limit=function(val,minVal,maxVal){return Math.max(Math.min(val,maxVal),minVal);};this.normalize=function(){this.r=limit(parseInt(this.r),0,255);this.g=limit(parseInt(this.g),0,255);this.b=limit(parseInt(this.b),0,255);this.a=limit(this.a,0,1);return this;};this.normalize();}
var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]};function extractColor(element){var color,elem=element;do{color=elem.css("background-color").toLowerCase();if(color!=''&&color!='transparent')
break;elem=elem.parent();}while(!$.nodeName(elem.get(0),"body"));if(color=="rgba(0, 0, 0, 0)")
return"transparent";return color;}
function parseColor(str){var result;if(result=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))
return new Color(parseInt(result[1]),parseInt(result[2]),parseInt(result[3]));if(result=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))
return new Color(parseInt(result[1]),parseInt(result[2]),parseInt(result[3]),parseFloat(result[4]));if(result=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))
return new Color(parseFloat(result[1])*2.55,parseFloat(result[2])*2.55,parseFloat(result[3])*2.55);if(result=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))
return new Color(parseFloat(result[1])*2.55,parseFloat(result[2])*2.55,parseFloat(result[3])*2.55,parseFloat(result[4]));if(result=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))
return new Color(parseInt(result[1],16),parseInt(result[2],16),parseInt(result[3],16));if(result=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))
return new Color(parseInt(result[1]+result[1],16),parseInt(result[2]+result[2],16),parseInt(result[3]+result[3],16));var name=jQuery.trim(str).toLowerCase();if(name=="transparent")
return new Color(255,255,255,0);else{result=lookupColors[name];return new Color(result[0],result[1],result[2]);}}})(jQuery);
Date.dayNames=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];Date.abbrDayNames=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];Date.monthNames=['January','February','March','April','May','June','July','August','September','October','November','December'];Date.abbrMonthNames=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];Date.firstDayOfWeek=1;Date.format='dd/mm/yyyy';Date.fullYearStart='20';(function(){function add(name,method){if(!Date.prototype[name]){Date.prototype[name]=method;}};add("isLeapYear",function(){var y=this.getFullYear();return(y%4==0&&y%100!=0)||y%400==0;});add("isWeekend",function(){return this.getDay()==0||this.getDay()==6;});add("isWeekDay",function(){return!this.isWeekend();});add("getDaysInMonth",function(){return[31,(this.isLeapYear()?29:28),31,30,31,30,31,31,30,31,30,31][this.getMonth()];});add("getDayName",function(abbreviated){return abbreviated?Date.abbrDayNames[this.getDay()]:Date.dayNames[this.getDay()];});add("getMonthName",function(abbreviated){return abbreviated?Date.abbrMonthNames[this.getMonth()]:Date.monthNames[this.getMonth()];});add("getDayOfYear",function(){var tmpdtm=new Date("1/1/"+this.getFullYear());return Math.floor((this.getTime()-tmpdtm.getTime())/86400000);});add("getWeekOfYear",function(){return Math.ceil(this.getDayOfYear()/7);});add("setDayOfYear",function(day){this.setMonth(0);this.setDate(day);return this;});add("addYears",function(num){this.setFullYear(this.getFullYear()+num);return this;});add("addMonths",function(num){var tmpdtm=this.getDate();this.setMonth(this.getMonth()+num);if(tmpdtm>this.getDate())
this.addDays(-this.getDate());return this;});add("addDays",function(num){this.setDate(this.getDate()+num);return this;});add("addHours",function(num){this.setHours(this.getHours()+num);return this;});add("addMinutes",function(num){this.setMinutes(this.getMinutes()+num);return this;});add("addSeconds",function(num){this.setSeconds(this.getSeconds()+num);return this;});add("zeroTime",function(){this.setMilliseconds(0);this.setSeconds(0);this.setMinutes(0);this.setHours(0);return this;});add("asString",function(){var r=Date.format;return r.split('yyyy').join(this.getFullYear()).split('yy').join((this.getFullYear()+'').substring(2)).split('mmm').join(this.getMonthName(true)).split('mm').join(_zeroPad(this.getMonth()+1)).split('dd').join(_zeroPad(this.getDate()));});Date.fromString=function(s)
{var f=Date.format;var d=new Date('01/01/1977');var iY=f.indexOf('yyyy');if(iY>-1){d.setFullYear(Number(s.substr(iY,4)));}else{d.setFullYear(Number(Date.fullYearStart+s.substr(f.indexOf('yy'),2)));}
var iM=f.indexOf('mmm');if(iM>-1){var mStr=s.substr(iM,3);for(var i=0;i<Date.abbrMonthNames.length;i++){if(Date.abbrMonthNames[i]==mStr)break;}
d.setMonth(i);}else{d.setMonth(Number(s.substr(f.indexOf('mm'),2))-1);}
d.setDate(Number(s.substr(f.indexOf('dd'),2)));if(isNaN(d.getTime())){return false;}
return d;};var _zeroPad=function(num){var s='0'+num;return s.substring(s.length-2)};})();
(function($){$.fn.extend({renderCalendar:function(s)
{var dc=function(a)
{return document.createElement(a);};s=$.extend({month:null,year:null,renderCallback:null,showHeader:$.dpConst.SHOW_HEADER_SHORT,dpController:null,hoverClass:'dp-hover'},s);if(s.showHeader!=$.dpConst.SHOW_HEADER_NONE){var headRow=$(dc('tr'));for(var i=Date.firstDayOfWeek;i<Date.firstDayOfWeek+7;i++){var weekday=i%7;var day=Date.dayNames[weekday];headRow.append(jQuery(dc('th')).attr({'scope':'col','abbr':day,'title':day,'class':(weekday==0||weekday==6?'weekend':'weekday')}).html(s.showHeader==$.dpConst.SHOW_HEADER_SHORT?day.substr(0,1):day));}};var calendarTable=$(dc('table')).attr({'cellspacing':2,'className':'jCalendar'}).append((s.showHeader!=$.dpConst.SHOW_HEADER_NONE?$(dc('thead')).append(headRow):dc('thead')));var tbody=$(dc('tbody'));var today=(new Date()).zeroTime();var month=s.month==undefined?today.getMonth():s.month;var year=s.year||today.getFullYear();var currentDate=new Date(year,month,1);var firstDayOffset=Date.firstDayOfWeek-currentDate.getDay()+1;if(firstDayOffset>1)firstDayOffset-=7;var weeksToDraw=Math.ceil(((-1*firstDayOffset+1)+currentDate.getDaysInMonth())/7);currentDate.addDays(firstDayOffset-1);var doHover=function()
{if(s.hoverClass){$(this).addClass(s.hoverClass);}};var unHover=function()
{if(s.hoverClass){$(this).removeClass(s.hoverClass);}};var w=0;while(w++<weeksToDraw){var r=jQuery(dc('tr'));for(var i=0;i<7;i++){var thisMonth=currentDate.getMonth()==month;var d=$(dc('td')).text(currentDate.getDate()+'').attr('className',(thisMonth?'current-month ':'other-month ')+
(currentDate.isWeekend()?'weekend ':'weekday ')+
(thisMonth&&currentDate.getTime()==today.getTime()?'today ':'')).hover(doHover,unHover);if(s.renderCallback){s.renderCallback(d,currentDate,month,year);}
r.append(d);currentDate.addDays(1);}
tbody.append(r);}
calendarTable.append(tbody);return this.each(function()
{$(this).empty().append(calendarTable);});},datePicker:function(s)
{if(!$.event._dpCache)$.event._dpCache=[];s=$.extend({month:undefined,year:undefined,startDate:undefined,endDate:undefined,inline:false,renderCallback:[],createButton:true,showYearNavigation:true,closeOnSelect:true,displayClose:false,selectMultiple:false,clickInput:false,verticalPosition:$.dpConst.POS_TOP,horizontalPosition:$.dpConst.POS_LEFT,verticalOffset:0,horizontalOffset:0,hoverClass:'dp-hover'},s);return this.each(function()
{var $this=$(this);var alreadyExists=true;if(!this._dpId){this._dpId=$.event.guid++;$.event._dpCache[this._dpId]=new DatePicker(this);alreadyExists=false;}
if(s.inline){s.createButton=false;s.displayClose=false;s.closeOnSelect=false;$this.empty();}
var controller=$.event._dpCache[this._dpId];controller.init(s);if(!alreadyExists&&s.createButton){controller.button=$('<a href="#" class="dp-choose-date" title="'+$.dpText.TEXT_CHOOSE_DATE+'">'+$.dpText.TEXT_CHOOSE_DATE+'</a>').bind('click',function()
{$this.dpDisplay(this);this.blur();return false;});$this.after(controller.button);}
if(!alreadyExists&&$this.is(':text')){$this.bind('dateSelected',function(e,selectedDate,$td)
{this.value=selectedDate.asString();}).bind('change',function()
{var d=Date.fromString(this.value);if(d){controller.setSelected(d,true,true);}});if(s.clickInput){$this.bind('click',function()
{$this.dpDisplay();});}
var d=Date.fromString(this.value);if(this.value!=''&&d){controller.setSelected(d,true,true);}}
$this.addClass('dp-applied');})},dpSetDisabled:function(s)
{return _w.call(this,'setDisabled',s);},dpSetStartDate:function(d)
{return _w.call(this,'setStartDate',d);},dpSetEndDate:function(d)
{return _w.call(this,'setEndDate',d);},dpGetSelected:function()
{var c=_getController(this[0]);if(c){return c.getSelected();}
return null;},dpSetSelected:function(d,v,m)
{if(v==undefined)v=true;if(m==undefined)m=true;return _w.call(this,'setSelected',Date.fromString(d),v,m);},dpSetDisplayedMonth:function(m,y)
{return _w.call(this,'setDisplayedMonth',Number(m),Number(y));},dpDisplay:function(e)
{return _w.call(this,'display',e);},dpSetRenderCallback:function(a)
{return _w.call(this,'setRenderCallback',a);},dpSetPosition:function(v,h)
{return _w.call(this,'setPosition',v,h);},dpSetOffset:function(v,h)
{return _w.call(this,'setOffset',v,h);},dpClose:function()
{return _w.call(this,'_closeCalendar',false,this[0]);},_dpDestroy:function()
{}});var _w=function(f,a1,a2,a3)
{return this.each(function()
{var c=_getController(this);if(c){c[f](a1,a2,a3);}});};function DatePicker(ele)
{this.ele=ele;this.displayedMonth=null;this.displayedYear=null;this.startDate=null;this.endDate=null;this.showYearNavigation=null;this.closeOnSelect=null;this.displayClose=null;this.selectMultiple=null;this.verticalPosition=null;this.horizontalPosition=null;this.verticalOffset=null;this.horizontalOffset=null;this.button=null;this.renderCallback=[];this.selectedDates={};this.inline=null;this.context='#dp-popup';};$.extend(DatePicker.prototype,{init:function(s)
{this.setStartDate(s.startDate);this.setEndDate(s.endDate);this.setDisplayedMonth(Number(s.month),Number(s.year));this.setRenderCallback(s.renderCallback);this.showYearNavigation=s.showYearNavigation;this.closeOnSelect=s.closeOnSelect;this.displayClose=s.displayClose;this.selectMultiple=s.selectMultiple;this.verticalPosition=s.verticalPosition;this.horizontalPosition=s.horizontalPosition;this.hoverClass=s.hoverClass;this.setOffset(s.verticalOffset,s.horizontalOffset);this.inline=s.inline;if(this.inline){this.context=this.ele;this.display();}},setStartDate:function(d)
{if(d){this.startDate=Date.fromString(d);}
if(!this.startDate){this.startDate=(new Date()).zeroTime();}
this.setDisplayedMonth(this.displayedMonth,this.displayedYear);},setEndDate:function(d)
{if(d){this.endDate=Date.fromString(d);}
if(!this.endDate){this.endDate=(new Date('12/31/2999'));}
if(this.endDate.getTime()<this.startDate.getTime()){this.endDate=this.startDate;}
this.setDisplayedMonth(this.displayedMonth,this.displayedYear);},setPosition:function(v,h)
{this.verticalPosition=v;this.horizontalPosition=h;},setOffset:function(v,h)
{this.verticalOffset=parseInt(v)||0;this.horizontalOffset=parseInt(h)||0;},setDisabled:function(s)
{$e=$(this.ele);$e[s?'addClass':'removeClass']('dp-disabled');if(this.button){$but=$(this.button);$but[s?'addClass':'removeClass']('dp-disabled');$but.attr('title',s?'':$.dpText.TEXT_CHOOSE_DATE);}
if($e.is(':text')){$e.attr('disabled',s?'disabled':'');}},setDisplayedMonth:function(m,y)
{if(this.startDate==undefined||this.endDate==undefined){return;}
var s=new Date(this.startDate.getTime());s.setDate(1);var e=new Date(this.endDate.getTime());e.setDate(1);var t;if((!m&&!y)||(isNaN(m)&&isNaN(y))){t=new Date().zeroTime();t.setDate(1);}else if(isNaN(m)){t=new Date(y,this.displayedMonth,1);}else if(isNaN(y)){t=new Date(this.displayedYear,m,1);}else{t=new Date(y,m,1)}
if(t.getTime()<s.getTime()){t=s;}else if(t.getTime()>e.getTime()){t=e;}
this.displayedMonth=t.getMonth();this.displayedYear=t.getFullYear();},setSelected:function(d,v,moveToMonth)
{if(this.selectMultiple==false){this.selectedDates={};$('td.selected',this.context).removeClass('selected');}
if(moveToMonth){this.setDisplayedMonth(d.getMonth(),d.getFullYear());}
this.selectedDates[d.toString()]=v;},isSelected:function(d)
{return this.selectedDates[d.toString()];},getSelected:function()
{var r=[];for(s in this.selectedDates){if(this.selectedDates[s]==true){r.push(Date.parse(s));}}
return r;},display:function(eleAlignTo)
{if($(this.ele).is('.dp-disabled'))return;eleAlignTo=eleAlignTo||this.ele;var c=this;var $ele=$(eleAlignTo);var eleOffset=$ele.offset();var $createIn;var attrs;var attrsCalendarHolder;var cssRules;if(c.inline){$createIn=$(this.ele);attrs={'id':'calendar-'+this.ele._dpId,'className':'dp-popup dp-popup-inline'};cssRules={};}else{$createIn=$('body');attrs={'id':'dp-popup','className':'dp-popup'};cssRules={'top':eleOffset.top+c.verticalOffset,'left':eleOffset.left+c.horizontalOffset};var _checkMouse=function(e)
{var el=e.target;var cal=$('#dp-popup')[0];while(true){if(el==cal){return true;}else if(el==document){c._closeCalendar();return false;}else{el=$(el).parent()[0];}}};this._checkMouse=_checkMouse;this._closeCalendar(true);}
$createIn.append($('<div></div>').attr(attrs).css(cssRules).append($('<h2></h2>'),$('<div class="dp-nav-prev"></div>').append($('<a class="dp-nav-prev-year" href="#" title="'+$.dpText.TEXT_PREV_YEAR+'">&lt;&lt;</a>').bind('click',function()
{return c._displayNewMonth.call(c,this,0,-1);}),$('<a class="dp-nav-prev-month" href="#" title="'+$.dpText.TEXT_PREV_MONTH+'">&lt;</a>').bind('click',function()
{return c._displayNewMonth.call(c,this,-1,0);})),$('<div class="dp-nav-next"></div>').append($('<a class="dp-nav-next-year" href="#" title="'+$.dpText.TEXT_NEXT_YEAR+'">&gt;&gt;</a>').bind('click',function()
{return c._displayNewMonth.call(c,this,0,1);}),$('<a class="dp-nav-next-month" href="#" title="'+$.dpText.TEXT_NEXT_MONTH+'">&gt;</a>').bind('click',function()
{return c._displayNewMonth.call(c,this,1,0);})),$('<div></div>').attr('className','dp-calendar')).bgIframe());var $pop=this.inline?$('.dp-popup',this.context):$('#dp-popup');if(this.showYearNavigation==false){$('.dp-nav-prev-year, .dp-nav-next-year',c.context).css('display','none');}
if(this.displayClose){$pop.append($('<a href="#" id="dp-close">'+$.dpText.TEXT_CLOSE+'</a>').bind('click',function()
{c._closeCalendar();return false;}));}
c._renderCalendar();$(this.ele).trigger('dpDisplayed',$pop);if(!c.inline){if(this.verticalPosition==$.dpConst.POS_BOTTOM){$pop.css('top',eleOffset.top+$ele.height()-$pop.height()+c.verticalOffset);}
if(this.horizontalPosition==$.dpConst.POS_RIGHT){$pop.css('left',eleOffset.left+$ele.width()-$pop.width()+c.horizontalOffset);}
$(document).bind('mousedown',this._checkMouse);}},setRenderCallback:function(a)
{if(a&&typeof(a)=='function'){a=[a];}
this.renderCallback=this.renderCallback.concat(a);},cellRender:function($td,thisDate,month,year){var c=this.dpController;var d=new Date(thisDate.getTime());$td.bind('click',function()
{var $this=$(this);if(!$this.is('.disabled')){c.setSelected(d,!$this.is('.selected')||!c.selectMultiple);var s=c.isSelected(d);$(c.ele).trigger('dateSelected',[d,$td,s]);$(c.ele).trigger('change');if(c.closeOnSelect){c._closeCalendar();}else{$this[s?'addClass':'removeClass']('selected');}}});if(c.isSelected(d)){$td.addClass('selected');}
for(var i=0;i<c.renderCallback.length;i++){c.renderCallback[i].apply(this,arguments);}},_displayNewMonth:function(ele,m,y)
{if(!$(ele).is('.disabled')){this.setDisplayedMonth(this.displayedMonth+m,this.displayedYear+y);this._clearCalendar();this._renderCalendar();$(this.ele).trigger('dpMonthChanged',[this.displayedMonth,this.displayedYear]);}
ele.blur();return false;},_renderCalendar:function()
{$('h2',this.context).html(Date.monthNames[this.displayedMonth]+' '+this.displayedYear);$('.dp-calendar',this.context).renderCalendar({month:this.displayedMonth,year:this.displayedYear,renderCallback:this.cellRender,dpController:this,hoverClass:this.hoverClass});if(this.displayedYear==this.startDate.getFullYear()&&this.displayedMonth==this.startDate.getMonth()){$('.dp-nav-prev-year',this.context).addClass('disabled');$('.dp-nav-prev-month',this.context).addClass('disabled');$('.dp-calendar td.other-month',this.context).each(function()
{var $this=$(this);if(Number($this.text())>20){$this.addClass('disabled');}});var d=this.startDate.getDate();$('.dp-calendar td.current-month',this.context).each(function()
{var $this=$(this);if(Number($this.text())<d){$this.addClass('disabled');}});}else{$('.dp-nav-prev-year',this.context).removeClass('disabled');$('.dp-nav-prev-month',this.context).removeClass('disabled');var d=this.startDate.getDate();if(d>20){var sd=new Date(this.startDate.getTime());sd.addMonths(1);if(this.displayedYear==sd.getFullYear()&&this.displayedMonth==sd.getMonth()){$('dp-calendar td.other-month',this.context).each(function()
{var $this=$(this);if(Number($this.text())<d){$this.addClass('disabled');}});}}}
if(this.displayedYear==this.endDate.getFullYear()&&this.displayedMonth==this.endDate.getMonth()){$('.dp-nav-next-year',this.context).addClass('disabled');$('.dp-nav-next-month',this.context).addClass('disabled');$('.dp-calendar td.other-month',this.context).each(function()
{var $this=$(this);if(Number($this.text())<14){$this.addClass('disabled');}});var d=this.endDate.getDate();$('.dp-calendar td.current-month',this.context).each(function()
{var $this=$(this);if(Number($this.text())>d){$this.addClass('disabled');}});}else{$('.dp-nav-next-year',this.context).removeClass('disabled');$('.dp-nav-next-month',this.context).removeClass('disabled');var d=this.endDate.getDate();if(d<13){var ed=new Date(this.endDate.getTime());ed.addMonths(-1);if(this.displayedYear==ed.getFullYear()&&this.displayedMonth==ed.getMonth()){$('.dp-calendar td.other-month',this.context).each(function()
{var $this=$(this);if(Number($this.text())>d){$this.addClass('disabled');}});}}}},_closeCalendar:function(programatic,ele)
{if(!ele||ele==this.ele)
{$(document).unbind('mousedown',this._checkMouse);this._clearCalendar();$('#dp-popup a').unbind();$('#dp-popup').empty().remove();if(!programatic){$(this.ele).trigger('dpClosed',[this.getSelected()]);}}},_clearCalendar:function()
{$('.dp-calendar td',this.context).unbind();$('.dp-calendar',this.context).empty();}});$.dpConst={SHOW_HEADER_NONE:0,SHOW_HEADER_SHORT:1,SHOW_HEADER_LONG:2,POS_TOP:0,POS_BOTTOM:1,POS_LEFT:0,POS_RIGHT:1};$.dpText={TEXT_PREV_YEAR:'Previous year',TEXT_PREV_MONTH:'Previous month',TEXT_NEXT_YEAR:'Next year',TEXT_NEXT_MONTH:'Next month',TEXT_CLOSE:'Close',TEXT_CHOOSE_DATE:'Choose date'};$.dpVersion='$Id: jquery.datePicker.js 3739 2007-10-25 13:55:30Z kelvin.luck $';function _getController(ele)
{if(ele._dpId)return $.event._dpCache[ele._dpId];return false;};if($.fn.bgIframe==undefined){$.fn.bgIframe=function(){return this;};};$(window).bind('unload',function(){var els=$.event._dpCache||[];for(var i in els){$(els[i].ele)._dpDestroy();}});})(jQuery);
function AllSmashwordRules(){commentsSlider();openidSigninHandler();}
function PopupRules(){addFormSubmitSpinners();popupFormatInfo();}
function commentsSlider(){$('div#commentLink a#show').bind('click',function(e){$('div#commentLink a#show').hide('slow');$('div#commentLink form').show('slow');e.preventDefault();});$('input#btnCancel').bind('click',function(e){$('div#commentLink form').hide('slow');$('div#commentLink a#show').show('slow');e.preventDefault();});$('input#btnSend').bind('click',function(e){$('input#url').attr('value',location.href);var postdata=$('div#commentLink form').serialize();$.post("/comments/post",postdata);$('div#commentLink a#show').text('Your comment has been sent.  Thank you!');$('div#commentLink form').hide('slow');$('div#commentLink a#show').show('slow');e.preventDefault();});}
function PricingRules(){var enableSampling=$('#enableSampling');var samplePercent=$('#samplingPercent');var fixedPrice=$('#fixedPrice');var nameYourPrice=$('#nameYourPrice');var distributorRSPprice=$('#distributorRSPprice');var freePrice=$('#free');var price=$('#price').css('backgroundColor','#ddd');enableSampling.bind('click',function(e){samplePercent.attr('disabled',!enableSampling.attr('checked'));});$('.pricingOption').bind('click',function(e){samplePercent.attr('disabled',!!freePrice.attr('checked'));enableSampling.attr('disabled',!!freePrice.attr('checked'));});$('input.pricingOption').bind('click',function(e){price.css('backgroundColor',(fixedPrice.attr('checked')?'white':'#ddd'));$('#pricingGraph').css('display',(fixedPrice.attr('checked')?'block':'none'));$('#pricingGraphAff').css('display',(fixedPrice.attr('checked')?'block':'none'));$('#pricingGraphPrem').css('display',(fixedPrice.attr('checked')?'block':'none'));if(distributorRSPprice){distributorRSPprice.css('backgroundColor',(nameYourPrice.attr('checked')?'white':'#ddd'));$('#pricingGraphPremRSP').css('display',(nameYourPrice.attr('checked')?'block':'none'));}});price.bind('click',function(e){fixedPrice.attr('checked','checked');price.css('backgroundColor','white').focus();$('#pricingGraph').css('display',(fixedPrice.attr('checked')?'block':'none'));$('#pricingGraphAff').css('display',(fixedPrice.attr('checked')?'block':'none'));$('#pricingGraphPrem').css('display',(fixedPrice.attr('checked')?'block':'none'));});if(distributorRSPprice){distributorRSPprice.bind('click',function(e){nameYourPrice.attr('checked','checked');distributorRSPprice.css('backgroundColor','white').focus();$('#pricingGraphPremRSP').css('display',(nameYourPrice.attr('checked')?'block':'none'));});}}
function popupFormatInfo(){$('a.popup').bind('click',function(e){target='_blank';ops='width=500,height=400,scrollbars=yes,status=no,resizable=yes';window.open($(this).attr('href'),'_blank',ops);e.preventDefault();});}
function addFormSubmitSpinners(){$('form#fileUpload').bind('submit',function(e){$('input#fileUploadSubmit').attr('disabled',true);$('div#uploadSpinner').css('display','block');});}
function ShowSortableTables(options){$("#sortable").tablesorter(options);}
function enableInlineWriteReview(){$('a#writeReviewLink').bind('click',function(e){$('div#writeReview').slideToggle();e.preventDefault();});$('a#addVideoReviewLink').bind('click',function(e){$('div#addVideoReview').slideToggle();e.preventDefault();});}
function enableInlineReportBook(){$('a#reportBookLink').bind('click',function(e){$('div#reportBook').slideToggle();e.preventDefault();});}
function setupTagging(){var tagHelper=$('#tagHelper');tagHelper.css('display','block');$('#tagHelperLabel').css('display','inline');$('form input#tags').jTagging(tagHelper,',');}
function fileUploadProgress(){var docs='*.txt; *.htm; *.html; *.doc';var secToken=$('input[@name="secToken"]').val();$('div.jqUploader').jqUploader({uploadScript:site_url('static/flash_upload.php?secToken='+secToken),src:site_url('static/js/jqUploader.swf'),allowedExt:docs,allowedExtDescr:'Documents ('+docs+')',startMessage:'Select a book to upload',endMessage:'You\'re all done. Click the "Continue" button'});$('input[@type="submit"]').val('Continue');}
function setStars(val){var i;$('img.starImg').css('opacity','0.3');if(val>0){for(i=1;i<=val;i++){$('img.starImg#'+i).css('opacity','1');}}}
function ReviewStarsClickable(){$('span#starsText').css('display','none');$('span#starsImg').css('display','inline');var curVal=$('input#stars').get(0).value;if(curVal!==''){var intCurVal=parseInt(curVal,10);if((intCurVal>=0)&&(intCurVal<=5)){setStars(intCurVal);}}
$('img.starImg').bind('click',function(e){$('input#stars').get(0).value=this.id;setStars(parseInt(this.id,10));});}
function titleCheckEnabler(){$('input#title').bind('keyup',titleChangeHandler);}
var titleCheckTimer;var titleToCheck;function titleChangeHandler(e){titleToCheck=e.target.value;if(titleCheckTimer){clearTimeout(titleCheckTimer);}
if(titleToCheck.length>=3){titleCheckTimer=setTimeout(titleChecker,1000);$('span#titleDuplicate').html("One moment...");}else{$('span#titleDuplicate').html("");}
return true;}
function titleChecker(){$.getJSON('/upload/ajaxTitleCheck?title='+titleToCheck,function(data){var notification='';var pubwarning='';if(data.length>0){notification="<strong><span style='color: #ff0000;'>WARNING:</span></strong> You have "+(data.length)+" book"+(data.length>1?"s":"")+" with a similar title. To update an existing book, return to your <a href="+'"/dashboard"'+">Dashboard</a> and click 'Upload new version', or use one of the links below. <strong>Never use this page to re-publish a previously published book!</strong><ul>";$.each(data,function(i,item){notification=notification+'<li><a href="/books/view/'+item.id+'">'+item.title+'</a> ';notification=notification+'by <a href="/profile/view/'+item.author_username+'">'+item.author_firstname+item.author_lastname+'('+item.author_username+')</a>';if(item.publisher_username!=null){notification=notification+', published by <a href="/profile/view/'+item.publisher_username+'">'+item.publisher_firstname+item.publisher_lastname+'('+item.publisher_username+')</a>';}else{notification=notification+' published';}
notification=notification+' on '+item.pubdate+'<br/>';notification=notification+'<a href="/upload/fileselect/'+item.id+'"><strong>Update book</strong></a>';notification=notification+'</li>';})
notification=notification+'</ul>';pubwarning="<strong><span style='color: #ff0000;'>WARNING:</span></strong> <a href=\"#titleDuplicate\">You have a book with a similar title.</a> If you're updating an existing book, please don't publish a new book.</span></strong><br/>";}else{notification='';pubwarning='';}
$('span#titleDuplicate').html(notification);$('span#titleDuplicateWarning').html(pubwarning);})}
function catBoxEnabler(){$('select#catBox1').bind('change',catBoxClickHandler);$('select#catBox2').bind('change',catBoxClickHandler);$('select#catBox4').bind('change',catBoxClickHandler2);$('select#catBox5').bind('change',catBoxClickHandler2);$('a#catBoxSecondEnabler').bind('click',function(e){$('#catBox4').css('display','inline');$('a#catBoxSecondEnabler').hide();e.preventDefault();});}
function catBoxClickHandler(e){var selectedCategory=e.target.value;var selectedLevel=parseInt(e.target.id.substring(6),10);for(var i=(selectedLevel+1);i<4;i++){document.getElementById('catBox'+i).innerHTML='';document.getElementById('catBox'+i).style.display='none';}
$.getJSON('/upload/ajaxCatLoad/'+selectedCategory,function(data){$.each(data,function(i,item){if(parseInt(item.children,10)>0){$("<option/>").attr("value",item.id).attr("selected","selected").text(item.name+' > ').appendTo('select#catBox'+(selectedLevel+1));}else{$("<option/>").attr("value",item.id).attr("selected","selected").text(item.name).appendTo('select#catBox'+(selectedLevel+1));}
$('select#catBox'+(selectedLevel+1)).get(0).selectedIndex=-1;});$('select#catBox'+(selectedLevel+1)).css('display','inline');});}
function catBoxClickHandler2(e){var selectedCategory=e.target.value;var selectedLevel=parseInt(e.target.id.substring(6),10);for(var i=(selectedLevel+1);i<7;i++){document.getElementById('catBox'+i).innerHTML='';document.getElementById('catBox'+i).style.display='none';}
$.getJSON('/upload/ajaxCatLoad/'+selectedCategory,function(data){$.each(data,function(i,item){if(parseInt(item.children,10)>0){$("<option/>").attr("value",item.id).attr("selected","selected").text(item.name+' > ').appendTo('select#catBox'+(selectedLevel+1));}else{$("<option/>").attr("value",item.id).attr("selected","selected").text(item.name).appendTo('select#catBox'+(selectedLevel+1));}
$('select#catBox'+(selectedLevel+1)).get(0).selectedIndex=-1;});$('select#catBox'+(selectedLevel+1)).css('display','inline');});}
function stringByteLength(str){var ch,count;count=0;for(var i=0;i<str.length;i++){ch=str.charCodeAt(i);do{ch=ch>>8;count++;}
while(ch);}
return count;}
function wordCounterCheck(e){var limit=400;var str=$('textarea#descr').get(0).value;var strLen=stringByteLength(str);if(strLen>=limit){$('span#wordCount').text(limit+' characters so far, 0 remain.');$('span#wordCount').css('color','red');$('textarea#descr').get(0).value=str.substring(0,limit);}else{$('span#wordCount').text(strLen+' characters so far, '+(limit-strLen)+' remain.');$('span#wordCount').css('color','');}}
function wordCounter(){$('textarea#descr').bind('keyup',wordCounterCheck);wordCounterCheck();}
function confirmReport(reportWritten){if(reportWritten==1){var dialogDiv=document.createElement('div');dialogDiv.innerHTML='<p>Thank you for your report.  We will investigate the issue shortly.</p>';$(dialogDiv).attr('id','reportedDialog').attr('title','Book Reported').attr('class','flora');var okButton=document.createElement('input');$(okButton).attr('value','Okay').attr('type','button').bind('click',function(e){$('#reportedDialog').dialogClose();})
dialogDiv.appendChild(okButton);$('body').get(0).appendChild(dialogDiv);$(dialogDiv).dialog();}}
function openidToggle(){$('a#openidLink').bind('click',function(e){e.preventDefault();$('#openidRegForm').show();$('#normalRegForm').hide();});$('a#regularLink').bind('click',function(e){e.preventDefault();$('#openidRegForm').hide();$('#normalRegForm').show();});}
function openidSigninHandler(){$('a#openidLoginLink').bind('click',function(e){e.preventDefault;$('div#regularLoginDiv').hide();$('#openidLoginDiv').show();});$('a#regularLink').bind('click',function(e){e.preventDefault;$('div#regularLoginDiv').show();$('#openidLoginDiv').hide();});}
function pricingPlots(){$('input#price').bind('keyup',redoPricingPlots);}
function redoPricingPlots(){var bookprice;var bookdistributorRSPprice;if($('input#price')){bookPrice=$('input#price').attr('value');}else{bookPrice=null;}
if($('input#distributorRSPprice')){bookdistributorRSPprice=$('input#distributorRSPprice').attr('value');}else{bookdistributorRSPprice=null;}
if(bookPrice){if((bookPrice.length==0)||(bookPrice<0.99)){$('#pricingGraph').text('Enter a price above to see how it breaks down between you, us, any affiliate, and billing fees.');$('#pricingGraphAff').text('');$('#pricingGraphPrem').text('');}else{var transFee=0.30+(0.029*bookPrice);var authorShare=(bookPrice-transFee)*0.85;var smashShare=(bookPrice-transFee)*0.15;var pricingChartData={"data":{"metrics":[{"label":"Author: $"+authorShare.toFixed(2),"color":"#31CC40","data":[[0,authorShare*100]]},{"label":"Smashwords: $"+smashShare.toFixed(2),"color":"#3972AC","data":[[0,smashShare*100]]},{"label":"Billing Fees: $"+transFee.toFixed(2),"color":"#F77140","data":[[0,transFee*100]]}],"graphType":"pies"}};$.plot($("#pricingGraph"),pricingChartData.data.metrics,{pies:{show:true,labelWidth:30,fontSize:10,autoScale:true,fillOpacity:1}});$('#pricingGraph').append("Non-affiliate sales<br/><br/>");authorShareAff=(bookPrice-transFee)*0.705;smashShareAff=(bookPrice-transFee)*0.185;var affiliateShare=(bookPrice-transFee)*0.11;pricingChartDataAff={"data":{"metrics":[{"label":"Author: $"+authorShareAff.toFixed(2),"color":"#31CC40","data":[[0,authorShareAff*100]]},{"label":"Affiliate: $"+affiliateShare.toFixed(2),"color":"#AC3972","data":[[0,affiliateShare*100]]},{"label":"Smashwords: $"+smashShareAff.toFixed(2),"color":"#3972AC","data":[[0,smashShareAff*100]]},{"label":"Billing Fees: $"+transFee.toFixed(2),"color":"#F77140","data":[[0,transFee*100]]}],"graphType":"pies"}};$.plot($("#pricingGraphAff"),pricingChartDataAff.data.metrics,{pies:{show:true,labelWidth:30,fontSize:10,autoScale:true,fillOpacity:1}});$('#pricingGraphAff').append("Affiliate sales<br/><span style='font-size: 0.8em;'><a href='/account/affiliate' target='_new'>Learn how Smashwords affiliates help promote your book</a></span><br/>");authorSharePrem=bookPrice*0.425;smashSharePrem=bookPrice*0.075;var distributorShare=bookPrice*0.50;pricingChartDataPrem={"data":{"metrics":[{"label":"Author: $"+authorSharePrem.toFixed(2),"color":"#31CC40","data":[[0,authorSharePrem*100]]},{"label":"Retailers: $"+distributorShare.toFixed(2),"color":"#AC3972","data":[[0,distributorShare*100]]},{"label":"Smashwords: $"+smashSharePrem.toFixed(2),"color":"#3972AC","data":[[0,smashSharePrem*100]]}],"graphType":"pies"}};$.plot($("#pricingGraphPrem"),pricingChartDataPrem.data.metrics,{pies:{show:true,labelWidth:30,fontSize:10,autoScale:true,fillOpacity:1}});$('#pricingGraphPrem').append("Premium Catalog Retailers<br/><span style='font-size: 0.8em;'>Approximate; actual percentage may be higher. <a href='/distribution' target='_new'>Learn how Smashwords premium distribution works</a></span><br/>");}}
if(bookdistributorRSPprice){if((bookdistributorRSPprice.length==0)||(bookdistributorRSPprice<0.99)){$('#pricingGraphPremRSP').text('Enter a price above to see how it breaks down between you, Smashwords, and the retailer.');}else{authorSharePrem=bookdistributorRSPprice*0.425;smashSharePrem=bookdistributorRSPprice*0.075;var distributorShare=bookdistributorRSPprice*0.50;pricingChartDataPrem={"data":{"metrics":[{"label":"Author: $"+authorSharePrem.toFixed(2),"color":"#31CC40","data":[[0,authorSharePrem*100]]},{"label":"Retailers: $"+distributorShare.toFixed(2),"color":"#AC3972","data":[[0,distributorShare*100]]},{"label":"Smashwords: $"+smashSharePrem.toFixed(2),"color":"#3972AC","data":[[0,smashSharePrem*100]]}],"graphType":"pies"}};$.plot($("#pricingGraphPremRSP"),pricingChartDataPrem.data.metrics,{pies:{show:true,labelWidth:30,fontSize:10,autoScale:true,fillOpacity:1}});$('#pricingGraphPremRSP').append("Premium Catalog Retailers<br/><span style='font-size: 0.8em;'>Approximate; actual percentage may be higher. <a href='/distribution' target='_new'>Learn how Smashwords premium distribution works</a></span><br/>");}}}
function enableDatePickers(){Date.format='yyyy-mm-dd';$('.datepicker').datePicker({startDate:'01/01/2007',clickInput:true}).val(new Date().asString()).trigger('change');}
var baseURL='';var curBookOffset=0;var nextBookOffset=0;var curBookId=0;var curFont='sans-serif';var curFgColor='black';var curBgColor='white';var curLineSpacing='130%';var curFontSize='100%';var curBookData='';var nextPageData='';var busy=0;var totalBookBytes=0;var pageContentBackground={};var pageContentPadding={};function InitBookReader2(startOffset,bookId,inbaseURL,totalBytes,allowedBytes){totalBookBytes=totalBytes;allowedBookBytes=allowedBytes;curBookOffset=startOffset;baseURL=inbaseURL;curBookId=bookId;curFont=$('select#fontFamily').get(0).value;curFgColor=$('select#textColor').get(0).value;curBgColor=$('select#bgColor').get(0).value;curLineSpacing=$('select#lineSpacing').get(0).value;reflowText();$('a#firstPage').bind('click',function(e){nextBookOffset=0;curBookData='';nextPageData='';curBookOffset=0;reflowText();e.preventDefault();});$('a#prevPage').bind('click',function(e){nextBookOffset=0;curBookData='';nextPageData='';if(curBookOffset<500){curBookOffset=0;reflowText();}else{$.get(baseURL+'/reader/getBookContentBackwards/'+curBookId+'/'+curBookOffset+'/'+curBookOffset,populateTextBackwards);}
e.preventDefault();});$('a#nextPage').bind('click',function(e){curBookOffset=nextBookOffset;curBookData='';reflowText();e.preventDefault();});$('a#lastPage').bind('click',function(e){curBookOffset=allowedBookBytes;curBookData='';reflowText();e.preventDefault();nextBookOffset=0;curBookData='';nextPageData='';$.get(baseURL+'/reader/getBookContentBackwards/'+curBookId+'/'+curBookOffset+'/'+curBookOffset,populateTextBackwards);e.preventDefault();});$('a.fontChange').bind('click',function(e){nextPageData='';curFontSize=e.target.style.fontSize;reflowText();e.preventDefault();});$('select#fontFamily').bind('change',function(e){curFont=e.target.value;reflowText();e.preventDefault();});$('select#textColor').bind('change',function(e){curFgColor=e.target.value;reflowText();e.preventDefault();});$('select#bgColor').bind('change',function(e){curBgColor=e.target.value;reflowText();e.preventDefault();});$('select#lineSpacing').bind('change',function(e){curLineSpacing=e.target.value;reflowText();e.preventDefault();});$('a#viewFullScreen').bind('click',function(e){pageContentBackground['image']=$('#pageContent').css('backgroundImage');pageContentBackground['position']=$('#pageContent').css('backgroundPosition');pageContentBackground['repeat']=$('#pageContent').css('backgroundRepeat');pageContentBackground['color']=$('#pageContent').css('backgroundColor');pageContentPadding['left']=$('#pageContent').css('paddingLeft');$('#header').hide();$('#navMenu').hide();$('.leftSideBox').hide();$('#footer').hide();$('#pageContent').css('backgroundColor','#f3f3f3');$('#pageContent').css('paddingLeft','15%');$('#viewToolbars').css('visibility','visible');});$('a#viewToolbars').bind('click',function(e){$('#pageContent').css('backgroundImage',pageContentBackground['image']);$('#pageContent').css('backgroundPosition',pageContentBackground['position']);$('#pageContent').css('backgroundRepeat',pageContentBackground['repeat']);$('#pageContent').css('backgroundColor',pageContentBackground['color']);$('#pageContent').css('paddingLeft',pageContentPadding['left']);$('#header').show();$('#navMenu').show();$('.leftSideBox').show();$('#footer').show();$('#viewToolbars').css('visibility','hidden');});handlePrevButton();}
function handlePrevButton(){if(curBookOffset<100){$('a#prevPage').css('visibility','hidden');$('a#firstPage').css('visibility','hidden');}else{$('a#prevPage').css('visibility','visible');$('a#firstPage').css('visibility','visible');}}
function jumpToOffset(newOffset){nextBookOffset=0;curBookData='';nextPageData='';curBookOffset=newOffset;$.get(baseURL+'/reader/getBookContent/'+curBookId+'/'+curBookOffset+'/'+curBookOffset,populateText);}
function reflowText(){nextBookOffset=curBookOffset;if(curBookData==''){if(nextPageData==''){$.get(baseURL+'/reader/getBookContent/'+curBookId+'/'+curBookOffset,populateText);}else{curBookData=nextPageData;nextPageData='';populateText(curBookData);}}else{populateText(curBookData);}}
function populateText(data){var lines=data.split("\n");var i=0;var curContent='';var curHeight=0;var tmpNextBookOffset=nextBookOffset;var bcDiv=$('div#bookContent');var bsa=0;var bsb=lines.length;var attempts=Math.log(lines.length)/Math.log(2);var splitPoint=0;for(var i=0;i<attempts;i++){splitPoint=Math.round((bsa+bsb)/2);curContent=lines.slice(0,splitPoint).join("\n");bcDiv.get(0).innerHTML=curContent;bcDiv.css('fontSize',curFontSize).css('fontFamily',curFont).css('color',curFgColor).css('backgroundColor',curBgColor).css('lineHeight',curLineSpacing);$('div#bookContent font').css('fontSize','100%').css('fontFamily',curFont).css('color',curFgColor).css('backgroundColor',curBgColor).css('lineHeight',curLineSpacing);var newHeight=bcDiv.height();if(newHeight>400){bsb-=(bsb-bsa)/2;}else{bsa+=(bsb-bsa)/2;}}
while((lines[splitPoint].indexOf('</P>')==-1)&&(splitPoint>1)){splitPoint--;}
splitPoint++;curContent=lines.slice(0,splitPoint).join("\n");bcDiv.get(0).innerHTML=curContent;bcDiv.css('fontSize',curFontSize).css('fontFamily',curFont).css('color',curFgColor).css('backgroundColor',curBgColor).css('lineHeight',curLineSpacing);$('div#bookContent font').css('fontSize','100%').css('fontFamily',curFont).css('color',curFgColor).css('backgroundColor',curBgColor).css('lineHeight',curLineSpacing);nextBookOffset=curBookOffset+curContent.length;$('div#bookContent img').each(function(){var origSrc=this.src;var origSrcComponents=origSrc.split('/');var origFilename=origSrcComponents[origSrcComponents.length-1];this.src='/reader/getImg/'+curBookId+'/'+origFilename;});var progress=Math.round((curBookOffset/totalBookBytes)*100);$('div#progressIndicator').text('Progress: '+progress+'%');$.get(baseURL+'/reader/getBookContent/'+curBookId+'/'+nextBookOffset+'/'+curBookOffset,function(data){nextPageData=data;});handlePrevButton();}
function populateTextBackwards(data){var lines=data.split("\n");var curContent='';var bcDiv=$('div#bookContent');var bsa=0;var bsb=lines.length-1;var attempts=Math.log(lines.length)/Math.log(2);var splitPoint=0;for(var i=0;i<attempts;i++){splitPoint=Math.round((bsa+bsb)/2);curContent=lines.slice(splitPoint,lines.length).join("\n");bcDiv.get(0).innerHTML=curContent;bcDiv.css('fontSize',curFontSize).css('fontFamily',curFont).css('color',curFgColor).css('backgroundColor',curBgColor).css('lineHeight',curLineSpacing);$('div#bookContent font').css('fontSize','100%').css('fontFamily',curFont).css('color',curFgColor).css('backgroundColor',curBgColor).css('lineHeight',curLineSpacing);var newHeight=bcDiv.height();if(newHeight>400){bsa+=(bsb-bsa)/2;}else{bsb-=(bsb-bsa)/2;}}
curContent=lines.slice(splitPoint,lines.length).join("\n");bcDiv.get(0).innerHTML=curContent;bcDiv.css('fontSize',curFontSize).css('fontFamily',curFont).css('color',curFgColor).css('backgroundColor',curBgColor).css('lineHeight',curLineSpacing);$('div#bookContent font').css('fontSize','100%').css('fontFamily',curFont).css('color',curFgColor).css('backgroundColor',curBgColor).css('lineHeight',curLineSpacing);nextBookOffset=curBookOffset;curBookOffset-=curContent.length;if(curBookOffset<0)curBookOffset=0;$('div#bookContent img').each(function(){var origSrc=this.src;var origSrcComponents=origSrc.split('/');var origFilename=origSrcComponents[origSrcComponents.length-1];this.src='/reader/getImg/'+curBookId+'/'+origFilename;});var progress=Math.round((curBookOffset/totalBookBytes)*100);$('div#progressIndicator').text('Progress: '+progress+'%');$.get(baseURL+'/reader/getBookContent/'+curBookId+'/'+nextBookOffset+'/'+curBookOffset,function(data){nextPageData=data;});handlePrevButton();}
function HTMLReaderSetStyle(curFontSize,curFont,curFgColor,curBgColor,curLineSpacing){var bcDiv=$('div#bookContent');if(curFontSize!='-'&&curFontSize!=''){bcDiv.css('fontSize',curFontSize);$('div#bookContent font').css('fontSize',curFontSize);}
if(curFont!='-'&&curFont!=''){bcDiv.css('fontFamily',curFont);$('div#bookContent font').css('fontFamily',curFont);}
if(curFgColor!='-'&&curFgColor!=''){bcDiv.css('color',curFgColor);$('div#bookContent font').css('color',curFgColor);}
if(curBgColor!='-'&&curBgColor!=''){bcDiv.css('backgroundColor',curBgColor);$('div#bookContent font').css('backgroundColor',curBgColor);}
if(curLineSpacing!='-'&&curLineSpacing!=''){bcDiv.css('lineHeight',curLineSpacing);$('div#bookContent font').css('lineHeight',curLineSpacing);}}
var fetchertimer;function newtagkeyhandler(myfield,e){var keycode;var tagsuggestionsobj=document.getElementById("tagsuggestions");if(window.event){keycode=window.event.keyCode;}else if(e){keycode=e.which;}else{return true;}
if(tagsuggestionsobj){tagsuggestionsobj.innerHTML='';}
if(keycode==13||keycode==44){addtag();return false;}else if(tagsuggestionsobj){thefield=myfield;if(fetchertimer){clearTimeout(fetchertimer);}
fetchertimer=setTimeout(fetchtagsuggestions,1000);return true;}}
function fetchtagsuggestions(){var tagsuggestionsobj=document.getElementById("tagsuggestions");var curtags=thefield.value.split(' ');var newtag=curtags[curtags.length-1];newtag=newtag.toLowerCase();newtag=newtag.replace(/[^a-z0-9 ]/g,"");newtag=newtag.replace(/^\s+|\s+$/g,"");newtag=newtag.replace(/\ +/g," ");if(newtag.length>2){var xmlHttp;try{xmlHttp=new XMLHttpRequest();}catch(e){try{xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){return true;}}}
xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4&&xmlHttp.status==200){var list=xmlHttp.responseText.split('\n');var newsugs='';for(i=0;i<list.length;i++){if(list[i].length>0){newsugs=newsugs+'<a href="javascript:addsug(';newsugs=newsugs+"'"+list[i]+"')";newsugs=newsugs+'">'+list[i]+'</a><br/>';}}
tagsuggestionsobj.innerHTML=newsugs;}else{tagsuggestionsobj.innerHTML='(Loading suggestions)';}}
var url='/tagsuggestions/suggest/'+newtag;xmlHttp.open("GET",url,true);xmlHttp.send(null);}}
function addsug(suggestion){var newtagobj=document.getElementById("newtag");newtagobj.value=suggestion;addtag();}
function redisplaytags(){var tagsobj=document.getElementById("tags");var taglinksobj=document.getElementById("taglinks");var eachtag=tagsobj.value.split("\n");var newtaglinks;eachtag.sort();newtaglinks='';for(var i=0;i<eachtag.length;i++){var curtag=eachtag[i];curtag=curtag.replace(/^\s+|\s+$/g,"");if(curtag.length>0){if(newtaglinks.length>0){newtaglinks=newtaglinks+', ';}
newtaglinks=newtaglinks+'<b>'+curtag+'</b>&nbsp;'+'(<a href="'+"javascript:removetag('"+eachtag[i]+"')"+'">Remove</a>)';}}
if(newtaglinks==''){newtaglinks='(No tags set)';}
taglinksobj.innerHTML=newtaglinks;}
function addtag(){var tagsobj=document.getElementById("tags");var newtagobj=document.getElementById("newtag");var eachtag=tagsobj.value.split("\n");var newtag=newtagobj.value;newtag=newtag.toLowerCase();newtag=newtag.replace(/[^a-z0-9 ]/g,"");newtag=newtag.replace(/^\s+|\s+$/g,"");newtag=newtag.replace(/ +/g," ");var alreadyfound=false;for(var i=0;i<eachtag.length&&!alreadyfound;i++){var curtag=eachtag[i].replace(/^\s+|\s+$/g,"");if(curtag==newtag){alreadyfound=true;}}
if(!alreadyfound){tagsobj.value=tagsobj.value+'\n'+newtag;redisplaytags();}
newtagobj.value='';newtagobj.focus();}
function removetag(tagtoremove){var tagsobj=document.getElementById("tags");var eachtag=tagsobj.value.split("\n");var newtags='';for(var i=0;i<eachtag.length;i++){if(eachtag[i]!=tagtoremove){newtags+=eachtag[i]+"\n";}}
tagsobj.value=newtags;redisplaytags();}