var Prototype={Version:"1.5.1.1",Browser:{IE:!!(window.attachEvent&&!window.opera),Opera:!!window.opera,WebKit:navigator.userAgent.indexOf("AppleWebKit/")>-1,Gecko:navigator.userAgent.indexOf("Gecko")>-1&&navigator.userAgent.indexOf("KHTML")==-1},BrowserFeatures:{XPath:!!document.evaluate,ElementExtensions:!!window.HTMLElement,SpecificElementExtensions:(document.createElement("div").__proto__!==document.createElement("form").__proto__)},ScriptFragment:"<script[^>]*>([\\S\\s]*?)</script>",JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(x){return x;}};var Class={create:function(){return function(){this.initialize.apply(this,arguments);};}};var Abstract=new Object();Object.extend=function(_2,_3){for(var _4 in _3){_2[_4]=_3[_4];}return _2;};Object.extend(Object,{inspect:function(_5){try{if(_5===undefined){return "undefined";}if(_5===null){return "null";}return _5.inspect?_5.inspect():_5.toString();}catch(e){if(e instanceof RangeError){return "...";}throw e;}},toJSON:function(_6){var _7=typeof _6;switch(_7){case "undefined":case "function":case "unknown":return;case "boolean":return _6.toString();}if(_6===null){return "null";}if(_6.toJSON){return _6.toJSON();}if(_6.ownerDocument===document){return;}var _8=[];for(var _9 in _6){var _a=Object.toJSON(_6[_9]);if(_a!==undefined){_8.push(_9.toJSON()+": "+_a);}}return "{"+_8.join(", ")+"}";},keys:function(_b){var _c=[];for(var _d in _b){_c.push(_d);}return _c;},values:function(_e){var _f=[];for(var _10 in _e){_f.push(_e[_10]);}return _f;},clone:function(_11){return Object.extend({},_11);}});Function.prototype.bind=function(){var _12=this,_13=$A(arguments),_14=_13.shift();return function(){return _12.apply(_14,_13.concat($A(arguments)));};};Function.prototype.bindAsEventListener=function(_15){var _16=this,_17=$A(arguments),_15=_17.shift();return function(_18){return _16.apply(_15,[_18||window.event].concat(_17));};};Object.extend(Number.prototype,{toColorPart:function(){return this.toPaddedString(2,16);},succ:function(){return this+1;},times:function(_19){$R(0,this,true).each(_19);return this;},toPaddedString:function(_1a,_1b){var _1c=this.toString(_1b||10);return "0".times(_1a-_1c.length)+_1c;},toJSON:function(){return isFinite(this)?this.toString():"null";}});Date.prototype.toJSON=function(){return "\""+this.getFullYear()+"-"+(this.getMonth()+1).toPaddedString(2)+"-"+this.getDate().toPaddedString(2)+"T"+this.getHours().toPaddedString(2)+":"+this.getMinutes().toPaddedString(2)+":"+this.getSeconds().toPaddedString(2)+"\"";};var Try={these:function(){var _1d;for(var i=0,_1f=arguments.length;i<_1f;i++){var _20=arguments[i];try{_1d=_20();break;}catch(e){}}return _1d;}};var PeriodicalExecuter=Class.create();PeriodicalExecuter.prototype={initialize:function(_21,_22){this.callback=_21;this.frequency=_22;this.currentlyExecuting=false;this.registerCallback();},registerCallback:function(){this.timer=setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},stop:function(){if(!this.timer){return;}clearInterval(this.timer);this.timer=null;},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.callback(this);}finally{this.currentlyExecuting=false;}}}};Object.extend(String,{interpret:function(_23){return _23==null?"":String(_23);},specialChar:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\\":"\\\\"}});Object.extend(String.prototype,{gsub:function(_24,_25){var _26="",_27=this,_28;_25=arguments.callee.prepareReplacement(_25);while(_27.length>0){if(_28=_27.match(_24)){_26+=_27.slice(0,_28.index);_26+=String.interpret(_25(_28));_27=_27.slice(_28.index+_28[0].length);}else{_26+=_27,_27="";}}return _26;},sub:function(_29,_2a,_2b){_2a=this.gsub.prepareReplacement(_2a);_2b=_2b===undefined?1:_2b;return this.gsub(_29,function(_2c){if(--_2b<0){return _2c[0];}return _2a(_2c);});},scan:function(_2d,_2e){this.gsub(_2d,_2e);return this;},truncate:function(_2f,_30){_2f=_2f||30;_30=_30===undefined?"...":_30;return this.length>_2f?this.slice(0,_2f-_30.length)+_30:this;},strip:function(){return this.replace(/^\s+/,"").replace(/\s+$/,"");},stripTags:function(){return this.replace(/<\/?[^>]+>/gi,"");},stripScripts:function(){return this.replace(new RegExp(Prototype.ScriptFragment,"img"),"");},extractScripts:function(){var _31=new RegExp(Prototype.ScriptFragment,"img");var _32=new RegExp(Prototype.ScriptFragment,"im");return (this.match(_31)||[]).map(function(_33){return (_33.match(_32)||["",""])[1];});},evalScripts:function(){return this.extractScripts().map(function(_34){return eval(_34);});},escapeHTML:function(){var _35=arguments.callee;_35.text.data=this;return _35.div.innerHTML;},unescapeHTML:function(){var div=document.createElement("div");div.innerHTML=this.stripTags();return div.childNodes[0]?(div.childNodes.length>1?$A(div.childNodes).inject("",function(_37,_38){return _37+_38.nodeValue;}):div.childNodes[0].nodeValue):"";},toQueryParams:function(_39){var _3a=this.strip().match(/([^?#]*)(#.*)?$/);if(!_3a){return {};}return _3a[1].split(_39||"&").inject({},function(_3b,_3c){if((_3c=_3c.split("="))[0]){var key=decodeURIComponent(_3c.shift());var _3e=_3c.length>1?_3c.join("="):_3c[0];if(_3e!=undefined){_3e=decodeURIComponent(_3e);}if(key in _3b){if(_3b[key].constructor!=Array){_3b[key]=[_3b[key]];}_3b[key].push(_3e);}else{_3b[key]=_3e;}}return _3b;});},toArray:function(){return this.split("");},succ:function(){return this.slice(0,this.length-1)+String.fromCharCode(this.charCodeAt(this.length-1)+1);},times:function(_3f){var _40="";for(var i=0;i<_3f;i++){_40+=this;}return _40;},camelize:function(){var _42=this.split("-"),len=_42.length;if(len==1){return _42[0];}var _44=this.charAt(0)=="-"?_42[0].charAt(0).toUpperCase()+_42[0].substring(1):_42[0];for(var i=1;i<len;i++){_44+=_42[i].charAt(0).toUpperCase()+_42[i].substring(1);}return _44;},capitalize:function(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase();},underscore:function(){return this.gsub(/::/,"/").gsub(/([A-Z]+)([A-Z][a-z])/,"#{1}_#{2}").gsub(/([a-z\d])([A-Z])/,"#{1}_#{2}").gsub(/-/,"_").toLowerCase();},dasherize:function(){return this.gsub(/_/,"-");},inspect:function(_46){var _47=this.gsub(/[\x00-\x1f\\]/,function(_48){var _49=String.specialChar[_48[0]];return _49?_49:"\\u00"+_48[0].charCodeAt().toPaddedString(2,16);});if(_46){return "\""+_47.replace(/"/g,"\\\"")+"\"";}return "'"+_47.replace(/'/g,"\\'")+"'";},toJSON:function(){return this.inspect(true);},unfilterJSON:function(_4a){return this.sub(_4a||Prototype.JSONFilter,"#{1}");},isJSON:function(){var str=this.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,"");return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);},evalJSON:function(_4c){var _4d=this.unfilterJSON();try{if(!_4c||_4d.isJSON()){return eval("("+_4d+")");}}catch(e){}throw new SyntaxError("Badly formed JSON string: "+this.inspect());},include:function(_4e){return this.indexOf(_4e)>-1;},startsWith:function(_4f){return this.indexOf(_4f)===0;},endsWith:function(_50){var d=this.length-_50.length;return d>=0&&this.lastIndexOf(_50)===d;},empty:function(){return this=="";},blank:function(){return /^\s*$/.test(this);}});if(Prototype.Browser.WebKit||Prototype.Browser.IE){Object.extend(String.prototype,{escapeHTML:function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");},unescapeHTML:function(){return this.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">");}});}String.prototype.gsub.prepareReplacement=function(_52){if(typeof _52=="function"){return _52;}var _53=new Template(_52);return function(_54){return _53.evaluate(_54);};};String.prototype.parseQuery=String.prototype.toQueryParams;Object.extend(String.prototype.escapeHTML,{div:document.createElement("div"),text:document.createTextNode("")});with(String.prototype.escapeHTML){div.appendChild(text);}var Template=Class.create();Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;Template.prototype={initialize:function(_55,_56){this.template=_55.toString();this.pattern=_56||Template.Pattern;},evaluate:function(_57){return this.template.gsub(this.pattern,function(_58){var _59=_58[1];if(_59=="\\"){return _58[2];}return _59+String.interpret(_57[_58[3]]);});}};var $break={},$continue=new Error("\"throw $continue\" is deprecated, use \"return\" instead");var Enumerable={each:function(_5a){var _5b=0;try{this._each(function(_5c){_5a(_5c,_5b++);});}catch(e){if(e!=$break){throw e;}}return this;},eachSlice:function(_5d,_5e){var _5f=-_5d,_60=[],_61=this.toArray();while((_5f+=_5d)<_61.length){_60.push(_61.slice(_5f,_5f+_5d));}return _60.map(_5e);},all:function(_62){var _63=true;this.each(function(_64,_65){_63=_63&&!!(_62||Prototype.K)(_64,_65);if(!_63){throw $break;}});return _63;},any:function(_66){var _67=false;this.each(function(_68,_69){if(_67=!!(_66||Prototype.K)(_68,_69)){throw $break;}});return _67;},collect:function(_6a){var _6b=[];this.each(function(_6c,_6d){_6b.push((_6a||Prototype.K)(_6c,_6d));});return _6b;},detect:function(_6e){var _6f;this.each(function(_70,_71){if(_6e(_70,_71)){_6f=_70;throw $break;}});return _6f;},findAll:function(_72){var _73=[];this.each(function(_74,_75){if(_72(_74,_75)){_73.push(_74);}});return _73;},grep:function(_76,_77){var _78=[];this.each(function(_79,_7a){var _7b=_79.toString();if(_7b.match(_76)){_78.push((_77||Prototype.K)(_79,_7a));}});return _78;},include:function(_7c){var _7d=false;this.each(function(_7e){if(_7e==_7c){_7d=true;throw $break;}});return _7d;},inGroupsOf:function(_7f,_80){_80=_80===undefined?null:_80;return this.eachSlice(_7f,function(_81){while(_81.length<_7f){_81.push(_80);}return _81;});},inject:function(_82,_83){this.each(function(_84,_85){_82=_83(_82,_84,_85);});return _82;},invoke:function(_86){var _87=$A(arguments).slice(1);return this.map(function(_88){return _88[_86].apply(_88,_87);});},max:function(_89){var _8a;this.each(function(_8b,_8c){_8b=(_89||Prototype.K)(_8b,_8c);if(_8a==undefined||_8b>=_8a){_8a=_8b;}});return _8a;},min:function(_8d){var _8e;this.each(function(_8f,_90){_8f=(_8d||Prototype.K)(_8f,_90);if(_8e==undefined||_8f<_8e){_8e=_8f;}});return _8e;},partition:function(_91){var _92=[],_93=[];this.each(function(_94,_95){((_91||Prototype.K)(_94,_95)?_92:_93).push(_94);});return [_92,_93];},pluck:function(_96){var _97=[];this.each(function(_98,_99){_97.push(_98[_96]);});return _97;},reject:function(_9a){var _9b=[];this.each(function(_9c,_9d){if(!_9a(_9c,_9d)){_9b.push(_9c);}});return _9b;},sortBy:function(_9e){return this.map(function(_9f,_a0){return {value:_9f,criteria:_9e(_9f,_a0)};}).sort(function(_a1,_a2){var a=_a1.criteria,b=_a2.criteria;return a<b?-1:a>b?1:0;}).pluck("value");},toArray:function(){return this.map();},zip:function(){var _a5=Prototype.K,_a6=$A(arguments);if(typeof _a6.last()=="function"){_a5=_a6.pop();}var _a7=[this].concat(_a6).map($A);return this.map(function(_a8,_a9){return _a5(_a7.pluck(_a9));});},size:function(){return this.toArray().length;},inspect:function(){return "#<Enumerable:"+this.toArray().inspect()+">";}};Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray});var $A=Array.from=function(_aa){if(!_aa){return [];}if(_aa.toArray){return _aa.toArray();}else{var _ab=[];for(var i=0,_ad=_aa.length;i<_ad;i++){_ab.push(_aa[i]);}return _ab;}};if(Prototype.Browser.WebKit){$A=Array.from=function(_ae){if(!_ae){return [];}if(!(typeof _ae=="function"&&_ae=="[object NodeList]")&&_ae.toArray){return _ae.toArray();}else{var _af=[];for(var i=0,_b1=_ae.length;i<_b1;i++){_af.push(_ae[i]);}return _af;}};}Object.extend(Array.prototype,Enumerable);if(!Array.prototype._reverse){Array.prototype._reverse=Array.prototype.reverse;}Object.extend(Array.prototype,{_each:function(_b2){for(var i=0,_b4=this.length;i<_b4;i++){_b2(this[i]);}},clear:function(){this.length=0;return this;},first:function(){return this[0];},last:function(){return this[this.length-1];},compact:function(){return this.select(function(_b5){return _b5!=null;});},flatten:function(){return this.inject([],function(_b6,_b7){return _b6.concat(_b7&&_b7.constructor==Array?_b7.flatten():[_b7]);});},without:function(){var _b8=$A(arguments);return this.select(function(_b9){return !_b8.include(_b9);});},indexOf:function(_ba){for(var i=0,_bc=this.length;i<_bc;i++){if(this[i]==_ba){return i;}}return -1;},reverse:function(_bd){return (_bd!==false?this:this.toArray())._reverse();},reduce:function(){return this.length>1?this:this[0];},uniq:function(_be){return this.inject([],function(_bf,_c0,_c1){if(0==_c1||(_be?_bf.last()!=_c0:!_bf.include(_c0))){_bf.push(_c0);}return _bf;});},clone:function(){return [].concat(this);},size:function(){return this.length;},inspect:function(){return "["+this.map(Object.inspect).join(", ")+"]";},toJSON:function(){var _c2=[];this.each(function(_c3){var _c4=Object.toJSON(_c3);if(_c4!==undefined){_c2.push(_c4);}});return "["+_c2.join(", ")+"]";}});Array.prototype.toArray=Array.prototype.clone;function $w(_c5){_c5=_c5.strip();return _c5?_c5.split(/\s+/):[];}if(Prototype.Browser.Opera){Array.prototype.concat=function(){var _c6=[];for(var i=0,_c8=this.length;i<_c8;i++){_c6.push(this[i]);}for(var i=0,_c8=arguments.length;i<_c8;i++){if(arguments[i].constructor==Array){for(var j=0,_ca=arguments[i].length;j<_ca;j++){_c6.push(arguments[i][j]);}}else{_c6.push(arguments[i]);}}return _c6;};}var Hash=function(_cb){if(_cb instanceof Hash){this.merge(_cb);}else{Object.extend(this,_cb||{});}};Object.extend(Hash,{toQueryString:function(obj){var _cd=[];_cd.add=arguments.callee.addPair;this.prototype._each.call(obj,function(_ce){if(!_ce.key){return;}var _cf=_ce.value;if(_cf&&typeof _cf=="object"){if(_cf.constructor==Array){_cf.each(function(_d0){_cd.add(_ce.key,_d0);});}return;}_cd.add(_ce.key,_cf);});return _cd.join("&");},toJSON:function(_d1){var _d2=[];this.prototype._each.call(_d1,function(_d3){var _d4=Object.toJSON(_d3.value);if(_d4!==undefined){_d2.push(_d3.key.toJSON()+": "+_d4);}});return "{"+_d2.join(", ")+"}";}});Hash.toQueryString.addPair=function(key,_d6,_d7){key=encodeURIComponent(key);if(_d6===undefined){this.push(key);}else{this.push(key+"="+(_d6==null?"":encodeURIComponent(_d6)));}};Object.extend(Hash.prototype,Enumerable);Object.extend(Hash.prototype,{_each:function(_d8){for(var key in this){var _da=this[key];if(_da&&_da==Hash.prototype[key]){continue;}var _db=[key,_da];_db.key=key;_db.value=_da;_d8(_db);}},keys:function(){return this.pluck("key");},values:function(){return this.pluck("value");},merge:function(_dc){return $H(_dc).inject(this,function(_dd,_de){_dd[_de.key]=_de.value;return _dd;});},remove:function(){var _df;for(var i=0,_e1=arguments.length;i<_e1;i++){var _e2=this[arguments[i]];if(_e2!==undefined){if(_df===undefined){_df=_e2;}else{if(_df.constructor!=Array){_df=[_df];}_df.push(_e2);}}delete this[arguments[i]];}return _df;},toQueryString:function(){return Hash.toQueryString(this);},inspect:function(){return "#<Hash:{"+this.map(function(_e3){return _e3.map(Object.inspect).join(": ");}).join(", ")+"}>";},toJSON:function(){return Hash.toJSON(this);}});function $H(_e4){if(_e4 instanceof Hash){return _e4;}return new Hash(_e4);}if(function(){var i=0,_e6=function(_e7){this.key=_e7;};_e6.prototype.key="foo";for(var _e8 in new _e6("bar")){i++;}return i>1;}()){Hash.prototype._each=function(_e9){var _ea=[];for(var key in this){var _ec=this[key];if((_ec&&_ec==Hash.prototype[key])||_ea.include(key)){continue;}_ea.push(key);var _ed=[key,_ec];_ed.key=key;_ed.value=_ec;_e9(_ed);}};}ObjectRange=Class.create();Object.extend(ObjectRange.prototype,Enumerable);Object.extend(ObjectRange.prototype,{initialize:function(_ee,end,_f0){this.start=_ee;this.end=end;this.exclusive=_f0;},_each:function(_f1){var _f2=this.start;while(this.include(_f2)){_f1(_f2);_f2=_f2.succ();}},include:function(_f3){if(_f3<this.start){return false;}if(this.exclusive){return _f3<this.end;}return _f3<=this.end;}});var $R=function(_f4,end,_f6){return new ObjectRange(_f4,end,_f6);};var Ajax={getTransport:function(){return Try.these(function(){return new XMLHttpRequest();},function(){return new ActiveXObject("Msxml2.XMLHTTP");},function(){return new ActiveXObject("Microsoft.XMLHTTP");})||false;},activeRequestCount:0};Ajax.Responders={responders:[],_each:function(_f7){this.responders._each(_f7);},register:function(_f8){if(!this.include(_f8)){this.responders.push(_f8);}},unregister:function(_f9){this.responders=this.responders.without(_f9);},dispatch:function(_fa,_fb,_fc,_fd){this.each(function(_fe){if(typeof _fe[_fa]=="function"){try{_fe[_fa].apply(_fe,[_fb,_fc,_fd]);}catch(e){}}});}};Object.extend(Ajax.Responders,Enumerable);Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++;},onComplete:function(){Ajax.activeRequestCount--;}});Ajax.Base=function(){};Ajax.Base.prototype={setOptions:function(_ff){this.options={method:"post",asynchronous:true,contentType:"application/x-www-form-urlencoded",encoding:"UTF-8",parameters:""};Object.extend(this.options,_ff||{});this.options.method=this.options.method.toLowerCase();if(typeof this.options.parameters=="string"){this.options.parameters=this.options.parameters.toQueryParams();}}};Ajax.Request=Class.create();Ajax.Request.Events=["Uninitialized","Loading","Loaded","Interactive","Complete"];Ajax.Request.prototype=Object.extend(new Ajax.Base(),{_complete:false,initialize:function(url,_101){this.transport=Ajax.getTransport();this.setOptions(_101);this.request(url);},request:function(url){this.url=url;this.method=this.options.method;var _103=Object.clone(this.options.parameters);if(!["get","post"].include(this.method)){_103["_method"]=this.method;this.method="post";}this.parameters=_103;if(_103=Hash.toQueryString(_103)){if(this.method=="get"){this.url+=(this.url.include("?")?"&":"?")+_103;}else{if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){_103+="&_=";}}}try{if(this.options.onCreate){this.options.onCreate(this.transport);}Ajax.Responders.dispatch("onCreate",this,this.transport);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous){setTimeout(function(){this.respondToReadyState(1);}.bind(this),10);}this.transport.onreadystatechange=this.onStateChange.bind(this);this.setRequestHeaders();this.body=this.method=="post"?(this.options.postBody||_103):null;this.transport.send(this.body);if(!this.options.asynchronous&&this.transport.overrideMimeType){this.onStateChange();}}catch(e){this.dispatchException(e);}},onStateChange:function(){var _104=this.transport.readyState;if(_104>1&&!((_104==4)&&this._complete)){this.respondToReadyState(this.transport.readyState);}},setRequestHeaders:function(){var _105={"X-Requested-With":"XMLHttpRequest","X-Prototype-Version":Prototype.Version,"Accept":"text/javascript, text/html, application/xml, text/xml, */*"};if(this.method=="post"){_105["Content-type"]=this.options.contentType+(this.options.encoding?"; charset="+this.options.encoding:"");if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005){_105["Connection"]="close";}}if(typeof this.options.requestHeaders=="object"){var _106=this.options.requestHeaders;if(typeof _106.push=="function"){for(var i=0,_108=_106.length;i<_108;i+=2){_105[_106[i]]=_106[i+1];}}else{$H(_106).each(function(pair){_105[pair.key]=pair.value;});}}for(var name in _105){this.transport.setRequestHeader(name,_105[name]);}},success:function(){return !this.transport.status||(this.transport.status>=200&&this.transport.status<300);},respondToReadyState:function(_10b){var _10c=Ajax.Request.Events[_10b];var _10d=this.transport,json=this.evalJSON();if(_10c=="Complete"){try{this._complete=true;(this.options["on"+this.transport.status]||this.options["on"+(this.success()?"Success":"Failure")]||Prototype.emptyFunction)(_10d,json);}catch(e){this.dispatchException(e);}var _10f=this.getHeader("Content-type");if(_10f&&_10f.strip().match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i)){this.evalResponse();}}try{(this.options["on"+_10c]||Prototype.emptyFunction)(_10d,json);Ajax.Responders.dispatch("on"+_10c,this,_10d,json);}catch(e){this.dispatchException(e);}if(_10c=="Complete"){this.transport.onreadystatechange=Prototype.emptyFunction;}},getHeader:function(name){try{return this.transport.getResponseHeader(name);}catch(e){return null;}},evalJSON:function(){try{var json=this.getHeader("X-JSON");return json?json.evalJSON():null;}catch(e){return null;}},evalResponse:function(){try{return eval((this.transport.responseText||"").unfilterJSON());}catch(e){this.dispatchException(e);}},dispatchException:function(_112){(this.options.onException||Prototype.emptyFunction)(this,_112);Ajax.Responders.dispatch("onException",this,_112);}});Ajax.Updater=Class.create();Object.extend(Object.extend(Ajax.Updater.prototype,Ajax.Request.prototype),{initialize:function(_113,url,_115){this.container={success:(_113.success||_113),failure:(_113.failure||(_113.success?null:_113))};this.transport=Ajax.getTransport();this.setOptions(_115);var _116=this.options.onComplete||Prototype.emptyFunction;this.options.onComplete=(function(_117,_118){this.updateContent();_116(_117,_118);}).bind(this);this.request(url);},updateContent:function(){var _119=this.container[this.success()?"success":"failure"];var _11a=this.transport.responseText;if(!this.options.evalScripts){_11a=_11a.stripScripts();}if(_119=$(_119)){if(this.options.insertion){new this.options.insertion(_119,_11a);}else{_119.update(_11a);}}if(this.success()){if(this.onComplete){setTimeout(this.onComplete.bind(this),10);}}}});Ajax.PeriodicalUpdater=Class.create();Ajax.PeriodicalUpdater.prototype=Object.extend(new Ajax.Base(),{initialize:function(_11b,url,_11d){this.setOptions(_11d);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=_11b;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(_11e){if(this.options.decay){this.decay=(_11e.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=_11e.responseText;}this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});function $(_11f){if(arguments.length>1){for(var i=0,_121=[],_122=arguments.length;i<_122;i++){_121.push($(arguments[i]));}return _121;}if(typeof _11f=="string"){_11f=document.getElementById(_11f);}return Element.extend(_11f);}if(Prototype.BrowserFeatures.XPath){document._getElementsByXPath=function(_123,_124){var _125=[];var _126=document.evaluate(_123,$(_124)||document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);for(var i=0,_128=_126.snapshotLength;i<_128;i++){_125.push(_126.snapshotItem(i));}return _125;};document.getElementsByClassName=function(_129,_12a){var q=".//*[contains(concat(' ', @class, ' '), ' "+_129+" ')]";return document._getElementsByXPath(q,_12a);};}else{document.getElementsByClassName=function(_12c,_12d){var _12e=($(_12d)||document.body).getElementsByTagName("*");var _12f=[],_130,_131=new RegExp("(^|\\s)"+_12c+"(\\s|$)");for(var i=0,_133=_12e.length;i<_133;i++){_130=_12e[i];var _134=_130.className;if(_134.length==0){continue;}if(_134==_12c||_134.match(_131)){_12f.push(Element.extend(_130));}}return _12f;};}if(!window.Element){var Element={};}Element.extend=function(_135){var F=Prototype.BrowserFeatures;if(!_135||!_135.tagName||_135.nodeType==3||_135._extended||F.SpecificElementExtensions||_135==window){return _135;}var _137={},_138=_135.tagName,_139=Element.extend.cache,T=Element.Methods.ByTag;if(!F.ElementExtensions){Object.extend(_137,Element.Methods),Object.extend(_137,Element.Methods.Simulated);}if(T[_138]){Object.extend(_137,T[_138]);}for(var _13b in _137){var _13c=_137[_13b];if(typeof _13c=="function"&&!(_13b in _135)){_135[_13b]=_139.findOrStore(_13c);}}_135._extended=Prototype.emptyFunction;return _135;};Element.extend.cache={findOrStore:function(_13d){return this[_13d]=this[_13d]||function(){return _13d.apply(null,[this].concat($A(arguments)));};}};Element.Methods={visible:function(_13e){return $(_13e).style.display!="none";},toggle:function(_13f){_13f=$(_13f);Element[Element.visible(_13f)?"hide":"show"](_13f);return _13f;},hide:function(_140){$(_140).style.display="none";return _140;},show:function(_141){$(_141).style.display="";return _141;},remove:function(_142){_142=$(_142);_142.parentNode.removeChild(_142);return _142;},update:function(_143,html){html=typeof html=="undefined"?"":html.toString();$(_143).innerHTML=html.stripScripts();setTimeout(function(){html.evalScripts();},10);return _143;},replace:function(_145,html){_145=$(_145);html=typeof html=="undefined"?"":html.toString();if(_145.outerHTML){_145.outerHTML=html.stripScripts();}else{var _147=_145.ownerDocument.createRange();_147.selectNodeContents(_145);_145.parentNode.replaceChild(_147.createContextualFragment(html.stripScripts()),_145);}setTimeout(function(){html.evalScripts();},10);return _145;},inspect:function(_148){_148=$(_148);var _149="<"+_148.tagName.toLowerCase();$H({"id":"id","className":"class"}).each(function(pair){var _14b=pair.first(),_14c=pair.last();var _14d=(_148[_14b]||"").toString();if(_14d){_149+=" "+_14c+"="+_14d.inspect(true);}});return _149+">";},recursivelyCollect:function(_14e,_14f){_14e=$(_14e);var _150=[];while(_14e=_14e[_14f]){if(_14e.nodeType==1){_150.push(Element.extend(_14e));}}return _150;},ancestors:function(_151){return $(_151).recursivelyCollect("parentNode");},descendants:function(_152){return $A($(_152).getElementsByTagName("*")).each(Element.extend);},firstDescendant:function(_153){_153=$(_153).firstChild;while(_153&&_153.nodeType!=1){_153=_153.nextSibling;}return $(_153);},immediateDescendants:function(_154){if(!(_154=$(_154).firstChild)){return [];}while(_154&&_154.nodeType!=1){_154=_154.nextSibling;}if(_154){return [_154].concat($(_154).nextSiblings());}return [];},previousSiblings:function(_155){return $(_155).recursivelyCollect("previousSibling");},nextSiblings:function(_156){return $(_156).recursivelyCollect("nextSibling");},siblings:function(_157){_157=$(_157);return _157.previousSiblings().reverse().concat(_157.nextSiblings());},match:function(_158,_159){if(typeof _159=="string"){_159=new Selector(_159);}return _159.match($(_158));},up:function(_15a,_15b,_15c){_15a=$(_15a);if(arguments.length==1){return $(_15a.parentNode);}var _15d=_15a.ancestors();return _15b?Selector.findElement(_15d,_15b,_15c):_15d[_15c||0];},down:function(_15e,_15f,_160){_15e=$(_15e);if(arguments.length==1){return _15e.firstDescendant();}var _161=_15e.descendants();return _15f?Selector.findElement(_161,_15f,_160):_161[_160||0];},previous:function(_162,_163,_164){_162=$(_162);if(arguments.length==1){return $(Selector.handlers.previousElementSibling(_162));}var _165=_162.previousSiblings();return _163?Selector.findElement(_165,_163,_164):_165[_164||0];},next:function(_166,_167,_168){_166=$(_166);if(arguments.length==1){return $(Selector.handlers.nextElementSibling(_166));}var _169=_166.nextSiblings();return _167?Selector.findElement(_169,_167,_168):_169[_168||0];},getElementsBySelector:function(){var args=$A(arguments),_16b=$(args.shift());return Selector.findChildElements(_16b,args);},getElementsByClassName:function(_16c,_16d){return document.getElementsByClassName(_16d,_16c);},readAttribute:function(_16e,name){_16e=$(_16e);if(Prototype.Browser.IE){if(!_16e.attributes){return null;}var t=Element._attributeTranslations;if(t.values[name]){return t.values[name](_16e,name);}if(t.names[name]){name=t.names[name];}var _171=_16e.attributes[name];return _171?_171.nodeValue:null;}return _16e.getAttribute(name);},getHeight:function(_172){return $(_172).getDimensions().height;},getWidth:function(_173){return $(_173).getDimensions().width;},classNames:function(_174){return new Element.ClassNames(_174);},hasClassName:function(_175,_176){if(!(_175=$(_175))){return;}var _177=_175.className;if(_177.length==0){return false;}if(_177==_176||_177.match(new RegExp("(^|\\s)"+_176+"(\\s|$)"))){return true;}return false;},addClassName:function(_178,_179){if(!(_178=$(_178))){return;}Element.classNames(_178).add(_179);return _178;},removeClassName:function(_17a,_17b){if(!(_17a=$(_17a))){return;}Element.classNames(_17a).remove(_17b);return _17a;},toggleClassName:function(_17c,_17d){if(!(_17c=$(_17c))){return;}Element.classNames(_17c)[_17c.hasClassName(_17d)?"remove":"add"](_17d);return _17c;},observe:function(){Event.observe.apply(Event,arguments);return $A(arguments).first();},stopObserving:function(){Event.stopObserving.apply(Event,arguments);return $A(arguments).first();},cleanWhitespace:function(_17e){_17e=$(_17e);var node=_17e.firstChild;while(node){var _180=node.nextSibling;if(node.nodeType==3&&!/\S/.test(node.nodeValue)){_17e.removeChild(node);}node=_180;}return _17e;},empty:function(_181){return $(_181).innerHTML.blank();},descendantOf:function(_182,_183){_182=$(_182),_183=$(_183);while(_182=_182.parentNode){if(_182==_183){return true;}}return false;},scrollTo:function(_184){_184=$(_184);var pos=Position.cumulativeOffset(_184);window.scrollTo(pos[0],pos[1]);return _184;},getStyle:function(_186,_187){_186=$(_186);_187=_187=="float"?"cssFloat":_187.camelize();var _188=_186.style[_187];if(!_188){var css=document.defaultView.getComputedStyle(_186,null);_188=css?css[_187]:null;}if(_187=="opacity"){return _188?parseFloat(_188):1;}return _188=="auto"?null:_188;},getOpacity:function(_18a){return $(_18a).getStyle("opacity");},setStyle:function(_18b,_18c,_18d){_18b=$(_18b);var _18e=_18b.style;for(var _18f in _18c){if(_18f=="opacity"){_18b.setOpacity(_18c[_18f]);}else{_18e[(_18f=="float"||_18f=="cssFloat")?(_18e.styleFloat===undefined?"cssFloat":"styleFloat"):(_18d?_18f:_18f.camelize())]=_18c[_18f];}}return _18b;},setOpacity:function(_190,_191){_190=$(_190);_190.style.opacity=(_191==1||_191==="")?"":(_191<0.00001)?0:_191;return _190;},getDimensions:function(_192){_192=$(_192);var _193=$(_192).getStyle("display");if(_193!="none"&&_193!=null){return {width:_192.offsetWidth,height:_192.offsetHeight};}var els=_192.style;var _195=els.visibility;var _196=els.position;var _197=els.display;els.visibility="hidden";els.position="absolute";els.display="block";var _198=_192.clientWidth;var _199=_192.clientHeight;els.display=_197;els.position=_196;els.visibility=_195;return {width:_198,height:_199};},makePositioned:function(_19a){_19a=$(_19a);var pos=Element.getStyle(_19a,"position");if(pos=="static"||!pos){_19a._madePositioned=true;_19a.style.position="relative";if(window.opera){_19a.style.top=0;_19a.style.left=0;}}return _19a;},undoPositioned:function(_19c){_19c=$(_19c);if(_19c._madePositioned){_19c._madePositioned=undefined;_19c.style.position=_19c.style.top=_19c.style.left=_19c.style.bottom=_19c.style.right="";}return _19c;},makeClipping:function(_19d){_19d=$(_19d);if(_19d._overflow){return _19d;}_19d._overflow=_19d.style.overflow||"auto";if((Element.getStyle(_19d,"overflow")||"visible")!="hidden"){_19d.style.overflow="hidden";}return _19d;},undoClipping:function(_19e){_19e=$(_19e);if(!_19e._overflow){return _19e;}_19e.style.overflow=_19e._overflow=="auto"?"":_19e._overflow;_19e._overflow=null;return _19e;}};Object.extend(Element.Methods,{childOf:Element.Methods.descendantOf,childElements:Element.Methods.immediateDescendants});if(Prototype.Browser.Opera){Element.Methods._getStyle=Element.Methods.getStyle;Element.Methods.getStyle=function(_19f,_1a0){switch(_1a0){case "left":case "top":case "right":case "bottom":if(Element._getStyle(_19f,"position")=="static"){return null;}default:return Element._getStyle(_19f,_1a0);}};}else{if(Prototype.Browser.IE){Element.Methods.getStyle=function(_1a1,_1a2){_1a1=$(_1a1);_1a2=(_1a2=="float"||_1a2=="cssFloat")?"styleFloat":_1a2.camelize();var _1a3=_1a1.style[_1a2];if(!_1a3&&_1a1.currentStyle){_1a3=_1a1.currentStyle[_1a2];}if(_1a2=="opacity"){if(_1a3=(_1a1.getStyle("filter")||"").match(/alpha\(opacity=(.*)\)/)){if(_1a3[1]){return parseFloat(_1a3[1])/100;}}return 1;}if(_1a3=="auto"){if((_1a2=="width"||_1a2=="height")&&(_1a1.getStyle("display")!="none")){return _1a1["offset"+_1a2.capitalize()]+"px";}return null;}return _1a3;};Element.Methods.setOpacity=function(_1a4,_1a5){_1a4=$(_1a4);var _1a6=_1a4.getStyle("filter"),_1a7=_1a4.style;if(_1a5==1||_1a5===""){_1a7.filter=_1a6.replace(/alpha\([^\)]*\)/gi,"");return _1a4;}else{if(_1a5<0.00001){_1a5=0;}}_1a7.filter=_1a6.replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+(_1a5*100)+")";return _1a4;};Element.Methods.update=function(_1a8,html){_1a8=$(_1a8);html=typeof html=="undefined"?"":html.toString();var _1aa=_1a8.tagName.toUpperCase();if(["THEAD","TBODY","TR","TD"].include(_1aa)){var div=document.createElement("div");switch(_1aa){case "THEAD":case "TBODY":div.innerHTML="<table><tbody>"+html.stripScripts()+"</tbody></table>";depth=2;break;case "TR":div.innerHTML="<table><tbody><tr>"+html.stripScripts()+"</tr></tbody></table>";depth=3;break;case "TD":div.innerHTML="<table><tbody><tr><td>"+html.stripScripts()+"</td></tr></tbody></table>";depth=4;}$A(_1a8.childNodes).each(function(node){_1a8.removeChild(node);});depth.times(function(){div=div.firstChild;});$A(div.childNodes).each(function(node){_1a8.appendChild(node);});}else{_1a8.innerHTML=html.stripScripts();}setTimeout(function(){html.evalScripts();},10);return _1a8;};}else{if(Prototype.Browser.Gecko){Element.Methods.setOpacity=function(_1ae,_1af){_1ae=$(_1ae);_1ae.style.opacity=(_1af==1)?0.999999:(_1af==="")?"":(_1af<0.00001)?0:_1af;return _1ae;};}}}Element._attributeTranslations={names:{colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",datetime:"dateTime",accesskey:"accessKey",tabindex:"tabIndex",enctype:"encType",maxlength:"maxLength",readonly:"readOnly",longdesc:"longDesc"},values:{_getAttr:function(_1b0,_1b1){return _1b0.getAttribute(_1b1,2);},_flag:function(_1b2,_1b3){return $(_1b2).hasAttribute(_1b3)?_1b3:null;},style:function(_1b4){return _1b4.style.cssText.toLowerCase();},title:function(_1b5){var node=_1b5.getAttributeNode("title");return node.specified?node.nodeValue:null;}}};(function(){Object.extend(this,{href:this._getAttr,src:this._getAttr,type:this._getAttr,disabled:this._flag,checked:this._flag,readonly:this._flag,multiple:this._flag});}).call(Element._attributeTranslations.values);Element.Methods.Simulated={hasAttribute:function(_1b7,_1b8){var t=Element._attributeTranslations,node;_1b8=t.names[_1b8]||_1b8;node=$(_1b7).getAttributeNode(_1b8);return node&&node.specified;}};Element.Methods.ByTag={};Object.extend(Element,Element.Methods);if(!Prototype.BrowserFeatures.ElementExtensions&&document.createElement("div").__proto__){window.HTMLElement={};window.HTMLElement.prototype=document.createElement("div").__proto__;Prototype.BrowserFeatures.ElementExtensions=true;}Element.hasAttribute=function(_1bb,_1bc){if(_1bb.hasAttribute){return _1bb.hasAttribute(_1bc);}return Element.Methods.Simulated.hasAttribute(_1bb,_1bc);};Element.addMethods=function(_1bd){var F=Prototype.BrowserFeatures,T=Element.Methods.ByTag;if(!_1bd){Object.extend(Form,Form.Methods);Object.extend(Form.Element,Form.Element.Methods);Object.extend(Element.Methods.ByTag,{"FORM":Object.clone(Form.Methods),"INPUT":Object.clone(Form.Element.Methods),"SELECT":Object.clone(Form.Element.Methods),"TEXTAREA":Object.clone(Form.Element.Methods)});}if(arguments.length==2){var _1c0=_1bd;_1bd=arguments[1];}if(!_1c0){Object.extend(Element.Methods,_1bd||{});}else{if(_1c0.constructor==Array){_1c0.each(extend);}else{extend(_1c0);}}function extend(_1c1){_1c1=_1c1.toUpperCase();if(!Element.Methods.ByTag[_1c1]){Element.Methods.ByTag[_1c1]={};}Object.extend(Element.Methods.ByTag[_1c1],_1bd);}function copy(_1c2,_1c3,_1c4){_1c4=_1c4||false;var _1c5=Element.extend.cache;for(var _1c6 in _1c2){var _1c7=_1c2[_1c6];if(!_1c4||!(_1c6 in _1c3)){_1c3[_1c6]=_1c5.findOrStore(_1c7);}}}function findDOMClass(_1c8){var _1c9;var _1ca={"OPTGROUP":"OptGroup","TEXTAREA":"TextArea","P":"Paragraph","FIELDSET":"FieldSet","UL":"UList","OL":"OList","DL":"DList","DIR":"Directory","H1":"Heading","H2":"Heading","H3":"Heading","H4":"Heading","H5":"Heading","H6":"Heading","Q":"Quote","INS":"Mod","DEL":"Mod","A":"Anchor","IMG":"Image","CAPTION":"TableCaption","COL":"TableCol","COLGROUP":"TableCol","THEAD":"TableSection","TFOOT":"TableSection","TBODY":"TableSection","TR":"TableRow","TH":"TableCell","TD":"TableCell","FRAMESET":"FrameSet","IFRAME":"IFrame"};if(_1ca[_1c8]){_1c9="HTML"+_1ca[_1c8]+"Element";}if(window[_1c9]){return window[_1c9];}_1c9="HTML"+_1c8+"Element";if(window[_1c9]){return window[_1c9];}_1c9="HTML"+_1c8.capitalize()+"Element";if(window[_1c9]){return window[_1c9];}window[_1c9]={};window[_1c9].prototype=document.createElement(_1c8).__proto__;return window[_1c9];}if(F.ElementExtensions){copy(Element.Methods,HTMLElement.prototype);copy(Element.Methods.Simulated,HTMLElement.prototype,true);}if(F.SpecificElementExtensions){for(var tag in Element.Methods.ByTag){var _1cc=findDOMClass(tag);if(typeof _1cc=="undefined"){continue;}copy(T[tag],_1cc.prototype);}}Object.extend(Element,Element.Methods);delete Element.ByTag;};var Toggle={display:Element.toggle};Abstract.Insertion=function(_1cd){this.adjacency=_1cd;};Abstract.Insertion.prototype={initialize:function(_1ce,_1cf){this.element=$(_1ce);this.content=_1cf.stripScripts();if(this.adjacency&&this.element.insertAdjacentHTML){try{this.element.insertAdjacentHTML(this.adjacency,this.content);}catch(e){var _1d0=this.element.tagName.toUpperCase();if(["TBODY","TR"].include(_1d0)){this.insertContent(this.contentFromAnonymousTable());}else{throw e;}}}else{this.range=this.element.ownerDocument.createRange();if(this.initializeRange){this.initializeRange();}this.insertContent([this.range.createContextualFragment(this.content)]);}setTimeout(function(){_1cf.evalScripts();},10);},contentFromAnonymousTable:function(){var div=document.createElement("div");div.innerHTML="<table><tbody>"+this.content+"</tbody></table>";return $A(div.childNodes[0].childNodes[0].childNodes);}};var Insertion=new Object();Insertion.Before=Class.create();Insertion.Before.prototype=Object.extend(new Abstract.Insertion("beforeBegin"),{initializeRange:function(){this.range.setStartBefore(this.element);},insertContent:function(_1d2){_1d2.each((function(_1d3){this.element.parentNode.insertBefore(_1d3,this.element);}).bind(this));}});Insertion.Top=Class.create();Insertion.Top.prototype=Object.extend(new Abstract.Insertion("afterBegin"),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(true);},insertContent:function(_1d4){_1d4.reverse(false).each((function(_1d5){this.element.insertBefore(_1d5,this.element.firstChild);}).bind(this));}});Insertion.Bottom=Class.create();Insertion.Bottom.prototype=Object.extend(new Abstract.Insertion("beforeEnd"),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(this.element);},insertContent:function(_1d6){_1d6.each((function(_1d7){this.element.appendChild(_1d7);}).bind(this));}});Insertion.After=Class.create();Insertion.After.prototype=Object.extend(new Abstract.Insertion("afterEnd"),{initializeRange:function(){this.range.setStartAfter(this.element);},insertContent:function(_1d8){_1d8.each((function(_1d9){this.element.parentNode.insertBefore(_1d9,this.element.nextSibling);}).bind(this));}});Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(_1da){this.element=$(_1da);},_each:function(_1db){this.element.className.split(/\s+/).select(function(name){return name.length>0;})._each(_1db);},set:function(_1dd){this.element.className=_1dd;},add:function(_1de){if(this.include(_1de)){return;}this.set($A(this).concat(_1de).join(" "));},remove:function(_1df){if(!this.include(_1df)){return;}this.set($A(this).without(_1df).join(" "));},toString:function(){return $A(this).join(" ");}};Object.extend(Element.ClassNames.prototype,Enumerable);var Selector=Class.create();Selector.prototype={initialize:function(_1e0){this.expression=_1e0.strip();this.compileMatcher();},compileMatcher:function(){if(Prototype.BrowserFeatures.XPath&&!(/\[[\w-]*?:/).test(this.expression)){return this.compileXPathMatcher();}var e=this.expression,ps=Selector.patterns,h=Selector.handlers,c=Selector.criteria,le,p,m;if(Selector._cache[e]){this.matcher=Selector._cache[e];return;}this.matcher=["this.matcher = function(root) {","var r = root, h = Selector.handlers, c = false, n;"];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in ps){p=ps[i];if(m=e.match(p)){this.matcher.push(typeof c[i]=="function"?c[i](m):new Template(c[i]).evaluate(m));e=e.replace(m[0],"");break;}}}this.matcher.push("return h.unique(n);\n}");eval(this.matcher.join("\n"));Selector._cache[this.expression]=this.matcher;},compileXPathMatcher:function(){var e=this.expression,ps=Selector.patterns,x=Selector.xpath,le,m;if(Selector._cache[e]){this.xpath=Selector._cache[e];return;}this.matcher=[".//*"];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in ps){if(m=e.match(ps[i])){this.matcher.push(typeof x[i]=="function"?x[i](m):new Template(x[i]).evaluate(m));e=e.replace(m[0],"");break;}}}this.xpath=this.matcher.join("");Selector._cache[this.expression]=this.xpath;},findElements:function(root){root=root||document;if(this.xpath){return document._getElementsByXPath(this.xpath,root);}return this.matcher(root);},match:function(_1f0){return this.findElements(document).include(_1f0);},toString:function(){return this.expression;},inspect:function(){return "#<Selector:"+this.expression.inspect()+">";}};Object.extend(Selector,{_cache:{},xpath:{descendant:"//*",child:"/*",adjacent:"/following-sibling::*[1]",laterSibling:"/following-sibling::*",tagName:function(m){if(m[1]=="*"){return "";}return "[local-name()='"+m[1].toLowerCase()+"' or local-name()='"+m[1].toUpperCase()+"']";},className:"[contains(concat(' ', @class, ' '), ' #{1} ')]",id:"[@id='#{1}']",attrPresence:"[@#{1}]",attr:function(m){m[3]=m[5]||m[6];return new Template(Selector.xpath.operators[m[2]]).evaluate(m);},pseudo:function(m){var h=Selector.xpath.pseudos[m[1]];if(!h){return "";}if(typeof h==="function"){return h(m);}return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);},operators:{"=":"[@#{1}='#{3}']","!=":"[@#{1}!='#{3}']","^=":"[starts-with(@#{1}, '#{3}')]","$=":"[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']","*=":"[contains(@#{1}, '#{3}')]","~=":"[contains(concat(' ', @#{1}, ' '), ' #{3} ')]","|=":"[contains(concat('-', @#{1}, '-'), '-#{3}-')]"},pseudos:{"first-child":"[not(preceding-sibling::*)]","last-child":"[not(following-sibling::*)]","only-child":"[not(preceding-sibling::* or following-sibling::*)]","empty":"[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]","checked":"[@checked]","disabled":"[@disabled]","enabled":"[not(@disabled)]","not":function(m){var e=m[6],p=Selector.patterns,x=Selector.xpath,le,m,v;var _1fb=[];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in p){if(m=e.match(p[i])){v=typeof x[i]=="function"?x[i](m):new Template(x[i]).evaluate(m);_1fb.push("("+v.substring(1,v.length-1)+")");e=e.replace(m[0],"");break;}}}return "[not("+_1fb.join(" and ")+")]";},"nth-child":function(m){return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ",m);},"nth-last-child":function(m){return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ",m);},"nth-of-type":function(m){return Selector.xpath.pseudos.nth("position() ",m);},"nth-last-of-type":function(m){return Selector.xpath.pseudos.nth("(last() + 1 - position()) ",m);},"first-of-type":function(m){m[6]="1";return Selector.xpath.pseudos["nth-of-type"](m);},"last-of-type":function(m){m[6]="1";return Selector.xpath.pseudos["nth-last-of-type"](m);},"only-of-type":function(m){var p=Selector.xpath.pseudos;return p["first-of-type"](m)+p["last-of-type"](m);},nth:function(_205,m){var mm,_208=m[6],_209;if(_208=="even"){_208="2n+0";}if(_208=="odd"){_208="2n+1";}if(mm=_208.match(/^(\d+)$/)){return "["+_205+"= "+mm[1]+"]";}if(mm=_208.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(mm[1]=="-"){mm[1]=-1;}var a=mm[1]?Number(mm[1]):1;var b=mm[2]?Number(mm[2]):0;_209="[((#{fragment} - #{b}) mod #{a} = 0) and "+"((#{fragment} - #{b}) div #{a} >= 0)]";return new Template(_209).evaluate({fragment:_205,a:a,b:b});}}}},criteria:{tagName:"n = h.tagName(n, r, \"#{1}\", c);   c = false;",className:"n = h.className(n, r, \"#{1}\", c); c = false;",id:"n = h.id(n, r, \"#{1}\", c);        c = false;",attrPresence:"n = h.attrPresence(n, r, \"#{1}\"); c = false;",attr:function(m){m[3]=(m[5]||m[6]);return new Template("n = h.attr(n, r, \"#{1}\", \"#{3}\", \"#{2}\"); c = false;").evaluate(m);},pseudo:function(m){if(m[6]){m[6]=m[6].replace(/"/g,"\\\"");}return new Template("n = h.pseudo(n, \"#{1}\", \"#{6}\", r, c); c = false;").evaluate(m);},descendant:"c = \"descendant\";",child:"c = \"child\";",adjacent:"c = \"adjacent\";",laterSibling:"c = \"laterSibling\";"},patterns:{laterSibling:/^\s*~\s*/,child:/^\s*>\s*/,adjacent:/^\s*\+\s*/,descendant:/^\s/,tagName:/^\s*(\*|[\w\-]+)(\b|$)?/,id:/^#([\w\-\*]+)(\b|$)/,className:/^\.([\w\-\*]+)(\b|$)/,pseudo:/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|\s|(?=:))/,attrPresence:/^\[([\w]+)\]/,attr:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\]]*?)\4|([^'"][^\]]*?)))?\]/},handlers:{concat:function(a,b){for(var i=0,node;node=b[i];i++){a.push(node);}return a;},mark:function(_212){for(var i=0,node;node=_212[i];i++){node._counted=true;}return _212;},unmark:function(_215){for(var i=0,node;node=_215[i];i++){node._counted=undefined;}return _215;},index:function(_218,_219,_21a){_218._counted=true;if(_219){for(var _21b=_218.childNodes,i=_21b.length-1,j=1;i>=0;i--){node=_21b[i];if(node.nodeType==1&&(!_21a||node._counted)){node.nodeIndex=j++;}}}else{for(var i=0,j=1,_21b=_218.childNodes;node=_21b[i];i++){if(node.nodeType==1&&(!_21a||node._counted)){node.nodeIndex=j++;}}}},unique:function(_21e){if(_21e.length==0){return _21e;}var _21f=[],n;for(var i=0,l=_21e.length;i<l;i++){if(!(n=_21e[i])._counted){n._counted=true;_21f.push(Element.extend(n));}}return Selector.handlers.unmark(_21f);},descendant:function(_223){var h=Selector.handlers;for(var i=0,_226=[],node;node=_223[i];i++){h.concat(_226,node.getElementsByTagName("*"));}return _226;},child:function(_228){var h=Selector.handlers;for(var i=0,_22b=[],node;node=_228[i];i++){for(var j=0,_22e=[],_22f;_22f=node.childNodes[j];j++){if(_22f.nodeType==1&&_22f.tagName!="!"){_22b.push(_22f);}}}return _22b;},adjacent:function(_230){for(var i=0,_232=[],node;node=_230[i];i++){var next=this.nextElementSibling(node);if(next){_232.push(next);}}return _232;},laterSibling:function(_235){var h=Selector.handlers;for(var i=0,_238=[],node;node=_235[i];i++){h.concat(_238,Element.nextSiblings(node));}return _238;},nextElementSibling:function(node){while(node=node.nextSibling){if(node.nodeType==1){return node;}}return null;},previousElementSibling:function(node){while(node=node.previousSibling){if(node.nodeType==1){return node;}}return null;},tagName:function(_23c,root,_23e,_23f){_23e=_23e.toUpperCase();var _240=[],h=Selector.handlers;if(_23c){if(_23f){if(_23f=="descendant"){for(var i=0,node;node=_23c[i];i++){h.concat(_240,node.getElementsByTagName(_23e));}return _240;}else{_23c=this[_23f](_23c);}if(_23e=="*"){return _23c;}}for(var i=0,node;node=_23c[i];i++){if(node.tagName.toUpperCase()==_23e){_240.push(node);}}return _240;}else{return root.getElementsByTagName(_23e);}},id:function(_244,root,id,_247){var _248=$(id),h=Selector.handlers;if(!_244&&root==document){return _248?[_248]:[];}if(_244){if(_247){if(_247=="child"){for(var i=0,node;node=_244[i];i++){if(_248.parentNode==node){return [_248];}}}else{if(_247=="descendant"){for(var i=0,node;node=_244[i];i++){if(Element.descendantOf(_248,node)){return [_248];}}}else{if(_247=="adjacent"){for(var i=0,node;node=_244[i];i++){if(Selector.handlers.previousElementSibling(_248)==node){return [_248];}}}else{_244=h[_247](_244);}}}}for(var i=0,node;node=_244[i];i++){if(node==_248){return [_248];}}return [];}return (_248&&Element.descendantOf(_248,root))?[_248]:[];},className:function(_24c,root,_24e,_24f){if(_24c&&_24f){_24c=this[_24f](_24c);}return Selector.handlers.byClassName(_24c,root,_24e);},byClassName:function(_250,root,_252){if(!_250){_250=Selector.handlers.descendant([root]);}var _253=" "+_252+" ";for(var i=0,_255=[],node,_257;node=_250[i];i++){_257=node.className;if(_257.length==0){continue;}if(_257==_252||(" "+_257+" ").include(_253)){_255.push(node);}}return _255;},attrPresence:function(_258,root,attr){var _25b=[];for(var i=0,node;node=_258[i];i++){if(Element.hasAttribute(node,attr)){_25b.push(node);}}return _25b;},attr:function(_25e,root,attr,_261,_262){if(!_25e){_25e=root.getElementsByTagName("*");}var _263=Selector.operators[_262],_264=[];for(var i=0,node;node=_25e[i];i++){var _267=Element.readAttribute(node,attr);if(_267===null){continue;}if(_263(_267,_261)){_264.push(node);}}return _264;},pseudo:function(_268,name,_26a,root,_26c){if(_268&&_26c){_268=this[_26c](_268);}if(!_268){_268=root.getElementsByTagName("*");}return Selector.pseudos[name](_268,_26a,root);}},pseudos:{"first-child":function(_26d,_26e,root){for(var i=0,_271=[],node;node=_26d[i];i++){if(Selector.handlers.previousElementSibling(node)){continue;}_271.push(node);}return _271;},"last-child":function(_273,_274,root){for(var i=0,_277=[],node;node=_273[i];i++){if(Selector.handlers.nextElementSibling(node)){continue;}_277.push(node);}return _277;},"only-child":function(_279,_27a,root){var h=Selector.handlers;for(var i=0,_27e=[],node;node=_279[i];i++){if(!h.previousElementSibling(node)&&!h.nextElementSibling(node)){_27e.push(node);}}return _27e;},"nth-child":function(_280,_281,root){return Selector.pseudos.nth(_280,_281,root);},"nth-last-child":function(_283,_284,root){return Selector.pseudos.nth(_283,_284,root,true);},"nth-of-type":function(_286,_287,root){return Selector.pseudos.nth(_286,_287,root,false,true);},"nth-last-of-type":function(_289,_28a,root){return Selector.pseudos.nth(_289,_28a,root,true,true);},"first-of-type":function(_28c,_28d,root){return Selector.pseudos.nth(_28c,"1",root,false,true);},"last-of-type":function(_28f,_290,root){return Selector.pseudos.nth(_28f,"1",root,true,true);},"only-of-type":function(_292,_293,root){var p=Selector.pseudos;return p["last-of-type"](p["first-of-type"](_292,_293,root),_293,root);},getIndices:function(a,b,_298){if(a==0){return b>0?[b]:[];}return $R(1,_298).inject([],function(memo,i){if(0==(i-b)%a&&(i-b)/a>=0){memo.push(i);}return memo;});},nth:function(_29b,_29c,root,_29e,_29f){if(_29b.length==0){return [];}if(_29c=="even"){_29c="2n+0";}if(_29c=="odd"){_29c="2n+1";}var h=Selector.handlers,_2a1=[],_2a2=[],m;h.mark(_29b);for(var i=0,node;node=_29b[i];i++){if(!node.parentNode._counted){h.index(node.parentNode,_29e,_29f);_2a2.push(node.parentNode);}}if(_29c.match(/^\d+$/)){_29c=Number(_29c);for(var i=0,node;node=_29b[i];i++){if(node.nodeIndex==_29c){_2a1.push(node);}}}else{if(m=_29c.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(m[1]=="-"){m[1]=-1;}var a=m[1]?Number(m[1]):1;var b=m[2]?Number(m[2]):0;var _2a8=Selector.pseudos.getIndices(a,b,_29b.length);for(var i=0,node,l=_2a8.length;node=_29b[i];i++){for(var j=0;j<l;j++){if(node.nodeIndex==_2a8[j]){_2a1.push(node);}}}}}h.unmark(_29b);h.unmark(_2a2);return _2a1;},"empty":function(_2ab,_2ac,root){for(var i=0,_2af=[],node;node=_2ab[i];i++){if(node.tagName=="!"||(node.firstChild&&!node.innerHTML.match(/^\s*$/))){continue;}_2af.push(node);}return _2af;},"not":function(_2b1,_2b2,root){var h=Selector.handlers,_2b5,m;var _2b7=new Selector(_2b2).findElements(root);h.mark(_2b7);for(var i=0,_2b9=[],node;node=_2b1[i];i++){if(!node._counted){_2b9.push(node);}}h.unmark(_2b7);return _2b9;},"enabled":function(_2bb,_2bc,root){for(var i=0,_2bf=[],node;node=_2bb[i];i++){if(!node.disabled){_2bf.push(node);}}return _2bf;},"disabled":function(_2c1,_2c2,root){for(var i=0,_2c5=[],node;node=_2c1[i];i++){if(node.disabled){_2c5.push(node);}}return _2c5;},"checked":function(_2c7,_2c8,root){for(var i=0,_2cb=[],node;node=_2c7[i];i++){if(node.checked){_2cb.push(node);}}return _2cb;}},operators:{"=":function(nv,v){return nv==v;},"!=":function(nv,v){return nv!=v;},"^=":function(nv,v){return nv.startsWith(v);},"$=":function(nv,v){return nv.endsWith(v);},"*=":function(nv,v){return nv.include(v);},"~=":function(nv,v){return (" "+nv+" ").include(" "+v+" ");},"|=":function(nv,v){return ("-"+nv.toUpperCase()+"-").include("-"+v.toUpperCase()+"-");}},matchElements:function(_2db,_2dc){var _2dd=new Selector(_2dc).findElements(),h=Selector.handlers;h.mark(_2dd);for(var i=0,_2e0=[],_2e1;_2e1=_2db[i];i++){if(_2e1._counted){_2e0.push(_2e1);}}h.unmark(_2dd);return _2e0;},findElement:function(_2e2,_2e3,_2e4){if(typeof _2e3=="number"){_2e4=_2e3;_2e3=false;}return Selector.matchElements(_2e2,_2e3||"*")[_2e4||0];},findChildElements:function(_2e5,_2e6){var _2e7=_2e6.join(","),_2e6=[];_2e7.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(m){_2e6.push(m[1].strip());});var _2e9=[],h=Selector.handlers;for(var i=0,l=_2e6.length,_2ed;i<l;i++){_2ed=new Selector(_2e6[i].strip());h.concat(_2e9,_2ed.findElements(_2e5));}return (l>1)?h.unique(_2e9):_2e9;}});function $$(){return Selector.findChildElements(document,$A(arguments));}var Form={reset:function(form){$(form).reset();return form;},serializeElements:function(_2ef,_2f0){var data=_2ef.inject({},function(_2f2,_2f3){if(!_2f3.disabled&&_2f3.name){var key=_2f3.name,_2f5=$(_2f3).getValue();if(_2f5!=null){if(key in _2f2){if(_2f2[key].constructor!=Array){_2f2[key]=[_2f2[key]];}_2f2[key].push(_2f5);}else{_2f2[key]=_2f5;}}}return _2f2;});return _2f0?data:Hash.toQueryString(data);}};Form.Methods={serialize:function(form,_2f7){return Form.serializeElements(Form.getElements(form),_2f7);},getElements:function(form){return $A($(form).getElementsByTagName("*")).inject([],function(_2f9,_2fa){if(Form.Element.Serializers[_2fa.tagName.toLowerCase()]){_2f9.push(Element.extend(_2fa));}return _2f9;});},getInputs:function(form,_2fc,name){form=$(form);var _2fe=form.getElementsByTagName("input");if(!_2fc&&!name){return $A(_2fe).map(Element.extend);}for(var i=0,_300=[],_301=_2fe.length;i<_301;i++){var _302=_2fe[i];if((_2fc&&_302.type!=_2fc)||(name&&_302.name!=name)){continue;}_300.push(Element.extend(_302));}return _300;},disable:function(form){form=$(form);Form.getElements(form).invoke("disable");return form;},enable:function(form){form=$(form);Form.getElements(form).invoke("enable");return form;},findFirstElement:function(form){return $(form).getElements().find(function(_306){return _306.type!="hidden"&&!_306.disabled&&["input","select","textarea"].include(_306.tagName.toLowerCase());});},focusFirstElement:function(form){form=$(form);form.findFirstElement().activate();return form;},request:function(form,_309){form=$(form),_309=Object.clone(_309||{});var _30a=_309.parameters;_309.parameters=form.serialize(true);if(_30a){if(typeof _30a=="string"){_30a=_30a.toQueryParams();}Object.extend(_309.parameters,_30a);}if(form.hasAttribute("method")&&!_309.method){_309.method=form.method;}return new Ajax.Request(form.readAttribute("action"),_309);}};Form.Element={focus:function(_30b){$(_30b).focus();return _30b;},select:function(_30c){$(_30c).select();return _30c;}};Form.Element.Methods={serialize:function(_30d){_30d=$(_30d);if(!_30d.disabled&&_30d.name){var _30e=_30d.getValue();if(_30e!=undefined){var pair={};pair[_30d.name]=_30e;return Hash.toQueryString(pair);}}return "";},getValue:function(_310){_310=$(_310);var _311=_310.tagName.toLowerCase();return Form.Element.Serializers[_311](_310);},clear:function(_312){$(_312).value="";return _312;},present:function(_313){return $(_313).value!="";},activate:function(_314){_314=$(_314);try{_314.focus();if(_314.select&&(_314.tagName.toLowerCase()!="input"||!["button","reset","submit"].include(_314.type))){_314.select();}}catch(e){}return _314;},disable:function(_315){_315=$(_315);_315.blur();_315.disabled=true;return _315;},enable:function(_316){_316=$(_316);_316.disabled=false;return _316;}};var Field=Form.Element;var $F=Form.Element.Methods.getValue;Form.Element.Serializers={input:function(_317){switch(_317.type.toLowerCase()){case "checkbox":case "radio":return Form.Element.Serializers.inputSelector(_317);default:return Form.Element.Serializers.textarea(_317);}},inputSelector:function(_318){return _318.checked?_318.value:null;},textarea:function(_319){return _319.value;},select:function(_31a){return this[_31a.type=="select-one"?"selectOne":"selectMany"](_31a);},selectOne:function(_31b){var _31c=_31b.selectedIndex;return _31c>=0?this.optionValue(_31b.options[_31c]):null;},selectMany:function(_31d){var _31e,_31f=_31d.length;if(!_31f){return null;}for(var i=0,_31e=[];i<_31f;i++){var opt=_31d.options[i];if(opt.selected){_31e.push(this.optionValue(opt));}}return _31e;},optionValue:function(opt){return Element.extend(opt).hasAttribute("value")?opt.value:opt.text;}};Abstract.TimedObserver=function(){};Abstract.TimedObserver.prototype={initialize:function(_323,_324,_325){this.frequency=_324;this.element=$(_323);this.callback=_325;this.lastValue=this.getValue();this.registerCallback();},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},onTimerEvent:function(){var _326=this.getValue();var _327=("string"==typeof this.lastValue&&"string"==typeof _326?this.lastValue!=_326:String(this.lastValue)!=String(_326));if(_327){this.callback(this.element,_326);this.lastValue=_326;}}};Form.Element.Observer=Class.create();Form.Element.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.Observer=Class.create();Form.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.serialize(this.element);}});Abstract.EventObserver=function(){};Abstract.EventObserver.prototype={initialize:function(_328,_329){this.element=$(_328);this.callback=_329;this.lastValue=this.getValue();if(this.element.tagName.toLowerCase()=="form"){this.registerFormCallbacks();}else{this.registerCallback(this.element);}},onElementEvent:function(){var _32a=this.getValue();if(this.lastValue!=_32a){this.callback(this.element,_32a);this.lastValue=_32a;}},registerFormCallbacks:function(){Form.getElements(this.element).each(this.registerCallback.bind(this));},registerCallback:function(_32b){if(_32b.type){switch(_32b.type.toLowerCase()){case "checkbox":case "radio":Event.observe(_32b,"click",this.onElementEvent.bind(this));break;default:Event.observe(_32b,"change",this.onElementEvent.bind(this));break;}}}};Form.Element.EventObserver=Class.create();Form.Element.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.EventObserver=Class.create();Form.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.serialize(this.element);}});if(!window.Event){var Event=new Object();}Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,element:function(_32c){return $(_32c.target||_32c.srcElement);},isLeftClick:function(_32d){return (((_32d.which)&&(_32d.which==1))||((_32d.button)&&(_32d.button==1)));},pointerX:function(_32e){return _32e.pageX||(_32e.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft));},pointerY:function(_32f){return _32f.pageY||(_32f.clientY+(document.documentElement.scrollTop||document.body.scrollTop));},stop:function(_330){if(_330.preventDefault){_330.preventDefault();_330.stopPropagation();}else{_330.returnValue=false;_330.cancelBubble=true;}},findElement:function(_331,_332){var _333=Event.element(_331);while(_333.parentNode&&(!_333.tagName||(_333.tagName.toUpperCase()!=_332.toUpperCase()))){_333=_333.parentNode;}return _333;},observers:false,_observeAndCache:function(_334,name,_336,_337){if(!this.observers){this.observers=[];}if(_334.addEventListener){this.observers.push([_334,name,_336,_337]);_334.addEventListener(name,_336,_337);}else{if(_334.attachEvent){this.observers.push([_334,name,_336,_337]);_334.attachEvent("on"+name,_336);}}},unloadCache:function(){if(!Event.observers){return;}for(var i=0,_339=Event.observers.length;i<_339;i++){Event.stopObserving.apply(this,Event.observers[i]);Event.observers[i][0]=null;}Event.observers=false;},observe:function(_33a,name,_33c,_33d){_33a=$(_33a);_33d=_33d||false;if(name=="keypress"&&(Prototype.Browser.WebKit||_33a.attachEvent)){name="keydown";}Event._observeAndCache(_33a,name,_33c,_33d);},stopObserving:function(_33e,name,_340,_341){_33e=$(_33e);_341=_341||false;if(name=="keypress"&&(Prototype.Browser.WebKit||_33e.attachEvent)){name="keydown";}if(_33e.removeEventListener){_33e.removeEventListener(name,_340,_341);}else{if(_33e.detachEvent){try{_33e.detachEvent("on"+name,_340);}catch(e){}}}}});if(Prototype.Browser.IE){Event.observe(window,"unload",Event.unloadCache,false);}var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;},realOffset:function(_342){var _343=0,_344=0;do{_343+=_342.scrollTop||0;_344+=_342.scrollLeft||0;_342=_342.parentNode;}while(_342);return [_344,_343];},cumulativeOffset:function(_345){var _346=0,_347=0;do{_346+=_345.offsetTop||0;_347+=_345.offsetLeft||0;_345=_345.offsetParent;}while(_345);return [_347,_346];},positionedOffset:function(_348){var _349=0,_34a=0;do{_349+=_348.offsetTop||0;_34a+=_348.offsetLeft||0;_348=_348.offsetParent;if(_348){if(_348.tagName=="BODY"){break;}var p=Element.getStyle(_348,"position");if(p=="relative"||p=="absolute"){break;}}}while(_348);return [_34a,_349];},offsetParent:function(_34c){if(_34c.offsetParent){return _34c.offsetParent;}if(_34c==document.body){return _34c;}while((_34c=_34c.parentNode)&&_34c!=document.body){if(Element.getStyle(_34c,"position")!="static"){return _34c;}}return document.body;},within:function(_34d,x,y){if(this.includeScrollOffsets){return this.withinIncludingScrolloffsets(_34d,x,y);}this.xcomp=x;this.ycomp=y;this.offset=this.cumulativeOffset(_34d);return (y>=this.offset[1]&&y<this.offset[1]+_34d.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+_34d.offsetWidth);},withinIncludingScrolloffsets:function(_350,x,y){var _353=this.realOffset(_350);this.xcomp=x+_353[0]-this.deltaX;this.ycomp=y+_353[1]-this.deltaY;this.offset=this.cumulativeOffset(_350);return (this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+_350.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+_350.offsetWidth);},overlap:function(mode,_355){if(!mode){return 0;}if(mode=="vertical"){return ((this.offset[1]+_355.offsetHeight)-this.ycomp)/_355.offsetHeight;}if(mode=="horizontal"){return ((this.offset[0]+_355.offsetWidth)-this.xcomp)/_355.offsetWidth;}},page:function(_356){var _357=0,_358=0;var _359=_356;do{_357+=_359.offsetTop||0;_358+=_359.offsetLeft||0;if(_359.offsetParent==document.body){if(Element.getStyle(_359,"position")=="absolute"){break;}}}while(_359=_359.offsetParent);_359=_356;do{if(!window.opera||_359.tagName=="BODY"){_357-=_359.scrollTop||0;_358-=_359.scrollLeft||0;}}while(_359=_359.parentNode);return [_358,_357];},clone:function(_35a,_35b){var _35c=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});_35a=$(_35a);var p=Position.page(_35a);_35b=$(_35b);var _35e=[0,0];var _35f=null;if(Element.getStyle(_35b,"position")=="absolute"){_35f=Position.offsetParent(_35b);_35e=Position.page(_35f);}if(_35f==document.body){_35e[0]-=document.body.offsetLeft;_35e[1]-=document.body.offsetTop;}if(_35c.setLeft){_35b.style.left=(p[0]-_35e[0]+_35c.offsetLeft)+"px";}if(_35c.setTop){_35b.style.top=(p[1]-_35e[1]+_35c.offsetTop)+"px";}if(_35c.setWidth){_35b.style.width=_35a.offsetWidth+"px";}if(_35c.setHeight){_35b.style.height=_35a.offsetHeight+"px";}},absolutize:function(_360){_360=$(_360);if(_360.style.position=="absolute"){return;}Position.prepare();var _361=Position.positionedOffset(_360);var top=_361[1];var left=_361[0];var _364=_360.clientWidth;var _365=_360.clientHeight;_360._originalLeft=left-parseFloat(_360.style.left||0);_360._originalTop=top-parseFloat(_360.style.top||0);_360._originalWidth=_360.style.width;_360._originalHeight=_360.style.height;_360.style.position="absolute";_360.style.top=top+"px";_360.style.left=left+"px";_360.style.width=_364+"px";_360.style.height=_365+"px";},relativize:function(_366){_366=$(_366);if(_366.style.position=="relative"){return;}Position.prepare();_366.style.position="relative";var top=parseFloat(_366.style.top||0)-(_366._originalTop||0);var left=parseFloat(_366.style.left||0)-(_366._originalLeft||0);_366.style.top=top+"px";_366.style.left=left+"px";_366.style.height=_366._originalHeight;_366.style.width=_366._originalWidth;}};if(Prototype.Browser.WebKit){Position.cumulativeOffset=function(_369){var _36a=0,_36b=0;do{_36a+=_369.offsetTop||0;_36b+=_369.offsetLeft||0;if(_369.offsetParent==document.body){if(Element.getStyle(_369,"position")=="absolute"){break;}}_369=_369.offsetParent;}while(_369);return [_36b,_36a];};}Element.addMethods();var IS_PRODUCTION_RELEASE=true;var RELEASE_VERSION="2.2.8";if(IS_PRODUCTION_RELEASE){webName="web";}else{webName="weefly";}HOST_URL="http://"+location.host;APP_URL=HOST_URL+"/"+webName;SERVER_URL=APP_URL+"/server";CONTROLLER_URL=APP_URL+"/controller";TEMPLATE_URL=APP_URL+"/scripts/view/templates";PREBOOKING_URL=APP_URL+"/pre-booking";WHOLE_URL=location.href;MAX_DISPLAYABLE_AIRPORTS=5;USE_LONG_PERMALINK=true;LOGGED=false;SESSION_KEEPER_TIME=9*60*1000;SESSION_TIMEOUT=3*60*60*1000;SESSION_CURRENT_TIME=0;Language={ENGLISH:"EN",ITALIAN:"IT",FRENCH:"FR",GERMAN:"DE"};DEFAULT_LANGUAGE=Language.ENGLISH;CURRENT_LANGUAGE=DEFAULT_LANGUAGE;FORCE_LANGUAGE_TO_DEFAULT=false;Code={CONNECTION_FAILURE:-1,MALFORMED_RESPONSE:-2};Page={LOGIN:"loginPage",AIRPORT_SELECTION:"airportSelectionPage",TRIP_SELECTION:"tripSelectionPage",FLIGHT_RESULT:"flightResultPage",PRE_BOOKING:"preBookingPage",CONTACT_US:"contactUsPage",TERMS_OF_USE:"termsOfUsePage",REGISTRATION:"registrationPage",ACCOUNT:"accountPage",HOTEL:"hotelPage"};Command={LOGIN:"Login",PING:"ping",GET_USER:"GetUser",GET_COUNTRY:"GetCountry",GET_AIRPORT:"GetAirport",START_SEARCH:"StartSearch",STOP_SEARCH:"StopSearch",GET_FLIGHT:"GetFlight",GET_SPONSOR:"GetSponsor",REGISTER:"RegisterUser",SET_PREFERENCE:"SetPreference",GET_AIRPORT_LIKE:"GetAirportLike",GET_BOX:"GetBox",SEND_RESULT_LINK:"SendResultLink",GET_DAY_FARE:"GetDayFare",GET_HOT_ROUTE:"GetHotRoute",GET_OFFER_ROUTE:"GetOfferRoute",GET_OFFER_FLIGHT:"GetOfferFlight",GET_BOOKING_LINK:"GetBookingLink"};ControllerCommand={QUERY_GETTER:"QueryGetter",QUERY_SETTER:"QuerySetter",RESET_STATE:"StateResetter",RESET_AIRPORT_STATE:"AirportStateResetter",RESET_TRIP_STATE:"TripStateResetter",LANGUAGE_SWITCHER:"LanguageSwitcher",SESSION_WRITER:"ParamInSessionWriter"};DataType={JSON:"Json",XML:"Xml",CSV:"CSV"};AirportLikeOutput={CSV:"CSV"};LanguageBasedAC={ES:"valeri",FR:"maifredi",DE:"maifredi"};DEFAULT_DATA_TYPE=DataType.JSON;DEFAULT_AIRPORT_LIKE_OUTPUT=AirportLikeOutput.CSV;BASE_BOOKING_HOTEL_URL="http://hotel.weefly.com/";BASE_BOOKING_URL=BASE_BOOKING_HOTEL_URL+"index.$_LANGUAGE_$.html?"+"sid=daae56cef04544e76dc9587f3ab437bb&"+"return_url=http%3A%2F%2Fwww.booking.com%2Fsearchresults.html&found_addresses=&"+"error_url=http%3A%2F%2Fwww.booking.com%2Findex.html%3Fsid%3Da88ba46fffeee010c73e4b0d22eb492e%3B&"+"sid=a88ba46fffeee010c73e4b0d22eb492e&order=&addressAddress=&addressCity=&addressZIP=&"+"addressCountry=&si=ai%2Cco%2Cci%2Cre&"+"ss=$_DESTINATION_$&checkin_monthday=$_CHECK_IN_DAY_$&checkin_year_month=$_CHECK_IN_YEAR_MONTH_$&"+"checkout_monthday=$_CHECK_OUT_DAY_$&checkout_year_month=$_CHECK_OUT_YEAR_MONTH_$&"+"do_availability_check=on&radius=&aid=310931";CACHED_ADVERT_BASE_URL={BOOKING:BASE_BOOKING_HOTEL_URL+"searchresults.html?sid=daae56cef04544e76dc9587f3ab437bb&aid=310931&ss=$_DESTINATION_$&si=ci,ai,re&lang=$_LANGUAGE_$",CARHIRE:"http://www.carhire3000.com/Home.do?affiliateCode=gaplus"};RequestBroker={COMMAND_PARAM:"cmd",sendResultLink:function(_36c){return RequestBroker._commonJsonBroker(SERVER_URL,Command.SEND_RESULT_LINK,_36c,RequestBroker._jsonParse,false);},ping:function(_36d){return RequestBroker._commonJsonBroker(SERVER_URL,Command.PING,_36d,RequestBroker._jsonParse,false);},getAirport:function(_36e){RequestBroker._commonJsonBroker(SERVER_URL,Command.GET_AIRPORT,_36e,RequestBroker._jsonParse,"airports");},startSearch:function(_36f){RequestBroker._commonJsonBroker(SERVER_URL,Command.START_SEARCH,_36f,RequestBroker._jsonParse,"sid");},startSearchNoReturn:function(_370){RequestBroker._commonJsonBroker(SERVER_URL,Command.START_SEARCH,_370,RequestBroker._jsonParse,false);},getFlight:function(_371){return RequestBroker._commonJsonBroker(SERVER_URL,Command.GET_FLIGHT,_371,RequestBroker._jsonParse,false);},stopSearch:function(_372){RequestBroker._commonJsonBroker(SERVER_URL,Command.STOP_SEARCH,_372,RequestBroker._jsonParseNoErrorLog,false);},getSponsor:function(_373){RequestBroker._commonJsonBroker(SERVER_URL,Command.GET_SPONSOR,_373,RequestBroker._jsonParseNoErrorLog,"sponsorBoxes");},getBookingLink:function(_374){RequestBroker._commonJsonBroker(SERVER_URL,Command.GET_BOOKING_LINK,_374,RequestBroker._jsonParse,false);},register:function(_375){RequestBroker._commonJsonBroker(SERVER_URL,Command.REGISTER,_375,RequestBroker._jsonParse,false);},getActivationCodeImage:function(_376){RequestBroker._commonJsonBroker(SERVER_URL,Command.REGISTER,_376,RequestBroker._jsonParse,false);},recoverPassword:function(_377){RequestBroker._commonJsonBroker(SERVER_URL,Command.REGISTER,_377,RequestBroker._jsonParse,false);},changeAccountData:function(_378){RequestBroker._commonJsonBroker(SERVER_URL,Command.REGISTER,_378,RequestBroker._jsonParse,false);},changePassword:function(_379){RequestBroker._commonJsonBroker(SERVER_URL,Command.REGISTER,_379,RequestBroker._jsonParse,false);},login:function(_37a){RequestBroker._commonJsonBroker(SERVER_URL,Command.LOGIN,_37a,RequestBroker._jsonParse,false);},signOut:function(_37b){RequestBroker._commonJsonBroker(SERVER_URL,Command.LOGIN,_37b,RequestBroker._jsonParse,false);},register:function(_37c){RequestBroker._commonJsonBroker(SERVER_URL,Command.REGISTER,_37c,RequestBroker._jsonParse,false);},getUser:function(_37d){RequestBroker._commonJsonBroker(SERVER_URL,Command.GET_USER,_37d,RequestBroker._jsonParse,false);},setPreference:function(_37e){RequestBroker._commonJsonBroker(SERVER_URL,Command.SET_PREFERENCE,_37e,RequestBroker._jsonParse,false);},getTemplate:function(_37f){RequestBroker._commonHtmlBroker(_37f.url,"",_37f);},getAdvertBox:function(_380){RequestBroker._commonHtmlBroker(SERVER_URL,Command.GET_BOX,_380);},getSponsor:function(_381){RequestBroker._commonJsonBroker(SERVER_URL,Command.GET_SPONSOR,_381,RequestBroker._jsonParseNoErrorLog,"sponsorBoxes");},changeClientLanguage:function(_382){RequestBroker._commonJsonBroker(CONTROLLER_URL,ControllerCommand.LANGUAGE_SWITCHER,_382,RequestBroker._jsonParseNoErrorLog,false);},writeParamInSession:function(_383){RequestBroker._commonJsonBroker(CONTROLLER_URL,ControllerCommand.SESSION_WRITER,_383,RequestBroker._jsonParseNoErrorLog,false);},changeServerLanguage:function(_384){RequestBroker._commonJsonBroker(SERVER_URL,Command.SET_PREFERENCE,_384,RequestBroker._jsonParse,false);},storeAffiliationCode:function(_385){RequestBroker._commonJsonBroker(SERVER_URL,Command.SET_PREFERENCE,_385,RequestBroker._jsonParseNoErrorLog,false);},getDayFare:function(_386){RequestBroker._commonJsonBroker(SERVER_URL,Command.GET_DAY_FARE,_386,RequestBroker._jsonParseNoErrorLog,false);},getOfferFlight:function(_387){RequestBroker._commonJsonBroker(SERVER_URL,Command.GET_OFFER_FLIGHT,_387,RequestBroker._jsonParseNoErrorLog,false);},getHotRoute:function(_388){RequestBroker._commonJsonBroker(SERVER_URL,Command.GET_HOT_ROUTE,_388,RequestBroker._jsonParseNoErrorLog,false);},getOfferRoute:function(_389){RequestBroker._commonJsonBroker(SERVER_URL,Command.GET_OFFER_ROUTE,_389,RequestBroker._jsonParseNoErrorLog,false);},writeQueryInSession:function(_38a){RequestBroker._commonJsonBroker(CONTROLLER_URL,ControllerCommand.QUERY_SETTER,_38a,RequestBroker._jsonParseNoErrorLog,false);},readQueryFromSession:function(_38b){RequestBroker._commonJsonBroker(CONTROLLER_URL,ControllerCommand.QUERY_GETTER,_38b,RequestBroker._jsonParseNoErrorLog,"query");},resetSession:function(_38c){_38c=Object.extend(_38c||{},{asynchronous:false});RequestBroker._commonJsonBroker(CONTROLLER_URL,ControllerCommand.RESET_STATE,_38c,RequestBroker._jsonParseNoErrorLog,false);},resetAirportSession:function(_38d){_38d=Object.extend(_38d||{},{asynchronous:false});RequestBroker._commonJsonBroker(CONTROLLER_URL,ControllerCommand.RESET_AIRPORT_STATE,_38d,RequestBroker._jsonParseNoErrorLog,false);},resetTripSession:function(){options=Object.extend(options||{},{asynchronous:false});RequestBroker._commonJsonBroker(CONTROLLER_URL,ControllerCommand.RESET_TRIP_STATE,options,RequestBroker._jsonParseNoErrorLog,false);},_commonJsonBroker:function(url,cmd,_390,_391,_392){var opts=RequestBroker._prepareOptions(_390);opts.parameters=RequestBroker._buildParams(cmd,opts);opts.onSuccess=function(xhr){var resp=_391(cmd,xhr);if(!resp){return;}_392?opts.successCallback(resp[_392]):opts.successCallback(resp);};opts.onFailure=function(){if(opts.failureCallback!=Prototype.emptyFunction){opts.failureCallback();}else{WeeFlyUtil.connectionFailure(cmd);}};return new Ajax.Request(url,opts);},_commonHtmlBroker:function(url,cmd,_398){var opts=RequestBroker._prepareOptions(_398);opts.parameters=RequestBroker._buildParams(cmd,opts);opts.onSuccess=function(xhr){if(!xhr){return;}opts.successCallback(xhr.responseText);};opts.onFailure=function(){if(opts.failureCallback!=Prototype.emptyFunction){opts.failureCallback();}else{WeeFlyUtil.connectionFailure(cmd);}};return new Ajax.Request(url,opts);},_buildParams:function(cmd,_39c){return RequestBroker.COMMAND_PARAM+"="+cmd+(_39c.params!=""?(_39c.params.startsWith("&")?_39c.params:"&"+_39c.params):"");},_prepareOptions:function(_39d){return Object.extend({params:"",successCallback:Prototype.emptyFunction,failureCallback:Prototype.emptyFunction},_39d||{});},_jsonParseNoErrorLog:function(cmd,xhr){var _3a0=ParserFactory.createParser(DataType.JSON,cmd);var resp=_3a0.parse(xhr,true);return resp?resp:false;},_jsonParse:function(cmd,xhr){var _3a4=ParserFactory.createParser(DataType.JSON,cmd);var resp=_3a4.parse(xhr);return resp?resp:false;}};Util={isValidMail:function(_3a6){if(!_3a6){return false;}var _3a7=/^(?:\w+\.?)*\w+@(?:\w+\.{1})+\w+$/;return _3a7.test(_3a6);},makePseudoLink:function(_3a8,_3a9){var _3aa={color:"#234e87",cursor:"pointer"};_3a9=Object.clone(_3aa,_3a9||{});$(_3a8).setStyle(_3a9);Event.observe($(_3a8),"mouseover",function(){$(_3a8).style.textDecoration="underline";});Event.observe($(_3a8),"mouseout",function(){$(_3a8).style.textDecoration="none";});},deepClone:function(obj){var ret={};for(p in obj){ret[p]=(typeof (obj[p])=="object")?Util.deepClone(obj[p]):obj[p];}return ret;},extractRegExGroup:function(_3ad,_3ae,_3af){var ret=false;var _3b1=_3ae.exec(_3ad);if(_3b1){ret=_3b1[_3af];}return ret;},redirectTo:function(url){location.href=url;},isEnterKey:function(key){return (key==Event.KEY_RETURN);},getKeyCode:function(evt){var key=evt.which||evt.keyCode;return key;},isFunction:function(type){return (typeof type=="function");},isNumber:function(type){return ((type+"").gsub(/[^\d\.,]/,"").strip()?true:false);},getBrowserDimension:function(){var w,h;if(Prototype.Browser.IE){w=document.body.clientWidth;h=document.body.clientHeight;}else{w=window.innerWidth;h=window.innerHeight;}return {height:h,width:w};},addOptionsToCombo:function(_3ba,_3bb,_3bc){for(var i=1;i<=_3bb;i++){var ele;ele=document.createElement("option");ele.value=i;if(i==_3bc){ele.selected="selected";}ele.appendChild(document.createTextNode(""+i));$(_3ba).appendChild(ele);}},getDateAsString:function(date){var _3c0=date.getFullYear();var _3c1=date.getMonth()+1<10?"0"+(date.getMonth()+1):date.getMonth()+1;var _3c2=date.getDate()<10?"0"+date.getDate():date.getDate();var _3c3=""+_3c0+_3c1+_3c2;return _3c3;},lpad:function(str,ch,len){str+="";var slen=str.length;for(var i=0;i<len-slen;i++){str=ch+str;}return str;},extractTextFromCombo:function(_3c9){var ret=[];for(var i=0;i<_3c9.options.length;i++){if(_3c9.options[i].selected){ret.push(_3c9.options[i].text);}}return ret.length==1?ret[0]:ret;},getInstanceFromName:function(_3cc,_3cd){var _3ce=null;try{_3ce=eval("new "+_3cc+"();");}catch(e){_3ce=eval("new "+_3cd+"();");}return _3ce;},getMultivalueQuery:function(key,_3d0){var ret="";for(var i=0;i<_3d0.length;++i){ret+=key+"="+_3d0[i]+"&";}return ret.substr(0,ret.length-1);},centerElement:function(_3d3,_3d4){var _3d5=$(_3d4)||document.body;var elem=$(_3d3);var _3d7=elem.offsetWidth;var _3d8=elem.offsetHeight;var _3d9=_3d5.clientWidth;var _3da=Util.getBrowserDimension().height;var left=(_3d9-_3d7)/2;var top=((_3da-_3d8)/2)-10;if(Prototype.Browser.IE){top=240;}elem.style.position="fixed";elem.style.zIndex="1000";elem.style.left=left+"px";elem.style.top=top+"px";},closeOpenedWindow:function(wnd){try{wnd.close();}catch(e){}},executeFunctionOnEnterKeyPressed:function(evt,_3df){var key=Util.getKeyCode(evt);Event.stop(evt);if(Util.isEnterKey(key)){_3df();}},roundCorners:function(_3e1,_3e2,_3e3,_3e4,_3e5){if(!NiftyCheck()){return;}Rounded(_3e1,_3e2,_3e3,_3e4,_3e5);}};StringBuffer=Class.create();StringBuffer.prototype={initialize:function(str){this._arr=[];if(str){this._arr.push(str);}},append:function(str){if(arguments.length!=1){throw new Error("append() requires one argument");}this._arr.push(str);return this;},toString:function(){return this._arr.length!=0?this._arr.join(""):"";},empty:function(){this._arr.clear();}};INFO_ID="infoBlock";WARNING_ID="warningBlock";ERROR_ID="errorBlock";Object.extend(Event,{KEY_SPACE:32});Object.extend(Element,{makeVisible:function(_3e8){$(_3e8).style.visibility="visible";},makeHidden:function(_3e9){$(_3e9).style.visibility="hidden";},isVisible:function(_3ea){return $(_3ea).style.visibility.strip().toLowerCase()=="visible";},isDisplayed:function(_3eb){return $(_3eb).style.display.strip().toLowerCase()!="none";}});WeeFlyUtil={fixPriceField:function(_3ec){if(_3ec.indexOf(".")==-1){_3ec+=".00";}return _3ec;},getOrderingTail:function(_3ed){_3ed=_3ed.replace(/\./,"").replace(/,/,"");var _3ee=[9,8,7,6,5,4,3,2,1,0];return _3ed.gsub(/\d/,function(num){return _3ee[num[0]];});},buildTooManyConnectionMsg:function(_3f0){defaultOption={includeHeader:true,includeFooter:true,boldClass:"emLabel",emailImg:"weefly-support.png"};_3f0=Object.extend(defaultOption,_3f0||{});var html="";if(_3f0.includeHeader){html="<div class='importantMsg'>"+Label.Common.Misc.importantMsg+"</div>";}html+="<div class='"+_3f0.boldClass+"' style='margin: 10px 0 5px 0;'>"+Label.FlightSearch.tooManyConnectionsHeader+"."+"</div>";html+=Label.FlightSearch.tooManyConnectionsRow1+":";html+="<ul style='padding-top: 0;margin-top: 0;padding-bottom: 0;margin-bottom: 0;'>";html+="<li>"+Label.FlightSearch.tooManyConnectionsRow2+"."+"</li>";html+="<li>"+Label.FlightSearch.tooManyConnectionsRow3+"."+"</li>";html+="<li>"+Label.FlightSearch.tooManyConnectionsRow4+"."+"</li>";html+="</ul>";html+="<div class='"+_3f0.boldClass+"' style='margin-top: 5px;'>"+Label.FlightSearch.tooManyConnectionsRow5+":"+"</div>";html+="<div style='margin: 5px 0 5px 0;'><img alt='WeeFly Support' title='WeeFly Support' src='"+APP_URL+"/images/e-mails/"+_3f0.emailImg+"' /></div>";if(_3f0.includeFooter){html+="<div onmouseover=\"this.style.textDecoration='underline'\" onmouseout=\"this.style.textDecoration='none'\" class='textualButton' onclick='javascript:Util.redirectTo(\""+APP_URL+"/home\")'>"+Label.FlightSearch.tooManyConnectionsFooter+"</div>";}return html;},getTemplate:function(_3f2){var ret;RequestBroker.getTemplate({asynchronous:false,url:_3f2,successCallback:function(resp){ret=resp;}});return ret;},checkCookie:function(){if(LOGGED){return true;}return WeeFlyUtil.sendPing();},sendPing:function(){RequestBroker.ping({reqId:"checkCookieReq",asynchronous:false,successCallback:function(resp){if(resp&&resp.errorCode==0){LOGGED=true;}else{LOGGED=false;}},failureCallback:function(){LOGGED=false;}});return LOGGED;},getUserData:function(){if(!LOGGED){return false;}var ret=false;RequestBroker.getUser({reqId:"getUserReq",asynchronous:false,successCallback:function(resp){ret=resp;},failureCallback:function(){ret=false;}});return ret;},signOut:function(){RequestBroker.signOut({params:"signOut=true",asynchronous:false,successCallback:function(resp){SessionController.reset();Util.redirectTo(APP_URL+"/home");}});},connectionFailure:function(cmd){var _3fa={command:cmd,code:Code.CONNECTION_FAILURE,action:Action.DEAD_PAGE};errorHandler.dispatch(_3fa);},connectionFailureBlank:function(cmd,_3fc){var _3fd={command:cmd,code:Code.CONNECTION_FAILURE,action:Action.BLANK_PAGE};errorHandler.dispatch(_3fd,_3fc);},setTimeout:function(req,_3ff){if(!_3ff){_3ff=60000;}else{_3ff=1000*_3ff;}var to=window.setTimeout(function(){WeeFlyUtil.checkTimeout(req);},_3ff);return to;},clearTimeout:function(ref){window.clearTimeout(ref);},checkTimeout:function(req){if(!WeeFlyUtil.callInProgress(req)){WeeFlyUtil.connectionFailure(req.options.parameters.cmd);}},callInProgress:function(req){switch(req.transport.readyState){case 1:case 2:case 3:return true;break;default:return false;break;}},checkMandatoryParams:function(_404){if(!_404){return false;}_404.each(function(_405){Element.hide(_405.errorBox);});var _406;for(var i=0;i<_404.length;i++){_406=_404[i];if($F(_406.field)==""){WeeFlyUtil.displayPermanentError(_406.errorBox,_406.errorLabel);return false;}}return true;},displayPermanentError:function(_408,msg){$(_408).innerHTML=msg;Element.show(_408);new Effect.Highlight(_408,{startcolor:"#d5ffd5",duration:1.5});},doLogin:function(prms){errorHandler=new ErrorHandler(Page.LOGIN);RequestBroker.login({params:prms,asynchronous:false,successCallback:function(resp){if(resp&&resp.errorCode==0){LOGGED=true;Util.redirectTo(APP_URL+"/home");}}});},doRegister:function(prms,_40d){if(prms.indexOf("allowMail")==-1){prms+="&allowMail=false";}errorHandler=new ErrorHandler(Page.REGISTRATION);RequestBroker.register({params:prms,asynchronous:false,successCallback:function(resp){if(resp&&resp.errorCode==0){Element.hide("errorBlock");var _40f=Util.extractRegExGroup(prms,/userId=(.+?)[&|\n|\r]/,1);var _410=Util.extractRegExGroup(prms,/password=(.+?)[&|\n|\r]/,1);WeeFlyUtil.displayRedirectNotice({elemId:"registrationResultBlock",callback:function(){WeeFlyUtil.doLogin("userId="+_40f+"&password="+_410+"&retain=true");},notice:_40d+"...",timeout:5,placeholder:"@SEC@"});}}});},displayRedirectNotice:function(_411){var _412={callback:Prototype.emptyFunction(),timeout:3,elemId:"",notice:"",placeholder:"",hideOnFinish:true};Object.extend(_412,_411||{});var _413=new RegExp(_412.placeholder,"gi");var _414=_412.placeholder!=""?_412.notice.replace(_413,_412.timeout):_412.notice+" ("+_412.timeout+")";$(_412.elemId).innerHTML=_414;Element.show(_412.elemId);window.setTimeout(function(){WeeFlyUtil.infoTimeout(_412);},1000);},infoTimeout:function(_415){_415.timeout--;var _416=new RegExp(_415.placeholder,"gi");if(_415.timeout>0){var _417=_415.placeholder!=""?_415.notice.replace(_416,_415.timeout):_415.notice+" ("+_415.timeout+")";$(_415.elemId).innerHTML=_417;window.setTimeout(function(){WeeFlyUtil.infoTimeout(_415);},1000);}else{if(_415.hideOnFinish){Element.hide(_415.elemId);}_415.callback.call(null);}},getActivationCodeImage:function(){errorHandler=new ErrorHandler(Page.REGISTRATION);RequestBroker.getActivationCodeImage({params:"generateActivationCode=true",asynchronous:false,successCallback:function(resp){if(resp&&resp.errorCode==0){var _419=document.createElement("img");_419.src=APP_URL+"/"+resp.activationCodeLink;$("activationCodeImgBox").innerHTML="";$("activationCodeImgBox").appendChild(_419);}}});},recoverPassword:function(_41a,_41b){if(!_41a){return;}errorHandler=new ErrorHandler(Page.REGISTRATION);RequestBroker.recoverPassword({params:"sendMail=true&userId="+_41a,asynchronous:false,successCallback:function(resp){if(resp&&resp.errorCode==0){$("prResultBox").innerHTML=_41b+" "+resp.email;Element.show("prResultBox");}}});},changeAccountData:function(prms,_41e){if(prms.indexOf("allowMail")==-1){prms+="&allowMail=false";}errorHandler=new ErrorHandler(Page.ACCOUNT);RequestBroker.changeAccountData({params:prms,asynchronous:false,successCallback:function(resp){if(resp&&resp.errorCode==0){$("accountResultBox").innerHTML=_41e;Element.show("accountResultBox");}}});},changePassword:function(prms,_421){errorHandler=new ErrorHandler(Page.ACCOUNT);RequestBroker.changeAccountData({params:prms,asynchronous:false,successCallback:function(resp){if(resp&&resp.errorCode==0){$("accountResultBox").innerHTML=_421;Element.show("accountResultBox");}}});},checkLanguageBasedAC:function(){if(WHOLE_URL.search(/weefly\.es/i)!=-1||WHOLE_URL.search(/lang=ES/i)!=-1){WeeFlyUtil.storeAffiliationCode(LanguageBasedAC.ES);}else{if(WHOLE_URL.search(/weefly\.fr/i)!=-1||WHOLE_URL.search(/lang=FR/i)!=-1){WeeFlyUtil.storeAffiliationCode(LanguageBasedAC.FR);}else{if(WHOLE_URL.search(/weefly\.de/i)!=-1){WeeFlyUtil.storeAffiliationCode(LanguageBasedAC.DE);}}}},storeAffiliationCode:function(ac){RequestBroker.storeAffiliationCode({params:"ac="+ac});RequestBroker.writeParamInSession({params:"ac="+ac,asynchronous:false});WeeFlyUtil.addACToHotelLinks(ac);},getAirportSummary:function(_424,max){var ret="";for(var i=0;i<_424.length;++i){if(i==max){ret+=" ...";break;}ret+=_424[i];if(i!=max-1&&i!=_424.length-1){ret+=" | ";}}return ret;},dateToDisplayableString:function(date){var year=date.substring(0,4);var _42a=parseInt(date.substring(4,6));var day=date.substring(6,8);return day+" "+MonthNames[_42a-1]+" "+year;},include:function(_42c){document.write("<script src='"+_42c+"' type='text/javascript'></script>");},fixCurrencySymbol:function(_42d){var _42e=[{literal:"EUR",symbol:"&#8364;"},{literal:"GBP",symbol:"&#163;"},{literal:"USD",symbol:"$"}];var cs=_42e.find(function(_430){return _430.literal==_42d;});if(cs){return cs.symbol;}else{return _42d;}},setTooltipNewStyle:function(_431,_432){var h=_432?_432:"auto";_431.addTooltipStyles({"background":"url("+APP_URL+"/images/tooltips/tip-center.jpg) top left repeat-y","height":h,"width":"187px"});_431.addTitleStyles({"background-color":"transparent","color":"#234e87"});_431.addTextStyles({"background-color":"transparent"});},displayLoading:function(_434){$(_434).innerHTML=$("loading").innerHTML;},hideError:function(_435){if(_435){$(ERROR_ID).style.visibility="hidden";}else{Element.hide(ERROR_ID);}},showInfo:function(msg){$(INFO_ID).innerHTML=msg;Element.show(INFO_ID);},showWarning:function(msg){$(WARNING_ID).innerHTML=msg;Element.show(WARNING_ID);},showError:function(err){WeeFlyUtil.fillErrorBody(err);Element.show(ERROR_ID);},showBoxedError:function(err){WeeFlyUtil.fillErrorBody(err);if(err&&err.block){Util.centerElement(ERROR_ID,err.block);$(ERROR_ID).style.visibility="visible";}if(Prototype.Browser.WebKit){Element.hide(ERROR_ID);new Effect.Grow(ERROR_ID);}new Draggable(ERROR_ID);},fillErrorBody:function(err){var msg=err.message||"";var _43c=err.block||null;var act="WeeFlyUtil.hideError(false);";if(_43c){act="WeeFlyUtil.hideError(true);";}var _43e="<div style='padding: 5px;'>";_43e+="<div class='fakeLink tooltipColor' style='float: right;' onclick='javascript:"+act+"'>";_43e+=" <img src='"+APP_URL+"/images/buttons/close-x.jpg' /></div>";_43e+="</div>";var body="<div style='padding: 10px;'>";body+=msg;body+="</div>";var _440="<div id='errorBoxedContainer' style='width: 402px; background: #FFD0C1; border: 1px solid #666666;'>";_440+=_43e+body;_440+="</div>";$(ERROR_ID).innerHTML=_440;},showPermanentError:function(err){var msg=err.message;WeeFlyUtil.displayPermanentError(ERROR_ID,msg);},fixLinkVisibility:function(user){if(user.profile=="GUEST"){Element.hide("registeredLinkBox");Element.show("guestLinkBox");}else{$("usernameBox").innerHTML=user.userId;Element.hide("guestLinkBox");Element.show("registeredLinkBox");}},addACToHotelLinks:function(ac){if(!ac){return;}$$(".hotel-link-ph").each(function(val){if($(val).href.search(/label=/i)==-1){$(val).href=$(val).href+"&label="+ac;}});},keepSessionAlive:function(){SESSION_KEEPER=window.setInterval(function(){WeeFlyUtil.sendPing();SESSION_CURRENT_TIME+=SESSION_KEEPER_TIME;if(SESSION_CURRENT_TIME>=SESSION_TIMEOUT){window.clearInterval(SESSION_KEEPER);}},SESSION_KEEPER_TIME);}};SessionController={write:function(_446){RequestBroker.writeQueryInSession({params:_446,asynchronous:false});},read:function(_447){RequestBroker.readQueryFromSession({asynchronous:false,successCallback:_447});},reset:function(){RequestBroker.resetSession();},resetAirports:function(){RequestBroker.resetAirportSession();},resetTrip:function(){RequestBroker.resetTripSession();}};LanguageController={checkLanguage:function(_448){if(CURRENT_LANGUAGE!=_448&&LanguageController.isLanguageAllowed(_448)){LanguageController.changeLanguage(_448);}},extractLanguage:function(user){if(user.profile.toLowerCase()!="guest"){return user.prefLanguage;}else{return LanguageController.extractLanguageFromHostname();}},extractLanguageFromPermalink:function(){var _44a=WHOLE_URL;var _44b=/\/\w+?__(\w+?)_/;var lang=Util.extractRegExGroup(_44a,_44b,1);if(!LanguageController.isLanguageAllowed(lang)){lang=DEFAULT_LANGUAGE;}return lang;},isLanguageAllowed:function(_44d){var ret=false;for(var l in Language){if(Language[l]==_44d){ret=true;break;}}return ret;},changeLanguage:function(lang){var _451=CURRENT_LANGUAGE;LanguageController.changeServerLanguage(lang);CURRENT_LANGUAGE=lang;try{SessionController.resetAirports();}catch(e){}var loc=WHOLE_URL;if(loc.search(/low-cost-day-by-day-fares/i)!=-1){loc=loc.replace("/"+_451+"/","/"+lang+"/");}else{if(loc.search(/hotel-hot-deals/i)!=-1){loc=loc.substring(0,loc.lastIndexOf("/"))+"/"+lang;}else{if(loc.search(/lang=/i)!=-1){loc=loc.replace(/lang=\w\w/i,"lang="+lang);}}}Util.redirectTo(loc);},changeClientLanguage:function(lang){RequestBroker.changeClientLanguage({params:"lang="+lang,asynchronous:false});},changeServerLanguage:function(lang){RequestBroker.changeServerLanguage({params:"lang="+lang,asynchronous:false});},extractLanguageFromHostname:function(){var ret=DEFAULT_LANGUAGE;if(LanguageController.isLangParameterPresent()){var re=/lang=([A-Z]{2})/i;var lan=Util.extractRegExGroup(WHOLE_URL,re,1);if(lan&&LanguageController.isLanguageSupported(lan)){ret=lan;}}else{ret=CURRENT_LANGUAGE;}return ret;},isLangParameterPresent:function(){return WHOLE_URL.search(/lang=/)!=-1;},isLanguageSupported:function(lang){var ret=false;for(var item in Language){if(Language[item].toLowerCase()==lang.toLowerCase()){ret=true;break;}}return ret;}};CLIENT={initHeader:function(lang){CURRENT_LANGUAGE=lang;var _45c=WeeFlyUtil.checkCookie();if(_45c){user=WeeFlyUtil.getUserData();var _45d=LanguageController.extractLanguage(user);LanguageController.checkLanguage(_45d);if(_45d!=user.prefLanguage){LanguageController.changeLanguage(_45d);}WeeFlyUtil.fixLinkVisibility(user);}},initFooter:function(){var _45e=WeeFlyUtil.checkCookie();if(_45e){user=WeeFlyUtil.getUserData();if(user.profile=="ADMIN"){$("copyrightBlock").innerHTML+="v. "+RELEASE_VERSION;}}}};Event.observe(window,"load",WeeFlyUtil.keepSessionAlive);ParserFactory={createParser:function(_45f,_460){switch(_45f){case DataType.JSON:return new JsonParser(_460);break;case DataType.CSV:return new CsvParser(_460);break;default:return new JsonParser(_460);break;}}};JsonParser=Class.create();JsonParser.prototype={initialize:function(_461){this.command=_461;},parse:function(xhr,soft){var ret;try{ret=eval("("+xhr.responseText+")");if(!soft&&this.containsError(ret)){var _465={command:this.command,code:ret.errorCode};errorHandler.dispatch(_465);return false;}else{return ret;}}catch(ex){if(!soft){var _465={command:this.command,code:Code.MALFORMED_RESPONSE};errorHandler.dispatch(_465);}}return false;},containsError:function(obj){return (obj.errorCode!=0);}};