
function JsHttpRequest(){var t=this;t.onreadystatechange=null;t.readyState=0;t.responseText=null;t.responseXML=null;t.status=200;t.statusText="OK";t.responseJS=null;t.caching=false;t.loader=null;t.session_name="PHPSESSID";t._ldObj=null;t._reqHeaders=[];t._openArgs=null;t._errors={inv_form_el:"Invalid FORM element detected: name=%, tag=%",must_be_single_el:"If used, <form> must be a single HTML element in the list.",js_invalid:"JavaScript code generated by backend is invalid!\n%",url_too_long:"Cannot use so long query with GET request (URL is larger than % bytes)",unk_loader:"Unknown loader: %",no_loaders:"No loaders registered at all, please check JsHttpRequest.LOADERS array",no_loader_matched:"Cannot find a loader which may process the request. Notices are:\n%"};t.abort=function(){with(this){if(_ldObj&&_ldObj.abort){_ldObj.abort();}
_cleanup();if(readyState==0){return;}
if(readyState==1&&!_ldObj){readyState=0;return;}
_changeReadyState(4,true);}};t.open=function(_2,_3,_4,_5,_6){with(this){if(_3.match(/^((\w+)\.)?(GET|POST)\s+(.*)/i)){this.loader=RegExp.$2?RegExp.$2:null;_2=RegExp.$3;_3=RegExp.$4;}
try{if(document.location.search.match(new RegExp("[&?]"+session_name+"=([^&?]*)"))||document.cookie.match(new RegExp("(?:;|^)\\s*"+session_name+"=([^;]*)"))){_3+=(_3.indexOf("?")>=0?"&":"?")+session_name+"="+this.escape(RegExp.$1);}}
catch(e){}
_openArgs={method:(_2||"").toUpperCase(),url:_3,asyncFlag:_4,username:_5!=null?_5:"",password:_6!=null?_6:""};_ldObj=null;_changeReadyState(1,true);return true;}};t.send=function(_7){if(!this.readyState){return;}
this._changeReadyState(1,true);this._ldObj=null;var _8=[];var _9=[];if(!this._hash2query(_7,null,_8,_9)){return;}
var _a=null;if(this.caching&&!_9.length){_a=this._openArgs.username+":"+this._openArgs.password+"@"+this._openArgs.url+"|"+_8+"#"+this._openArgs.method;var _b=JsHttpRequest.CACHE[_a];if(_b){this._dataReady(_b[0],_b[1]);return false;}}
var _c=(this.loader||"").toLowerCase();if(_c&&!JsHttpRequest.LOADERS[_c]){return this._error("unk_loader",_c);}
var _d=[];var _e=JsHttpRequest.LOADERS;for(var _f in _e){var ldr=_e[_f].loader;if(!ldr){continue;}
if(_c&&_f!=_c){continue;}
var _11=new ldr(this);JsHttpRequest.extend(_11,this._openArgs);JsHttpRequest.extend(_11,{queryText:_8.join("&"),queryElem:_9,id:(new Date().getTime())+""+JsHttpRequest.COUNT++,hash:_a,span:null});var _12=_11.load();if(!_12){this._ldObj=_11;JsHttpRequest.PENDING[_11.id]=this;return true;}
if(!_c){_d[_d.length]="- "+_f.toUpperCase()+": "+this._l(_12);}else{return this._error(_12);}}
return _f?this._error("no_loader_matched",_d.join("\n")):this._error("no_loaders");};t.getAllResponseHeaders=function(){with(this){return _ldObj&&_ldObj.getAllResponseHeaders?_ldObj.getAllResponseHeaders():[];}};t.getResponseHeader=function(_13){with(this){return _ldObj&&_ldObj.getResponseHeader?_ldObj.getResponseHeader(_13):null;}};t.setRequestHeader=function(_14,_15){with(this){_reqHeaders[_reqHeaders.length]=[_14,_15];}};t._dataReady=function(_16,js){with(this){if(caching&&_ldObj){JsHttpRequest.CACHE[_ldObj.hash]=[_16,js];}
responseText=responseXML=_16;responseJS=js;if(js!==null){status=200;statusText="OK";}else{status=500;statusText="Internal Server Error";}
_changeReadyState(2);_changeReadyState(3);_changeReadyState(4);_cleanup();}};t._l=function(_18){var i=0,p=0,msg=this._errors[_18[0]];while((p=msg.indexOf("%",p))>=0){var a=_18[++i]+"";msg=msg.substring(0,p)+a+msg.substring(p+1,msg.length);p+=1+a.length;}
return msg;};t._error=function(msg){msg=this._l(typeof(msg)=="string"?arguments:msg);msg="JsHttpRequest: "+msg;if(!window.Error){throw msg;}else{if((new Error(1,"test")).description=="test"){throw new Error(1,msg);}else{throw new Error(msg);}}};t._hash2query=function(_1e,_1f,_20,_21){if(_1f==null){_1f="";}
if((""+typeof(_1e)).toLowerCase()=="object"){var _22=false;if(_1e&&_1e.parentNode&&_1e.parentNode.appendChild&&_1e.tagName&&_1e.tagName.toUpperCase()=="FORM"){_1e={form:_1e};}
for(var k in _1e){var v=_1e[k];if(v instanceof Function){continue;}
var _25=_1f?_1f+"["+this.escape(k)+"]":this.escape(k);var _26=v&&v.parentNode&&v.parentNode.appendChild&&v.tagName;if(_26){var tn=v.tagName.toUpperCase();if(tn=="FORM"){_22=true;}else{if(tn=="INPUT"||tn=="TEXTAREA"||tn=="SELECT"){}else{return this._error("inv_form_el",(v.name||""),v.tagName);}}
_21[_21.length]={name:_25,e:v};}else{if(v instanceof Object){this._hash2query(v,_25,_20,_21);}else{if(v===null){continue;}
if(v===true){v=1;}
if(v===false){v="";}
_20[_20.length]=_25+"="+this.escape(""+v);}}
if(_22&&_21.length>1){return this._error("must_be_single_el");}}}else{_20[_20.length]=_1e;}
return true;};t._cleanup=function(){var _28=this._ldObj;if(!_28){return;}
JsHttpRequest.PENDING[_28.id]=false;var _29=_28.span;if(!_29){return;}
_28.span=null;var _2a=function(){_29.parentNode.removeChild(_29);};JsHttpRequest.setTimeout(_2a,50);};t._changeReadyState=function(s,_2c){with(this){if(_2c){status=statusText=responseJS=null;responseText="";}
readyState=s;if(onreadystatechange){onreadystatechange();}}};t.escape=function(s){return escape(s).replace(new RegExp("\\+","g"),"%2B");};}
JsHttpRequest.COUNT=0;JsHttpRequest.MAX_URL_LEN=2000;JsHttpRequest.CACHE={};JsHttpRequest.PENDING={};JsHttpRequest.LOADERS={};JsHttpRequest._dummy=function(){};JsHttpRequest.TIMEOUTS={s:window.setTimeout,c:window.clearTimeout};JsHttpRequest.setTimeout=function(_2e,dt){window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.s;if(typeof(_2e)=="string"){id=window.JsHttpRequest_tmp(_2e,dt);}else{var id=null;var _31=function(){_2e();delete JsHttpRequest.TIMEOUTS[id];};id=window.JsHttpRequest_tmp(_31,dt);JsHttpRequest.TIMEOUTS[id]=_31;}
window.JsHttpRequest_tmp=null;return id;};JsHttpRequest.clearTimeout=function(id){window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.c;delete JsHttpRequest.TIMEOUTS[id];var r=window.JsHttpRequest_tmp(id);window.JsHttpRequest_tmp=null;return r;};JsHttpRequest.query=function(url,_35,_36,_37){var req=new this();req.caching=!_37;req.onreadystatechange=function(){if(req.readyState==4){_36(req.responseJS,req.responseText);}};req.open(null,url,true);req.send(_35);};JsHttpRequest.dataReady=function(d){var th=this.PENDING[d.id];delete this.PENDING[d.id];if(th){th._dataReady(d.text,d.js);}else{if(th!==false){throw"dataReady(): unknown pending id: "+d.id;}}};JsHttpRequest.extend=function(_3b,src){for(var k in src){_3b[k]=src[k];}};JsHttpRequest.LOADERS.xml={loader:function(req){JsHttpRequest.extend(req._errors,{xml_no:"Cannot use XMLHttpRequest or ActiveX loader: not supported",xml_no_diffdom:"Cannot use XMLHttpRequest to load data from different domain %",xml_no_headers:"Cannot use XMLHttpRequest loader or ActiveX loader, POST method: headers setting is not supported, needed to work with encodings correctly",xml_no_form_upl:"Cannot use XMLHttpRequest loader: direct form elements using and uploading are not implemented"});this.load=function(){if(this.queryElem.length){return["xml_no_form_upl"];}
if(this.url.match(new RegExp("^([a-z]+://[^\\/]+)(.*)","i"))){if(RegExp.$1.toLowerCase()!=document.location.protocol+"//"+document.location.hostname.toLowerCase()){return["xml_no_diffdom",RegExp.$1];}}
var xr=null;if(window.XMLHttpRequest){try{xr=new XMLHttpRequest();}
catch(e){}}else{if(window.ActiveXObject){try{xr=new ActiveXObject("Microsoft.XMLHTTP");}
catch(e){}
if(!xr){try{xr=new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){}}}}
if(!xr){return["xml_no"];}
var _40=window.ActiveXObject||xr.setRequestHeader;if(!this.method){this.method=_40&&this.queryText.length?"POST":"GET";}
if(this.method=="GET"){if(this.queryText){this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText;}
this.queryText="";if(this.url.length>JsHttpRequest.MAX_URL_LEN){return["url_too_long",JsHttpRequest.MAX_URL_LEN];}}else{if(this.method=="POST"&&!_40){return["xml_no_headers"];}}
this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+(req.caching?"0":this.id)+"-xml";var id=this.id;xr.onreadystatechange=function(){if(xr.readyState!=4){return;}
xr.onreadystatechange=JsHttpRequest._dummy;req.status=null;try{req.status=xr.status;req.responseText=xr.responseText;}
catch(e){}
if(!req.status){return;}
try{eval("JsHttpRequest._tmp = function(id) { var d = "+req.responseText+"; d.id = id; JsHttpRequest.dataReady(d); }");}
catch(e){return req._error("js_invalid",req.responseText);}
JsHttpRequest._tmp(id);JsHttpRequest._tmp=null;};xr.open(this.method,this.url,true,this.username,this.password);if(_40){for(var i=0;i<req._reqHeaders.length;i++){xr.setRequestHeader(req._reqHeaders[i][0],req._reqHeaders[i][1]);}
xr.setRequestHeader("Content-Type","application/octet-stream");}
xr.send(this.queryText);this.span=null;this.xr=xr;return null;};this.getAllResponseHeaders=function(){return this.xr.getAllResponseHeaders();};this.getResponseHeader=function(_43){return this.xr.getResponseHeader(_43);};this.abort=function(){this.xr.abort();this.xr=null;};}};JsHttpRequest.LOADERS.script={loader:function(req){JsHttpRequest.extend(req._errors,{script_only_get:"Cannot use SCRIPT loader: it supports only GET method",script_no_form:"Cannot use SCRIPT loader: direct form elements using and uploading are not implemented"});this.load=function(){if(this.queryText){this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText;}
this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+this.id+"-"+"script";this.queryText="";if(!this.method){this.method="GET";}
if(this.method!=="GET"){return["script_only_get"];}
if(this.queryElem.length){return["script_no_form"];}
if(this.url.length>JsHttpRequest.MAX_URL_LEN){return["url_too_long",JsHttpRequest.MAX_URL_LEN];}
var th=this,d=document,s=null,b=d.body;if(!window.opera){this.span=s=d.createElement("SCRIPT");var _49=function(){s.language="JavaScript";if(s.setAttribute){s.setAttribute("src",th.url);}else{s.src=th.url;}
b.insertBefore(s,b.lastChild);};}else{this.span=s=d.createElement("SPAN");s.style.display="none";b.insertBefore(s,b.lastChild);s.innerHTML="Workaround for IE.<s"+"cript></"+"script>";var _49=function(){s=s.getElementsByTagName("SCRIPT")[0];s.language="JavaScript";if(s.setAttribute){s.setAttribute("src",th.url);}else{s.src=th.url;}};}
JsHttpRequest.setTimeout(_49,10);return null;};}};JsHttpRequest.LOADERS.form={loader:function(req){JsHttpRequest.extend(req._errors,{form_el_not_belong:"Element \"%\" does not belong to any form!",form_el_belong_diff:"Element \"%\" belongs to a different form. All elements must belong to the same form!",form_el_inv_enctype:"Attribute \"enctype\" of the form must be \"%\" (for IE), \"%\" given."});this.load=function(){var th=this;if(!th.method){th.method="POST";}
th.url+=(th.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+th.id+"-"+"form";if(th.method=="GET"){if(th.queryText){th.url+=(th.url.indexOf("?")>=0?"&":"?")+th.queryText;}
if(th.url.length>JsHttpRequest.MAX_URL_LEN){return["url_too_long",JsHttpRequest.MAX_URL_LEN];}
var p=th.url.split("?",2);th.url=p[0];th.queryText=p[1]||"";}
var _4d=null;var _4e=false;if(th.queryElem.length){if(th.queryElem[0].e.tagName.toUpperCase()=="FORM"){_4d=th.queryElem[0].e;_4e=true;th.queryElem=[];}else{_4d=th.queryElem[0].e.form;for(var i=0;i<th.queryElem.length;i++){var e=th.queryElem[i].e;if(!e.form){return["form_el_not_belong",e.name];}
if(e.form!=_4d){return["form_el_belong_diff",e.name];}}}
if(th.method=="POST"){var _51="multipart/form-data";var _52=(_4d.attributes.encType&&_4d.attributes.encType.nodeValue)||(_4d.attributes.enctype&&_4d.attributes.enctype.value)||_4d.enctype;if(_52!=_51){return["form_el_inv_enctype",_51,_52];}}}
var d=_4d&&(_4d.ownerDocument||_4d.document)||document;var _54="jshr_i_"+th.id;var s=th.span=d.createElement("DIV");s.style.position="absolute";s.style.display="none";s.style.visibility="hidden";s.innerHTML=(_4d?"":"<form"+(th.method=="POST"?" enctype=\"multipart/form-data\" method=\"post\"":"")+"></form>")+"<iframe name=\""+_54+"\" id=\""+_54+"\" style=\"width:0px; height:0px; overflow:hidden; border:none\"></iframe>";if(!_4d){_4d=th.span.firstChild;}
d.body.insertBefore(s,d.body.lastChild);var _56=function(e,_58){var sv=[];var _5a=e;if(e.mergeAttributes){var _5a=d.createElement("form");_5a.mergeAttributes(e,false);}
for(var i=0;i<_58.length;i++){var k=_58[i][0],v=_58[i][1];sv[sv.length]=[k,_5a.getAttribute(k)];_5a.setAttribute(k,v);}
if(e.mergeAttributes){e.mergeAttributes(_5a,false);}
return sv;};var _5e=function(){top.JsHttpRequestGlobal=JsHttpRequest;var _5f=[];if(!_4e){for(var i=0,n=_4d.elements.length;i<n;i++){_5f[i]=_4d.elements[i].name;_4d.elements[i].name="";}}
var qt=th.queryText.split("&");for(var i=qt.length-1;i>=0;i--){var _63=qt[i].split("=",2);var e=d.createElement("INPUT");e.type="hidden";e.name=unescape(_63[0]);e.value=_63[1]!=null?unescape(_63[1]):"";_4d.appendChild(e);}
for(var i=0;i<th.queryElem.length;i++){th.queryElem[i].e.name=th.queryElem[i].name;}
var sv=_56(_4d,[["action",th.url],["method",th.method],["onsubmit",null],["target",_54]]);_4d.submit();_56(_4d,sv);for(var i=0;i<qt.length;i++){_4d.lastChild.parentNode.removeChild(_4d.lastChild);}
if(!_4e){for(var i=0,n=_4d.elements.length;i<n;i++){_4d.elements[i].name=_5f[i];}}};JsHttpRequest.setTimeout(_5e,100);return null;};}};

var MooTools={'version':'1.2.4','build':'0d9113241a90b9cd5643b926795852a2026710d4'};var Native=function(options){options=options||{};var name=options.name;var legacy=options.legacy;var protect=options.protect;var methods=options.implement;var generics=options.generics;var initialize=options.initialize;var afterImplement=options.afterImplement||function(){};var object=initialize||legacy;generics=generics!==false;object.constructor=Native;object.$family={name:'native'};if(legacy&&initialize)object.prototype=legacy.prototype;object.prototype.constructor=object;if(name){var family=name.toLowerCase();object.prototype.$family={name:family};Native.typize(object,family);}
var add=function(obj,name,method,force){if(!protect||force||!obj.prototype[name])obj.prototype[name]=method;if(generics)Native.genericize(obj,name,protect);afterImplement.call(obj,name,method);return obj;};object.alias=function(a1,a2,a3){if(typeof a1=='string'){var pa1=this.prototype[a1];if((a1=pa1))return add(this,a2,a1,a3);}
for(var a in a1)this.alias(a,a1[a],a2);return this;};object.implement=function(a1,a2,a3){if(typeof a1=='string')return add(this,a1,a2,a3);for(var p in a1)add(this,p,a1[p],a2);return this;};if(methods)object.implement(methods);return object;};Native.genericize=function(object,property,check){if((!check||!object[property])&&typeof object.prototype[property]=='function')object[property]=function(){var args=Array.prototype.slice.call(arguments);return object.prototype[property].apply(args.shift(),args);};};Native.implement=function(objects,properties){for(var i=0,l=objects.length;i<l;i++)objects[i].implement(properties);};Native.typize=function(object,family){if(!object.type)object.type=function(item){return($type(item)===family);};};(function(){var natives={'Array':Array,'Date':Date,'Function':Function,'Number':Number,'RegExp':RegExp,'String':String};for(var n in natives)new Native({name:n,initialize:natives[n],protect:true});var types={'boolean':Boolean,'native':Native,'object':Object};for(var t in types)Native.typize(types[t],t);var generics={'Array':["concat","indexOf","join","lastIndexOf","pop","push","reverse","shift","slice","sort","splice","toString","unshift","valueOf"],'String':["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]};for(var g in generics){for(var i=generics[g].length;i--;)Native.genericize(natives[g],generics[g][i],true);}})();var Hash=new Native({name:'Hash',initialize:function(object){if($type(object)=='hash')object=$unlink(object.getClean());for(var key in object)this[key]=object[key];return this;}});Hash.implement({forEach:function(fn,bind){for(var key in this){if(this.hasOwnProperty(key))fn.call(bind,this[key],key,this);}},getClean:function(){var clean={};for(var key in this){if(this.hasOwnProperty(key))clean[key]=this[key];}
return clean;},getLength:function(){var length=0;for(var key in this){if(this.hasOwnProperty(key))length++;}
return length;}});Hash.alias('forEach','each');Array.implement({forEach:function(fn,bind){for(var i=0,l=this.length;i<l;i++)fn.call(bind,this[i],i,this);}});Array.alias('forEach','each');function $A(iterable){if(iterable.item){var l=iterable.length,array=new Array(l);while(l--)array[l]=iterable[l];return array;}
return Array.prototype.slice.call(iterable);};function $arguments(i){return function(){return arguments[i];};};function $chk(obj){return!!(obj||obj===0);};function $clear(timer){clearTimeout(timer);clearInterval(timer);return null;};function $defined(obj){return(obj!=undefined);};function $each(iterable,fn,bind){var type=$type(iterable);((type=='arguments'||type=='collection'||type=='array')?Array:Hash).each(iterable,fn,bind);};function $empty(){};function $extend(original,extended){for(var key in(extended||{}))original[key]=extended[key];return original;};function $H(object){return new Hash(object);};function $lambda(value){return($type(value)=='function')?value:function(){return value;};};function $merge(){var args=Array.slice(arguments);args.unshift({});return $mixin.apply(null,args);};function $mixin(mix){for(var i=1,l=arguments.length;i<l;i++){var object=arguments[i];if($type(object)!='object')continue;for(var key in object){var op=object[key],mp=mix[key];mix[key]=(mp&&$type(op)=='object'&&$type(mp)=='object')?$mixin(mp,op):$unlink(op);}}
return mix;};function $pick(){for(var i=0,l=arguments.length;i<l;i++){if(arguments[i]!=undefined)return arguments[i];}
return null;};function $random(min,max){return Math.floor(Math.random()*(max-min+1)+min);};function $splat(obj){var type=$type(obj);return(type)?((type!='array'&&type!='arguments')?[obj]:obj):[];};var $time=Date.now||function(){return+new Date;};function $try(){for(var i=0,l=arguments.length;i<l;i++){try{return arguments[i]();}catch(e){}}
return null;};function $type(obj){if(obj==undefined)return false;if(obj.$family)return(obj.$family.name=='number'&&!isFinite(obj))?false:obj.$family.name;if(obj.nodeName){switch(obj.nodeType){case 1:return'element';case 3:return(/\S/).test(obj.nodeValue)?'textnode':'whitespace';}}else if(typeof obj.length=='number'){if(obj.callee)return'arguments';else if(obj.item)return'collection';}
return typeof obj;};function $unlink(object){var unlinked;switch($type(object)){case'object':unlinked={};for(var p in object)unlinked[p]=$unlink(object[p]);break;case'hash':unlinked=new Hash(object);break;case'array':unlinked=[];for(var i=0,l=object.length;i<l;i++)unlinked[i]=$unlink(object[i]);break;default:return object;}
return unlinked;};var Browser=$merge({Engine:{name:'unknown',version:0},Platform:{name:(window.orientation!=undefined)?'ipod':(navigator.platform.match(/mac|win|linux/i)||['other'])[0].toLowerCase()},Features:{xpath:!!(document.evaluate),air:!!(window.runtime),query:!!(document.querySelector)},Plugins:{},Engines:{presto:function(){return(!window.opera)?false:((arguments.callee.caller)?960:((document.getElementsByClassName)?950:925));},trident:function(){return(!window.ActiveXObject)?false:((window.XMLHttpRequest)?((document.querySelectorAll)?6:5):4);},webkit:function(){return(navigator.taintEnabled)?false:((Browser.Features.xpath)?((Browser.Features.query)?525:420):419);},gecko:function(){return(!document.getBoxObjectFor&&window.mozInnerScreenX==null)?false:((document.getElementsByClassName)?19:18);}}},Browser||{});Browser.Platform[Browser.Platform.name]=true;Browser.detect=function(){for(var engine in this.Engines){var version=this.Engines[engine]();if(version){this.Engine={name:engine,version:version};this.Engine[engine]=this.Engine[engine+version]=true;break;}}
return{name:engine,version:version};};Browser.detect();Browser.Request=function(){return $try(function(){return new XMLHttpRequest();},function(){return new ActiveXObject('MSXML2.XMLHTTP');},function(){return new ActiveXObject('Microsoft.XMLHTTP');});};Browser.Features.xhr=!!(Browser.Request());Browser.Plugins.Flash=(function(){var version=($try(function(){return navigator.plugins['Shockwave Flash'].description;},function(){return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');})||'0 r0').match(/\d+/g);return{version:parseInt(version[0]||0+'.'+version[1],10)||0,build:parseInt(version[2],10)||0};})();function $exec(text){if(!text)return text;if(window.execScript){window.execScript(text);}else{var script=document.createElement('script');script.setAttribute('type','text/javascript');script[(Browser.Engine.webkit&&Browser.Engine.version<420)?'innerText':'text']=text;document.head.appendChild(script);document.head.removeChild(script);}
return text;};Native.UID=1;var $uid=(Browser.Engine.trident)?function(item){return(item.uid||(item.uid=[Native.UID++]))[0];}:function(item){return item.uid||(item.uid=Native.UID++);};var Window=new Native({name:'Window',legacy:(Browser.Engine.trident)?null:window.Window,initialize:function(win){$uid(win);if(!win.Element){win.Element=$empty;if(Browser.Engine.webkit)win.document.createElement("iframe");win.Element.prototype=(Browser.Engine.webkit)?window["[[DOMElement.prototype]]"]:{};}
win.document.window=win;return $extend(win,Window.Prototype);},afterImplement:function(property,value){window[property]=Window.Prototype[property]=value;}});Window.Prototype={$family:{name:'window'}};new Window(window);var Document=new Native({name:'Document',legacy:(Browser.Engine.trident)?null:window.Document,initialize:function(doc){$uid(doc);doc.head=doc.getElementsByTagName('head')[0];doc.html=doc.getElementsByTagName('html')[0];if(Browser.Engine.trident&&Browser.Engine.version<=4)$try(function(){doc.execCommand("BackgroundImageCache",false,true);});if(Browser.Engine.trident)doc.window.attachEvent('onunload',function(){doc.window.detachEvent('onunload',arguments.callee);doc.head=doc.html=doc.window=null;});return $extend(doc,Document.Prototype);},afterImplement:function(property,value){document[property]=Document.Prototype[property]=value;}});Document.Prototype={$family:{name:'document'}};new Document(document);Array.implement({every:function(fn,bind){for(var i=0,l=this.length;i<l;i++){if(!fn.call(bind,this[i],i,this))return false;}
return true;},filter:function(fn,bind){var results=[];for(var i=0,l=this.length;i<l;i++){if(fn.call(bind,this[i],i,this))results.push(this[i]);}
return results;},clean:function(){return this.filter($defined);},indexOf:function(item,from){var len=this.length;for(var i=(from<0)?Math.max(0,len+from):from||0;i<len;i++){if(this[i]===item)return i;}
return-1;},map:function(fn,bind){var results=[];for(var i=0,l=this.length;i<l;i++)results[i]=fn.call(bind,this[i],i,this);return results;},some:function(fn,bind){for(var i=0,l=this.length;i<l;i++){if(fn.call(bind,this[i],i,this))return true;}
return false;},associate:function(keys){var obj={},length=Math.min(this.length,keys.length);for(var i=0;i<length;i++)obj[keys[i]]=this[i];return obj;},link:function(object){var result={};for(var i=0,l=this.length;i<l;i++){for(var key in object){if(object[key](this[i])){result[key]=this[i];delete object[key];break;}}}
return result;},contains:function(item,from){return this.indexOf(item,from)!=-1;},extend:function(array){for(var i=0,j=array.length;i<j;i++)this.push(array[i]);return this;},getLast:function(){return(this.length)?this[this.length-1]:null;},getRandom:function(){return(this.length)?this[$random(0,this.length-1)]:null;},include:function(item){if(!this.contains(item))this.push(item);return this;},combine:function(array){for(var i=0,l=array.length;i<l;i++)this.include(array[i]);return this;},erase:function(item){for(var i=this.length;i--;i){if(this[i]===item)this.splice(i,1);}
return this;},empty:function(){this.length=0;return this;},flatten:function(){var array=[];for(var i=0,l=this.length;i<l;i++){var type=$type(this[i]);if(!type)continue;array=array.concat((type=='array'||type=='collection'||type=='arguments')?Array.flatten(this[i]):this[i]);}
return array;},hexToRgb:function(array){if(this.length!=3)return null;var rgb=this.map(function(value){if(value.length==1)value+=value;return value.toInt(16);});return(array)?rgb:'rgb('+rgb+')';},rgbToHex:function(array){if(this.length<3)return null;if(this.length==4&&this[3]==0&&!array)return'transparent';var hex=[];for(var i=0;i<3;i++){var bit=(this[i]-0).toString(16);hex.push((bit.length==1)?'0'+bit:bit);}
return(array)?hex:'#'+hex.join('');}});Function.implement({extend:function(properties){for(var property in properties)this[property]=properties[property];return this;},create:function(options){var self=this;options=options||{};return function(event){var args=options.arguments;args=(args!=undefined)?$splat(args):Array.slice(arguments,(options.event)?1:0);if(options.event)args=[event||window.event].extend(args);var returns=function(){return self.apply(options.bind||null,args);};if(options.delay)return setTimeout(returns,options.delay);if(options.periodical)return setInterval(returns,options.periodical);if(options.attempt)return $try(returns);return returns();};},run:function(args,bind){return this.apply(bind,$splat(args));},pass:function(args,bind){return this.create({bind:bind,arguments:args});},bind:function(bind,args){return this.create({bind:bind,arguments:args});},bindWithEvent:function(bind,args){return this.create({bind:bind,arguments:args,event:true});},attempt:function(args,bind){return this.create({bind:bind,arguments:args,attempt:true})();},delay:function(delay,bind,args){return this.create({bind:bind,arguments:args,delay:delay})();},periodical:function(periodical,bind,args){return this.create({bind:bind,arguments:args,periodical:periodical})();}});Number.implement({limit:function(min,max){return Math.min(max,Math.max(min,this));},round:function(precision){precision=Math.pow(10,precision||0);return Math.round(this*precision)/precision;},times:function(fn,bind){for(var i=0;i<this;i++)fn.call(bind,i,this);},toFloat:function(){return parseFloat(this);},toInt:function(base){return parseInt(this,base||10);}});Number.alias('times','each');(function(math){var methods={};math.each(function(name){if(!Number[name])methods[name]=function(){return Math[name].apply(null,[this].concat($A(arguments)));};});Number.implement(methods);})(['abs','acos','asin','atan','atan2','ceil','cos','exp','floor','log','max','min','pow','sin','sqrt','tan']);String.implement({test:function(regex,params){return((typeof regex=='string')?new RegExp(regex,params):regex).test(this);},contains:function(string,separator){return(separator)?(separator+this+separator).indexOf(separator+string+separator)>-1:this.indexOf(string)>-1;},trim:function(){return this.replace(/^\s+|\s+$/g,'');},clean:function(){return this.replace(/\s+/g,' ').trim();},camelCase:function(){return this.replace(/-\D/g,function(match){return match.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/[A-Z]/g,function(match){return('-'+match.charAt(0).toLowerCase());});},capitalize:function(){return this.replace(/\b[a-z]/g,function(match){return match.toUpperCase();});},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,'\\$1');},toInt:function(base){return parseInt(this,base||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(array){var hex=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(hex)?hex.slice(1).hexToRgb(array):null;},rgbToHex:function(array){var rgb=this.match(/\d{1,3}/g);return(rgb)?rgb.rgbToHex(array):null;},stripScripts:function(option){var scripts='';var text=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){scripts+=arguments[1]+'\n';return'';});if(option===true)$exec(scripts);else if($type(option)=='function')option(scripts,text);return text;},substitute:function(object,regexp){return this.replace(regexp||(/\\?\{([^{}]+)\}/g),function(match,name){if(match.charAt(0)=='\\')return match.slice(1);return(object[name]!=undefined)?object[name]:'';});}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(value){for(var key in this){if(this.hasOwnProperty(key)&&this[key]===value)return key;}
return null;},hasValue:function(value){return(Hash.keyOf(this,value)!==null);},extend:function(properties){Hash.each(properties||{},function(value,key){Hash.set(this,key,value);},this);return this;},combine:function(properties){Hash.each(properties||{},function(value,key){Hash.include(this,key,value);},this);return this;},erase:function(key){if(this.hasOwnProperty(key))delete this[key];return this;},get:function(key){return(this.hasOwnProperty(key))?this[key]:null;},set:function(key,value){if(!this[key]||this.hasOwnProperty(key))this[key]=value;return this;},empty:function(){Hash.each(this,function(value,key){delete this[key];},this);return this;},include:function(key,value){if(this[key]==undefined)this[key]=value;return this;},map:function(fn,bind){var results=new Hash;Hash.each(this,function(value,key){results.set(key,fn.call(bind,value,key,this));},this);return results;},filter:function(fn,bind){var results=new Hash;Hash.each(this,function(value,key){if(fn.call(bind,value,key,this))results.set(key,value);},this);return results;},every:function(fn,bind){for(var key in this){if(this.hasOwnProperty(key)&&!fn.call(bind,this[key],key))return false;}
return true;},some:function(fn,bind){for(var key in this){if(this.hasOwnProperty(key)&&fn.call(bind,this[key],key))return true;}
return false;},getKeys:function(){var keys=[];Hash.each(this,function(value,key){keys.push(key);});return keys;},getValues:function(){var values=[];Hash.each(this,function(value){values.push(value);});return values;},toQueryString:function(base){var queryString=[];Hash.each(this,function(value,key){if(base)key=base+'['+key+']';var result;switch($type(value)){case'object':result=Hash.toQueryString(value,key);break;case'array':var qs={};value.each(function(val,i){qs[i]=val;});result=Hash.toQueryString(qs,key);break;default:result=key+'='+encodeURIComponent(value);}
if(value!=undefined)queryString.push(result);});return queryString.join('&');}});Hash.alias({keyOf:'indexOf',hasValue:'contains'});var Event=new Native({name:'Event',initialize:function(event,win){win=win||window;var doc=win.document;event=event||win.event;if(event.$extended)return event;this.$extended=true;var type=event.type;var target=event.target||event.srcElement;while(target&&target.nodeType==3)target=target.parentNode;if(type.test(/key/)){var code=event.which||event.keyCode;var key=Event.Keys.keyOf(code);if(type=='keydown'){var fKey=code-111;if(fKey>0&&fKey<13)key='f'+fKey;}
key=key||String.fromCharCode(code).toLowerCase();}else if(type.match(/(click|mouse|menu)/i)){doc=(!doc.compatMode||doc.compatMode=='CSS1Compat')?doc.html:doc.body;var page={x:event.pageX||event.clientX+doc.scrollLeft,y:event.pageY||event.clientY+doc.scrollTop};var client={x:(event.pageX)?event.pageX-win.pageXOffset:event.clientX,y:(event.pageY)?event.pageY-win.pageYOffset:event.clientY};if(type.match(/DOMMouseScroll|mousewheel/)){var wheel=(event.wheelDelta)?event.wheelDelta/120:-(event.detail||0)/3;}
var rightClick=(event.which==3)||(event.button==2);var related=null;if(type.match(/over|out/)){switch(type){case'mouseover':related=event.relatedTarget||event.fromElement;break;case'mouseout':related=event.relatedTarget||event.toElement;}
if(!(function(){while(related&&related.nodeType==3)related=related.parentNode;return true;}).create({attempt:Browser.Engine.gecko})())related=false;}}
return $extend(this,{event:event,type:type,page:page,client:client,rightClick:rightClick,wheel:wheel,relatedTarget:related,target:target,code:code,key:key,shift:event.shiftKey,control:event.ctrlKey,alt:event.altKey,meta:event.metaKey});}});Event.Keys=new Hash({'enter':13,'up':38,'down':40,'left':37,'right':39,'esc':27,'space':32,'backspace':8,'tab':9,'delete':46});Event.implement({stop:function(){return this.stopPropagation().preventDefault();},stopPropagation:function(){if(this.event.stopPropagation)this.event.stopPropagation();else this.event.cancelBubble=true;return this;},preventDefault:function(){if(this.event.preventDefault)this.event.preventDefault();else this.event.returnValue=false;return this;}});function Class(params){if(params instanceof Function)params={initialize:params};var newClass=function(){Object.reset(this);if(newClass._prototyping)return this;this._current=$empty;var value=(this.initialize)?this.initialize.apply(this,arguments):this;delete this._current;delete this.caller;return value;}.extend(this);newClass.implement(params);newClass.constructor=Class;newClass.prototype.constructor=newClass;return newClass;};Function.prototype.protect=function(){this._protected=true;return this;};Object.reset=function(object,key){if(key==null){for(var p in object)Object.reset(object,p);return object;}
delete object[key];switch($type(object[key])){case'object':var F=function(){};F.prototype=object[key];var i=new F;object[key]=Object.reset(i);break;case'array':object[key]=$unlink(object[key]);break;}
return object;};new Native({name:'Class',initialize:Class}).extend({instantiate:function(F){F._prototyping=true;var proto=new F;delete F._prototyping;return proto;},wrap:function(self,key,method){if(method._origin)method=method._origin;return function(){if(method._protected&&this._current==null)throw new Error('The method "'+key+'" cannot be called.');var caller=this.caller,current=this._current;this.caller=current;this._current=arguments.callee;var result=method.apply(this,arguments);this._current=current;this.caller=caller;return result;}.extend({_owner:self,_origin:method,_name:key});}});Class.implement({implement:function(key,value){if($type(key)=='object'){for(var p in key)this.implement(p,key[p]);return this;}
var mutator=Class.Mutators[key];if(mutator){value=mutator.call(this,value);if(value==null)return this;}
var proto=this.prototype;switch($type(value)){case'function':if(value._hidden)return this;proto[key]=Class.wrap(this,key,value);break;case'object':var previous=proto[key];if($type(previous)=='object')$mixin(previous,value);else proto[key]=$unlink(value);break;case'array':proto[key]=$unlink(value);break;default:proto[key]=value;}
return this;}});Class.Mutators={Extends:function(parent){this.parent=parent;this.prototype=Class.instantiate(parent);this.implement('parent',function(){var name=this.caller._name,previous=this.caller._owner.parent.prototype[name];if(!previous)throw new Error('The method "'+name+'" has no parent.');return previous.apply(this,arguments);}.protect());},Implements:function(items){$splat(items).each(function(item){if(item instanceof Function)item=Class.instantiate(item);this.implement(item);},this);}};var Chain=new Class({$chain:[],chain:function(){this.$chain.extend(Array.flatten(arguments));return this;},callChain:function(){return(this.$chain.length)?this.$chain.shift().apply(this,arguments):false;},clearChain:function(){this.$chain.empty();return this;}});var Events=new Class({$events:{},addEvent:function(type,fn,internal){type=Events.removeOn(type);if(fn!=$empty){this.$events[type]=this.$events[type]||[];this.$events[type].include(fn);if(internal)fn.internal=true;}
return this;},addEvents:function(events){for(var type in events)this.addEvent(type,events[type]);return this;},fireEvent:function(type,args,delay){type=Events.removeOn(type);if(!this.$events||!this.$events[type])return this;this.$events[type].each(function(fn){fn.create({'bind':this,'delay':delay,'arguments':args})();},this);return this;},removeEvent:function(type,fn){type=Events.removeOn(type);if(!this.$events[type])return this;if(!fn.internal)this.$events[type].erase(fn);return this;},removeEvents:function(events){var type;if($type(events)=='object'){for(type in events)this.removeEvent(type,events[type]);return this;}
if(events)events=Events.removeOn(events);for(type in this.$events){if(events&&events!=type)continue;var fns=this.$events[type];for(var i=fns.length;i--;i)this.removeEvent(type,fns[i]);}
return this;}});Events.removeOn=function(string){return string.replace(/^on([A-Z])/,function(full,first){return first.toLowerCase();});};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));if(!this.addEvent)return this;for(var option in this.options){if($type(this.options[option])!='function'||!(/^on[A-Z]/).test(option))continue;this.addEvent(option,this.options[option]);delete this.options[option];}
return this;}});var Element=new Native({name:'Element',legacy:window.Element,initialize:function(tag,props){var konstructor=Element.Constructors.get(tag);if(konstructor)return konstructor(props);if(typeof tag=='string')return document.newElement(tag,props);return document.id(tag).set(props);},afterImplement:function(key,value){Element.Prototype[key]=value;if(Array[key])return;Elements.implement(key,function(){var items=[],elements=true;for(var i=0,j=this.length;i<j;i++){var returns=this[i][key].apply(this[i],arguments);items.push(returns);if(elements)elements=($type(returns)=='element');}
return(elements)?new Elements(items):items;});}});Element.Prototype={$family:{name:'element'}};Element.Constructors=new Hash;var IFrame=new Native({name:'IFrame',generics:false,initialize:function(){var params=Array.link(arguments,{properties:Object.type,iframe:$defined});var props=params.properties||{};var iframe=document.id(params.iframe);var onload=props.onload||$empty;delete props.onload;props.id=props.name=$pick(props.id,props.name,iframe?(iframe.id||iframe.name):'IFrame_'+$time());iframe=new Element(iframe||'iframe',props);var onFrameLoad=function(){var host=$try(function(){return iframe.contentWindow.location.host;});if(!host||host==window.location.host){var win=new Window(iframe.contentWindow);new Document(iframe.contentWindow.document);$extend(win.Element.prototype,Element.Prototype);}
onload.call(iframe.contentWindow,iframe.contentWindow.document);};var contentWindow=$try(function(){return iframe.contentWindow;});((contentWindow&&contentWindow.document.body)||window.frames[props.id])?onFrameLoad():iframe.addListener('load',onFrameLoad);return iframe;}});var Elements=new Native({initialize:function(elements,options){options=$extend({ddup:true,cash:true},options);elements=elements||[];if(options.ddup||options.cash){var uniques={},returned=[];for(var i=0,l=elements.length;i<l;i++){var el=document.id(elements[i],!options.cash);if(options.ddup){if(uniques[el.uid])continue;uniques[el.uid]=true;}
if(el)returned.push(el);}
elements=returned;}
return(options.cash)?$extend(elements,this):elements;}});Elements.implement({filter:function(filter,bind){if(!filter)return this;return new Elements(Array.filter(this,(typeof filter=='string')?function(item){return item.match(filter);}:filter,bind));}});Document.implement({newElement:function(tag,props){if(Browser.Engine.trident&&props){['name','type','checked'].each(function(attribute){if(!props[attribute])return;tag+=' '+attribute+'="'+props[attribute]+'"';if(attribute!='checked')delete props[attribute];});tag='<'+tag+'>';}
return document.id(this.createElement(tag)).set(props);},newTextNode:function(text){return this.createTextNode(text);},getDocument:function(){return this;},getWindow:function(){return this.window;},id:(function(){var types={string:function(id,nocash,doc){id=doc.getElementById(id);return(id)?types.element(id,nocash):null;},element:function(el,nocash){$uid(el);if(!nocash&&!el.$family&&!(/^object|embed$/i).test(el.tagName)){var proto=Element.Prototype;for(var p in proto)el[p]=proto[p];};return el;},object:function(obj,nocash,doc){if(obj.toElement)return types.element(obj.toElement(doc),nocash);return null;}};types.textnode=types.whitespace=types.window=types.document=$arguments(0);return function(el,nocash,doc){if(el&&el.$family&&el.uid)return el;var type=$type(el);return(types[type])?types[type](el,nocash,doc||document):null;};})()});if(window.$==null)Window.implement({$:function(el,nc){return document.id(el,nc,this.document);}});Window.implement({$$:function(selector){if(arguments.length==1&&typeof selector=='string')return this.document.getElements(selector);var elements=[];var args=Array.flatten(arguments);for(var i=0,l=args.length;i<l;i++){var item=args[i];switch($type(item)){case'element':elements.push(item);break;case'string':elements.extend(this.document.getElements(item,true));}}
return new Elements(elements);},getDocument:function(){return this.document;},getWindow:function(){return this;}});Native.implement([Element,Document],{getElement:function(selector,nocash){return document.id(this.getElements(selector,true)[0]||null,nocash);},getElements:function(tags,nocash){tags=tags.split(',');var elements=[];var ddup=(tags.length>1);tags.each(function(tag){var partial=this.getElementsByTagName(tag.trim());(ddup)?elements.extend(partial):elements=partial;},this);return new Elements(elements,{ddup:ddup,cash:!nocash});}});(function(){var collected={},storage={};var props={input:'checked',option:'selected',textarea:(Browser.Engine.webkit&&Browser.Engine.version<420)?'innerHTML':'value'};var get=function(uid){return(storage[uid]||(storage[uid]={}));};var clean=function(item,retain){if(!item)return;var uid=item.uid;if(Browser.Engine.trident){if(item.clearAttributes){var clone=retain&&item.cloneNode(false);item.clearAttributes();if(clone)item.mergeAttributes(clone);}else if(item.removeEvents){item.removeEvents();}
if((/object/i).test(item.tagName)){for(var p in item){if(typeof item[p]=='function')item[p]=$empty;}
Element.dispose(item);}}
if(!uid)return;collected[uid]=storage[uid]=null;};var purge=function(){Hash.each(collected,clean);if(Browser.Engine.trident)$A(document.getElementsByTagName('object')).each(clean);if(window.CollectGarbage)CollectGarbage();collected=storage=null;};var walk=function(element,walk,start,match,all,nocash){var el=element[start||walk];var elements=[];while(el){if(el.nodeType==1&&(!match||Element.match(el,match))){if(!all)return document.id(el,nocash);elements.push(el);}
el=el[walk];}
return(all)?new Elements(elements,{ddup:false,cash:!nocash}):null;};var attributes={'html':'innerHTML','class':'className','for':'htmlFor','defaultValue':'defaultValue','text':(Browser.Engine.trident||(Browser.Engine.webkit&&Browser.Engine.version<420))?'innerText':'textContent'};var bools=['compact','nowrap','ismap','declare','noshade','checked','disabled','readonly','multiple','selected','noresize','defer'];var camels=['value','type','defaultValue','accessKey','cellPadding','cellSpacing','colSpan','frameBorder','maxLength','readOnly','rowSpan','tabIndex','useMap'];bools=bools.associate(bools);Hash.extend(attributes,bools);Hash.extend(attributes,camels.associate(camels.map(String.toLowerCase)));var inserters={before:function(context,element){if(element.parentNode)element.parentNode.insertBefore(context,element);},after:function(context,element){if(!element.parentNode)return;var next=element.nextSibling;(next)?element.parentNode.insertBefore(context,next):element.parentNode.appendChild(context);},bottom:function(context,element){element.appendChild(context);},top:function(context,element){var first=element.firstChild;(first)?element.insertBefore(context,first):element.appendChild(context);}};inserters.inside=inserters.bottom;Hash.each(inserters,function(inserter,where){where=where.capitalize();Element.implement('inject'+where,function(el){inserter(this,document.id(el,true));return this;});Element.implement('grab'+where,function(el){inserter(document.id(el,true),this);return this;});});Element.implement({set:function(prop,value){switch($type(prop)){case'object':for(var p in prop)this.set(p,prop[p]);break;case'string':var property=Element.Properties.get(prop);(property&&property.set)?property.set.apply(this,Array.slice(arguments,1)):this.setProperty(prop,value);}
return this;},get:function(prop){var property=Element.Properties.get(prop);return(property&&property.get)?property.get.apply(this,Array.slice(arguments,1)):this.getProperty(prop);},erase:function(prop){var property=Element.Properties.get(prop);(property&&property.erase)?property.erase.apply(this):this.removeProperty(prop);return this;},setProperty:function(attribute,value){var key=attributes[attribute];if(value==undefined)return this.removeProperty(attribute);if(key&&bools[attribute])value=!!value;(key)?this[key]=value:this.setAttribute(attribute,''+value);return this;},setProperties:function(attributes){for(var attribute in attributes)this.setProperty(attribute,attributes[attribute]);return this;},getProperty:function(attribute){var key=attributes[attribute];var value=(key)?this[key]:this.getAttribute(attribute,2);return(bools[attribute])?!!value:(key)?value:value||null;},getProperties:function(){var args=$A(arguments);return args.map(this.getProperty,this).associate(args);},removeProperty:function(attribute){var key=attributes[attribute];(key)?this[key]=(key&&bools[attribute])?false:'':this.removeAttribute(attribute);return this;},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this;},hasClass:function(className){return this.className.contains(className,' ');},addClass:function(className){if(!this.hasClass(className))this.className=(this.className+' '+className).clean();return this;},removeClass:function(className){this.className=this.className.replace(new RegExp('(^|\\s)'+className+'(?:\\s|$)'),'$1');return this;},toggleClass:function(className){return this.hasClass(className)?this.removeClass(className):this.addClass(className);},adopt:function(){Array.flatten(arguments).each(function(element){element=document.id(element,true);if(element)this.appendChild(element);},this);return this;},appendText:function(text,where){return this.grab(this.getDocument().newTextNode(text),where);},grab:function(el,where){inserters[where||'bottom'](document.id(el,true),this);return this;},inject:function(el,where){inserters[where||'bottom'](this,document.id(el,true));return this;},replaces:function(el){el=document.id(el,true);el.parentNode.replaceChild(this,el);return this;},wraps:function(el,where){el=document.id(el,true);return this.replaces(el).grab(el,where);},getPrevious:function(match,nocash){return walk(this,'previousSibling',null,match,false,nocash);},getAllPrevious:function(match,nocash){return walk(this,'previousSibling',null,match,true,nocash);},getNext:function(match,nocash){return walk(this,'nextSibling',null,match,false,nocash);},getAllNext:function(match,nocash){return walk(this,'nextSibling',null,match,true,nocash);},getFirst:function(match,nocash){return walk(this,'nextSibling','firstChild',match,false,nocash);},getLast:function(match,nocash){return walk(this,'previousSibling','lastChild',match,false,nocash);},getParent:function(match,nocash){return walk(this,'parentNode',null,match,false,nocash);},getParents:function(match,nocash){return walk(this,'parentNode',null,match,true,nocash);},getSiblings:function(match,nocash){return this.getParent().getChildren(match,nocash).erase(this);},getChildren:function(match,nocash){return walk(this,'nextSibling','firstChild',match,true,nocash);},getWindow:function(){return this.ownerDocument.window;},getDocument:function(){return this.ownerDocument;},getElementById:function(id,nocash){var el=this.ownerDocument.getElementById(id);if(!el)return null;for(var parent=el.parentNode;parent!=this;parent=parent.parentNode){if(!parent)return null;}
return document.id(el,nocash);},getSelected:function(){return new Elements($A(this.options).filter(function(option){return option.selected;}));},getComputedStyle:function(property){if(this.currentStyle)return this.currentStyle[property.camelCase()];var computed=this.getDocument().defaultView.getComputedStyle(this,null);return(computed)?computed.getPropertyValue([property.hyphenate()]):null;},toQueryString:function(){var queryString=[];this.getElements('input, select, textarea',true).each(function(el){if(!el.name||el.disabled||el.type=='submit'||el.type=='reset'||el.type=='file')return;var value=(el.tagName.toLowerCase()=='select')?Element.getSelected(el).map(function(opt){return opt.value;}):((el.type=='radio'||el.type=='checkbox')&&!el.checked)?null:el.value;$splat(value).each(function(val){if(typeof val!='undefined')queryString.push(el.name+'='+encodeURIComponent(val));});});return queryString.join('&');},clone:function(contents,keepid){contents=contents!==false;var clone=this.cloneNode(contents);var clean=function(node,element){if(!keepid)node.removeAttribute('id');if(Browser.Engine.trident){node.clearAttributes();node.mergeAttributes(element);node.removeAttribute('uid');if(node.options){var no=node.options,eo=element.options;for(var j=no.length;j--;)no[j].selected=eo[j].selected;}}
var prop=props[element.tagName.toLowerCase()];if(prop&&element[prop])node[prop]=element[prop];};if(contents){var ce=clone.getElementsByTagName('*'),te=this.getElementsByTagName('*');for(var i=ce.length;i--;)clean(ce[i],te[i]);}
clean(clone,this);return document.id(clone);},destroy:function(){Element.empty(this);Element.dispose(this);clean(this,true);return null;},empty:function(){$A(this.childNodes).each(function(node){Element.destroy(node);});return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this;},hasChild:function(el){el=document.id(el,true);if(!el)return false;if(Browser.Engine.webkit&&Browser.Engine.version<420)return $A(this.getElementsByTagName(el.tagName)).contains(el);return(this.contains)?(this!=el&&this.contains(el)):!!(this.compareDocumentPosition(el)&16);},match:function(tag){return(!tag||(tag==this)||(Element.get(this,'tag')==tag));}});Native.implement([Element,Window,Document],{addListener:function(type,fn){if(type=='unload'){var old=fn,self=this;fn=function(){self.removeListener('unload',fn);old();};}else{collected[this.uid]=this;}
if(this.addEventListener)this.addEventListener(type,fn,false);else this.attachEvent('on'+type,fn);return this;},removeListener:function(type,fn){if(this.removeEventListener)this.removeEventListener(type,fn,false);else this.detachEvent('on'+type,fn);return this;},retrieve:function(property,dflt){var storage=get(this.uid),prop=storage[property];if(dflt!=undefined&&prop==undefined)prop=storage[property]=dflt;return $pick(prop);},store:function(property,value){var storage=get(this.uid);storage[property]=value;return this;},eliminate:function(property){var storage=get(this.uid);delete storage[property];return this;}});window.addListener('unload',purge);})();Element.Properties=new Hash;Element.Properties.style={set:function(style){this.style.cssText=style;},get:function(){return this.style.cssText;},erase:function(){this.style.cssText='';}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();}};Element.Properties.html=(function(){var wrapper=document.createElement('div');var translations={table:[1,'<table>','</table>'],select:[1,'<select>','</select>'],tbody:[2,'<table><tbody>','</tbody></table>'],tr:[3,'<table><tbody><tr>','</tr></tbody></table>']};translations.thead=translations.tfoot=translations.tbody;var html={set:function(){var html=Array.flatten(arguments).join('');var wrap=Browser.Engine.trident&&translations[this.get('tag')];if(wrap){var first=wrapper;first.innerHTML=wrap[1]+html+wrap[2];for(var i=wrap[0];i--;)first=first.firstChild;this.empty().adopt(first.childNodes);}else{this.innerHTML=html;}}};html.erase=html.set;return html;})();if(Browser.Engine.webkit&&Browser.Engine.version<420)Element.Properties.text={get:function(){if(this.innerText)return this.innerText;var temp=this.ownerDocument.newElement('div',{html:this.innerHTML}).inject(this.ownerDocument.body);var text=temp.innerText;temp.destroy();return text;}};Element.Properties.events={set:function(events){this.addEvents(events);}};Native.implement([Element,Window,Document],{addEvent:function(type,fn){var events=this.retrieve('events',{});events[type]=events[type]||{'keys':[],'values':[]};if(events[type].keys.contains(fn))return this;events[type].keys.push(fn);var realType=type,custom=Element.Events.get(type),condition=fn,self=this;if(custom){if(custom.onAdd)custom.onAdd.call(this,fn);if(custom.condition){condition=function(event){if(custom.condition.call(this,event))return fn.call(this,event);return true;};}
realType=custom.base||realType;}
var defn=function(){return fn.call(self);};var nativeEvent=Element.NativeEvents[realType];if(nativeEvent){if(nativeEvent==2){defn=function(event){event=new Event(event,self.getWindow());if(condition.call(self,event)===false)event.stop();};}
this.addListener(realType,defn);}
events[type].values.push(defn);return this;},removeEvent:function(type,fn){var events=this.retrieve('events');if(!events||!events[type])return this;var pos=events[type].keys.indexOf(fn);if(pos==-1)return this;events[type].keys.splice(pos,1);var value=events[type].values.splice(pos,1)[0];var custom=Element.Events.get(type);if(custom){if(custom.onRemove)custom.onRemove.call(this,fn);type=custom.base||type;}
return(Element.NativeEvents[type])?this.removeListener(type,value):this;},addEvents:function(events){for(var event in events)this.addEvent(event,events[event]);return this;},removeEvents:function(events){var type;if($type(events)=='object'){for(type in events)this.removeEvent(type,events[type]);return this;}
var attached=this.retrieve('events');if(!attached)return this;if(!events){for(type in attached)this.removeEvents(type);this.eliminate('events');}else if(attached[events]){while(attached[events].keys[0])this.removeEvent(events,attached[events].keys[0]);attached[events]=null;}
return this;},fireEvent:function(type,args,delay){var events=this.retrieve('events');if(!events||!events[type])return this;events[type].keys.each(function(fn){fn.create({'bind':this,'delay':delay,'arguments':args})();},this);return this;},cloneEvents:function(from,type){from=document.id(from);var fevents=from.retrieve('events');if(!fevents)return this;if(!type){for(var evType in fevents)this.cloneEvents(from,evType);}else if(fevents[type]){fevents[type].keys.each(function(fn){this.addEvent(type,fn);},this);}
return this;}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};(function(){var $check=function(event){var related=event.relatedTarget;if(related==undefined)return true;if(related===false)return false;return($type(this)!='document'&&related!=this&&related.prefix!='xul'&&!this.hasChild(related));};Element.Events=new Hash({mouseenter:{base:'mouseover',condition:$check},mouseleave:{base:'mouseout',condition:$check},mousewheel:{base:(Browser.Engine.gecko)?'DOMMouseScroll':'mousewheel'}});})();Element.Properties.styles={set:function(styles){this.setStyles(styles);}};Element.Properties.opacity={set:function(opacity,novisibility){if(!novisibility){if(opacity==0){if(this.style.visibility!='hidden')this.style.visibility='hidden';}else{if(this.style.visibility!='visible')this.style.visibility='visible';}}
if(!this.currentStyle||!this.currentStyle.hasLayout)this.style.zoom=1;if(Browser.Engine.trident)this.style.filter=(opacity==1)?'':'alpha(opacity='+opacity*100+')';this.style.opacity=opacity;this.store('opacity',opacity);},get:function(){return this.retrieve('opacity',1);}};Element.implement({setOpacity:function(value){return this.set('opacity',value,true);},getOpacity:function(){return this.get('opacity');},setStyle:function(property,value){switch(property){case'opacity':return this.set('opacity',parseFloat(value));case'float':property=(Browser.Engine.trident)?'styleFloat':'cssFloat';}
property=property.camelCase();if($type(value)!='string'){var map=(Element.Styles.get(property)||'@').split(' ');value=$splat(value).map(function(val,i){if(!map[i])return'';return($type(val)=='number')?map[i].replace('@',Math.round(val)):val;}).join(' ');}else if(value==String(Number(value))){value=Math.round(value);}
this.style[property]=value;return this;},getStyle:function(property){switch(property){case'opacity':return this.get('opacity');case'float':property=(Browser.Engine.trident)?'styleFloat':'cssFloat';}
property=property.camelCase();var result=this.style[property];if(!$chk(result)){result=[];for(var style in Element.ShortStyles){if(property!=style)continue;for(var s in Element.ShortStyles[style])result.push(this.getStyle(s));return result.join(' ');}
result=this.getComputedStyle(property);}
if(result){result=String(result);var color=result.match(/rgba?\([\d\s,]+\)/);if(color)result=result.replace(color[0],color[0].rgbToHex());}
if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(result,10)))){if(property.test(/^(height|width)$/)){var values=(property=='width')?['left','right']:['top','bottom'],size=0;values.each(function(value){size+=this.getStyle('border-'+value+'-width').toInt()+this.getStyle('padding-'+value).toInt();},this);return this['offset'+property.capitalize()]-size+'px';}
if((Browser.Engine.presto)&&String(result).test('px'))return result;if(property.test(/(border(.+)Width|margin|padding)/))return'0px';}
return result;},setStyles:function(styles){for(var style in styles)this.setStyle(style,styles[style]);return this;},getStyles:function(){var result={};Array.flatten(arguments).each(function(key){result[key]=this.getStyle(key);},this);return result;}});Element.Styles=new Hash({left:'@px',top:'@px',bottom:'@px',right:'@px',width:'@px',height:'@px',maxWidth:'@px',maxHeight:'@px',minWidth:'@px',minHeight:'@px',backgroundColor:'rgb(@, @, @)',backgroundPosition:'@px @px',color:'rgb(@, @, @)',fontSize:'@px',letterSpacing:'@px',lineHeight:'@px',clip:'rect(@px @px @px @px)',margin:'@px @px @px @px',padding:'@px @px @px @px',border:'@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)',borderWidth:'@px @px @px @px',borderStyle:'@ @ @ @',borderColor:'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)',zIndex:'@','zoom':'@',fontWeight:'@',textIndent:'@px',opacity:'@'});Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};['Top','Right','Bottom','Left'].each(function(direction){var Short=Element.ShortStyles;var All=Element.Styles;['margin','padding'].each(function(style){var sd=style+direction;Short[style][sd]=All[sd]='@px';});var bd='border'+direction;Short.border[bd]=All[bd]='@px @ rgb(@, @, @)';var bdw=bd+'Width',bds=bd+'Style',bdc=bd+'Color';Short[bd]={};Short.borderWidth[bdw]=Short[bd][bdw]=All[bdw]='@px';Short.borderStyle[bds]=Short[bd][bds]=All[bds]='@';Short.borderColor[bdc]=Short[bd][bdc]=All[bdc]='rgb(@, @, @)';});(function(){Element.implement({scrollTo:function(x,y){if(isBody(this)){this.getWindow().scrollTo(x,y);}else{this.scrollLeft=x;this.scrollTop=y;}
return this;},getSize:function(){if(isBody(this))return this.getWindow().getSize();return{x:this.offsetWidth,y:this.offsetHeight};},getScrollSize:function(){if(isBody(this))return this.getWindow().getScrollSize();return{x:this.scrollWidth,y:this.scrollHeight};},getScroll:function(){if(isBody(this))return this.getWindow().getScroll();return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var element=this,position={x:0,y:0};while(element&&!isBody(element)){position.x+=element.scrollLeft;position.y+=element.scrollTop;element=element.parentNode;}
return position;},getOffsetParent:function(){var element=this;if(isBody(element))return null;if(!Browser.Engine.trident)return element.offsetParent;while((element=element.parentNode)&&!isBody(element)){if(styleString(element,'position')!='static')return element;}
return null;},getOffsets:function(){if(this.getBoundingClientRect){var bound=this.getBoundingClientRect(),html=document.id(this.getDocument().documentElement),htmlScroll=html.getScroll(),elemScrolls=this.getScrolls(),elemScroll=this.getScroll(),isFixed=(styleString(this,'position')=='fixed');return{x:bound.left.toInt()+elemScrolls.x-elemScroll.x+((isFixed)?0:htmlScroll.x)-html.clientLeft,y:bound.top.toInt()+elemScrolls.y-elemScroll.y+((isFixed)?0:htmlScroll.y)-html.clientTop};}
var element=this,position={x:0,y:0};if(isBody(this))return position;while(element&&!isBody(element)){position.x+=element.offsetLeft;position.y+=element.offsetTop;if(Browser.Engine.gecko){if(!borderBox(element)){position.x+=leftBorder(element);position.y+=topBorder(element);}
var parent=element.parentNode;if(parent&&styleString(parent,'overflow')!='visible'){position.x+=leftBorder(parent);position.y+=topBorder(parent);}}else if(element!=this&&Browser.Engine.webkit){position.x+=leftBorder(element);position.y+=topBorder(element);}
element=element.offsetParent;}
if(Browser.Engine.gecko&&!borderBox(this)){position.x-=leftBorder(this);position.y-=topBorder(this);}
return position;},getPosition:function(relative){if(isBody(this))return{x:0,y:0};var offset=this.getOffsets(),scroll=this.getScrolls();var position={x:offset.x-scroll.x,y:offset.y-scroll.y};var relativePosition=(relative&&(relative=document.id(relative)))?relative.getPosition():{x:0,y:0};return{x:position.x-relativePosition.x,y:position.y-relativePosition.y};},getCoordinates:function(element){if(isBody(this))return this.getWindow().getCoordinates();var position=this.getPosition(element),size=this.getSize();var obj={left:position.x,top:position.y,width:size.x,height:size.y};obj.right=obj.left+obj.width;obj.bottom=obj.top+obj.height;return obj;},computePosition:function(obj){return{left:obj.x-styleNumber(this,'margin-left'),top:obj.y-styleNumber(this,'margin-top')};},setPosition:function(obj){return this.setStyles(this.computePosition(obj));}});Native.implement([Document,Window],{getSize:function(){if(Browser.Engine.presto||Browser.Engine.webkit){var win=this.getWindow();return{x:win.innerWidth,y:win.innerHeight};}
var doc=getCompatElement(this);return{x:doc.clientWidth,y:doc.clientHeight};},getScroll:function(){var win=this.getWindow(),doc=getCompatElement(this);return{x:win.pageXOffset||doc.scrollLeft,y:win.pageYOffset||doc.scrollTop};},getScrollSize:function(){var doc=getCompatElement(this),min=this.getSize();return{x:Math.max(doc.scrollWidth,min.x),y:Math.max(doc.scrollHeight,min.y)};},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var size=this.getSize();return{top:0,left:0,bottom:size.y,right:size.x,height:size.y,width:size.x};}});var styleString=Element.getComputedStyle;function styleNumber(element,style){return styleString(element,style).toInt()||0;};function borderBox(element){return styleString(element,'-moz-box-sizing')=='border-box';};function topBorder(element){return styleNumber(element,'border-top-width');};function leftBorder(element){return styleNumber(element,'border-left-width');};function isBody(element){return(/^(?:body|html)$/i).test(element.tagName);};function getCompatElement(element){var doc=element.getDocument();return(!doc.compatMode||doc.compatMode=='CSS1Compat')?doc.html:doc.body;};})();Element.alias('setPosition','position');Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y;},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y;},getScrollLeft:function(){return this.getScroll().x;},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x;},getTop:function(){return this.getPosition().y;},getLeft:function(){return this.getPosition().x;}});Native.implement([Document,Element],{getElements:function(expression,nocash){expression=expression.split(',');var items,local={};for(var i=0,l=expression.length;i<l;i++){var selector=expression[i],elements=Selectors.Utils.search(this,selector,local);if(i!=0&&elements.item)elements=$A(elements);items=(i==0)?elements:(items.item)?$A(items).concat(elements):items.concat(elements);}
return new Elements(items,{ddup:(expression.length>1),cash:!nocash});}});Element.implement({match:function(selector){if(!selector||(selector==this))return true;var tagid=Selectors.Utils.parseTagAndID(selector);var tag=tagid[0],id=tagid[1];if(!Selectors.Filters.byID(this,id)||!Selectors.Filters.byTag(this,tag))return false;var parsed=Selectors.Utils.parseSelector(selector);return(parsed)?Selectors.Utils.filter(this,parsed,{}):true;}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};Selectors.Utils={chk:function(item,uniques){if(!uniques)return true;var uid=$uid(item);if(!uniques[uid])return uniques[uid]=true;return false;},parseNthArgument:function(argument){if(Selectors.Cache.nth[argument])return Selectors.Cache.nth[argument];var parsed=argument.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!parsed)return false;var inta=parseInt(parsed[1],10);var a=(inta||inta===0)?inta:1;var special=parsed[2]||false;var b=parseInt(parsed[3],10)||0;if(a!=0){b--;while(b<1)b+=a;while(b>=a)b-=a;}else{a=b;special='index';}
switch(special){case'n':parsed={a:a,b:b,special:'n'};break;case'odd':parsed={a:2,b:0,special:'n'};break;case'even':parsed={a:2,b:1,special:'n'};break;case'first':parsed={a:0,special:'index'};break;case'last':parsed={special:'last-child'};break;case'only':parsed={special:'only-child'};break;default:parsed={a:(a-1),special:'index'};}
return Selectors.Cache.nth[argument]=parsed;},parseSelector:function(selector){if(Selectors.Cache.parsed[selector])return Selectors.Cache.parsed[selector];var m,parsed={classes:[],pseudos:[],attributes:[]};while((m=Selectors.RegExps.combined.exec(selector))){var cn=m[1],an=m[2],ao=m[3],av=m[5],pn=m[6],pa=m[7];if(cn){parsed.classes.push(cn);}else if(pn){var parser=Selectors.Pseudo.get(pn);if(parser)parsed.pseudos.push({parser:parser,argument:pa});else parsed.attributes.push({name:pn,operator:'=',value:pa});}else if(an){parsed.attributes.push({name:an,operator:ao,value:av});}}
if(!parsed.classes.length)delete parsed.classes;if(!parsed.attributes.length)delete parsed.attributes;if(!parsed.pseudos.length)delete parsed.pseudos;if(!parsed.classes&&!parsed.attributes&&!parsed.pseudos)parsed=null;return Selectors.Cache.parsed[selector]=parsed;},parseTagAndID:function(selector){var tag=selector.match(Selectors.RegExps.tag);var id=selector.match(Selectors.RegExps.id);return[(tag)?tag[1]:'*',(id)?id[1]:false];},filter:function(item,parsed,local){var i;if(parsed.classes){for(i=parsed.classes.length;i--;i){var cn=parsed.classes[i];if(!Selectors.Filters.byClass(item,cn))return false;}}
if(parsed.attributes){for(i=parsed.attributes.length;i--;i){var att=parsed.attributes[i];if(!Selectors.Filters.byAttribute(item,att.name,att.operator,att.value))return false;}}
if(parsed.pseudos){for(i=parsed.pseudos.length;i--;i){var psd=parsed.pseudos[i];if(!Selectors.Filters.byPseudo(item,psd.parser,psd.argument,local))return false;}}
return true;},getByTagAndID:function(ctx,tag,id){if(id){var item=(ctx.getElementById)?ctx.getElementById(id,true):Element.getElementById(ctx,id,true);return(item&&Selectors.Filters.byTag(item,tag))?[item]:[];}else{return ctx.getElementsByTagName(tag);}},search:function(self,expression,local){var splitters=[];var selectors=expression.trim().replace(Selectors.RegExps.splitter,function(m0,m1,m2){splitters.push(m1);return':)'+m2;}).split(':)');var items,filtered,item;for(var i=0,l=selectors.length;i<l;i++){var selector=selectors[i];if(i==0&&Selectors.RegExps.quick.test(selector)){items=self.getElementsByTagName(selector);continue;}
var splitter=splitters[i-1];var tagid=Selectors.Utils.parseTagAndID(selector);var tag=tagid[0],id=tagid[1];if(i==0){items=Selectors.Utils.getByTagAndID(self,tag,id);}else{var uniques={},found=[];for(var j=0,k=items.length;j<k;j++)found=Selectors.Getters[splitter](found,items[j],tag,id,uniques);items=found;}
var parsed=Selectors.Utils.parseSelector(selector);if(parsed){filtered=[];for(var m=0,n=items.length;m<n;m++){item=items[m];if(Selectors.Utils.filter(item,parsed,local))filtered.push(item);}
items=filtered;}}
return items;}};Selectors.Getters={' ':function(found,self,tag,id,uniques){var items=Selectors.Utils.getByTagAndID(self,tag,id);for(var i=0,l=items.length;i<l;i++){var item=items[i];if(Selectors.Utils.chk(item,uniques))found.push(item);}
return found;},'>':function(found,self,tag,id,uniques){var children=Selectors.Utils.getByTagAndID(self,tag,id);for(var i=0,l=children.length;i<l;i++){var child=children[i];if(child.parentNode==self&&Selectors.Utils.chk(child,uniques))found.push(child);}
return found;},'+':function(found,self,tag,id,uniques){while((self=self.nextSibling)){if(self.nodeType==1){if(Selectors.Utils.chk(self,uniques)&&Selectors.Filters.byTag(self,tag)&&Selectors.Filters.byID(self,id))found.push(self);break;}}
return found;},'~':function(found,self,tag,id,uniques){while((self=self.nextSibling)){if(self.nodeType==1){if(!Selectors.Utils.chk(self,uniques))break;if(Selectors.Filters.byTag(self,tag)&&Selectors.Filters.byID(self,id))found.push(self);}}
return found;}};Selectors.Filters={byTag:function(self,tag){return(tag=='*'||(self.tagName&&self.tagName.toLowerCase()==tag));},byID:function(self,id){return(!id||(self.id&&self.id==id));},byClass:function(self,klass){return(self.className&&self.className.contains&&self.className.contains(klass,' '));},byPseudo:function(self,parser,argument,local){return parser.call(self,argument,local);},byAttribute:function(self,name,operator,value){var result=Element.prototype.getProperty.call(self,name);if(!result)return(operator=='!=');if(!operator||value==undefined)return true;switch(operator){case'=':return(result==value);case'*=':return(result.contains(value));case'^=':return(result.substr(0,value.length)==value);case'$=':return(result.substr(result.length-value.length)==value);case'!=':return(result!=value);case'~=':return result.contains(value,' ');case'|=':return result.contains(value,'-');}
return false;}};Selectors.Pseudo=new Hash({checked:function(){return this.checked;},empty:function(){return!(this.innerText||this.textContent||'').length;},not:function(selector){return!Element.match(this,selector);},contains:function(text){return(this.innerText||this.textContent||'').contains(text);},'first-child':function(){return Selectors.Pseudo.index.call(this,0);},'last-child':function(){var element=this;while((element=element.nextSibling)){if(element.nodeType==1)return false;}
return true;},'only-child':function(){var prev=this;while((prev=prev.previousSibling)){if(prev.nodeType==1)return false;}
var next=this;while((next=next.nextSibling)){if(next.nodeType==1)return false;}
return true;},'nth-child':function(argument,local){argument=(argument==undefined)?'n':argument;var parsed=Selectors.Utils.parseNthArgument(argument);if(parsed.special!='n')return Selectors.Pseudo[parsed.special].call(this,parsed.a,local);var count=0;local.positions=local.positions||{};var uid=$uid(this);if(!local.positions[uid]){var self=this;while((self=self.previousSibling)){if(self.nodeType!=1)continue;count++;var position=local.positions[$uid(self)];if(position!=undefined){count=position+count;break;}}
local.positions[uid]=count;}
return(local.positions[uid]%parsed.a==parsed.b);},index:function(index){var element=this,count=0;while((element=element.previousSibling)){if(element.nodeType==1&&++count>index)return false;}
return(count==index);},even:function(argument,local){return Selectors.Pseudo['nth-child'].call(this,'2n+1',local);},odd:function(argument,local){return Selectors.Pseudo['nth-child'].call(this,'2n',local);},selected:function(){return this.selected;},enabled:function(){return(this.disabled===false);}});Element.Events.domready={onAdd:function(fn){if(Browser.loaded)fn.call(this);}};(function(){var domready=function(){if(Browser.loaded)return;Browser.loaded=true;window.fireEvent('domready');document.fireEvent('domready');};window.addEvent('load',domready);if(Browser.Engine.trident){var temp=document.createElement('div');(function(){($try(function(){temp.doScroll();return document.id(temp).inject(document.body).set('html','temp').dispose();}))?domready():arguments.callee.delay(50);})();}else if(Browser.Engine.webkit&&Browser.Engine.version<525){(function(){(['loaded','complete'].contains(document.readyState))?domready():arguments.callee.delay(50);})();}else{document.addEvent('DOMContentLoaded',domready);}})();var JSON=new Hash(this.JSON&&{stringify:JSON.stringify,parse:JSON.parse}).extend({$specialChars:{'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},$replaceChars:function(chr){return JSON.$specialChars[chr]||'\\u00'+Math.floor(chr.charCodeAt()/16).toString(16)+(chr.charCodeAt()%16).toString(16);},encode:function(obj){switch($type(obj)){case'string':return'"'+obj.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';case'array':return'['+String(obj.map(JSON.encode).clean())+']';case'object':case'hash':var string=[];Hash.each(obj,function(value,key){var json=JSON.encode(value);if(json)string.push(JSON.encode(key)+':'+json);});return'{'+string+'}';case'number':case'boolean':return String(obj);case false:return'null';}
return null;},decode:function(string,secure){if($type(string)!='string'||!string.length)return null;if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"/g,'')))return null;return eval('('+string+')');}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this);}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(key,options){this.key=key;this.setOptions(options);},write:function(value){value=encodeURIComponent(value);if(this.options.domain)value+='; domain='+this.options.domain;if(this.options.path)value+='; path='+this.options.path;if(this.options.duration){var date=new Date();date.setTime(date.getTime()+this.options.duration*24*60*60*1000);value+='; expires='+date.toGMTString();}
if(this.options.secure)value+='; secure';this.options.document.cookie=this.key+'='+value;return this;},read:function(){var value=this.options.document.cookie.match('(?:^|;)\\s*'+this.key.escapeRegExp()+'=([^;]*)');return(value)?decodeURIComponent(value[1]):null;},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write('');return this;}});Cookie.write=function(key,value,options){return new Cookie(key,options).write(value);};Cookie.read=function(key){return new Cookie(key).read();};Cookie.dispose=function(key,options){return new Cookie(key,options).dispose();};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:'high',allowScriptAccess:'always',wMode:'transparent',swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object;},initialize:function(path,options){this.instance='Swiff_'+$time();this.setOptions(options);options=this.options;var id=this.id=options.id||this.instance;var container=document.id(options.container);Swiff.CallBacks[this.instance]={};var params=options.params,vars=options.vars,callBacks=options.callBacks;var properties=$extend({height:options.height,width:options.width},options.properties);var self=this;for(var callBack in callBacks){Swiff.CallBacks[this.instance][callBack]=(function(option){return function(){return option.apply(self.object,arguments);};})(callBacks[callBack]);vars[callBack]='Swiff.CallBacks.'+this.instance+'.'+callBack;}
params.flashVars=Hash.toQueryString(vars);if(Browser.Engine.trident){properties.classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';params.movie=path;}else{properties.type='application/x-shockwave-flash';properties.data=path;}
var build='<object id="'+id+'"';for(var property in properties)build+=' '+property+'="'+properties[property]+'"';build+='>';for(var param in params){if(params[param])build+='<param name="'+param+'" value="'+params[param]+'" />';}
build+='</object>';this.object=((container)?container.empty():new Element('div')).set('html',build).firstChild;},replaces:function(element){element=document.id(element,true);element.parentNode.replaceChild(this.toElement(),element);return this;},inject:function(element){document.id(element,true).appendChild(this.toElement());return this;},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments));}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction('<invoke name="'+fn+'" returntype="javascript">'+__flash__argumentsToXML(arguments,2)+'</invoke>');return eval(rs);};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:'ignore'},initialize:function(options){this.subject=this.subject||this;this.setOptions(options);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();var wait=this.options.wait;if(wait===false)this.options.link='cancel';},getTransition:function(){return function(p){return-(Math.cos(Math.PI*p)-1)/2;};},step:function(){var time=$time();if(time<this.time+this.options.duration){var delta=this.transition((time-this.time)/this.options.duration);this.set(this.compute(this.from,this.to,delta));}else{this.set(this.compute(this.from,this.to,1));this.complete();}},set:function(now){return now;},compute:function(from,to,delta){return Fx.compute(from,to,delta);},check:function(){if(!this.timer)return true;switch(this.options.link){case'cancel':this.cancel();return true;case'chain':this.chain(this.caller.bind(this,arguments));return false;}
return false;},start:function(from,to){if(!this.check(from,to))return this;this.from=from;this.to=to;this.time=0;this.transition=this.getTransition();this.startTimer();this.onStart();return this;},complete:function(){if(this.stopTimer())this.onComplete();return this;},cancel:function(){if(this.stopTimer())this.onCancel();return this;},onStart:function(){this.fireEvent('start',this.subject);},onComplete:function(){this.fireEvent('complete',this.subject);if(!this.callChain())this.fireEvent('chainComplete',this.subject);},onCancel:function(){this.fireEvent('cancel',this.subject).clearChain();},pause:function(){this.stopTimer();return this;},resume:function(){this.startTimer();return this;},stopTimer:function(){if(!this.timer)return false;this.time=$time()-this.time;this.timer=$clear(this.timer);return true;},startTimer:function(){if(this.timer)return false;this.time=$time()-this.time;this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);return true;}});Fx.compute=function(from,to,delta){return(to-from)*delta+from;};Fx.Durations={'short':250,'normal':500,'long':1000};Fx.CSS=new Class({Extends:Fx,prepare:function(element,property,values){values=$splat(values);var values1=values[1];if(!$chk(values1)){values[1]=values[0];values[0]=element.getStyle(property);}
var parsed=values.map(this.parse);return{from:parsed[0],to:parsed[1]};},parse:function(value){value=$lambda(value)();value=(typeof value=='string')?value.split(' '):$splat(value);return value.map(function(val){val=String(val);var found=false;Fx.CSS.Parsers.each(function(parser,key){if(found)return;var parsed=parser.parse(val);if($chk(parsed))found={value:parsed,parser:parser};});found=found||{value:val,parser:Fx.CSS.Parsers.String};return found;});},compute:function(from,to,delta){var computed=[];(Math.min(from.length,to.length)).times(function(i){computed.push({value:from[i].parser.compute(from[i].value,to[i].value,delta),parser:from[i].parser});});computed.$family={name:'fx:css:value'};return computed;},serve:function(value,unit){if($type(value)!='fx:css:value')value=this.parse(value);var returned=[];value.each(function(bit){returned=returned.concat(bit.parser.serve(bit.value,unit));});return returned;},render:function(element,property,value,unit){element.setStyle(property,this.serve(value,unit));},search:function(selector){if(Fx.CSS.Cache[selector])return Fx.CSS.Cache[selector];var to={};Array.each(document.styleSheets,function(sheet,j){var href=sheet.href;if(href&&href.contains('://')&&!href.contains(document.domain))return;var rules=sheet.rules||sheet.cssRules;Array.each(rules,function(rule,i){if(!rule.style)return;var selectorText=(rule.selectorText)?rule.selectorText.replace(/^\w+/,function(m){return m.toLowerCase();}):null;if(!selectorText||!selectorText.test('^'+selector+'$'))return;Element.Styles.each(function(value,style){if(!rule.style[style]||Element.ShortStyles[style])return;value=String(rule.style[style]);to[style]=(value.test(/^rgb/))?value.rgbToHex():value;});});});return Fx.CSS.Cache[selector]=to;}});Fx.CSS.Cache={};Fx.CSS.Parsers=new Hash({Color:{parse:function(value){if(value.match(/^#[0-9a-f]{3,6}$/i))return value.hexToRgb(true);return((value=value.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[value[1],value[2],value[3]]:false;},compute:function(from,to,delta){return from.map(function(value,i){return Math.round(Fx.compute(from[i],to[i],delta));});},serve:function(value){return value.map(Number);}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(value,unit){return(unit)?value+unit:value;}},String:{parse:$lambda(false),compute:$arguments(1),serve:$arguments(0)}});Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(element,options){this.element=this.subject=document.id(element);this.parent(options);},set:function(property,now){if(arguments.length==1){now=property;property=this.property||this.options.property;}
this.render(this.element,property,now,this.options.unit);return this;},start:function(property,from,to){if(!this.check(property,from,to))return this;var args=Array.flatten(arguments);this.property=this.options.property||args.shift();var parsed=this.prepare(this.element,this.property,args);return this.parent(parsed.from,parsed.to);}});Element.Properties.tween={set:function(options){var tween=this.retrieve('tween');if(tween)tween.cancel();return this.eliminate('tween').store('tween:options',$extend({link:'cancel'},options));},get:function(options){if(options||!this.retrieve('tween')){if(options||!this.retrieve('tween:options'))this.set('tween',options);this.store('tween',new Fx.Tween(this,this.retrieve('tween:options')));}
return this.retrieve('tween');}};Element.implement({tween:function(property,from,to){this.get('tween').start(arguments);return this;},fade:function(how){var fade=this.get('tween'),o='opacity',toggle;how=$pick(how,'toggle');switch(how){case'in':fade.start(o,1);break;case'out':fade.start(o,0);break;case'show':fade.set(o,1);break;case'hide':fade.set(o,0);break;case'toggle':var flag=this.retrieve('fade:flag',this.get('opacity')==1);fade.start(o,(flag)?0:1);this.store('fade:flag',!flag);toggle=true;break;default:fade.start(o,arguments);}
if(!toggle)this.eliminate('fade:flag');return this;},highlight:function(start,end){if(!end){end=this.retrieve('highlight:original',this.getStyle('background-color'));end=(end=='transparent')?'#fff':end;}
var tween=this.get('tween');tween.start('background-color',start||'#ffff88',end).chain(function(){this.setStyle('background-color',this.retrieve('highlight:original'));tween.callChain();}.bind(this));return this;}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(element,options){this.element=this.subject=document.id(element);this.parent(options);},set:function(now){if(typeof now=='string')now=this.search(now);for(var p in now)this.render(this.element,p,now[p],this.options.unit);return this;},compute:function(from,to,delta){var now={};for(var p in from)now[p]=this.parent(from[p],to[p],delta);return now;},start:function(properties){if(!this.check(properties))return this;if(typeof properties=='string')properties=this.search(properties);var from={},to={};for(var p in properties){var parsed=this.prepare(this.element,p,properties[p]);from[p]=parsed.from;to[p]=parsed.to;}
return this.parent(from,to);}});Element.Properties.morph={set:function(options){var morph=this.retrieve('morph');if(morph)morph.cancel();return this.eliminate('morph').store('morph:options',$extend({link:'cancel'},options));},get:function(options){if(options||!this.retrieve('morph')){if(options||!this.retrieve('morph:options'))this.set('morph',options);this.store('morph',new Fx.Morph(this,this.retrieve('morph:options')));}
return this.retrieve('morph');}};Element.implement({morph:function(props){this.get('morph').start(props);return this;}});Fx.implement({getTransition:function(){var trans=this.options.transition||Fx.Transitions.Sine.easeInOut;if(typeof trans=='string'){var data=trans.split(':');trans=Fx.Transitions;trans=trans[data[0]]||trans[data[0].capitalize()];if(data[1])trans=trans['ease'+data[1].capitalize()+(data[2]?data[2].capitalize():'')];}
return trans;}});Fx.Transition=function(transition,params){params=$splat(params);return $extend(transition,{easeIn:function(pos){return transition(pos,params);},easeOut:function(pos){return 1-transition(1-pos,params);},easeInOut:function(pos){return(pos<=0.5)?transition(2*pos,params)/2:(2-transition(2*(1-pos),params))/2;}});};Fx.Transitions=new Hash({linear:$arguments(0)});Fx.Transitions.extend=function(transitions){for(var transition in transitions)Fx.Transitions[transition]=new Fx.Transition(transitions[transition]);};Fx.Transitions.extend({Pow:function(p,x){return Math.pow(p,x[0]||6);},Expo:function(p){return Math.pow(2,8*(p-1));},Circ:function(p){return 1-Math.sin(Math.acos(p));},Sine:function(p){return 1-Math.sin((1-p)*Math.PI/2);},Back:function(p,x){x=x[0]||1.618;return Math.pow(p,2)*((x+1)*p-x);},Bounce:function(p){var value;for(var a=0,b=1;1;a+=b,b/=2){if(p>=(7-4*a)/11){value=b*b-Math.pow((11-6*a-11*p)/4,2);break;}}
return value;},Elastic:function(p,x){return Math.pow(2,10*--p)*Math.cos(20*p*Math.PI*(x[0]||1)/3);}});['Quad','Cubic','Quart','Quint'].each(function(transition,i){Fx.Transitions[transition]=new Fx.Transition(function(p){return Math.pow(p,[i+2]);});});var Request=new Class({Implements:[Chain,Events,Options],options:{url:'',data:'',headers:{'X-Requested-With':'XMLHttpRequest','Accept':'text/javascript, text/html, application/xml, text/xml, */*'},async:true,format:false,method:'post',link:'ignore',isSuccess:null,emulation:true,urlEncoded:true,encoding:'utf-8',evalScripts:false,evalResponse:false,noCache:false},initialize:function(options){this.xhr=new Browser.Request();this.setOptions(options);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers);},onStateChange:function(){if(this.xhr.readyState!=4||!this.running)return;this.running=false;this.status=0;$try(function(){this.status=this.xhr.status;}.bind(this));this.xhr.onreadystatechange=$empty;if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML};this.success(this.response.text,this.response.xml);}else{this.response={text:null,xml:null};this.failure();}},isSuccess:function(){return((this.status>=200)&&(this.status<300));},processScripts:function(text){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader('Content-type')))return $exec(text);return text.stripScripts(this.options.evalScripts);},success:function(text,xml){this.onSuccess(this.processScripts(text),xml);},onSuccess:function(){this.fireEvent('complete',arguments).fireEvent('success',arguments).callChain();},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent('complete').fireEvent('failure',this.xhr);},setHeader:function(name,value){this.headers.set(name,value);return this;},getHeader:function(name){return $try(function(){return this.xhr.getResponseHeader(name);}.bind(this));},check:function(){if(!this.running)return true;switch(this.options.link){case'cancel':this.cancel();return true;case'chain':this.chain(this.caller.bind(this,arguments));return false;}
return false;},send:function(options){if(!this.check(options))return this;this.running=true;var type=$type(options);if(type=='string'||type=='element')options={data:options};var old=this.options;options=$extend({data:old.data,url:old.url,method:old.method},options);var data=options.data,url=String(options.url),method=options.method.toLowerCase();switch($type(data)){case'element':data=document.id(data).toQueryString();break;case'object':case'hash':data=Hash.toQueryString(data);}
if(this.options.format){var format='format='+this.options.format;data=(data)?format+'&'+data:format;}
if(this.options.emulation&&!['get','post'].contains(method)){var _method='_method='+method;data=(data)?_method+'&'+data:_method;method='post';}
if(this.options.urlEncoded&&method=='post'){var encoding=(this.options.encoding)?'; charset='+this.options.encoding:'';this.headers.set('Content-type','application/x-www-form-urlencoded'+encoding);}
if(this.options.noCache){var noCache='noCache='+new Date().getTime();data=(data)?noCache+'&'+data:noCache;}
var trimPosition=url.lastIndexOf('/');if(trimPosition>-1&&(trimPosition=url.indexOf('#'))>-1)url=url.substr(0,trimPosition);if(data&&method=='get'){url=url+(url.contains('?')?'&':'?')+data;data=null;}
this.xhr.open(method.toUpperCase(),url,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this);this.headers.each(function(value,key){try{this.xhr.setRequestHeader(key,value);}catch(e){this.fireEvent('exception',[key,value]);}},this);this.fireEvent('request');this.xhr.send(data);if(!this.options.async)this.onStateChange();return this;},cancel:function(){if(!this.running)return this;this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty;this.xhr=new Browser.Request();this.fireEvent('cancel');return this;}});(function(){var methods={};['get','post','put','delete','GET','POST','PUT','DELETE'].each(function(method){methods[method]=function(){var params=Array.link(arguments,{url:String.type,data:$defined});return this.send($extend(params,{method:method}));};});Request.implement(methods);})();Element.Properties.send={set:function(options){var send=this.retrieve('send');if(send)send.cancel();return this.eliminate('send').store('send:options',$extend({data:this,link:'cancel',method:this.get('method')||'post',url:this.get('action')},options));},get:function(options){if(options||!this.retrieve('send')){if(options||!this.retrieve('send:options'))this.set('send',options);this.store('send',new Request(this.retrieve('send:options')));}
return this.retrieve('send');}};Element.implement({send:function(url){var sender=this.get('send');sender.send({data:this,url:url||sender.options.url});return this;}});Request.HTML=new Class({Extends:Request,options:{update:false,append:false,evalScripts:true,filter:false},processHTML:function(text){var match=text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);text=(match)?match[1]:text;var container=new Element('div');return $try(function(){var root='<root>'+text+'</root>',doc;if(Browser.Engine.trident){doc=new ActiveXObject('Microsoft.XMLDOM');doc.async=false;doc.loadXML(root);}else{doc=new DOMParser().parseFromString(root,'text/xml');}
root=doc.getElementsByTagName('root')[0];if(!root)return null;for(var i=0,k=root.childNodes.length;i<k;i++){var child=Element.clone(root.childNodes[i],true,true);if(child)container.grab(child);}
return container;})||container.set('html',text);},success:function(text){var options=this.options,response=this.response;response.html=text.stripScripts(function(script){response.javascript=script;});var temp=this.processHTML(response.html);response.tree=temp.childNodes;response.elements=temp.getElements('*');if(options.filter)response.tree=response.elements.filter(options.filter);if(options.update)document.id(options.update).empty().set('html',response.html);else if(options.append)document.id(options.append).adopt(temp.getChildren());if(options.evalScripts)$exec(response.javascript);this.onSuccess(response.tree,response.elements,response.html,response.javascript);}});Element.Properties.load={set:function(options){var load=this.retrieve('load');if(load)load.cancel();return this.eliminate('load').store('load:options',$extend({data:this,link:'cancel',update:this,method:'get'},options));},get:function(options){if(options||!this.retrieve('load')){if(options||!this.retrieve('load:options'))this.set('load',options);this.store('load',new Request.HTML(this.retrieve('load:options')));}
return this.retrieve('load');}};Element.implement({load:function(){this.get('load').send(Array.link(arguments,{data:Object.type,url:String.type}));return this;}});Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(options){this.parent(options);this.headers.extend({'Accept':'application/json','X-Request':'JSON'});},success:function(text){this.response.json=JSON.decode(text,this.options.secure);this.onSuccess(this.response.json,text);}});MooTools.More={'version':'1.2.4.4','build':'6f6057dc645fdb7547689183b2311063bd653ddf'};Class.Mutators.Binds=function(binds){return binds;};Class.Mutators.initialize=function(initialize){return function(){$splat(this.Binds).each(function(name){var original=this[name];if(original)this[name]=original.bind(this);},this);return initialize.apply(this,arguments);};};Class.Occlude=new Class({occlude:function(property,element){element=document.id(element||this.element);var instance=element.retrieve(property||this.property);if(instance&&!$defined(this.occluded))
return this.occluded=instance;this.occluded=false;element.store(property||this.property,this);return this.occluded;}});Element.implement({tidy:function(){this.set('value',this.get('value').tidy());},getTextInRange:function(start,end){return this.get('value').substring(start,end);},getSelectedText:function(){if(this.setSelectionRange)return this.getTextInRange(this.getSelectionStart(),this.getSelectionEnd());return document.selection.createRange().text;},getSelectedRange:function(){if($defined(this.selectionStart))return{start:this.selectionStart,end:this.selectionEnd};var pos={start:0,end:0};var range=this.getDocument().selection.createRange();if(!range||range.parentElement()!=this)return pos;var dup=range.duplicate();if(this.type=='text'){pos.start=0-dup.moveStart('character',-100000);pos.end=pos.start+range.text.length;}else{var value=this.get('value');var offset=value.length;dup.moveToElementText(this);dup.setEndPoint('StartToEnd',range);if(dup.text.length)offset-=value.match(/[\n\r]*$/)[0].length;pos.end=offset-dup.text.length;dup.setEndPoint('StartToStart',range);pos.start=offset-dup.text.length;}
return pos;},getSelectionStart:function(){return this.getSelectedRange().start;},getSelectionEnd:function(){return this.getSelectedRange().end;},setCaretPosition:function(pos){if(pos=='end')pos=this.get('value').length;this.selectRange(pos,pos);return this;},getCaretPosition:function(){return this.getSelectedRange().start;},selectRange:function(start,end){if(this.setSelectionRange){this.focus();this.setSelectionRange(start,end);}else{var value=this.get('value');var diff=value.substr(start,end-start).replace(/\r/g,'').length;start=value.substr(0,start).replace(/\r/g,'').length;var range=this.createTextRange();range.collapse(true);range.moveEnd('character',start+diff);range.moveStart('character',start);range.select();}
return this;},insertAtCursor:function(value,select){var pos=this.getSelectedRange();var text=this.get('value');this.set('value',text.substring(0,pos.start)+value+text.substring(pos.end,text.length));if($pick(select,true))this.selectRange(pos.start,pos.start+value.length);else this.setCaretPosition(pos.start+value.length);return this;},insertAroundCursor:function(options,select){options=$extend({before:'',defaultMiddle:'',after:''},options);var value=this.getSelectedText()||options.defaultMiddle;var pos=this.getSelectedRange();var text=this.get('value');if(pos.start==pos.end){this.set('value',text.substring(0,pos.start)+options.before+value+options.after+text.substring(pos.end,text.length));this.selectRange(pos.start+options.before.length,pos.end+options.before.length+value.length);}else{var current=text.substring(pos.start,pos.end);this.set('value',text.substring(0,pos.start)+options.before+current+options.after+text.substring(pos.end,text.length));var selStart=pos.start+options.before.length;if($pick(select,true))this.selectRange(selStart,selStart+current.length);else this.setCaretPosition(selStart+text.length);}
return this;}});Element.implement({measure:function(fn){var vis=function(el){return!!(!el||el.offsetHeight||el.offsetWidth);};if(vis(this))return fn.apply(this);var parent=this.getParent(),restorers=[],toMeasure=[];while(!vis(parent)&&parent!=document.body){toMeasure.push(parent.expose());parent=parent.getParent();}
var restore=this.expose();var result=fn.apply(this);restore();toMeasure.each(function(restore){restore();});return result;},expose:function(){if(this.getStyle('display')!='none')return $empty;var before=this.style.cssText;this.setStyles({display:'block',position:'absolute',visibility:'hidden'});return function(){this.style.cssText=before;}.bind(this);},getDimensions:function(options){options=$merge({computeSize:false},options);var dim={};var getSize=function(el,options){return(options.computeSize)?el.getComputedSize(options):el.getSize();};var parent=this.getParent('body');if(parent&&this.getStyle('display')=='none'){dim=this.measure(function(){return getSize(this,options);});}else if(parent){try{dim=getSize(this,options);}catch(e){}}else{dim={x:0,y:0};}
return $chk(dim.x)?$extend(dim,{width:dim.x,height:dim.y}):$extend(dim,{x:dim.width,y:dim.height});},getComputedSize:function(options){options=$merge({styles:['padding','border'],plains:{height:['top','bottom'],width:['left','right']},mode:'both'},options);var size={width:0,height:0};switch(options.mode){case'vertical':delete size.width;delete options.plains.width;break;case'horizontal':delete size.height;delete options.plains.height;break;}
var getStyles=[];$each(options.plains,function(plain,key){plain.each(function(edge){options.styles.each(function(style){getStyles.push((style=='border')?style+'-'+edge+'-'+'width':style+'-'+edge);});});});var styles={};getStyles.each(function(style){styles[style]=this.getComputedStyle(style);},this);var subtracted=[];$each(options.plains,function(plain,key){var capitalized=key.capitalize();size['total'+capitalized]=size['computed'+capitalized]=0;plain.each(function(edge){size['computed'+edge.capitalize()]=0;getStyles.each(function(style,i){if(style.test(edge)){styles[style]=styles[style].toInt()||0;size['total'+capitalized]=size['total'+capitalized]+styles[style];size['computed'+edge.capitalize()]=size['computed'+edge.capitalize()]+styles[style];}
if(style.test(edge)&&key!=style&&(style.test('border')||style.test('padding'))&&!subtracted.contains(style)){subtracted.push(style);size['computed'+capitalized]=size['computed'+capitalized]-styles[style];}});});});['Width','Height'].each(function(value){var lower=value.toLowerCase();if(!$chk(size[lower]))return;size[lower]=size[lower]+this['offset'+value]+size['computed'+value];size['total'+value]=size[lower]+size['total'+value];delete size['computed'+value];},this);return $extend(styles,size);}});(function(){var supportsPositionFixed=false;window.addEvent('domready',function(){var test=new Element('div').setStyles({position:'fixed',top:0,right:0}).inject(document.body);supportsPositionFixed=(test.offsetTop===0);test.dispose();});Element.implement({pin:function(enable){if(this.getStyle('display')=='none')return null;var p,scroll=window.getScroll();if(enable!==false){p=this.getPosition();if(!this.retrieve('pinned')){var pos={top:p.y-scroll.y,left:p.x-scroll.x};if(supportsPositionFixed){this.setStyle('position','fixed').setStyles(pos);}else{this.store('pinnedByJS',true);this.setStyles({position:'absolute',top:p.y,left:p.x}).addClass('isPinned');this.store('scrollFixer',(function(){if(this.retrieve('pinned'))
var scroll=window.getScroll();this.setStyles({top:pos.top.toInt()+scroll.y,left:pos.left.toInt()+scroll.x});}).bind(this));window.addEvent('scroll',this.retrieve('scrollFixer'));}
this.store('pinned',true);}}else{var op;if(!Browser.Engine.trident){var parent=this.getParent();op=(parent.getComputedStyle('position')!='static'?parent:parent.getOffsetParent());}
p=this.getPosition(op);this.store('pinned',false);var reposition;if(supportsPositionFixed&&!this.retrieve('pinnedByJS')){reposition={top:p.y+scroll.y,left:p.x+scroll.x};}else{this.store('pinnedByJS',false);window.removeEvent('scroll',this.retrieve('scrollFixer'));reposition={top:p.y,left:p.x};}
this.setStyles($merge(reposition,{position:'absolute'})).removeClass('isPinned');}
return this;},unpin:function(){return this.pin(false);},togglepin:function(){this.pin(!this.retrieve('pinned'));}});})();(function(){var original=Element.prototype.position;Element.implement({position:function(options){if(options&&($defined(options.x)||$defined(options.y)))return original?original.apply(this,arguments):this;$each(options||{},function(v,k){if(!$defined(v))delete options[k];});options=$merge({relativeTo:document.body,position:{x:'center',y:'center'},edge:false,offset:{x:0,y:0},returnPos:false,relFixedPosition:false,ignoreMargins:false,ignoreScroll:false,allowNegative:false},options);var parentOffset={x:0,y:0},parentPositioned=false;var offsetParent=this.measure(function(){return document.id(this.getOffsetParent());});if(offsetParent&&offsetParent!=this.getDocument().body){parentOffset=offsetParent.measure(function(){return this.getPosition();});parentPositioned=offsetParent!=document.id(options.relativeTo);options.offset.x=options.offset.x-parentOffset.x;options.offset.y=options.offset.y-parentOffset.y;}
var fixValue=function(option){if($type(option)!='string')return option;option=option.toLowerCase();var val={};if(option.test('left'))val.x='left';else if(option.test('right'))val.x='right';else val.x='center';if(option.test('upper')||option.test('top'))val.y='top';else if(option.test('bottom'))val.y='bottom';else val.y='center';return val;};options.edge=fixValue(options.edge);options.position=fixValue(options.position);if(!options.edge){if(options.position.x=='center'&&options.position.y=='center')options.edge={x:'center',y:'center'};else options.edge={x:'left',y:'top'};}
this.setStyle('position','absolute');var rel=document.id(options.relativeTo)||document.body,calc=rel==document.body?window.getScroll():rel.getPosition(),top=calc.y,left=calc.x;var dim=this.getDimensions({computeSize:true,styles:['padding','border','margin']});var pos={},prefY=options.offset.y,prefX=options.offset.x,winSize=window.getSize();switch(options.position.x){case'left':pos.x=left+prefX;break;case'right':pos.x=left+prefX+rel.offsetWidth;break;default:pos.x=left+((rel==document.body?winSize.x:rel.offsetWidth)/2)+prefX;break;}
switch(options.position.y){case'top':pos.y=top+prefY;break;case'bottom':pos.y=top+prefY+rel.offsetHeight;break;default:pos.y=top+((rel==document.body?winSize.y:rel.offsetHeight)/2)+prefY;break;}
if(options.edge){var edgeOffset={};switch(options.edge.x){case'left':edgeOffset.x=0;break;case'right':edgeOffset.x=-dim.x-dim.computedRight-dim.computedLeft;break;default:edgeOffset.x=-(dim.totalWidth/2);break;}
switch(options.edge.y){case'top':edgeOffset.y=0;break;case'bottom':edgeOffset.y=-dim.y-dim.computedTop-dim.computedBottom;break;default:edgeOffset.y=-(dim.totalHeight/2);break;}
pos.x+=edgeOffset.x;pos.y+=edgeOffset.y;}
pos={left:((pos.x>=0||parentPositioned||options.allowNegative)?pos.x:0).toInt(),top:((pos.y>=0||parentPositioned||options.allowNegative)?pos.y:0).toInt()};var xy={left:'x',top:'y'};['minimum','maximum'].each(function(minmax){['left','top'].each(function(lr){var val=options[minmax]?options[minmax][xy[lr]]:null;if(val!=null&&pos[lr]<val)pos[lr]=val;});});if(rel.getStyle('position')=='fixed'||options.relFixedPosition){var winScroll=window.getScroll();pos.top+=winScroll.y;pos.left+=winScroll.x;}
if(options.ignoreScroll){var relScroll=rel.getScroll();pos.top-=relScroll.y;pos.left-=relScroll.x;}
if(options.ignoreMargins){pos.left+=(options.edge.x=='right'?dim['margin-right']:options.edge.x=='center'?-dim['margin-left']+((dim['margin-right']+dim['margin-left'])/2):-dim['margin-left']);pos.top+=(options.edge.y=='bottom'?dim['margin-bottom']:options.edge.y=='center'?-dim['margin-top']+((dim['margin-bottom']+dim['margin-top'])/2):-dim['margin-top']);}
pos.left=Math.ceil(pos.left);pos.top=Math.ceil(pos.top);if(options.returnPos)return pos;else this.setStyles(pos);return this;}});})();Element.implement({isDisplayed:function(){return this.getStyle('display')!='none';},isVisible:function(){var w=this.offsetWidth,h=this.offsetHeight;return(w==0&&h==0)?false:(w>0&&h>0)?true:this.isDisplayed();},toggle:function(){return this[this.isDisplayed()?'hide':'show']();},hide:function(){var d;try{d=this.getStyle('display');}catch(e){}
return this.store('originalDisplay',d||'').setStyle('display','none');},show:function(display){display=display||this.retrieve('originalDisplay')||'block';return this.setStyle('display',(display=='none')?'block':display);},swapClass:function(remove,add){return this.removeClass(remove).addClass(add);}});Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(element,options){this.element=this.subject=document.id(element);this.parent(options);var cancel=this.cancel.bind(this,false);if($type(this.element)!='element')this.element=document.id(this.element.getDocument().body);var stopper=this.element;if(this.options.wheelStops){this.addEvent('start',function(){stopper.addEvent('mousewheel',cancel);},true);this.addEvent('complete',function(){stopper.removeEvent('mousewheel',cancel);},true);}},set:function(){var now=Array.flatten(arguments);if(Browser.Engine.gecko)now=[Math.round(now[0]),Math.round(now[1])];this.element.scrollTo(now[0],now[1]);},compute:function(from,to,delta){return[0,1].map(function(i){return Fx.compute(from[i],to[i],delta);});},start:function(x,y){if(!this.check(x,y))return this;var scrollSize=this.element.getScrollSize(),scroll=this.element.getScroll(),values={x:x,y:y};for(var z in values){var max=scrollSize[z];if($chk(values[z]))values[z]=($type(values[z])=='number')?values[z]:max;else values[z]=scroll[z];values[z]+=this.options.offset[z];}
return this.parent([scroll.x,scroll.y],[values.x,values.y]);},toTop:function(){return this.start(false,0);},toLeft:function(){return this.start(0,false);},toRight:function(){return this.start('right',false);},toBottom:function(){return this.start(false,'bottom');},toElement:function(el){var position=document.id(el).getPosition(this.element);return this.start(position.x,position.y);},scrollIntoView:function(el,axes,offset){axes=axes?$splat(axes):['x','y'];var to={};el=document.id(el);var pos=el.getPosition(this.element);var size=el.getSize();var scroll=this.element.getScroll();var containerSize=this.element.getSize();var edge={x:pos.x+size.x,y:pos.y+size.y};['x','y'].each(function(axis){if(axes.contains(axis)){if(edge[axis]>scroll[axis]+containerSize[axis])to[axis]=edge[axis]-containerSize[axis];if(pos[axis]<scroll[axis])to[axis]=pos[axis];}
if(to[axis]==null)to[axis]=scroll[axis];if(offset&&offset[axis])to[axis]=to[axis]+offset[axis];},this);if(to.x!=scroll.x||to.y!=scroll.y)this.start(to.x,to.y);return this;},scrollToCenter:function(el,axes,offset){axes=axes?$splat(axes):['x','y'];el=$(el);var to={},pos=el.getPosition(this.element),size=el.getSize(),scroll=this.element.getScroll(),containerSize=this.element.getSize(),edge={x:pos.x+size.x,y:pos.y+size.y};['x','y'].each(function(axis){if(axes.contains(axis)){to[axis]=pos[axis]-(containerSize[axis]-size[axis])/2;}
if(to[axis]==null)to[axis]=scroll[axis];if(offset&&offset[axis])to[axis]=to[axis]+offset[axis];},this);if(to.x!=scroll.x||to.y!=scroll.y)this.start(to.x,to.y);return this;}});Fx.Slide=new Class({Extends:Fx,options:{mode:'vertical',wrapper:false,hideOverflow:true},initialize:function(element,options){this.addEvent('complete',function(){this.open=(this.wrapper['offset'+this.layout.capitalize()]!=0);if(this.open)this.wrapper.setStyle('height','');if(this.open&&Browser.Engine.webkit419)this.element.dispose().inject(this.wrapper);},true);this.element=this.subject=document.id(element);this.parent(options);var wrapper=this.element.retrieve('wrapper');var styles=this.element.getStyles('margin','position','overflow');if(this.options.hideOverflow)styles=$extend(styles,{overflow:'hidden'});if(this.options.wrapper)wrapper=document.id(this.options.wrapper).setStyles(styles);this.wrapper=wrapper||new Element('div',{styles:styles}).wraps(this.element);this.element.store('wrapper',this.wrapper).setStyle('margin',0);this.now=[];this.open=true;},vertical:function(){this.margin='margin-top';this.layout='height';this.offset=this.element.offsetHeight;},horizontal:function(){this.margin='margin-left';this.layout='width';this.offset=this.element.offsetWidth;},set:function(now){this.element.setStyle(this.margin,now[0]);this.wrapper.setStyle(this.layout,now[1]);return this;},compute:function(from,to,delta){return[0,1].map(function(i){return Fx.compute(from[i],to[i],delta);});},start:function(how,mode){if(!this.check(how,mode))return this;this[mode||this.options.mode]();var margin=this.element.getStyle(this.margin).toInt();var layout=this.wrapper.getStyle(this.layout).toInt();var caseIn=[[margin,layout],[0,this.offset]];var caseOut=[[margin,layout],[-this.offset,0]];var start;switch(how){case'in':start=caseIn;break;case'out':start=caseOut;break;case'toggle':start=(layout==0)?caseIn:caseOut;}
return this.parent(start[0],start[1]);},slideIn:function(mode){return this.start('in',mode);},slideOut:function(mode){return this.start('out',mode);},hide:function(mode){this[mode||this.options.mode]();this.open=false;return this.set([-this.offset,0]);},show:function(mode){this[mode||this.options.mode]();this.open=true;return this.set([0,this.offset]);},toggle:function(mode){return this.start('toggle',mode);}});Element.Properties.slide={set:function(options){var slide=this.retrieve('slide');if(slide)slide.cancel();return this.eliminate('slide').store('slide:options',$extend({link:'cancel'},options));},get:function(options){if(options||!this.retrieve('slide')){if(options||!this.retrieve('slide:options'))this.set('slide',options);this.store('slide',new Fx.Slide(this,this.retrieve('slide:options')));}
return this.retrieve('slide');}};Element.implement({slide:function(how,mode){how=how||'toggle';var slide=this.get('slide'),toggle;switch(how){case'hide':slide.hide(mode);break;case'show':slide.show(mode);break;case'toggle':var flag=this.retrieve('slide:flag',slide.open);slide[flag?'slideOut':'slideIn'](mode);this.store('slide:flag',!flag);toggle=true;break;default:slide.start(how,mode);}
if(!toggle)this.eliminate('slide:flag');return this;}});var SmoothScroll=Fx.SmoothScroll=new Class({Extends:Fx.Scroll,initialize:function(options,context){context=context||document;this.doc=context.getDocument();var win=context.getWindow();this.parent(this.doc,options);this.links=$$(this.options.links||this.doc.links);var location=win.location.href.match(/^[^#]*/)[0]+'#';this.links.each(function(link){if(link.href.indexOf(location)!=0){return;}
var anchor=link.href.substr(location.length);if(anchor)this.useLink(link,anchor);},this);if(!Browser.Engine.webkit419){this.addEvent('complete',function(){win.location.hash=this.anchor;},true);}},useLink:function(link,anchor){var el;link.addEvent('click',function(event){if(el!==false&&!el)el=document.id(anchor)||this.doc.getElement('a[name='+anchor+']');if(el){event.preventDefault();this.anchor=anchor;this.toElement(el).chain(function(){this.fireEvent('scrolledTo',[link,el]);}.bind(this));link.blur();}}.bind(this));}});var Asset={javascript:function(source,properties){properties=$extend({onload:$empty,document:document,check:$lambda(true)},properties);if(properties.onLoad)properties.onload=properties.onLoad;var script=new Element('script',{src:source,type:'text/javascript'});var load=properties.onload.bind(script),check=properties.check,doc=properties.document;delete properties.onload;delete properties.check;delete properties.document;script.addEvents({load:load,readystatechange:function(){if(['loaded','complete'].contains(this.readyState))load();}}).set(properties);if(Browser.Engine.webkit419)var checker=(function(){if(!$try(check))return;$clear(checker);load();}).periodical(50);return script.inject(doc.head);},css:function(source,properties){return new Element('link',$merge({rel:'stylesheet',media:'screen',type:'text/css',href:source},properties)).inject(document.head);},image:function(source,properties){properties=$merge({onload:$empty,onabort:$empty,onerror:$empty},properties);var image=new Image();var element=document.id(image)||new Element('img');['load','abort','error'].each(function(name){var type='on'+name;var cap=name.capitalize();if(properties['on'+cap])properties[type]=properties['on'+cap];var event=properties[type];delete properties[type];image[type]=function(){if(!image)return;if(!element.parentNode){element.width=image.width;element.height=image.height;}
image=image.onload=image.onabort=image.onerror=null;event.delay(1,element,element);element.fireEvent(name,element,1);};});image.src=element.src=source;if(image&&image.complete)image.onload.delay(1);return element.set(properties);},images:function(sources,options){options=$merge({onComplete:$empty,onProgress:$empty,onError:$empty,properties:{}},options);sources=$splat(sources);var images=[];var counter=0;return new Elements(sources.map(function(source){return Asset.image(source,$extend(options.properties,{onload:function(){options.onProgress.call(this,counter,sources.indexOf(source));counter++;if(counter==sources.length)options.onComplete();},onerror:function(){options.onError.call(this,counter,sources.indexOf(source));counter++;if(counter==sources.length)options.onComplete();}}));}));}};var IframeShim=new Class({Implements:[Options,Events,Class.Occlude],options:{className:'iframeShim',src:'javascript:false;document.write("");',display:false,zIndex:null,margin:0,offset:{x:0,y:0},browsers:(Browser.Engine.trident4||(Browser.Engine.gecko&&!Browser.Engine.gecko19&&Browser.Platform.mac))},property:'IframeShim',initialize:function(element,options){this.element=document.id(element);if(this.occlude())return this.occluded;this.setOptions(options);this.makeShim();return this;},makeShim:function(){if(this.options.browsers){var zIndex=this.element.getStyle('zIndex').toInt();if(!zIndex){zIndex=1;var pos=this.element.getStyle('position');if(pos=='static'||!pos)this.element.setStyle('position','relative');this.element.setStyle('zIndex',zIndex);}
zIndex=($chk(this.options.zIndex)&&zIndex>this.options.zIndex)?this.options.zIndex:zIndex-1;if(zIndex<0)zIndex=1;this.shim=new Element('iframe',{src:this.options.src,scrolling:'no',frameborder:0,styles:{zIndex:zIndex,position:'absolute',border:'none',filter:'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)'},'class':this.options.className}).store('IframeShim',this);var inject=(function(){this.shim.inject(this.element,'after');this[this.options.display?'show':'hide']();this.fireEvent('inject');}).bind(this);if(!IframeShim.ready)window.addEvent('load',inject);else inject();}else{this.position=this.hide=this.show=this.dispose=$lambda(this);}},position:function(){if(!IframeShim.ready||!this.shim)return this;var size=this.element.measure(function(){return this.getSize();});if(this.options.margin!=undefined){size.x=size.x-(this.options.margin*2);size.y=size.y-(this.options.margin*2);this.options.offset.x+=this.options.margin;this.options.offset.y+=this.options.margin;}
this.shim.set({width:size.x,height:size.y}).position({relativeTo:this.element,offset:this.options.offset});return this;},hide:function(){if(this.shim)this.shim.setStyle('display','none');return this;},show:function(){if(this.shim)this.shim.setStyle('display','block');return this.position();},dispose:function(){if(this.shim)this.shim.dispose();return this;},destroy:function(){if(this.shim)this.shim.destroy();return this;}});window.addEvent('load',function(){IframeShim.ready=true;});var Mask=new Class({Implements:[Options,Events],Binds:['position'],options:{style:{},'class':'mask',maskMargins:false,useIframeShim:true,iframeShimOptions:{}},initialize:function(target,options){this.target=document.id(target)||document.id(document.body);this.target.store('Mask',this);this.setOptions(options);this.render();this.inject();},render:function(){this.element=new Element('div',{'class':this.options['class'],id:this.options.id||'mask-'+$time(),styles:$merge(this.options.style,{display:'none'}),events:{click:function(){this.fireEvent('click');if(this.options.hideOnClick)this.hide();}.bind(this)}});this.hidden=true;},toElement:function(){return this.element;},inject:function(target,where){where=where||this.options.inject?this.options.inject.where:''||this.target==document.body?'inside':'after';target=target||this.options.inject?this.options.inject.target:''||this.target;this.element.inject(target,where);if(this.options.useIframeShim){this.shim=new IframeShim(this.element,this.options.iframeShimOptions);this.addEvents({show:this.shim.show.bind(this.shim),hide:this.shim.hide.bind(this.shim),destroy:this.shim.destroy.bind(this.shim)});}},position:function(){this.resize(this.options.width,this.options.height);this.element.position({relativeTo:this.target,position:'topLeft',ignoreMargins:!this.options.maskMargins,ignoreScroll:this.target==document.body});return this;},resize:function(x,y){var opt={styles:['padding','border']};if(this.options.maskMargins)opt.styles.push('margin');var dim=this.target.getComputedSize(opt);if(this.target==document.body){var win=window.getSize();if(dim.totalHeight<win.y)dim.totalHeight=win.y;if(dim.totalWidth<win.x)dim.totalWidth=win.x;}
this.element.setStyles({width:$pick(x,dim.totalWidth,dim.x),height:$pick(y,dim.totalHeight,dim.y)});return this;},show:function(){if(!this.hidden)return this;window.addEvent('resize',this.position);this.position();this.showMask.apply(this,arguments);return this;},showMask:function(){this.element.setStyle('display','block');this.hidden=false;this.fireEvent('show');},hide:function(){if(this.hidden)return this;window.removeEvent('resize',this.position);this.hideMask.apply(this,arguments);if(this.options.destroyOnHide)return this.destroy();return this;},hideMask:function(){this.element.setStyle('display','none');this.hidden=true;this.fireEvent('hide');},toggle:function(){this[this.hidden?'show':'hide']();},destroy:function(){this.hide();this.element.destroy();this.fireEvent('destroy');this.target.eliminate('mask');}});Element.Properties.mask={set:function(options){var mask=this.retrieve('mask');return this.eliminate('mask').store('mask:options',options);},get:function(options){if(options||!this.retrieve('mask')){if(this.retrieve('mask'))this.retrieve('mask').destroy();if(options||!this.retrieve('mask:options'))this.set('mask',options);this.store('mask',new Mask(this,this.retrieve('mask:options')));}
return this.retrieve('mask');}};Element.implement({mask:function(options){this.get('mask',options).show();return this;},unmask:function(){this.get('mask').hide();return this;}});(function(){var read=function(option,element){return(option)?($type(option)=='function'?option(element):element.get(option)):'';};this.Tips=new Class({Implements:[Events,Options],options:{onShow:function(){this.tip.setStyle('display','block');},onHide:function(){this.tip.setStyle('display','none');},title:'title',text:function(element){return element.get('rel')||element.get('href');},showDelay:100,hideDelay:100,className:'tip-wrap',offset:{x:16,y:16},windowPadding:{x:0,y:0},fixed:false},initialize:function(){var params=Array.link(arguments,{options:Object.type,elements:$defined});this.setOptions(params.options);if(params.elements)this.attach(params.elements);this.container=new Element('div',{'class':'tip'});},toElement:function(){if(this.tip)return this.tip;return this.tip=new Element('div',{'class':this.options.className,styles:{position:'absolute',top:0,left:0}}).adopt(new Element('div',{'class':'tip-top'}),this.container,new Element('div',{'class':'tip-bottom'})).inject(document.body);},attach:function(elements){$$(elements).each(function(element){var title=read(this.options.title,element),text=read(this.options.text,element);element.erase('title').store('tip:native',title).retrieve('tip:title',title);element.retrieve('tip:text',text);this.fireEvent('attach',[element]);var events=['enter','leave'];if(!this.options.fixed)events.push('move');events.each(function(value){var event=element.retrieve('tip:'+value);if(!event)event=this['element'+value.capitalize()].bindWithEvent(this,element);element.store('tip:'+value,event).addEvent('mouse'+value,event);},this);},this);return this;},detach:function(elements){$$(elements).each(function(element){['enter','leave','move'].each(function(value){element.removeEvent('mouse'+value,element.retrieve('tip:'+value)).eliminate('tip:'+value);});this.fireEvent('detach',[element]);if(this.options.title=='title'){var original=element.retrieve('tip:native');if(original)element.set('title',original);}},this);return this;},elementEnter:function(event,element){this.container.empty();['title','text'].each(function(value){var content=element.retrieve('tip:'+value);if(content)this.fill(new Element('div',{'class':'tip-'+value}).inject(this.container),content);},this);$clear(this.timer);this.timer=(function(){this.show(this,element);this.position((this.options.fixed)?{page:element.getPosition()}:event);}).delay(this.options.showDelay,this);},elementLeave:function(event,element){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this,element);this.fireForParent(event,element);},fireForParent:function(event,element){element=element.getParent();if(!element||element==document.body)return;if(element.retrieve('tip:enter'))element.fireEvent('mouseenter',event);else this.fireForParent(event,element);},elementMove:function(event,element){this.position(event);},position:function(event){if(!this.tip)document.id(this);var size=window.getSize(),scroll=window.getScroll(),tip={x:this.tip.offsetWidth,y:this.tip.offsetHeight},props={x:'left',y:'top'},obj={};for(var z in props){obj[props[z]]=event.page[z]+this.options.offset[z];if((obj[props[z]]+tip[z]-scroll[z])>size[z]-this.options.windowPadding[z])obj[props[z]]=event.page[z]-this.options.offset[z]-tip[z];}
this.tip.setStyles(obj);},fill:function(element,contents){if(typeof contents=='string')element.set('html',contents);else element.adopt(contents);},show:function(element){if(!this.tip)document.id(this);this.fireEvent('show',[this.tip,element]);},hide:function(element){if(!this.tip)document.id(this);this.fireEvent('hide',[this.tip,element]);}});})();var Clientcide={version:'%build%',assetLocation:"http://github.com/anutron/clientcide/raw/master/Assets",setAssetLocation:function(baseHref){Clientcide.assetLocation=baseHref;if(Clientcide.preloaded)Clientcide.preLoadCss();},preLoadCss:function(){if(window.StickyWin&&StickyWin.ui)StickyWin.ui();if(window.StickyWin&&StickyWin.pointy)StickyWin.pointy();Clientcide.preloaded=true;return true;},preloaded:false};(function(){if(!window.addEvent)return;var preload=function(){if(window.dbug)dbug.log('preloading clientcide css');if(!Clientcide.preloaded)Clientcide.preLoadCss();};window.addEvent('domready',preload);window.addEvent('load',preload);})();setCNETAssetBaseHref=Clientcide.setAssetLocation;var dbug={logged:[],timers:{},firebug:false,enabled:false,log:function(){dbug.logged.push(arguments);},nolog:function(msg){dbug.logged.push(arguments);},time:function(name){dbug.timers[name]=new Date().getTime();},timeEnd:function(name){if(dbug.timers[name]){var end=new Date().getTime()-dbug.timers[name];dbug.timers[name]=false;dbug.log('%s: %s',name,end);}else dbug.log('no such timer: %s',name);},enable:function(silent){var con=window.firebug?firebug.d.console.cmd:window.console;if((!!window.console&&!!window.console.warn)||window.firebug){try{dbug.enabled=true;dbug.log=function(){try{(con.debug||con.log).apply(con,arguments);}catch(e){console.log(Array.slice(arguments));}};dbug.time=function(){con.time.apply(con,arguments);};dbug.timeEnd=function(){con.timeEnd.apply(con,arguments);};if(!silent)dbug.log('enabling dbug');for(var i=0;i<dbug.logged.length;i++){dbug.log.apply(con,dbug.logged[i]);}
dbug.logged=[];}catch(e){dbug.enable.delay(400);}}},disable:function(){if(dbug.firebug)dbug.enabled=false;dbug.log=dbug.nolog;dbug.time=function(){};dbug.timeEnd=function(){};},cookie:function(set){var value=document.cookie.match('(?:^|;)\\s*jsdebug=([^;]*)');var debugCookie=value?unescape(value[1]):false;if((!$defined(set)&&debugCookie!='true')||($defined(set)&&set)){dbug.enable();dbug.log('setting debugging cookie');var date=new Date();date.setTime(date.getTime()+(24*60*60*1000));document.cookie='jsdebug=true;expires='+date.toGMTString()+';path=/;';}else dbug.disableCookie();},disableCookie:function(){dbug.log('disabling debugging cookie');document.cookie='jsdebug=false;path=/;';}};(function(){var fb=!!window.console||!!window.firebug;var con=window.firebug?window.firebug.d.console.cmd:window.console;var debugMethods=['debug','info','warn','error','assert','dir','dirxml'];var otherMethods=['trace','group','groupEnd','profile','profileEnd','count'];function set(methodList,defaultFunction){for(var i=0;i<methodList.length;i++){dbug[methodList[i]]=(fb&&con[methodList[i]])?con[methodList[i]]:defaultFunction;}};set(debugMethods,dbug.log);set(otherMethods,function(){});})();if((!!window.console&&!!window.console.warn)||window.firebug){dbug.firebug=true;var value=document.cookie.match('(?:^|;)\\s*jsdebug=([^;]*)');var debugCookie=value?unescape(value[1]):false;if(window.location.href.indexOf("jsdebug=true")>0||debugCookie=='true')dbug.enable();if(debugCookie=='true')dbug.log('debugging cookie enabled');if(window.location.href.indexOf("jsdebugCookie=true")>0){dbug.cookie();if(!dbug.enabled)dbug.enable();}
if(window.location.href.indexOf("jsdebugCookie=false")>0)dbug.disableCookie();}
Class.ToElement=new Class({toElement:function(){return this.element;}});var ToElement=Class.ToElement;var StyleWriter=new Class({createStyle:function(css,id){window.addEvent('domready',function(){try{if(document.id(id)&&id)return;var style=new Element('style',{id:id||''}).inject($$('head')[0]);if(Browser.Engine.trident)style.styleSheet.cssText=css;else style.set('text',css);}catch(e){dbug.log('error: %s',e);}}.bind(this));}});var StickyWin=new Class({Binds:['destroy','hide','togglepin','esc'],Implements:[Options,Events,StyleWriter,Class.ToElement],options:{closeClassName:'closeSticky',pinClassName:'pinSticky',content:'',zIndex:10000,className:'',width:false,height:false,timeout:-1,allowMultipleByClass:true,allowMultiple:true,showNow:true,useIframeShim:true,iframeShimSelector:'',destroyOnClose:false,closeOnClickOut:false,closeOnEsc:false,getWindowManager:function(){return StickyWin.WM;}},css:'.SWclearfix:after {content: "."; display: block; height: 0; clear: both; visibility: hidden;}'+'.SWclearfix {display: inline-table;} * html .SWclearfix {height: 1%;} .SWclearfix {display: block;}',initialize:function(options){this.options.inject=this.options.inject||{target:document.body,where:'bottom'};this.setOptions(options);this.windowManager=this.options.getWindowManager();this.id=this.options.id||'StickyWin_'+new Date().getTime();this.makeWindow();if(this.windowManager)this.windowManager.add(this);if(this.options.content)this.setContent(this.options.content);if(this.options.timeout>0){this.addEvent('onDisplay',function(){this.hide.delay(this.options.timeout,this);}.bind(this));}
this.createStyle(this.css,'StickyWinClearFix');if(this.options.closeOnClickOut||this.options.closeOnEsc)this.attach();if(this.options.destroyOnClose)this.addEvent('close',this.destroy);if(this.options.showNow)this.show();},attach:function(attach){var method=$pick(attach,true)?'addEvents':'removeEvents';var events={};if(this.options.closeOnClickOut)events.click=this.esc;if(this.options.closeOnEsc)events.keyup=this.esc;document[method](events);},esc:function(e){if(e.key=="esc")this.hide();if(e.type=="click"&&this.element!=e.target&&!this.element.hasChild(e.target))this.hide();},makeWindow:function(){this.destroyOthers();if(!document.id(this.id)){this.win=new Element('div',{id:this.id}).addClass(this.options.className).addClass('StickyWinInstance').addClass('SWclearfix').setStyles({display:'none',position:'absolute',zIndex:this.options.zIndex}).inject(this.options.inject.target,this.options.inject.where).store('StickyWin',this);}else this.win=document.id(this.id);this.element=this.win;if(this.options.width&&$type(this.options.width.toInt())=="number")this.win.setStyle('width',this.options.width.toInt());if(this.options.height&&$type(this.options.height.toInt())=="number")this.win.setStyle('height',this.options.height.toInt());return this;},show:function(suppressEvent){this.showWin();if(!suppressEvent)this.fireEvent('display');if(this.options.useIframeShim)this.showIframeShim();this.visible=true;return this;},showWin:function(){if(this.windowManager)this.windowManager.focus(this);if(!this.positioned)this.position();this.win.show();},hide:function(suppressEvent){if($type(suppressEvent)=="event"||!suppressEvent)this.fireEvent('close');this.hideWin();if(this.options.useIframeShim)this.hideIframeShim();this.visible=false;return this;},hideWin:function(){this.win.setStyle('display','none');},destroyOthers:function(){if(!this.options.allowMultipleByClass||!this.options.allowMultiple){$$('div.StickyWinInstance').each(function(sw){if(!this.options.allowMultiple||(!this.options.allowMultipleByClass&&sw.hasClass(this.options.className)))
sw.retrieve('StickyWin').destroy();},this);}},setContent:function(html){if(this.win.getChildren().length>0)this.win.empty();if($type(html)=="string")this.win.set('html',html);else if(document.id(html))this.win.adopt(html);this.win.getElements('.'+this.options.closeClassName).each(function(el){el.addEvent('click',this.hide);},this);this.win.getElements('.'+this.options.pinClassName).each(function(el){el.addEvent('click',this.togglepin);},this);return this;},position:function(options){this.positioned=true;this.setOptions(options);this.win.position({allowNegative:$pick(this.options.allowNegative,this.options.relativeTo!=document.body),relativeTo:this.options.relativeTo,position:this.options.position,offset:this.options.offset,edge:this.options.edge});if(this.shim)this.shim.position();return this;},pin:function(pin){if(!this.win.pin){dbug.log('you must include element.pin.js!');return this;}
this.pinned=$pick(pin,true);this.win.pin(pin);return this;},unpin:function(){return this.pin(false);},togglepin:function(){return this.pin(!this.pinned);},makeIframeShim:function(){if(!this.shim){var el=(this.options.iframeShimSelector)?this.win.getElement(this.options.iframeShimSelector):this.win;this.shim=new IframeShim(el,{display:false,name:'StickyWinShim'});}},showIframeShim:function(){if(this.options.useIframeShim){this.makeIframeShim();this.shim.show();}},hideIframeShim:function(){if(this.shim)this.shim.hide();},destroy:function(){if(this.windowManager)this.windowManager.remove(this);if(this.win)this.win.destroy();if(this.options.useIframeShim&&this.shim)this.shim.destroy();if(document.id('modalOverlay'))document.id('modalOverlay').destroy();this.fireEvent('destroy');}});StickyWin.Stacker=new Class({Implements:[Options,Events],Binds:['click'],instances:[],options:{zIndexBase:9000},initialize:function(options){this.setOptions(options);this.zIndex=this.options.zIndex;},add:function(sw){this.instances.include(sw);$(sw).addEvent('mousedown',this.click);},click:function(e){this.instances.each(function(sw){var el=$(sw);if(el==e.target||el.hasChild($(e.target)))this.focus(sw);},this);},focus:function(instance){if(this.focused==instance)return;this.focused=instance;if(instance)this.instances.erase(instance).push(instance);this.instances.each(function(current,i){$(current).setStyle('z-index',this.options.zIndexBase+i);},this);this.focused=instance;},remove:function(sw){this.instances.erase(sw);$(sw).removeEvent('click',this.click);}});StickyWin.WM=new StickyWin.Stacker();StickyWin.Modal=new Class({Extends:StickyWin,options:{modalize:true,maskOptions:{style:{'background-color':'#333','position':'fixed !important',opacity:0.8}},hideOnClick:true,getWindowManager:function(){return StickyWin.ModalWM;}},initialize:function(options){this.options.maskTarget=this.options.maskTarget||document.body;this.setOptions(options);this.mask=new Mask(this.options.maskTarget,this.options.maskOptions).addEvent('click',function(){if(this.options.hideOnClick)this.hide();}.bind(this));this.parent(options);},show:function(showModal){if($pick(showModal,this.options.modalize))this.mask.show();this.parent();},hide:function(hideModal){if($pick(hideModal,true))this.mask.hide();this.parent();}});StickyWin.ModalWM=new StickyWin.Stacker({zIndexBase:11000});if(StickyWin.Fx)StickyWin.Fx.Modal=StickyWin.Modal;

var Roar=new Class({Implements:[Options,Events,Chain],options:{duration:4000,position:'upperLeft',container:null,bodyFx:null,itemFx:null,margin:{x:10,y:10},offset:5,className:'roar',onShow:$empty,onHide:$empty,onRender:$empty,style:'notice'},initialize:function(options){this.setOptions(options);this.items=[];this.container=$(this.options.container)||document;},alert:function(title,message,options){var params=Array.link(arguments,{title:String.type,message:String.type,options:Object.type});var items=[new Element('h3',{'html':$pick(params.title,'')})];if(params.message)items.push(new Element('p',{'html':params.message}));return this.inject(items,params.options);},inject:function(elements,options){if(!this.body)this.render();options=options||{};var offset=[-this.options.offset,0];var last=this.items.getLast();if(last){offset[0]=last.retrieve('roar:offset');offset[1]=offset[0]+last.offsetHeight+this.options.offset;}
var to={'opacity':1};to[this.align.y]=offset;var item=new Element('div',{'class':this.options.className,'opacity':0}).adopt(new Element('div',{'class':this.options.className+'-bg','opacity':0.7}),elements);item.setStyle(this.align.x,0).store('roar:offset',offset[1]).set('morph',$merge({unit:'px',link:'cancel',onStart:Chain.prototype.clearChain,transition:Fx.Transitions.Back.easeOut},this.options.itemFx));var remove=this.remove.create({bind:this,arguments:[item],delay:10});this.items.push(item.addEvent('click',remove));if(this.options.duration){var over=false;var trigger=(function(){trigger=null;if(!over)remove();}).delay(this.options.duration);item.addEvents({mouseover:function(){over=true;},mouseout:function(){over=false;if(!trigger)remove();}});}
item.inject(this.body).morph(to);return this.fireEvent('onShow',[item,this.items.length]);},remove:function(item){var index=this.items.indexOf(item);if(index==-1)return this;this.items.splice(index,1);item.removeEvents();var to={opacity:0};to[this.align.y]=item.getStyle(this.align.y).toInt()-item.offsetHeight-this.options.offset;item.morph(to).get('morph').chain(item.destroy.bind(item));return this.fireEvent('onHide',[item,this.items.length]).callChain(item);},empty:function(){while(this.items.length)this.remove(this.items[0]);return this;},render:function(){this.position=this.options.position;if($type(this.position)=='string'){var position={x:'center',y:'center'};this.align={x:'left',y:'top'};if((/left|west/i).test(this.position))position.x='left';else if((/right|east/i).test(this.position))this.align.x=position.x='right';if((/upper|top|north/i).test(this.position))position.y='top';else if((/bottom|lower|south/i).test(this.position))this.align.y=position.y='bottom';this.position=position;}
this.body=new Element('div',{'class':this.options.className+'-body'}).inject(document.body);if(Browser.Engine.trident4)this.body.addClass(this.options.className+'-body-ugly');this.moveTo=this.body.setStyles.bind(this.body);this.reposition();if(this.options.bodyFx){var morph=new Fx.Morph(this.body,$merge({unit:'px',chain:'cancel',transition:Fx.Transitions.Circ.easeOut},this.options.bodyFx));this.moveTo=morph.start.bind(morph);}
var repos=this.reposition.bind(this);window.addEvents({scroll:repos,resize:repos});this.fireEvent('onRender',this.body);},reposition:function(){var max=document.getCoordinates(),scroll=document.getScroll(),margin=this.options.margin;max.left+=scroll.x;max.right+=scroll.x;max.top+=scroll.y;max.bottom+=scroll.y;var rel=($type(this.container)=='element')?this.container.getCoordinates():max;this.moveTo({left:(this.position.x=='right')?(Math.min(rel.right,max.right)-margin.x):(Math.max(rel.left,max.left)+margin.x),top:(this.position.y=='bottom')?(Math.min(rel.bottom,max.bottom)-margin.y):(Math.max(rel.top,max.top)+margin.y)});}});

var Observer=new Class({Implements:[Options,Events],options:{periodical:false,delay:1000},initialize:function(el,onFired,options){this.element=$(el)||$$(el);this.addEvent('onFired',onFired);this.setOptions(options);this.bound=this.changed.bind(this);this.resume();},changed:function(){var value=this.element.get('value');if($equals(this.value,value))return;this.clear();this.value=value;this.timeout=this.onFired.delay(this.options.delay,this);},setValue:function(value){this.value=value;this.element.set('value',value);return this.clear();},onFired:function(){this.fireEvent('onFired',[this.value,this.element]);},clear:function(){$clear(this.timeout||null);return this;},pause:function(){if(this.timer)$clear(this.timer);else this.element.removeEvent('keyup',this.bound);return this.clear();},resume:function(){this.value=this.element.get('value');if(this.options.periodical)this.timer=this.changed.periodical(this.options.periodical,this);else this.element.addEvent('keyup',this.bound);return this;}});var $equals=function(obj1,obj2){return(obj1==obj2||JSON.encode(obj1)==JSON.encode(obj2));};

var Autocompleter=new Class({Implements:[Options,Events],options:{minLength:1,markQuery:true,width:'inherit',maxChoices:10,injectChoice:null,customChoices:null,emptyChoices:null,visibleChoices:true,className:'autocompleter-choices',zIndex:42,delay:400,observerOptions:{},fxOptions:{},autoSubmit:false,overflow:false,overflowMargin:25,selectFirst:false,filter:null,filterCase:false,filterSubset:false,forceSelect:false,selectMode:true,choicesMatch:null,multiple:false,separator:', ',separatorSplit:/\s*[,;]\s*/,autoTrim:false,allowDupes:false,cache:true,relative:false},initialize:function(element,options){this.element=$(element);this.setOptions(options);this.build();this.observer=new Observer(this.element,this.prefetch.bind(this),$merge({'delay':this.options.delay},this.options.observerOptions));this.queryValue=null;if(this.options.filter)this.filter=this.options.filter.bind(this);var mode=this.options.selectMode;this.typeAhead=(mode=='type-ahead');this.selectMode=(mode===true)?'selection':mode;this.cached=[];},build:function(){if($(this.options.customChoices)){this.choices=this.options.customChoices;}else{this.choices=new Element('ul',{'class':this.options.className,'styles':{'zIndex':this.options.zIndex}}).inject(document.body);this.relative=false;if(this.options.relative){this.choices.inject(this.element,'after');this.relative=this.element.getOffsetParent();}
this.fix=new OverlayFix(this.choices);}
if(!this.options.separator.test(this.options.separatorSplit)){this.options.separatorSplit=this.options.separator;}
this.fx=(!this.options.fxOptions)?null:new Fx.Tween(this.choices,$merge({'property':'opacity','link':'cancel','duration':200},this.options.fxOptions)).addEvent('onStart',Chain.prototype.clearChain).set(0);this.element.setProperty('autocomplete','off').addEvent((Browser.Engine.trident||Browser.Engine.webkit)?'keydown':'keypress',this.onCommand.bind(this)).addEvent('click',this.onCommand.bind(this,[false])).addEvent('focus',this.toggleFocus.create({bind:this,arguments:true,delay:100})).addEvent('blur',this.toggleFocus.create({bind:this,arguments:false,delay:100}));},destroy:function(){if(this.fix)this.fix.destroy();this.choices=this.selected=this.choices.destroy();},toggleFocus:function(state){this.focussed=state;if(!state)this.hideChoices(true);this.fireEvent((state)?'onFocus':'onBlur',[this.element]);},onCommand:function(e){if(!e&&this.focussed)return this.prefetch();if(e&&e.key&&!e.shift){switch(e.key){case'enter':if(this.element.value!=this.opted)return true;if(this.selected&&this.visible){this.choiceSelect(this.selected);return!!(this.options.autoSubmit);}
break;case'up':case'down':if(!this.prefetch()&&this.queryValue!==null){var up=(e.key=='up');this.choiceOver((this.selected||this.choices)[(this.selected)?((up)?'getPrevious':'getNext'):((up)?'getLast':'getFirst')](this.options.choicesMatch),true);}
return false;case'esc':case'tab':this.hideChoices(true);break;}}
return true;},setSelection:function(finish){var input=this.selected.inputValue,value=input;var start=this.queryValue.length,end=input.length;if(input.substr(0,start).toLowerCase()!=this.queryValue.toLowerCase())start=0;if(this.options.multiple){var split=this.options.separatorSplit;value=this.element.value;start+=this.queryIndex;end+=this.queryIndex;var old=value.substr(this.queryIndex).split(split,1)[0];value=value.substr(0,this.queryIndex)+input+value.substr(this.queryIndex+old.length);if(finish){var tokens=value.split(this.options.separatorSplit).filter(function(entry){return this.test(entry);},/[^\s,]+/);if(!this.options.allowDupes)tokens=[].combine(tokens);var sep=this.options.separator;value=tokens.join(sep)+sep;end=value.length;}}
this.observer.setValue(value);this.opted=value;if(finish||this.selectMode=='pick')start=end;this.element.selectRange(start,end);this.fireEvent('onSelection',[this.element,this.selected,value,input]);},showChoices:function(){var match=this.options.choicesMatch,first=this.choices.getFirst(match);this.selected=this.selectedValue=null;if(this.fix){var pos=this.element.getCoordinates(this.relative),width=this.options.width||'auto';this.choices.setStyles({'left':pos.left,'top':pos.bottom,'width':(width===true||width=='inherit')?pos.width:width});}
if(!first)return;if(!this.visible){this.visible=true;this.choices.setStyle('display','');if(this.fx)this.fx.start(1);this.fireEvent('onShow',[this.element,this.choices]);}
if(this.options.selectFirst||this.typeAhead||first.inputValue==this.queryValue)this.choiceOver(first,this.typeAhead);var items=this.choices.getChildren(match),max=this.options.maxChoices;var styles={'overflowY':'hidden','height':''};this.overflown=false;if(items.length>max){var item=items[max-1];styles.overflowY='scroll';styles.height=item.getCoordinates(this.choices).bottom;this.overflown=true;};this.choices.setStyles(styles);this.fix.show();if(this.options.visibleChoices){var scroll=document.getScroll(),size=document.getSize(),coords=this.choices.getCoordinates();if(coords.right>scroll.x+size.x)scroll.x=coords.right-size.x;if(coords.bottom>scroll.y+size.y)scroll.y=coords.bottom-size.y;window.scrollTo(Math.min(scroll.x,coords.left),Math.min(scroll.y,coords.top));}},hideChoices:function(clear){if(clear){var value=this.element.value;if(this.options.forceSelect)value=this.opted;if(this.options.autoTrim){value=value.split(this.options.separatorSplit).filter($arguments(0)).join(this.options.separator);}
this.observer.setValue(value);}
if(!this.visible)return;this.visible=false;if(this.selected)this.selected.removeClass('autocompleter-selected');this.observer.clear();var hide=function(){this.choices.setStyle('display','none');this.fix.hide();}.bind(this);if(this.fx)this.fx.start(0).chain(hide);else hide();this.fireEvent('onHide',[this.element,this.choices]);},prefetch:function(){var value=this.element.value,query=value;if(this.options.multiple){var split=this.options.separatorSplit;var values=value.split(split);var index=this.element.getSelectedRange().start;var toIndex=value.substr(0,index).split(split);var last=toIndex.length-1;index-=toIndex[last].length;query=values[last];}
if(query.length<this.options.minLength){this.hideChoices();}else{if(query===this.queryValue||(this.visible&&query==this.selectedValue)){if(this.visible)return false;this.showChoices();}else{this.queryValue=query;this.queryIndex=index;if(!this.fetchCached())this.query();}}
return true;},fetchCached:function(){return false;if(!this.options.cache||!this.cached||!this.cached.length||this.cached.length>=this.options.maxChoices||this.queryValue)return false;this.update(this.filter(this.cached));return true;},update:function(tokens){this.choices.empty();this.cached=tokens;var type=tokens&&$type(tokens);if(!type||(type=='array'&&!tokens.length)||(type=='hash'&&!tokens.getLength())){(this.options.emptyChoices||this.hideChoices).call(this);}else{if(this.options.maxChoices<tokens.length&&!this.options.overflow)tokens.length=this.options.maxChoices;tokens.each(this.options.injectChoice||function(token){var choice=new Element('li',{'html':this.markQueryValue(token)});choice.inputValue=token;this.addChoiceEvents(choice).inject(this.choices);},this);this.showChoices();}},choiceOver:function(choice,selection){if(!choice||choice==this.selected)return;if(this.selected)this.selected.removeClass('autocompleter-selected');this.selected=choice.addClass('autocompleter-selected');this.fireEvent('onSelect',[this.element,this.selected,selection]);if(!this.selectMode)this.opted=this.element.value;if(!selection)return;this.selectedValue=this.selected.inputValue;if(this.overflown){var coords=this.selected.getCoordinates(this.choices),margin=this.options.overflowMargin,top=this.choices.scrollTop,height=this.choices.offsetHeight,bottom=top+height;if(coords.top-margin<top&&top)this.choices.scrollTop=Math.max(coords.top-margin,0);else if(coords.bottom+margin>bottom)this.choices.scrollTop=Math.min(coords.bottom-height+margin,bottom);}
if(this.selectMode)this.setSelection();},choiceSelect:function(choice){if(choice)this.choiceOver(choice);this.setSelection(true);this.queryValue=false;this.hideChoices();},filter:function(tokens){return(tokens||this.tokens).filter(function(token){return this.test(token);},new RegExp(((this.options.filterSubset)?'':'^')+this.queryValue.escapeRegExp(),(this.options.filterCase)?'':'i'));},markQueryValue:function(str){return(!this.options.markQuery||!this.queryValue)?str:str.replace(new RegExp('('+((this.options.filterSubset)?'':'^')+this.queryValue.escapeRegExp()+')',(this.options.filterCase)?'':'i'),'<span class="autocompleter-queried">$1</span>');},addChoiceEvents:function(el){return el.addEvents({'mouseover':this.choiceOver.bind(this,[el]),'click':this.choiceSelect.bind(this,[el])});}});var OverlayFix=new Class({initialize:function(el){if(Browser.Engine.trident){this.element=$(el);this.relative=this.element.getOffsetParent();this.fix=new Element('iframe',{'frameborder':'0','scrolling':'no','src':'javascript:false;','styles':{'position':'absolute','border':'none','display':'none','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'}}).inject(this.element,'after');}},show:function(){if(this.fix){var coords=this.element.getCoordinates(this.relative);delete coords.right;delete coords.bottom;this.fix.setStyles($extend(coords,{'display':'','zIndex':(this.element.getStyle('zIndex')||1)-1}));}
return this;},hide:function(){if(this.fix)this.fix.setStyle('display','none');return this;},destroy:function(){if(this.fix)this.fix=this.fix.destroy();}});Element.implement({getSelectedRange:function(){if(!Browser.Engine.trident)return{start:this.selectionStart,end:this.selectionEnd};var pos={start:0,end:0};var range=this.getDocument().selection.createRange();if(!range||range.parentElement()!=this)return pos;var dup=range.duplicate();if(this.type=='text'){pos.start=0-dup.moveStart('character',-100000);pos.end=pos.start+range.text.length;}else{var value=this.value;var offset=value.length-value.match(/[\n\r]*$/)[0].length;dup.moveToElementText(this);dup.setEndPoint('StartToEnd',range);pos.end=offset-dup.text.length;dup.setEndPoint('StartToStart',range);pos.start=offset-dup.text.length;}
return pos;},selectRange:function(start,end){if(Browser.Engine.trident){var diff=this.value.substr(start,end-start).replace(/\r/g,'').length;start=this.value.substr(0,start).replace(/\r/g,'').length;var range=this.createTextRange();range.collapse(true);range.moveEnd('character',start+diff);range.moveStart('character',start);range.select();}else{this.focus();this.setSelectionRange(start,end);}
return this;}});Autocompleter.Base=Autocompleter;

Autocompleter.Request=new Class({Extends:Autocompleter,options:{postData:{},ajaxOptions:{},postVar:'value'},query:function(){var data=$unlink(this.options.postData)||{};data[this.options.postVar]=this.queryValue;var indicator=$(this.options.indicator);if(indicator)indicator.setStyle('display','');var cls=this.options.indicatorClass;if(cls)this.element.addClass(cls);this.fireEvent('onRequest',[this.element,this.request,data,this.queryValue]);this.request.send({'data':data});},queryResponse:function(){var indicator=$(this.options.indicator);if(indicator)indicator.setStyle('display','none');var cls=this.options.indicatorClass;if(cls)this.element.removeClass(cls);return this.fireEvent('onComplete',[this.element,this.request]);}});Autocompleter.Request.JSON=new Class({Extends:Autocompleter.Request,initialize:function(el,url,options){this.parent(el,options);this.request=new Request.JSON($merge({'url':url,'link':'cancel'},this.options.ajaxOptions)).addEvent('onComplete',this.queryResponse.bind(this));},queryResponse:function(response){this.parent();this.update(response);}});Autocompleter.Request.HTML=new Class({Extends:Autocompleter.Request,initialize:function(el,url,options){this.parent(el,options);this.request=new Request.HTML($merge({'url':url,'link':'cancel','update':this.choices},this.options.ajaxOptions)).addEvent('onComplete',this.queryResponse.bind(this));},queryResponse:function(tree,elements){this.parent();if(!elements||!elements.length){this.hideChoices();}else{this.choices.getChildren(this.options.choicesMatch).each(this.options.injectChoice||function(choice){var value=choice.get('text');choice.inputValue=value;this.addChoiceEvents(choice.set('html',this.markQueryValue(value)));},this);this.showChoices();}}});Autocompleter.Ajax={Base:Autocompleter.Request,Json:Autocompleter.Request.JSON,Xhtml:Autocompleter.Request.HTML};

var PieChart=new Class({options:{pieChartRadius:60,td_label_index:0,td_index:1,index:1},initialize:function(elData,el,options){this.setOptions(options);this.pieChartRadius=this.options.pieChartRadius;this.pieChartDiameter=this.pieChartRadius*2;this.pieVertices=12;this.arcIncrementMultiplier=1/this.pieVertices;this.index=0;this.tableIndex=this.options.index;this.areaIndex=1;this.canvas='';this.container='';this.data_table='';this.insertElements(el);aData=this.makeData(elData);this.makePieChart(aData);this.addToolTips();},insertElements:function(el){this.container=new Element('div',{id:'pieChartContainer'+this.tableIndex}).injectBefore($(el)).addClass('pieChartContainer');this.data_table=el.clone().injectBottom(this.container);el.dispose();new Element('div',{id:'pieChartWrapper'+this.tableIndex}).injectTop(this.container).addClass('pieChartWrapper');this.canvas=new Element('canvas',{id:'canvas'+this.tableIndex,width:this.pieChartDiameter,height:this.pieChartDiameter}).injectInside(this.container.getElement('.pieChartWrapper')).addClass('pieChartCanvas');new Element('map',{id:'pieChartMap'+this.tableIndex,name:'pieChartMap'+this.tableIndex}).injectBottom(this.container).addClass('pieChartMap');new Asset.image(DIR_STATIC_SKIN+'/images/spacer.gif',{alt:'',usemap:'#pieChartMap'+this.tableIndex,width:this.pieChartDiameter,height:this.pieChartDiameter}).injectInside(this.container.getElement('.pieChartWrapper')).setStyles({'width':this.pieChartDiameter,'height':this.pieChartDiameter});new Element('div').injectBottom(this.container).addClass('clear');},makeData:function(elData){var aData=[];elData.getChildren().each(function(el){var data=el.getChildren();if($(data[0])){var color=data[0].getStyle('background').match(/#\w+/i);aData.extend([{'label':el.get('text'),'value':data[1].get('text'),'color':data[0].getStyle('background').match(/#\w+/i)[0]}]);}});return aData;},makePieChart:function(aData){var data=[],color,colors=[],labels=[],values=[],total=0,value=0;aData.each(function(item,index){labels[colors.length]=item.label;value=parseFloat(item.value);values[colors.length]=value;total+=value;colors[colors.length]=item.color.hexToRgb();},this);var ctx=this.canvas.getContext('2d');var tableLength=colors.length;for(piece=0;piece<tableLength;piece++){var thisvalue=values[piece]/total;var arcStartAngle=Math.PI*(-0.5+2*this.index);var arcEndAngle=Math.PI*(-0.5+2*(this.index+thisvalue));ctx.beginPath();ctx.moveTo(this.pieChartRadius,this.pieChartRadius);ctx.arc(this.pieChartRadius,this.pieChartRadius,this.pieChartRadius,arcStartAngle,arcEndAngle,false);ctx.closePath();ctx.fillStyle=colors[piece];ctx.fill();ctx.lineWidth=1;ctx.beginPath();ctx.moveTo(this.pieChartRadius,this.pieChartRadius);ctx.arc(this.pieChartRadius,this.pieChartRadius,this.pieChartRadius,arcStartAngle,arcEndAngle,false);ctx.closePath();ctx.strokeStyle="#FFF";ctx.stroke();var arcIncrement=(arcEndAngle-arcStartAngle)*this.arcIncrementMultiplier;var xx=this.pieChartRadius+Math.round(Math.cos(arcStartAngle)*this.pieChartRadius);var yy=this.pieChartRadius+Math.round(Math.sin(arcStartAngle)*this.pieChartRadius);var coord=[];var coordIndex=1;for(i=0;i<((this.pieVertices*2)-2);i=i+2){var arcAngle=arcStartAngle+arcIncrement*coordIndex;coord[i]=this.pieChartRadius+Math.round(Math.cos(arcAngle)*this.pieChartRadius);coord[i+1]=this.pieChartRadius+Math.round(Math.sin(arcAngle)*this.pieChartRadius);coordIndex++;}
var xxEnd=this.pieChartRadius+Math.round(Math.cos(arcEndAngle)*this.pieChartRadius);var yyEnd=this.pieChartRadius+Math.round(Math.sin(arcEndAngle)*this.pieChartRadius);var myArea='area'+this.tableIndex+'-'+piece;new Element('area',{'id':myArea,'shape':'poly','coords':this.pieChartRadius+','+this.pieChartRadius+','+xx+','+yy+','+coord.join(',')+','+xxEnd+','+yyEnd,'title':labels[piece]}).injectInside(this.container.getElement('.pieChartMap'));this.index+=thisvalue;}
this.tableIndex++;},addToolTips:function(){new Tips($$(document.getElementsByTagName('area')),{showDelay:10,hideDelay:10});},getColor:function(i,totalSteps){var colori=i*100/totalSteps;var frequency=Math.PI*2/totalSteps;var center=190;var amplitude=60;var rgb=[];rgb[0]=Math.round(Math.sin(frequency*i+0)*amplitude+center);rgb[1]=Math.round(Math.sin(frequency*i+2)*amplitude+center);rgb[2]=Math.round(Math.sin(frequency*i+4)*amplitude+center);return'rgb('+rgb.join(',')+')';}});PieChart.implement(new Options);

var vlaCalendar=new Class({'slideDuration':500,'fadeDuration':500,'transition':Fx.Transitions.Quart.easeOut,'startMonday':false,'filePath':'inc/','defaultView':'month','style':'',initialize:function(_container,_options){if(_options)$extend(this,_options);this.loading=false;this.container=_container=$(_container);var _class=this;var pars='defaultView='+this.defaultView;if(this.picker){if($type(this.prefillDate)=='object'&&this.getInputDate(this.prefillDate))pars+='&pickedDate='+this.getInputDate(this.prefillDate);if(this.linkWithInput)pars+='&gotoPickedDate=1';}
this.u('base',pars,function(){_class.mainLoader=_container.getElement('div[class=loaderA]');_class.tempLoader=_container.getElement('div[class=loaderB]');_class.label=_container.getElement('span[class=label]');_class.arrowLeft=_container.getElement('div[class=arrowLeft]');_class.arrowRight=_container.getElement('div[class=arrowRight]');_class.initializeCalendarFunctions();if(_class.picker){if($type(_class.prefillDate)=='object'&&_class.getInputDate(_class.prefillDate))_class.pick(_class.prefillDate);else if(_class.prefillDate==true)_class.pick(JSON.decode(_class.label.getProperty('date')));}},_container);},initializeCalendarFunctions:function(){this.resetArrows();var vars=JSON.decode(this.mainLoader.getElement('table').getProperty('summary'));var _class=this;this.label.removeClass('noHover').set('html',vars.label).onclick=vars.parent?function(){_class.u(vars.parent,'ts='+vars.ts+'&parent='+vars.current,function(){_class.fade()})}:null;if(vars.hide_left_arrow)this.hideLeftArrow();else if(vars.hide_right_arrow)this.hideRightArrow();this.arrowLeft.onclick=function(){_class.u(vars.current,'ts='+vars.pr_ts,function(){_class.slideLeft()})}
this.arrowRight.onclick=function(){_class.u(vars.current,'ts='+vars.nx_ts,function(){_class.slideRight()})}
var clickables=this.mainLoader.getElements('td');switch(vars.current){case'month':if(this.picker){clickables.each(function(_clickable){_clickable.onclick=function(){_class.pick(JSON.decode(_clickable.getProperty('date')));_class.mainLoader.getElements('td').each(function(_clickable){_clickable.removeClass('selected')});this.addClass('selected');}});}
break;case'year':clickables.each(function(_clickable){_clickable.onclick=function(){_class.u('month','ts='+_clickable.getProperty('ts'),function(){_class.fade()})}});break;case'decade':this.label.addClass('noHover');clickables.each(function(_clickable){_clickable.onclick=function(){_class.u('year','ts='+_clickable.getProperty('ts')+'&m_ts='+_clickable.getProperty('m_ts'),function(){_class.fade()})}});break;}},u:function(_url,_pars,_onComplete,_id){if(!this.loading&&!this.transitioning){var _class=this;this.loading=true;var element=$(_id?_id:this.tempLoader);_pars+='&picker='+(this.picker?1:0)+'&startMonday='+(this.startMonday?1:0)+'&style='+this.style;if(this.picker&&this.getInputDate())_pars+='&pickedDate='+this.getInputDate();new Request({method:'post',url:this.filePath+_url+'.php',onComplete:function(data){element.set('html',data);_onComplete();_class.loading=false;}}).send(_pars);}},slideLeft:function(){var _class=this;this.transitioning=true;this.tempLoader.setStyle('opacity',1).set('tween',{duration:this.slideDuration,transition:this.transition}).tween('margin-left',[-164,0]);this.mainLoader.setStyle('opacity',1).set('tween',{duration:this.slideDuration,transition:this.transition,onComplete:function(){_class.transitioning=false}}).tween('margin-left',[0,164]);this.switchLoaders();},slideRight:function(){var _class=this;this.transitioning=true;this.mainLoader.setStyle('opacity',1).set('tween',{duration:this.slideDuration,transition:this.transition}).tween('margin-left',[0,-164]);this.tempLoader.setStyle('opacity',1).set('tween',{duration:this.slideDuration,transition:this.transition,onComplete:function(){_class.transitioning=false}}).tween('margin-left',[164,0]);this.switchLoaders();},fade:function(overRuleTrans){var _class=this;this.transitioning=overRuleTrans?false:true;this.tempLoader.setStyles({'opacity':0,'margin-left':0});this.mainLoader.set('tween',{duration:this.fadeDuration,transition:this.transition}).fade('out');this.tempLoader.set('tween',{duration:this.fadeDuration,transition:this.transition,onComplete:function(){_class.tempLoader.setStyles({'opacity':1,'margin-left':-999});_class.transitioning=false;}}).fade('in');this.switchLoaders();},switchLoaders:function(){this.mainLoader=this.mainLoader.className=='loaderA'?this.container.getElement('div[class=loaderB]'):this.container.getElement('div[class=loaderA]');this.tempLoader=this.tempLoader.className=='loaderA'?this.container.getElement('div[class=loaderB]'):this.container.getElement('div[class=loaderA]');this.initializeCalendarFunctions();},resetArrows:function(){this.arrowLeft.setStyle('visibility','visible');this.arrowRight.setStyle('visibility','visible');},hideLeftArrow:function(){this.arrowLeft.setStyle('visibility','hidden');},hideRightArrow:function(){this.arrowRight.setStyle('visibility','hidden');}});var vlaDatePicker=new Class({Extends:vlaCalendar,'separateInput':false,'prefillDate':true,'linkWithInput':true,'leadingZero':true,'twoDigitYear':false,'separator':'/','format':'d/m/y','openWith':null,'alignX':'right','alignY':'inputTop','offset':{'x':0,'y':0},'style':'','ieTransitionColor':'#ffffff','toggleDuration':350,initialize:function(_element,_options){if(_options)$extend(this,_options);this.element=$(_element);if(!this.element)throw'No (existing) element to create a datepicker for specified: new vlaDatePicker(ELEMENT, [options])';if(this.separateInput){this.element.day=this.element.getElement('input[name='+this.separateInput.day+']');this.element.month=this.element.getElement('input[name='+this.separateInput.month+']');this.element.year=this.element.getElement('input[name='+this.separateInput.year+']');}
this.picker=new Element('div',{'class':'vlaCalendarPicker'+(this.style!=''?' '+this.style:'')}).injectTop($(document.body));this.pickerContent=new Element('div',{'class':'pickerBackground'}).injectTop(this.picker);this.parent(this.pickerContent);var _class=this;(this.openWith?$(this.openWith):this.element).addEvent('focus',function(){_class.show();}).addEvent('click',function(){_class.openWith?_class.toggle():_class.show()}).addEvent('change',function(){_class.hide();});document.addEvent('mousedown',function(e){if(_class.outsideHide&&_class.outsideClick(e,_class.picker))_class.hide()});if(this.linkWithInput){if(this.separateInput){this.element.day.addEvent('keyup',function(){_class.linkedUpdate()});this.element.month.addEvent('keyup',function(){_class.linkedUpdate()});this.element.year.addEvent('keyup',function(){_class.linkedUpdate()});}else{this.element.addEvent('keyup',function(){_class.linkedUpdate()});}}
this.visible=false;this.outsideHide=false;},position:function(){var top,left;switch(this.alignX){case'left':left=this.element.getLeft();break;case'center':var pickerMiddle=this.pickerContent.getStyle('width').toInt()/2;if(pickerMiddle==0)pickerMiddle=83;left=this.element.getLeft()+(this.element.getSize().x/2)-pickerMiddle-
((parseInt(this.pickerContent.getStyle('padding-left'))+parseInt(this.pickerContent.getStyle('padding-right')))/2);break;case'right':default:left=this.element.getLeft()+this.element.getSize().x;break;}
switch(this.alignY){case'bottom':top=this.getPos(this.element).y+this.element.getSize().y;break;case'top':top=this.getPos(this.element).y-parseInt(this.pickerContent.getStyle('height'))-
(parseInt(this.pickerContent.getStyle('padding-top'))+parseInt(this.pickerContent.getStyle('padding-bottom')));break;case'inputTop':default:top=this.getPos(this.element).y;}
if(this.isNumber(this.offset.x))left+=this.offset.x;if(this.isNumber(this.offset.y))top+=this.offset.y;this.picker.setStyles({'top':top,'left':left});},show:function(){this.position();if(!this.visible){this.visible=true;var _class=this;this.picker.setStyles({'opacity':0,'display':'inline'});if(Browser.Engine.trident5)this.picker.setStyle('background-color',this.ieTransitionColor);this.picker.set('tween',{onComplete:function(){if(Browser.Engine.trident5)_class.picker.setStyle('background-color','transparent');_class.outsideHide=true;},duration:this.toggleDuration}).fade('in');}},hide:function(){if(this.visible){this.visible=false;var _class=this;if(Browser.Engine.trident5)this.picker.setStyle('background-color',this.ieTransitionColor);this.picker.set('tween',{onComplete:function(){_class.picker.setStyle('display','none');_class.outsideHide=false;},duration:this.toggleDuration}).fade('out');}},toggle:function(){if(this.visible)this.hide();else this.show();},pick:function(_date){if(this.leadingZero){if(_date.day<10)_date.day='0'+_date.day;if(_date.month<10)_date.month='0'+_date.month;}
if(this.twoDigitYear)_date.year=_date.year.toString().substring(2,4);if(this.separateInput){if(this.element.day)this.element.day.set('value',_date.day);if(this.element.month)this.element.month.set('value',_date.month);if(this.element.year)this.element.year.set('value',_date.year);this.hide();}else{switch(this.format){case"m/d/y":this.element.set('value',_date.month+this.separator+_date.day+this.separator+_date.year);break;case"y/m/d":this.element.set('value',_date.year+this.separator+_date.month+this.separator+_date.day);break;case"y/d/m":this.element.set('value',_date.year+this.separator+_date.day+this.separator+_date.month);break;case"d/m/y":default:this.element.set('value',_date.day+this.separator+_date.month+this.separator+_date.year);}
this.hide();}},getInputDate:function(_date){var day,month,year;if(_date){day=_date.day;month=_date.month;year=_date.year;}else if(this.separateInput){day=this.element.day.get('value').toInt();month=this.element.month.get('value').toInt();year=this.element.year.get('value').toInt();}else{var date=this.element.get('value').split(this.separator);if(date.length!=3)return null;switch(this.format){case"m/d/y":day=date[1];month=date[0];year=date[2];break;case"y/m/d":day=date[2];month=date[1];year=date[0];break;case"y/d/m":day=date[1];month=date[2];year=date[0];break;case"d/m/y":default:day=date[0];month=date[1];year=date[2];}}
if(!this.isNumber(day)||!this.isNumber(month)||!this.isNumber(year)||day==0||month==0||year=='0'||(this.twoDigitYear&&year>99)||(!this.twoDigitYear&&year<1979)||(!this.twoDigitYear&&year>2030)||month>12||day>31)return null;if(this.twoDigitYear&&this.isNumber(year)&&year<100){year=year.toInt();if(year<10)year='200'+year;else if(year<70)year='20'+year;else if(year>69)year='19'+year;else year=new Date().getFullYear();}
return day+'/'+month+'/'+year;},linkedUpdate:function(){var _class=this;var date=this.getInputDate();if(date&&this.pickedDate!=date){this.u('month','gotoPickedDate=1',function(){_class.fade(true)});this.pickedDate=date;}},outsideClick:function(_event,_element){var mousePos=this.getMousePos(_event);var elementData=_element.getCoordinates();return(mousePos.x>elementData.left&&mousePos.x<(elementData.left+elementData.width))&&(mousePos.y>elementData.top&&mousePos.y<(elementData.top+elementData.height))?false:true;},getMousePos:function(_event){if(document.all){return{'x':window.event.clientX+window.getScrollLeft(),'y':window.event.clientY+window.getScrollTop()};}else{return{'x':_event.page['x'],'y':_event.page['y']};}},isNumber:function(_number){if(_number=='')return false;return(_number>=0)||(_number<0)?true:false;},getPos:function(_element){var x,y=0;if(_element.offsetParent){do{x+=_element.offsetLeft;y+=_element.offsetTop;}while(_element=_element.offsetParent);}else if(_element.x){x+=_element.x;y+=_element.y;}
return{'x':x,'y':y};}});

function H(){var x=navigator&&navigator.userAgent&&/\bMSIE 6\./.test(navigator.userAgent);H=function(){return x};return x}(function(){function x(b){b=b.split(/ /g);var a={};for(var c=b.length;--c>=0;){var d=b[c];if(d)a[d]=null}return a}var y="break continue do else for if return while ",U=y+"auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile ",D=U+"catch class delete false import new operator private protected public this throw true try ",I=D+"alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where ",J=D+"boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient ",V=J+"as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var ",K=D+"debugger eval export function get null set undefined var with Infinity NaN ",L="caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END ",M=y+"and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None ",N=y+"alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END ",O=y+"case done elif esac eval fi function in local set then until ",W=I+V+K+L+M+N+O;function X(b){return b>="a"&&b<="z"||b>="A"&&b<="Z"}function u(b,a,c,d){b.unshift(c,d||0);try{a.splice.apply(a,b)}finally{b.splice(0,2)}}var Y=(function(){var b=["!","!=","!==","#","%","%=","&","&&","&&=","&=","(","*","*=","+=",",","-=","->","/","/=",":","::",";","<","<<","<<=","<=","=","==","===",">",">=",">>",">>=",">>>",">>>=","?","@","[","^","^=","^^","^^=","{","|","|=","||","||=","~","break","case","continue","delete","do","else","finally","instanceof","return","throw","try","typeof"],a="(?:(?:(?:^|[^0-9.])\\.{1,3})|(?:(?:^|[^\\+])\\+)|(?:(?:^|[^\\-])-)";for(var c=0;c<b.length;++c){var d=b[c];a+=X(d.charAt(0))?"|\\b"+d:"|"+d.replace(/([^=<>:&])/g,"\\$1")}a+="|^)\\s*$";return new RegExp(a)})(),P=/&/g,Q=/</g,R=/>/g,Z=/\"/g;function $(b){return b.replace(P,"&amp;").replace(Q,"&lt;").replace(R,"&gt;").replace(Z,"&quot;")}function E(b){return b.replace(P,"&amp;").replace(Q,"&lt;").replace(R,"&gt;")}var aa=/&lt;/g,ba=/&gt;/g,ca=/&apos;/g,da=/&quot;/g,ea=/&amp;/g,fa=/&nbsp;/g;function ga(b){var a=b.indexOf("&");if(a<0)return b;for(--a;(a=b.indexOf("&#",a+1))>=0;){var c=b.indexOf(";",a);if(c>=0){var d=b.substring(a+3,c),g=10;if(d&&d.charAt(0)==="x"){d=d.substring(1);g=16}var e=parseInt(d,g);if(!isNaN(e))b=b.substring(0,a)+String.fromCharCode(e)+b.substring(c+1)}}return b.replace(aa,"<").replace(ba,">").replace(ca,"'").replace(da,'"').replace(ea,"&").replace(fa," ")}function S(b){return"XMP"===b.tagName}
function z(b,a){switch(b.nodeType){case 1:var c=b.tagName.toLowerCase();a.push("<",c);for(var d=0;d<b.attributes.length;++d){var g=b.attributes[d];if(!g.specified)continue;a.push(" ");z(g,a)}a.push(">");for(var e=b.firstChild;e;e=e.nextSibling)z(e,a);if(b.firstChild||!/^(?:br|link|img)$/.test(c))a.push("</",c,">");break;case 2:a.push(b.name.toLowerCase(),'="',$(b.value),'"');break;case 3:case 4:a.push(E(b.nodeValue));break}}var F=null;function ha(b){if(null===F){var a=document.createElement("PRE");a.appendChild(document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));F=!/</.test(a.innerHTML)}if(F){var c=b.innerHTML;if(S(b))c=E(c);return c}var d=[];for(var g=b.firstChild;g;g=g.nextSibling)z(g,d);return d.join("")}function ia(b){var a=0;return function(c){var d=null,g=0;for(var e=0,h=c.length;e<h;++e){var f=c.charAt(e);switch(f){case"\t":if(!d)d=[];d.push(c.substring(g,e));var i=b-a%b;a+=i;for(;i>=0;i-="                ".length)d.push("                ".substring(0,i));g=e+1;break;case"\n":a=0;break;default:++a}}if(!d)return c;d.push(c.substring(g));return d.join("")}}var ja=/(?:[^<]+|<!--[\s\S]*?--\>|<!\[CDATA\[([\s\S]*?)\]\]>|<\/?[a-zA-Z][^>]*>|<)/g,ka=/^<!--/,la=/^<\[CDATA\[/,ma=/^<br\b/i;function na(b){var a=b.match(ja),c=[],d=0,g=[];if(a)for(var e=0,h=a.length;e<h;++e){var f=a[e];if(f.length>1&&f.charAt(0)==="<"){if(ka.test(f))continue;if(la.test(f)){c.push(f.substring(9,f.length-3));d+=f.length-12}else if(ma.test(f)){c.push("\n");++d}else g.push(d,f)}else{var i=ga(f);c.push(i);d+=i.length}}return{source:c.join(""),tags:g}}function v(b,a){var c={};(function(){var g=b.concat(a);for(var e=g.length;--e>=0;){var h=g[e],f=h[3];if(f)for(var i=f.length;--i>=0;)c[f.charAt(i)]=h}})();var d=a.length;return function(g,e){e=e||0;var h=[e,"pln"],f="",i=0,j=g;while(j.length){var o,m=null,k,l=c[j.charAt(0)];if(l){k=j.match(l[1]);m=k[0];o=l[0]}else{for(var n=0;n<d;++n){l=a[n];var p=l[2];if(p&&!p.test(f))continue;k=j.match(l[1]);if(k){m=k[0];o=l[0];break}}if(!m){o="pln";m=j.substring(0,1)}}h.push(e+i,o);i+=m.length;j=j.substring(m.length);if(o!=="com"&&/\S/.test(m))f=m}return h}}var oa=v([],[["pln",/^[^<]+/,null],["dec",/^<!\w[^>]*(?:>|$)/,null],["com",/^<!--[\s\S]*?(?:--\>|$)/,null],["src",/^<\?[\s\S]*?(?:\?>|$)/,null],["src",/^<%[\s\S]*?(?:%>|$)/,null],["src",/^<(script|style|xmp)\b[^>]*>[\s\S]*?<\/\1\b[^>]*>/i,null],["tag",/^<\/?\w[^<>]*>/,null]]);function pa(b){var a=oa(b);for(var c=0;c<a.length;c+=2)if(a[c+1]==="src"){var d,g;d=a[c];g=c+2<a.length?a[c+2]:b.length;var e=b.substring(d,g),h=e.match(/^(<[^>]*>)([\s\S]*)(<\/[^>]*>)$/);if(h)a.splice(c,2,d,"tag",d+h[1].length,"src",d+h[1].length+(h[2]||"").length,"tag")}return a}var qa=v([["atv",/^\'[^\']*(?:\'|$)/,null,"'"],["atv",/^\"[^\"]*(?:\"|$)/,null,'"'],["pun",/^[<>\/=]+/,null,"<>/="]],[["tag",/^[\w:\-]+/,/^</],["atv",/^[\w\-]+/,/^=/],["atn",/^[\w:\-]+/,null],["pln",/^\s+/,null," \t\r\n"]]);function ra(b,a){for(var c=0;c<a.length;c+=2){var d=a[c+1];if(d==="tag"){var g,e;g=a[c];e=c+2<a.length?a[c+2]:b.length;var h=b.substring(g,e),f=qa(h,g);u(f,a,c,2);c+=f.length-2}}return a}function r(b){var a=[],c=[];if(b.tripleQuotedStrings)a.push(["str",/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""]);else if(b.multiLineStrings)a.push(["str",/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]);else a.push(["str",/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"]);c.push(["pln",/^(?:[^\'\"\`\/\#]+)/,null," \r\n"]);if(b.hashComments)a.push(["com",/^#[^\r\n]*/,null,"#"]);if(b.cStyleComments)c.push(["com",/^\/\/[^\r\n]*/,null]);if(b.regexLiterals)c.push(["str",/^\/(?:[^\\\*\/\[]|\\[\s\S]|\[(?:[^\]\\]|\\.)*(?:\]|$))+(?:\/|$)/,Y]);if(b.cStyleComments)c.push(["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null]);var d=x(b.keywords);b=null;var g=v(a,c),e=v([],[["pln",/^\s+/,null," \r\n"],["pln",/^[a-z_$@][a-z_$@0-9]*/i,null],["lit",/^0x[a-f0-9]+[a-z]/i,null],["lit",/^(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?[a-z]*/i,null,"123456789"],["pun",/^[^\s\w\.$@]+/,null]]);function h(f,i){for(var j=0;j<i.length;j+=2){var o=i[j+1];if(o==="pln"){var m,k,l,n;m=i[j];k=j+2<i.length?i[j+2]:f.length;l=f.substring(m,k);n=e(l,m);for(var p=0,t=n.length;p<t;p+=2){var w=n[p+1];if(w==="pln"){var A=n[p],B=p+2<t?n[p+2]:l.length,s=f.substring(A,B);if(s===".")n[p+1]="pun";else if(s in d)n[p+1]="kwd";else if(/^@?[A-Z][A-Z$]*[a-z][A-Za-z$]*$/.test(s))n[p+1]=s.charAt(0)==="@"?"lit":"typ"}}u(n,i,j,2);j+=n.length-2}}return i}return function(f){var i=g(f);i=h(f,i);return i}}var G=r({keywords:W,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function sa(b,a){for(var c=0;c<a.length;c+=2){var d=a[c+1];if(d==="src"){var g,e;g=a[c];e=c+2<a.length?a[c+2]:b.length;var h=G(b.substring(g,e));for(var f=0,i=h.length;f<i;f+=2)h[f]+=g;u(h,a,c,2);c+=h.length-2}}return a}function ta(b,a){var c=false;for(var d=0;d<a.length;d+=2){var g=a[d+1],e,h;if(g==="atn"){e=a[d];h=d+2<a.length?a[d+2]:b.length;c=/^on|^style$/i.test(b.substring(e,h))}else if(g==="atv"){if(c){e=a[d];h=d+2<a.length?a[d+2]:b.length;var f=b.substring(e,h),i=f.length,j=i>=2&&/^[\"\']/.test(f)&&f.charAt(0)===f.charAt(i-1),o,m,k;if(j){m=e+1;k=h-1;o=f}else{m=e+1;k=h-1;o=f.substring(1,f.length-1)}var l=G(o);for(var n=0,p=l.length;n<p;n+=2)l[n]+=m;if(j){l.push(k,"atv");u(l,a,d+2,0)}else u(l,a,d,2)}c=false}}return a}function ua(b){var a=pa(b);a=ra(b,a);a=sa(b,a);a=ta(b,a);return a}function va(b,a,c){var d=[],g=0,e=null,h=null,f=0,i=0,j=ia(8);function o(k){if(k>g){if(e&&e!==h){d.push("</span>");e=null}if(!e&&h){e=h;d.push('<span class="',e,'">')}var l=E(j(b.substring(g,k))).replace(/(\r\n?|\n| ) /g,"$1&nbsp;").replace(/\r\n?|\n/g,"<br />");d.push(l);g=k}}while(true){var m;m=f<a.length?(i<c.length?a[f]<=c[i]:true):false;if(m){o(a[f]);if(e){d.push("</span>");e=null}d.push(a[f+1]);f+=2}else if(i<c.length){o(c[i]);h=c[i+1];i+=2}else break}o(b.length);if(e)d.push("</span>");return d.join("")}
var C={};function q(b,a){for(var c=a.length;--c>=0;){var d=a[c];if(!C.hasOwnProperty(d))C[d]=b;else if("console"in window)console.log("cannot override language handler %s",d)}}q(G,["default-code"]);q(ua,["default-markup","html","htm","xhtml","xml","xsl"]);q(r({keywords:I,hashComments:true,cStyleComments:true}),["c","cc","cpp","cs","cxx","cyc"]);q(r({keywords:J,cStyleComments:true}),["java"]);q(r({keywords:O,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);q(r({keywords:M,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);q(r({keywords:L,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);q(r({keywords:N,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);q(r({keywords:K,cStyleComments:true,regexLiterals:true}),["js"]);function T(b,a){try{var c=na(b),d=c.source,g=c.tags;if(!C.hasOwnProperty(a))a=/^\s*</.test(d)?"default-markup":"default-code";var e=C[a].call({},d);return va(d,g,e)}catch(h){if("console"in window){console.log(h);console.trace()}return b}}function wa(b){var a=H(),c=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],d=[];for(var g=0;g<c.length;++g)for(var e=0;e<c[g].length;++e)d.push(c[g][e]);c=null;var h=0;function f(){var i=(new Date).getTime()+250;for(;h<d.length&&(new Date).getTime()<i;h++){var j=d[h];if(j.className&&j.className.indexOf("prettyprint")>=0){var o=j.className.match(/\blang-(\w+)\b/);if(o)o=o[1];var m=false;for(var k=j.parentNode;k;k=k.parentNode)if((k.tagName==="pre"||k.tagName==="code"||k.tagName==="xmp")&&k.className&&k.className.indexOf("prettyprint")>=0){m=true;break}if(!m){var l=ha(j);l=l.replace(/(?:\r\n?|\n)$/,"");var n=T(l,o);if(!S(j))j.innerHTML=n;else{var p=document.createElement("PRE");for(var t=0;t<j.attributes.length;++t){var w=j.attributes[t];if(w.specified)p.setAttribute(w.name,w.value)}p.innerHTML=n;j.parentNode.replaceChild(p,j);p=j}if(a&&j.tagName==="PRE"){var A=j.getElementsByTagName("br");for(var B=A.length;--B>=0;){var s=A[B];s.parentNode.replaceChild(document.createTextNode("\r\n"),s)}}}}}if(h<d.length)setTimeout(f,250);else if(b)b()}f()}window.PR_normalizedHtml=z;window.prettyPrintOne=T;window.prettyPrint=wa;window.PR={createSimpleLexer:v,registerLangHandler:q,sourceDecorator:r,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();

var lsVote;var lsVoteClass=new Class({Implements:Options,options:{classes_action:{voted:'voted',plus:'plus',minus:'minus',positive:'positive',negative:'negative',quest:'quest'},classes_element:{voting:'voting',count:'count',total:'total',plus:'plus',minus:'minus'}},typeVote:{comment:{url:DIR_WEB_ROOT+'/include/ajax/voteComment.php',targetName:'idComment'},topic:{url:DIR_WEB_ROOT+'/include/ajax/voteTopic.php',targetName:'idTopic'},blog:{url:DIR_WEB_ROOT+'/include/ajax/voteBlog.php',targetName:'idBlog'},user:{url:DIR_WEB_ROOT+'/include/ajax/voteUser.php',targetName:'idUser'}},initialize:function(options){this.setOptions(options);},vote:function(idTarget,objVote,value,type){if(!this.typeVote[type]){return false;}
this.idTarget=idTarget;this.objVote=$(objVote);this.value=value;this.type=type;thisObj=this;var params=new Hash();params['value']=value;params[this.typeVote[type].targetName]=idTarget;params['security_ls_key']=LIVESTREET_SECURITY_KEY;JsHttpRequest.query('POST '+this.typeVote[type].url,params,function(result,errors){thisObj.onVote(result,errors,thisObj);},true);},onVote:function(result,errors,thisObj){if(!result){msgErrorBox.alert('Error','Please try again later');}
if(result.bStateError){msgErrorBox.alert(result.sMsgTitle,result.sMsg);}else{msgNoticeBox.alert(result.sMsgTitle,result.sMsg);var divVoting=thisObj.objVote.getParent('.'+thisObj.options.classes_element.voting);divVoting.addClass(thisObj.options.classes_action.voted);if(this.value>0){divVoting.addClass(thisObj.options.classes_action.plus);}
if(this.value<0){divVoting.addClass(thisObj.options.classes_action.minus);}
var divCount=divVoting.getChildren('.'+thisObj.options.classes_element.count);if(divCount&&divCount[0]){divCount.set('text',result.iCountVote);}
var divTotal=divVoting.getChildren('.'+thisObj.options.classes_element.total);result.iRating=parseFloat(result.iRating);divVoting.removeClass(thisObj.options.classes_action.negative);divVoting.removeClass(thisObj.options.classes_action.positive);if(result.iRating>0){divVoting.addClass(thisObj.options.classes_action.positive);divTotal.set('text','+'+result.iRating);}
if(result.iRating<0){divVoting.addClass(thisObj.options.classes_action.negative);divTotal.set('text',result.iRating);}
if(result.iRating==0){divTotal.set('text','0');}
if(thisObj.type=='user'&&$('user_skill_'+thisObj.idTarget)){$('user_skill_'+thisObj.idTarget).set('text',result.iSkill);}}}});window.addEvent('domready',function(){lsVote=new lsVoteClass();});

var lsFavourite;var lsFavouriteClass=new Class({Implements:Options,options:{classes_action:{active:'active',quest:'quest'},classes_element:{favorite:'favorite'}},typeFavourite:{topic:{url:DIR_WEB_ROOT+'/include/ajax/topicFavourite.php',targetName:'idTopic'},comment:{url:DIR_WEB_ROOT+'/include/ajax/commentFavourite.php',targetName:'idComment'},talk:{url:DIR_WEB_ROOT+'/include/ajax/talkFavourite.php',targetName:'idTalk'}},initialize:function(options){this.setOptions(options);},toggle:function(idTarget,objFavourite,type){if(!this.typeFavourite[type]){return false;}
this.idTarget=idTarget;this.objFavourite=$(objFavourite);this.value=value;this.type=type;thisObj=this;var value=1;if(this.objFavourite.getParent('.'+this.options.classes_element.favorite).hasClass(this.options.classes_action.active)){value=0;}
var params=new Hash();params['type']=value;params[this.typeFavourite[type].targetName]=idTarget;params['security_ls_key']=LIVESTREET_SECURITY_KEY;JsHttpRequest.query('POST '+this.typeFavourite[type].url,params,function(result,errors){thisObj.onToggle(result,errors,thisObj);},true);},onToggle:function(result,errors,thisObj){if(!result){msgErrorBox.alert('Error','Please try again later');}
if(result.bStateError){msgErrorBox.alert(result.sMsgTitle,result.sMsg);}else{msgNoticeBox.alert(result.sMsgTitle,result.sMsg);var divFavourite=thisObj.objFavourite.getParent('.'+thisObj.options.classes_element.favorite);divFavourite.removeClass(thisObj.options.classes_action.active);if(result.bState){divFavourite.addClass(thisObj.options.classes_action.active);}}}});window.addEvent('domready',function(){lsFavourite=new lsFavouriteClass();});

function ajaxQuestionVote(idTopic,idAnswer){JsHttpRequest.query('POST '+DIR_WEB_ROOT+'/include/ajax/questionVote.php',{idTopic:idTopic,idAnswer:idAnswer,security_ls_key:LIVESTREET_SECURITY_KEY},function(result,errors){if(!result){msgErrorBox.alert('Error','Please try again later');}
if(result.bStateError){msgErrorBox.alert(result.sMsgTitle,result.sMsg);}else{msgNoticeBox.alert(result.sMsgTitle,result.sMsg);if($('topic_question_area_'+idTopic)){$('topic_question_area_'+idTopic).set('html',result.sText);}}},true);};

var lsBlockLoaderClass=new Class({Implements:Options,options:{classes_nav:{nav:'block-nav',content:'block-content',active:'active'}},type:{comment_stream:{url:DIR_WEB_ROOT+'/include/ajax/stream_comment.php'},topic_stream:{url:DIR_WEB_ROOT+'/include/ajax/stream_topic.php'},blogs_top:{url:DIR_WEB_ROOT+'/include/ajax/blogs_top.php'},blogs_join:{url:DIR_WEB_ROOT+'/include/ajax/blogs_join.php'},blogs_self:{url:DIR_WEB_ROOT+'/include/ajax/blogs_self.php'}},initialize:function(options){this.setOptions(options);},toggle:function(obj,type,params){if(!this.type[type]){return false;}
thisObj=this;this.obj=$(obj);var liCurrent=thisObj.obj.getParent('li');var blockNav=liCurrent.getParent('ul.'+thisObj.options.classes_nav.nav);var liList=blockNav.getChildren('li');liList.each(function(li,index){li.removeClass(thisObj.options.classes_nav.active);});liCurrent.addClass(this.options.classes_nav.active);var blockContent=blockNav.getParent('div').getChildren('div.'+this.options.classes_nav.content)[0].set('html','');this.showStatus(blockContent);if(!params){params={security_ls_key:LIVESTREET_SECURITY_KEY};}else{params['security_ls_key']=LIVESTREET_SECURITY_KEY;}
JsHttpRequest.query('POST '+this.type[type].url,params,function(result,errors){thisObj.onLoad(result,errors,blockContent);},true);},onLoad:function(result,errors,blockContent){blockContent.set('html','');if(!result){msgErrorBox.alert('Error','Please try again later');}
if(result.bStateError){}else{blockContent.set('html',result.sText);}},showStatus:function(obj){var newDiv=new Element('div');newDiv.setStyle('text-align','center');newDiv.set('html','<img src="'+DIR_STATIC_SKIN+'/images/loader.gif" >');newDiv.inject(obj);}});

function toogleFriendForm(obj){var friendForm=$('add_friend_form');var slideForm=new Fx.Slide('add_friend_form');friendForm.getElements('textarea').set('value','');if(friendForm.getStyle('display')=='none'){friendForm.setStyle('display','block');slideForm.hide();}
slideForm.toggle();slideForm.addEvent('complete',function(){friendForm.getElement('textarea').focus();});}
function ajaxAddUserFriend(obj,idUser,sAction){obj=$(obj).getParent('li');if(sAction!='link'&&sAction!='accept'){sText=obj.getElement('form textarea').get('value');obj.getElement('form').getChildren().each(function(item){item.setProperty('disabled','disabled')});}else{sText='';}
if(sAction=='accept'){sPath=aRouter.profile+'ajaxfriendaccept/';}else{sPath=aRouter.profile+'ajaxfriendadd/';}
JsHttpRequest.query('POST '+sPath,{idUser:idUser,userText:sText,security_ls_key:LIVESTREET_SECURITY_KEY},function(result,errors){if(!result){msgErrorBox.alert('Error','Please try again later');obj.getElement('form').getChildren().each(function(item){item.removeProperty('disabled')});}
if(result.bStateError){msgErrorBox.alert(result.sMsgTitle,result.sMsg);obj.getElement('form').getChildren().each(function(item){item.removeProperty('disabled')});}else{msgNoticeBox.alert(result.sMsgTitle,result.sMsg);if(obj){item=new Element('li',{'html':result.sToggleText});item.getElement('li').inject(obj.getParent('ul'),'top');obj.dispose();}}},true);}
function ajaxDeleteUserFriend(obj,idUser,sAction){obj=$(obj).getParent('li');JsHttpRequest.query('POST '+aRouter.profile+'ajaxfrienddelete/',{idUser:idUser,sAction:sAction,security_ls_key:LIVESTREET_SECURITY_KEY},function(result,errors){if(!result){msgErrorBox.alert('Error','Please try again later');}
if(result.bStateError){msgErrorBox.alert(result.sMsgTitle,result.sMsg);}else{msgNoticeBox.alert(result.sMsgTitle,result.sMsg);if(obj){item=new Element('li',{'html':result.sToggleText});item.getElement('li').inject(obj.getParent('ul'),'top');obj.dispose();}}},true);};

function ajaxJoinLeaveBlog(obj,idBlog){obj=$(obj);JsHttpRequest.query('POST '+DIR_WEB_ROOT+'/include/ajax/joinLeaveBlog.php',{idBlog:idBlog,security_ls_key:LIVESTREET_SECURITY_KEY},function(result,errors){if(!result){msgErrorBox.alert('Error','Please try again later');}
if(result.bStateError){msgErrorBox.alert(result.sMsgTitle,result.sMsg);}else{msgNoticeBox.alert(result.sMsgTitle,result.sMsg);if(obj){obj.getParent().removeClass('active');if(result.bState){obj.getParent().addClass('active');}
divCount=$('blog_user_count_'+idBlog);if(divCount){divCount.set('text',result.iCountUser);}}}},true);}
function ajaxBlogInfo(idBlog){JsHttpRequest.query('POST '+DIR_WEB_ROOT+'/include/ajax/blogInfo.php',{idBlog:idBlog,security_ls_key:LIVESTREET_SECURITY_KEY},function(result,errors){if(!result){msgErrorBox.alert('Error','Please try again later');}
if(result.bStateError){}else{if($('block_blog_info')){$('block_blog_info').set('html',result.sText);}}},true);};

function ajaxTextPreview(textId,save,divPreview){var text;if(BLOG_USE_TINYMCE&&tinyMCE&&(ed=tinyMCE.get(textId))){text=ed.getContent();}else{text=$(textId).value;}
JsHttpRequest.query('POST '+DIR_WEB_ROOT+'/include/ajax/textPreview.php',{text:text,save:save,security_ls_key:LIVESTREET_SECURITY_KEY},function(result,errors){if(!result){msgErrorBox.alert('Error','Please try again later');}
if(result.bStateError){msgErrorBox.alert('Error','Please try again later');}else{if(!divPreview){divPreview='text_preview';}
if($(divPreview)){$(divPreview).set('html',result.sText).setStyle('display','block');}}},true);}
function addField(btn){tr=btn;while(tr.tagName!='TR')tr=tr.parentNode;var newTr=tr.parentNode.insertBefore(tr.cloneNode(true),tr.nextSibling);checkFieldForLast();}
function checkFieldForLast(){btns=document.getElementsByName('drop_answer');for(i=0;i<btns.length;i++){btns[i].disabled=false;}
if(btns.length<=2){btns[0].disabled=true;btns[1].disabled=true;}}
function dropField(btn){tr=btn;while(tr.tagName!='TR')tr=tr.parentNode;tr.parentNode.removeChild(tr);checkFieldForLast();}
function checkAllTalk(checkbox){$$('.form_talks_checkbox').each(function(chk){if(checkbox.checked){chk.checked=true;}else{chk.checked=false;}});}
function checkAllReport(checkbox){$$('.form_reports_checkbox').each(function(chk){if(checkbox.checked){chk.checked=true;}else{chk.checked=false;}});}
function checkAllPlugins(checkbox){$$('.form_plugins_checkbox').each(function(chk){if(checkbox.checked){chk.checked=true;}else{chk.checked=false;}});}
function showImgUploadForm(){if(Browser.Engine.trident){}
if(!winFormImgUpload){winFormImgUpload=new StickyWin.Modal({content:$('window_load_img'),closeClassName:'close-block',useIframeShim:false,modalOptions:{modalStyle:{'z-index':900}}});}
winFormImgUpload.show();winFormImgUpload.pin(true);$$('input[name=img_file]').set('value','');$$('input[name=img_url]').set('value','http://');return false;}
function hideImgUploadForm(){winFormImgUpload.hide();}
var winFormImgUpload;function ajaxUploadImg(value,sToLoad){var req=new JsHttpRequest();req.onreadystatechange=function(){if(req.readyState==4){if(req.responseJS.bStateError){msgErrorBox.alert(req.responseJS.sMsgTitle,req.responseJS.sMsg);}else{lsPanel.putText(sToLoad,req.responseJS.sText);hideImgUploadForm();}}}
req.open(null,DIR_WEB_ROOT+'/include/ajax/uploadImg.php',true);req.send({value:value,security_ls_key:LIVESTREET_SECURITY_KEY});};

function showLoginForm(){if(Browser.Engine.trident){return true;}
if(!winFormLogin){winFormLogin=new StickyWin.Modal({content:$('login-form'),closeClassName:'close-block',useIframeShim:false});}
winFormLogin.show();winFormLogin.pin(true);return false;}
function hideLoginForm(){winFormLogin.hide();}
var winFormLogin=false;

var lsPanelClass=new Class({initialize:function(){},putText:function(obj,text){obj=$(obj);var scrollLeft=obj.scrollLeft;var scrollTop=obj.scrollTop;if(Browser.Engine.trident&&document.selection){obj.focus();sel=document.selection.createRange();sel.text=text;}else{obj.insertAtCursor(text);}
obj.scrollLeft=scrollLeft;obj.scrollTop=scrollTop;},putTag:function(obj,tag){this.putText(obj,'<'+tag+'/>');},putTextAround:function(obj,textStart,textEnd){obj=$(obj);var scrollLeft=obj.scrollLeft;var scrollTop=obj.scrollTop;if(Browser.Engine.trident&&document.selection){obj.focus();sel=document.selection.createRange();sel.text=textStart+sel.text+textEnd;}else{obj.insertAroundCursor({before:textStart,defaultMiddle:'',after:textEnd});}
obj.scrollLeft=scrollLeft;obj.scrollTop=scrollTop;},putTagAround:function(obj,tagStart,tagEnd){if(!tagEnd){tagEnd=tagStart;}
this.putTextAround(obj,'<'+tagStart+'>','</'+tagEnd+'>');},putTagUrl:function(obj,sPromt){obj=$(obj);if(url=prompt(sPromt,'http://')){var sel=obj.getSelectedText();this.putText(obj,'<a href="'+url+'">'+sel+'</a>');}},putQuote:function(obj){obj=$(obj);selText=this.getSelectedText();if(selText&&selText!=""){this.putText(obj,'<blockquote>'+selText+'</blockquote>');}else{this.putTagAround(obj,'blockquote');}},getSelectedText:function(){if(Browser.Engine.trident)return document.selection.createRange().text;return document.getSelection();},putList:function(obj,select){obj=$(obj);typeList=select.value;if(selText=obj.getSelectedText()){selText=selText.replace('/\r/g','');selText=selText!=''?selText:' ';selText=selText.replace(new RegExp('^(.+)','gm'),'\t<li>$1</li>');this.putText(obj,'<'+typeList+'>\n'+selText+'\n</'+typeList+'>');}else{this.putTextAround(obj,'<'+typeList+'>\n\t<li>','</li>\n</'+typeList+'>');}
select.selectedIndex=0;}});var lsPanel;window.addEvent('domready',function(){lsPanel=new lsPanelClass();});

