var Register={validation:null,valid:false,form:null,captchaAdded:false,firstname:null,lastname:null,init:function(){Validation.addAllThese([["length-6","",{pattern:new RegExp("^[^ ].{4,}[^ ]$")}],["validate-fullDate","Selectati data nasterii",this.validateFullDate.bind(this)],["validate-education","Selectati cel putin o institutie educationala",this.validateEducation.bind(this)],["validate-edu-years","Selectati perioada corect",this.validateEduYears.bind(this)],["validate-myemail","Exista deja un cont asociat acestei adrese de email.",this.isMyEmailOk.bind(this)]]);
$(document.body).delegate("click",{"#whyShould":this.showWhyShouldMessage.bindAsEventListener(this),"#changeCaptcha":this.refreshCaptcha.bindAsEventListener(this),"#changeLocationHighSchool":this.changeHighschoolLocation.bindAsEventListener(this),"#changeLocation":this.changeAcademicLocation.bindAsEventListener(this)});["Year","middleschool_start","highschool_start","university_start"].each(function(b){$(b).observe("change",this.autocompleteYearsInfo.bind(this))
}.bind(this));this.autocompleteYears("Year",$("Year").value);document.observe("select:changed",this.handleSelectChange.bind(this));["middleschool_id","highschool_id","university_id"].each(function(b){$(b).observe("click",this.handleSelectClick.bind(this))}.bind(this));var a=this.formalityChanged.bindAsEventListener(this);$$("#formality input").each(function(b){b.observe("click",a)});$("signup").observe("submit",this.formSubmit.bindAsEventListener(this));
$("lastname").observe("blur",this.whoSearchedMe.bindAsEventListener(this));$("firstname").observe("blur",this.whoSearchedMe.bindAsEventListener(this));$("captchaContainer").observe("submit",this.captchaValidate.bindAsEventListener(this))},whoSearchedMe:function(){var a=$("lastname").value.strip();var b=$("firstname").value.strip();if(this.lastname||this.firstname){if(this.lastname==a&&this.firstname==b){return
}}this.lastname=a;this.firstname=b;if(this.lastname.length>2&&this.firstname.length>2){$("whoSearchedYou").show();$("whoSearchedYou").update("");new Ajax.Updater("whoSearchedYou","/user/register/who-searched-you.ajax",{inlineLoader:"firstname",parameters:{firstname:this.firstname,lastname:this.lastname},onSuccess:function(c){if(c.responseText==""){$("whoSearchedYou").hide()}}})}},isMyEmailOk:function(){var c=$("email").value.strip();
var b=null;var a;a=new Ajax.Updater("isMyEmailOk","/user/register/check-email-ok.ajax",{inlineLoader:"email",asynchronous:false,parameters:{email:c},options:{asynchronous:false},onSuccess:function(d){b=true},onFailure:function(d){b=false;$("email").title="Exista deja un cont asociat acestei adrese de email."}});return b},autocompleteYearsInfo:function(b,a,c){if(!b){return}if(!a||!c){a=b.element().identify().split("_")[0];
c=b.element().value}this.autocompleteYears(a,c)},autocompleteYears:function(a,e){var b={middleschool:{lap:7,length:8},highschool:{lap:15,length:4},university:{lap:19,length:4}};if(b[a]){var d=parseInt($(a+"_start").value)+b[a]["length"];this.generateYears(e,d,a);return}for(var c in b){$(c+"_start").value=parseInt($("Year").value)+b[c]["lap"];var f=parseInt($(c+"_start").value)+b[c]["length"];this.generateYears($(c+"_start").value,f,c)
}},generateYears:function(d,j,b){d=parseInt(d);j=parseInt(j);var a=b+"_end";var f=$("yearLabel").innerHTML.strip();var h=new Date().getFullYear();$(a).select("option.dynamic-element").invoke("remove");for(var e=d+1;e<d+10&&e<=h;e++){var i=e;if(3<=(e-d)&&(e-d)<=7){var g=e-d;i=i+" ("+g+" "+f+")"}var c=new Element("option",{"class":"dynamic-element",value:e});c.update(i);$(a).insert(c)}if(j>h){$(a).value=9999
}else{$(a).value=j}},validateFullDate:function(b,a){return a.up("p").select("select").all(function(c){return c.value})},validateEducation:function(b,a){if(SelectCollection.get("middleschool_id").getValue()){return true}if(SelectCollection.get("highschool_id").getValue()){return true}if(SelectCollection.get("university_id").getValue()){return true}return false},validateEduYears:function(d,b){if(!d){return false
}var a=b.previous("select").getValue();if(!a){return false}if(a>d){return false}var c=b.identify().split("_")[0];switch(c){case"middleschool":if((a-6)<parseInt($("Year").getValue())){return false}break;case"highschool":if((a-14)<parseInt($("Year").getValue())){return false}if($("middleschool_end").up("div").visible()&&$("middleschool_end").getValue()!=""&&$("middleschool_end").getValue()>$("highschool_start").getValue()){return false
}break;case"university":if((a-18)<parseInt($("Year").getValue())){return false}if($("highschool_end").up("div").visible()&&$("highschool_end").getValue()!=""&&$("highschool_end").getValue()>$("university_start").getValue()){return false}break}return true},formalityChanged:function(b){var a=$("nameBeforeZone").down("input");if($("formality_maam").checked){$("nameBeforeZone").show();a.enable();a.focus()
}else{$("nameBeforeZone").hide();a.disable()}},checkCaptcha:function(c){var b=c.value.strip();if(!b.length){return false}var a=false;if(c.next("span")){c.next("span").hide()}new Ajax.Request("/user/register/check-captcha.ajax",{method:"get",parameters:"security_code="+b,asynchronous:false,onSuccess:function(){a=true},onFailure:function(d){if(!c.next("span")){c.insert({after:new Element("span",{"class":"validation-advice"}).update(d.responseText)})
}else{c.next("span").show()}}});return a},captchaValidate:function(b){var a=$("captchaContainer").down("input");if(!this.checkCaptcha(a)){if(b!=null){b.stop()}return false}this.form.insert({bottom:new Element("p").insert(new Element("input",{type:"text",value:a.value.strip(),name:"security_code"})).hide()});this.captchaAdded=true;$("signup").submit();if(b!=null){b.stop()}return false},formSubmit:function(a){this.valid=signupValidator.validate();
a.stop();if(!this.valid){return false}if(this.captchaAdded){return true}Dialog.Confirm.show("captchaContainer",{width:350,height:150,title:"Introduceti codul de securitate",onSuccess:this.captchaValidate.bind(this)});return false},onFormValidate:function(b,a){this.valid=b;this.form=a},refreshCaptcha:function(c){var b=c.element().up("p").previous("p").down("img");var a=b.src;if(a.indexOf("?")!=-1){a=a.replace(/\?cid=.+/,"")
}a+="?cid="+(new Date()).getTime();b.src=a},handleSelectClick:function(d){var c=d.element().up(".selectField");var a=d.element().up(".container").down("select").getValue();if(c){var b=c.identify();switch(b){case"middleschool_id":case"highschool_id":case"university_id":this.autocompleteYearsInfo(Event.click,b,a)}}},selectDefaultCity:function(a){try{if(a.parent.identify()=="middleschool_city_id"&&SelectCollection.get("region_id").getValue()==1){SelectCollection.get("middleschool_city_id").selectIndex(1,false);
SelectCollection.get("middleschool_city_id").selectIndex(1,false)}}catch(b){console.log(b)}},handleSelectChange:function(f){var d=f.memo.id;var c=SelectCollection.get(d).getValue();var g=SelectCollection.get(d).getText();switch(d){case"region_id":$("wrapperMiddleSchoolContainer").hide();$("wrapperHighSchoolContainer").hide();$("wrapperUniversityContainer").hide();case"highschool_region_id":case"university_region_id":if(!c){$(d).up(".pContainer").next().hide();
if(d=="highschool_region_id"){$("highschool_id").up(".pContainer").hide()}if(d=="university_region_id"){$("university_id").up(".pContainer").hide()}return}var a=$(d).up(".pContainer").next().down("div").identify();SelectCollection.get(a).updateAjax("/default/common/get-cities.ajax?regionId="+c,{onSuccess:function(){$(a).up(".pContainer").show();if(d=="region_id"){this.setEduSections()}else{if(d=="highschool_region_id"){$("highschool_id").up(".pContainer").hide()
}else{$("university_id").up(".pContainer").hide()}}}.bind(this)},this.selectDefaultCity);break;case"middleschool_city_id":case"highschool_city_id":case"university_city_id":if(!c){if(d=="middleschool_city_id"){this.setEduSections()}else{if(d=="highschool_city_id"){$("highschool_id").up(".pContainer").hide();SelectCollection.get("highschool_id").selectIndex(0)}else{$("university_id").up(".pContainer").hide();
SelectCollection.get("university_id").selectIndex(0)}}return}new Ajax.Request("/user/register/get-communities.ajax",{inlineLoader:d,parameters:{cityId:c,onlyHighschools:((d=="highschool_city_id")?1:0),onlyUnis:((d=="university_city_id")?1:0)},onSuccess:function(h){var e=h.responseText.evalJSON();switch(d){case"highschool_city_id":this.setEduSections(e,"HighSchool");break;case"university_city_id":this.setEduSections(e,"University");
break;case"middleschool_city_id":this.setEduSections(e);break}$("wrapperMiddleSchoolContainer").show();$("wrapperHighSchoolContainer").show();$("wrapperUniversityContainer").show();if(d=="highschool_city_id"){$("highschool_id").up(".pContainer").show()}if(d=="university_city_id"){$("university_id").up(".pContainer").show()}}.bind(this)});break;case"middleschool_id":case"highschool_id":case"university_id":var b;
if((b=$(d).up(".pContainer").next(".details.after"))){if(c){b.show()}else{b.hide()}}break;case"seo_cities_schools":window.location.href="/scoli/"+g;break;case"seo_cities_universities":window.location.href="/facultati/"+g;break;case"seo_cities_highschools":window.location.href="/licee/"+g;break;case"seo_region_company":window.location.href="/companii/"+g;break}},updatedSubsections:{},setEduSections:function(b,a){if(Object.isUndefined(b)){b={}
}var c=[{key:"MiddleSchool",selectId:"middleschool_id",containerId:"middleSchoolContainer"},{key:"HighSchool",selectId:"highschool_id",containerId:"highSchoolContainer"},{key:"University",selectId:"university_id",containerId:"universityContainer"}];c.each(function(e){if(a){if(e.key!=a){return}this.updatedSubsections[e.key]=true}else{if(this.updatedSubsections[e.key]){return}}var d=SelectCollection.get(e.selectId);
if(b[e.key]==null||b[e.key].length==0){$(e.containerId).hide();$(e.containerId).next(".show-initial").hide();$(e.containerId).next(".show-none").show();d.update({})}else{$(e.containerId).show();$(e.containerId).next(".show-initial").show();$(e.containerId).next(".show-none").hide();d.update(b[e.key])}}.bind(this))},changeAcademicLocation:function(b){var a=b.element();a.up(".wrapper-container").down(".container").show();
a.up(".wrapper-container").down(".change-location").show();SelectCollection.get("university_region_id").selectIndex(SelectCollection.get("region_id").getSelectedIndex())},changeHighschoolLocation:function(b){var a=b.element();a.up(".wrapper-container").down(".container").show();a.up(".wrapper-container").down(".change-location").show();SelectCollection.get("highschool_region_id").selectIndex(SelectCollection.get("region_id").getSelectedIndex())
},showWhyShouldMessage:function(b){var a=$("tooltip");Dialog.Confirm.show(a,{modal:true,closable:true,title:"De ce sa-mi dau datele corecte",width:300,height:80})}};function addInstitution(g,j){var d;if(j&&j.length>1){d=j.split("-")}else{if(!g){return}var b=g.element();d=b.rel.split("-")}var a=d[0];var h=d[1];var c=$("signup").serialize(true);var i=h.split("_");i=i[0];var f=null;var e=null;if(c["education["+i+"_region_id]"]){f=c["education["+i+"_region_id]"]
}else{f=c["education[education_region_id]"]}if(c["education["+i+"_city_id]"]){e=c["education["+i+"_city_id]"]}else{e=c["education[education_city_id]"]}showAddCommunityDialog(a,f,e,function(l){$(h).up(".pContainer").up("div").show();var m=new Element("span",{"class":"validation-advice"}).update($("institutionAppendedMessage").innerHTML);var n=m.identify();$(h).up(".pContainer").up().insert(m);setTimeout(function(){$(n).remove()
},10000);$(h).up(".pContainer").up("div").up("div").down("p.show-none").hide();var k=$("addCommunityForm").serialize(true);SelectCollection.get(h).updateAjax("/default/common/get-communities.ajax?cityId="+k.city+"&subtype="+a,{},function(){SelectCollection.get(h).selectValue(l)})})}document.observe("dom:loaded",function(){Register.init();$(document.body).delegate("click",{".do-add-institution":addInstitution})
});var Scriptaculous={Version:"1.8.1",require:function(a){document.write('<script type="text/javascript" src="'+a+'"><\/script>')},REQUIRED_PROTOTYPE:"1.6.0",load:function(){function a(b){var c=b.split(".");return parseInt(c[0])*100000+parseInt(c[1])*1000+parseInt(c[2])}if((typeof Prototype=="undefined")||(typeof Element=="undefined")||(typeof Element.Methods=="undefined")||(a(Prototype.Version)<a(Scriptaculous.REQUIRED_PROTOTYPE))){throw ("script.aculo.us requires the Prototype JavaScript framework >= "+Scriptaculous.REQUIRED_PROTOTYPE)
}$A(document.getElementsByTagName("script")).findAll(function(b){return(b.src&&b.src.match(/scriptaculous\.js(\?.*)?$/))}).each(function(c){var d=c.src.replace(/scriptaculous\.js(\?.*)?$/,"");var b=c.src.match(/\?.*load=([a-z,]*)/);(b?b[1]:"builder,effects,dragdrop,controls,slider,sound").split(",").each(function(e){Scriptaculous.require(d+e+".js")})})}};Scriptaculous.load();function showAddCommunityDialog(b,d,f,e,c){var a="/community/dialog-add?type="+b+"&region="+d+"&city="+f;
Dialog.Confirm.ajax(a,{modal:true,title:"Adauga comunitate",zindex:2,width:550,height:480,id:"addCommunityWindow",onClose:function(){(c||Prototype.emptyFunction).wrap(function(g){if(!Object.isUndefined(SelectCollection)){SelectCollection.unregisterAllUnder("#addCommunityWindow")}AddCommunityDialog.deattachObservers();PhotoUploader.deattachObservers();g()})()},onSuccess:function(){PhotoUploader.deattachObservers();
AddCommunityDialog.deattachObservers();e(AddCommunityDialog.lastAddedId)}},{onComplete:function(g){g.responseText.evalScripts()}})}if(typeof SelectCollection=="undefined"){StringFilter=Class.create({initialize:function(a){this.lastSearchedString=null;this.lastResultSet=null;this.values=a},filter:function(e){var c=String(e).toLowerCase();var a=[];if(c.length==0){this.lastSearchedString="";return true
}if(c==this.lastSearchedString){return false}var b=this.values;if(c.indexOf(this.lastSearchedString)!=-1){}for(var d=0;d<b.length;d++){a[d]=this.values[d].indexOf(c)}this.lastSearchedString=c;return a}});JsonFilterMethods={MAX_ITEMS:100,CLASS_LAST:"last",CLASS_FIRST:"first",CLASS_DISABLED:"disabled",CLASS_ACTIVE:"active",initialize:function(c,b,a){this.list=c;this.update(b);this.currentIndex=0;this.defaultValue=a;
this.highlighted=null;this.errorText=b.error||"Nu a fost gasit";this.titleText=b.title||false;this.defaultText=b["default"]||"";this.moreText=b.more||"- Mai multe -";this.moreTitleText=b.moreTitle||"Tastati pentru rezultate"},update:function(a){this.initialized=false;this.updated=false;this.initialItems=false;this.elements=a;this.filterObject=null;this.currentItems=[]},_lazyUpdate:function(){if(this.updated){return
}this.updated=true;var a=this.elements;this.errorText=a.error||this.errorText;this.titleText=a.title||this.titleText;this.defaultText=a["default"]||this.defaultText;this.moreText=a.more||this.moreText;this.moreTitleText=a.moreTitle||this.moreTitleText;delete a.title;delete a.error;delete a["default"];delete a.more;delete a.moreTitle;this._elements=$H(a);this.options=this._elements.values();this.values=this._elements.keys();
this.indexesLookup=this._getValueToIndexLookup(this.values);this.currentIndex=this.getIndexByValue(this.defaultValue);this.errorShown=false},_addInitialItems:function(){if(this.initialItems){return}this.initialItems=true;this._clear();this.titleText&&this.addDisabledItem(this.titleText);this.defaultText&&this.addItemBulk({text:this.defaultText});this._addAllItems()},init:function(){if(this.initialized){return
}this.initialized=true;this._lazyUpdate();this._addInitialItems();this.hideError()},reset:function(){this.initialized=false},refresh:function(){this.initialized=false;this.initialItems=false},_getFilter:function(){if(this.filterObject){return this.filterObject}var b;var a=[];for(b=0;b<this.options.length;b++){a[b]=String(this.options[b]).toLowerCase()}this.filterObject=new StringFilter(a);return this.filterObject
},_getValueToIndexLookup:function(a){var c={};for(var b=0;b<a.length;b++){c[a[b]]=b+1}return c},showError:function(a){this._clear();this.addDisabledItem(a||this.errorText);this.errorShown=true},showMore:function(){this.showError(this.moreTitleText||this.titleText)},hideError:function(){this.errorShown=false},addItem:function(b){if(typeof b!="object"){return null}if(this.list.lastChild){this.list.lastChild.removeClassName(this.CLASS_LAST)
}var a=this.addItemBulk(b,true);a.addClassName(this.CLASS_LAST);if(this.list.childNodes.length==1){a.addClassName(this.CLASS_FIRST)}return a},addDisabledItem:function(b){var a=this.addItemBulk({text:b,disabled:true});a.addClassName(this.CLASS_DISABLED)},addItemBulk:function(b){var a=new Element("li");this.list.appendChild(a);b.text=typeof(b.text)=="undefined"?"":b.text.toString();b.value=typeof(b.value)=="undefined"?"":b.value.toString();
a.update(b.text||b.value);a._value=b.value||"";a._text=b.text;if(b.meta){a._meta=b.meta}if(b.disabled||b.notIndexed){if(b.disabled){a._disabled=true}a._index=-1}else{a._index=this.currentItems.length;this.currentItems.push(a)}return a},morph:function(a){this._clear();for(var b=0;b<a.length;b++){if(a[b].disabled){this.addDisabledItem(a[b].text)}else{this.addItemBulk(a[b])}}this.initialized=false},isOversized:function(){if(!this.options){return false
}return this.options.length>this.MAX_ITEMS},_addAllItems:function(){var c=this.isOversized()?this.MAX_ITEMS:this.options.length;for(var b=0;b<c;b++){this.addItemBulk({text:this.options[b],value:this.values[b]})}if(this.isOversized()){if(this.currentIndex>this.currentItems.length&&this.currentIndex<this.options.length){var a=this.addItemBulk({text:this.options[this.currentIndex-1],value:this.values[this.currentIndex-1]});
this.setIndex(a._index)}this.addItemBulk({text:this.moreText,meta:"showMore"})}if(typeof(this.defaultValue)!="undefined"){this.setIndex(this.currentIndex)}if(this.currentItems.length){this.currentItems[this.currentItems.length-1].addClassName(this.CLASS_LAST)}},_addAndMarkItems:function(b,a){var d=0;for(var c=0;c<b.length;c++){if(b[c]==-1){continue}this.addItemBulk({text:this.mark(this.options[c],b[c],a),value:this.values[c]});
if(++d>this.MAX_ITEMS){return}}if(this.currentItems.length){this.currentItems[this.currentItems.length-1].addClassName(this.CLASS_LAST)}},_clear:function(){delete this.currentItems;this.currentItems=[];this.list.update()},filter:function(b){b=String(b);var a=this._getFilter().filter(b);if(a===false){return}if(a===true){this.refresh();this.init();return}this.initialItems=false;this._clear();this._addAndMarkItems(a,b.length);
if(this.size()==0){this.showError();return}this.setIndex(0);this.hideError()},mark:function(b,a,c){var d=String(b).replace("<b>","").replace("<B>","").replace("</b>","").replace("</B>","");return d.slice(0,a)+"<b>"+d.slice(a,a+c)+"</b>"+d.slice(a+c)},unmark:function(a){return String(a).replace("<b>","").replace("<B>","").replace("</b>","").replace("</B>","")},next:function(){this.setIndex(this.currentIndex+1);
if(this.currentIndex>this.size()-1){this.setIndex(0)}return this.current("next")},previous:function(){this.setIndex(this.currentIndex-1);if(this.currentIndex<0){this.setIndex(this.size()-1)}return this.current("previous")},current:function(a){if(!this.currentItems.length||this.errorShown){return null}var b=this.currentItems[this.currentIndex];if(b._disabled){if(a=="previous"){return this.previous()
}else{return this.next()}}return b},highlight:function(a){if(typeof(a)=="undefined"){a=this.currentIndex}if(this.highlighted){this.highlighted.removeClassName(this.CLASS_ACTIVE)}if(!this.currentItems[a]){return}this.highlighted=this.currentItems[a];this.highlighted.addClassName(this.CLASS_ACTIVE)},getIndex:function(){return this.currentIndex},setIndex:function(a){this.currentIndex=a;if(this.isOversized()){if(this.currentIndex>this.currentItems.length&&this.currentIndex<this.options.length){this.refresh()
}}this.init();this.highlight()},getIndexByValue:function(a){this.init();if(this.indexesLookup[a]){return this.indexesLookup[a]}return 0},setIndexByValue:function(a){this.init();if(this.indexesLookup[a]){this.setIndex(this.indexesLookup[a])}else{this.setIndex(0)}},getOption:function(a){if(!this.options){this.init()}if(a==-1){return this.defaultText}return this.options[a]},getOptions:function(a){if(!this.options){this.init()
}if(a==-1){return this.defaultText}return this.options},getValue:function(a){if(!this.values){this.init()}if(a==-1){return""}return this.values[a]},getValues:function(){if(!this.values){this.init()}return this.values},getCurrentItems:function(){return this.currentItems},size:function(){return this.currentItems.length},removeClass:function(a,c){var b=this.options[this.visibleIndexes[a]];if(b){b.removeClassName(c)
}},addClass:function(a,c){var b=this.options[this.visibleIndexes[a]];if(b){b.addClassName(c)}}};JsonFilter=Class.create(JsonFilterMethods);SelectMethods={initialize:function(c){this.active=false;this.enabled=true;this.initialized=false;this.locked=false;this.lastSelectedText=null;this.lastSelectedValue=null;this.parent=c;this.textInput=c.select(".selector_input")[0];this.valueInput=c.select(".result_input")[0];
this.mainContainer=c.select(".selector")[0];this.dropdownButton=c.select(".selector_dropdown")[0];this.resultsContainer=c.select(".results_container")[0];this.list=c.select(".results_container .result_list")[0];var a=selectsData[this.parent.identify()]||{};this.filter=new JsonFilter(this.list.down("ul"),a,this.getValue());this._setText(a[this.getValue()]||a["default"]||"");this._onClickHandler=this._onClick.bindAsEventListener(this);
this._onClickPopupHandler=this._onClickPopup.bindAsEventListener(this);this._onHideHandler=this.hide.bindAsEventListener(this);this.textInput.observe("keyup",this._onKeyUp.bindAsEventListener(this));this.textInput.observe("keydown",this._onKeyDown.bindAsEventListener(this));this.mainContainer.observe("click",this._onClickHandler);this.dropdownButton.observe("click",this._onClickHandler);this.resultsContainer.observe("click",this._onClickPopupHandler);
this.resultsContainer.observe("mouseover",this._onMouseOver.bindAsEventListener(this));var b=this.parent.getWidth();if(b>24){this.textInput.style.width=(this.parent.getWidth()-24)+"px"}},getValue:function(){return this.valueInput.value},getText:function(){return this.textInput.value},disable:function(){this.enabled=false;this.textInput.disable();this.textInput.addClassName("disabled")},enable:function(){this.enabled=true;
this.textInput.enable();this.textInput.removeClassName("disabled")},updateAjax:function(b,a,c){this._lock();new Ajax.Request(b,Object.extend({onComplete:function(e){var d=e.responseText.evalJSON();this._unlock();this.update(d);if(!Object.isUndefined(c)&&Object.isFunction(c)){c(this)}}.bind(this)},a))},update:function(c,a){if(typeof(c)=="undefined"){c={}}var b={};var d=0;if(Object.isArray(c)){for(d=0;
d<c.length;d++){b[d]=c[d]}}else{if("getOptions" in c){c=c.getOptions();for(d=0;d<c.length;d++){b[d]=c[d]}}else{$H(c).each(function(e){b[e.key]=e.value}.bind(this))}}this.filter.update(b);this._setText(this.filter.defaultText||c["default"]||"");if(typeof(a)!="undefined"){this.selectValue(a)}},insert:function(a){this._add(a);this.filter.refresh()},markNext:function(){this.filter.next();this._render()
},markPrevious:function(){this.filter.previous();this._render()},hide:function(a){if(!this.active){return}this.active=false;if(a){this._setText();this._setValue();this.filter.reset();this.filter.setIndexByValue(this.getValue())}document.stopObserving("click",this._onHideHandler);this.resultsContainer.hide()},show:function(){if(this.active||this.locked){return}SelectCollection.hideAllActive();this.active=true;
document.observe("click",this._onHideHandler);this.resultsContainer.absolutize();this.resultsContainer.show();this.filter.init();this.filter.highlight();if(this.getValue()==""){this._setText("")}this._getHeights();this._render()},fire:function(){this.parent.fire("select:changed",{id:this.parent.identify()})},getOptions:function(){return this.filter.getOptions()},getSelectedIndex:function(){return this.filter.getIndex()
},selectIndex:function(b,a){this.filter.reset();this.filter.setIndex(b);this._selectEntry(a)},selectValue:function(c,a){var b=this.filter.getIndexByValue(c);if(b===false){b=0}this.selectIndex(b,a)},_filter:function(a){a=String(a);this.filter.filter(a);this._render()},_lock:function(){if(this.locked){return}this.locked=true;this.mainContainer.addClassName("locked")},_unlock:function(){if(!this.locked){return
}this.locked=false;this.mainContainer.removeClassName("locked")},_onKeyDown:function(a){if(this.active){switch(a.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this._selectEntry(false);this.active=false;a.stop();return;case Event.KEY_ESC:this.hide();this.active=false;a.stop();return;case Event.KEY_LEFT:case Event.KEY_RIGHT:return}return}if(a.keyCode==Event.KEY_TAB||a.keyCode==Event.KEY_RETURN||(Prototype.Browser.WebKit>0&&a.keyCode==0)){return
}this.show()},_onKeyUp:function(b){if(this.active){switch(b.keyCode){case Event.KEY_UP:this.markPrevious();return;case Event.KEY_DOWN:this.markNext();return}var a=String(this.getText());this._filter(a);return}},_onMouseOver:function(b){var a=b.findElement("li");if(!a||a.hasClassName(this.filter.CLASS_DISABLED)){return}this.filter.setIndex(a._index)},_onClick:function(a){if(a.element().hasClassName(this.filter.CLASS_DISABLED)){return
}if(this.active){this.filter.reset();this.hide()}else{this.textInput.select();this.show()}a.stop()},_onClickPopup:function(a){if(a.element().hasClassName(this.filter.CLASS_DISABLED)){return}if(a.findElement("#"+this.parent.identify()+" .results_container")){this._selectEntry(false)}},_selectEntry:function(a){var b=this.filter.current();if(!b){return false}if(b&&b._meta=="showMore"){this.filter.showMore();
this.active=false;this._render();this.textInput.select();return true}this.filter.reset();this.filter.setIndexByValue(b._value);this._setText(this.filter.unmark(b._text.strip()));this._setValue(b._value);if(!a){this.fire()}this.hide();return true},_setText:function(a){if(typeof(a)!="undefined"){this.textInput.value=this.lastSelectedText=a}else{this.textInput.value=this.lastSelectedText}},_setValue:function(a){if(typeof(a)!="undefined"){this.valueInput.value=this.lastSelectedValue=a
}else{this.valueInput.value=this.lastSelectedValue}},_render:function(){this._setListDimensions();var a=this.filter.getIndex();if(a==0){this.list.scrollTop=0;return}this.list.scrollTop=this.heights[a]-this.listHeight},_setListDimensions:function(){this.textInput.style.width=(this.parent.getWidth()-24)+"px";var a=this.list.down("ul").getHeight();if(a>this.listHeight){a=this.listHeight}this.list.style.height=a+"px";
this.resultsContainer.style.width=this.parent.getWidth()+"px"},_getHeights:function(){if(this.initialized){return}var b=this.filter.getCurrentItems();this.heights=[];this.heights[0]=b[0].getHeight();for(var a=1;a<b.length;a++){this.heights[a]=this.heights[a-1]+b[a].getHeight()}this.listHeight=this.list.getHeight()-2;var c=Math.max(parseInt(document.viewport.getHeight()/3),100);if(this.listHeight>c){this.listHeight=c
}this.initialized=true},_add:function(a){this.filter.addItem(a)}};Select=Class.create(SelectMethods);SelectCollection={initialized:false,init:function(){if(this.initialized){return}this.initialized=true;this.selects=new Hash();this.update()},update:function(){if(!this.initialized){this.init();return}$$(".selectField").each(function(a){this.register(a.identify())}.bind(this));this.selects.each(function(a){if(!$(a.key)){this.unregister(a.key)
}}.bind(this))},get:function(a){return this.selects.get(a)},register:function(a){if(this.selects.get(a)){return}this.selects.set(a,new Select($(a)))},unregister:function(a){this.selects.unset(a)},unregisterAllUnder:function(a){$$(a+" .selectField").each(function(b){this.unregister(b.identify())}.bind(this))},hideAllActive:function(){this.selects.each(function(a){if(a.value.active){a.value.hide()}}.bind(this))
},cleanup:function(){try{this.selects.each(function(b){this.unregister(b.key)}.bind(this));delete (selectsData)}catch(a){}}}}var Validator=Class.create();Validator.prototype={initialize:function(c,b,d,a){if(typeof d=="function"){this.options=$H(a);this._test=d}else{this.options=$H(d);this._test=function(){return true}}this.error=b||"Validation failed.";this.className=c},test:function(a,b){return(this._test(a,b)&&this.options.all(function(c){return Validator.methods[c.key]?Validator.methods[c.key](a,b,c.value):true
}))}};Validator.methods={pattern:function(a,c,b){return Validation.get("IsEmpty").test(a)||b.test(a)},minLength:function(a,c,b){return a.length>=b},maxLength:function(a,c,b){return a.length<=b},min:function(a,c,b){return a>=parseFloat(b)},max:function(a,c,b){return a<=parseFloat(b)},notOneOf:function(a,c,b){return $A(b).all(function(d){return a!=d})},oneOf:function(a,c,b){return $A(b).any(function(d){return a==d
})},is:function(a,c,b){return a==b},isNot:function(a,c,b){return a!=b},equalToField:function(a,c,b){return a==$F(b)},notEqualToField:function(a,c,b){return a!=$F(b)},include:function(a,c,b){return $A(b).all(function(d){return Validation.get(d).test(a,c)})}};var Validation=Class.create();Validation.prototype={initialize:function(c,a){this.options=Object.extend({onSubmit:true,stopOnFirst:false,immediate:false,focusOnError:true,useTitles:false,onFormValidate:function(e,f){},onElementValidate:function(e,f){}},a||{});
this.form=$(c);if(this.options.onSubmit){Event.observe(this.form,"submit",this.onSubmit.bind(this),false)}if(this.options.immediate){var b=this.options.useTitles;var d=this.options.onElementValidate;Form.getElements(this.form).each(function(e){Event.observe(e,"blur",function(f){Validation.validate(Event.element(f),{useTitle:b,onElementValidate:d})})})}},onSubmit:function(a){if(!this.validate()){Event.stop(a)
}},validate:function(){var a=false;var b=this.options.useTitles;var d=this.options.onElementValidate;if(this.options.stopOnFirst){a=Form.getElements(this.form).all(function(e){return Validation.validate(e,{useTitle:b,onElementValidate:d})})}else{a=Form.getElements(this.form).collect(function(e){return Validation.validate(e,{useTitle:b,onElementValidate:d})}).all()}if(!a&&this.options.focusOnError){var c=Form.getElements(this.form).findAll(function(e){return $(e).hasClassName("validation-failed")
}).first();if(c&&c.visible()&&c.getAttribute("type")!="hidden"){c.focus()}delete c}this.options.onFormValidate(a,this.form);return a},reset:function(){Form.getElements(this.form).each(Validation.reset)}};Object.extend(Validation,{validate:function(c,a){a=Object.extend({useTitle:false,onElementValidate:function(d,e){}},a||{});c=$(c);var b=c.classNames();return result=b.all(function(d){var e=Validation.test(d,c,a.useTitle);
a.onElementValidate(e,c);return e})},test:function(b,h,i){var j=Validation.get(b);var a="__advice"+b.camelize();try{if(Validation.isVisible(h)&&!j.test($F(h),h)){if(!h[a]){var d=Validation.getAdvice(b,h);if(d==null){var f=i?((h&&h.title)?h.title:j.error):j.error;d='<span class="validation-advice" id="advice-'+b+"-"+Validation.getElmID(h)+'" style="display:none">'+f+"</span>";switch(h.type.toLowerCase()){case"checkbox":case"radio":var c=h.parentNode;
if(c){new Insertion.Bottom(c,d)}else{new Insertion.After(h,d)}break;default:new Insertion.After(h,d)}d=Validation.getAdvice(b,h)}if(true||typeof Effect=="undefined"){d.style.display=""}else{new Effect.Appear(d,{duration:1})}}h[a]=true;h.removeClassName("validation-passed");h.up().addClassName("error");h.addClassName("validation-failed");return false}else{var d=Validation.getAdvice(b,h);if(d!=null){d.hide()
}h[a]="";h.up().removeClassName("error");h.removeClassName("validation-failed");h.addClassName("validation-passed");return true}}catch(g){throw (g)}},isVisible:function(a){while(a.tagName!="BODY"){if(!$(a).visible()){return false}a=a.parentNode}return true},getAdvice:function(a,b){return $("advice-"+a+"-"+Validation.getElmID(b))||$("advice-"+Validation.getElmID(b))},getElmID:function(a){return a.id?a.id:a.name
},reset:function(b){b=$(b);var a=b.classNames();a.each(function(d){var e="__advice"+d.camelize();if(b[e]){var c=Validation.getAdvice(d,b);c.hide();b[e]=""}b.up().removeClassName("error");b.removeClassName("validation-failed");b.removeClassName("validation-passed")})},add:function(d,c,e,b){var a={};a[d]=new Validator(d,c,e,b);Object.extend(Validation.methods,a)},addAllThese:function(a){var b={};$A(a).each(function(c){b[c[0]]=new Validator(c[0],c[1],c[2],(c.length>3?c[3]:{}))
});Object.extend(Validation.methods,b)},get:function(a){return Validation.methods[a]?Validation.methods[a]:Validation.methods._LikeNoIDIEverSaw_},methods:{_LikeNoIDIEverSaw_:new Validator("_LikeNoIDIEverSaw_","",{})}});Validation.add("IsEmpty","",function(a){return((a==null)||(a.length==0))});Validation.addAllThese([["required","This is a required field.",function(a){return !Validation.get("IsEmpty").test(a)
}],["validate-number","Please enter a valid number in this field.",function(a){return Validation.get("IsEmpty").test(a)||(!isNaN(a)&&!/^\s+$/.test(a))}],["validate-digits","Please use numbers only in this field. please avoid spaces or other characters such as dots or commas.",function(a){return Validation.get("IsEmpty").test(a)||!/[^\d]/.test(a)}],["validate-alpha","Please use letters only (a-z) in this field.",function(a){return Validation.get("IsEmpty").test(a)||/^[a-zA-Z]+$/.test(a)
}],["validate-alphanum","Please use only letters (a-z) or numbers (0-9) only in this field. No spaces or other characters are allowed.",function(a){return Validation.get("IsEmpty").test(a)||!/\W/.test(a)}],["validate-date","Please enter a valid date.",function(a){var b=new Date(a);return Validation.get("IsEmpty").test(a)||!isNaN(b)}],["validate-email","Please enter a valid email address. For example fred@domain.com .",function(a){return Validation.get("IsEmpty").test(a)||/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(a)
}],["validate-url","Please enter a valid URL.",function(a){return Validation.get("IsEmpty").test(a)||/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(a)}],["validate-date-au","Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006.",function(a){if(Validation.get("IsEmpty").test(a)){return true}var b=/^(\d{2})\/(\d{2})\/(\d{4})$/;
if(!b.test(a)){return false}var c=new Date(a.replace(b,"$2/$1/$3"));return(parseInt(RegExp.$2,10)==(1+c.getMonth()))&&(parseInt(RegExp.$1,10)==c.getDate())&&(parseInt(RegExp.$3,10)==c.getFullYear())}],["validate-currency-dollar","Please enter a valid $ amount. For example $100.00 .",function(a){return Validation.get("IsEmpty").test(a)||/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(a)
}],["validate-selection","Please make a selection",function(a,b){return b.options?b.selectedIndex>0:!Validation.get("IsEmpty").test(a)}],["validate-one-required","Please select one of the above options.",function(a,d){var c=d.parentNode;var b=c.getElementsByTagName("INPUT");return $A(b).any(function(e){return $F(e)})}],["validate-future-date","Please use a future date.",function(c){var d=c.gsub("-","/");
var b=new Date(d);var a=new Date();if(b.getTime()<a.getTime()){return false}return true}]]);String.prototype.parseColor=function(){var a="#";if(this.slice(0,4)=="rgb("){var c=this.slice(4,this.length-1).split(",");var b=0;do{a+=parseInt(c[b]).toColorPart()}while(++b<3)}else{if(this.slice(0,1)=="#"){if(this.length==4){for(var b=1;b<4;b++){a+=(this.charAt(b)+this.charAt(b)).toLowerCase()}}if(this.length==7){a=this.toLowerCase()
}}}return(a.length==7?a:(arguments[0]||this))};Element.collectTextNodes=function(a){return $A($(a).childNodes).collect(function(b){return(b.nodeType==3?b.nodeValue:(b.hasChildNodes()?Element.collectTextNodes(b):""))}).flatten().join("")};Element.collectTextNodesIgnoreClass=function(a,b){return $A($(a).childNodes).collect(function(c){return(c.nodeType==3?c.nodeValue:((c.hasChildNodes()&&!Element.hasClassName(c,b))?Element.collectTextNodesIgnoreClass(c,b):""))
}).flatten().join("")};Element.setContentZoom=function(a,b){a=$(a);a.setStyle({fontSize:(b/100)+"em"});if(Prototype.Browser.WebKit){window.scrollBy(0,0)}return a};Element.getInlineOpacity=function(a){return $(a).style.opacity||""};Element.forceRerendering=function(a){try{a=$(a);var c=document.createTextNode(" ");a.appendChild(c);a.removeChild(c)}catch(b){}};var Effect={_elementDoesNotExistError:{name:"ElementDoesNotExistError",message:"The specified DOM element does not exist, but is required for this effect to operate"},Transitions:{linear:Prototype.K,sinoidal:function(a){return(-Math.cos(a*Math.PI)/2)+0.5
},reverse:function(a){return 1-a},flicker:function(a){var a=((-Math.cos(a*Math.PI)/4)+0.75)+Math.random()/4;return a>1?1:a},wobble:function(a){return(-Math.cos(a*Math.PI*(9*a))/2)+0.5},pulse:function(b,a){a=a||5;return(((b%(1/a))*a).round()==0?((b*a*2)-(b*a*2).floor()):1-((b*a*2)-(b*a*2).floor()))},spring:function(a){return 1-(Math.cos(a*4.5*Math.PI)*Math.exp(-a*6))},none:function(a){return 0},full:function(a){return 1
}},DefaultOptions:{duration:1,fps:100,sync:false,from:0,to:1,delay:0,queue:"parallel"},tagifyText:function(a){var b="position:relative";if(Prototype.Browser.IE){b+=";zoom:1"}a=$(a);$A(a.childNodes).each(function(c){if(c.nodeType==3){c.nodeValue.toArray().each(function(d){a.insertBefore(new Element("span",{style:b}).update(d==" "?String.fromCharCode(160):d),c)});Element.remove(c)}})},multiple:function(b,c){var e;
if(((typeof b=="object")||Object.isFunction(b))&&(b.length)){e=b}else{e=$(b).childNodes}var a=Object.extend({speed:0.1,delay:0},arguments[2]||{});var d=a.delay;$A(e).each(function(g,f){new c(g,Object.extend(a,{delay:f*a.speed+d}))})},PAIRS:{slide:["SlideDown","SlideUp"],blind:["BlindDown","BlindUp"],appear:["Appear","Fade"]},toggle:function(b,c){b=$(b);c=(c||"appear").toLowerCase();var a=Object.extend({queue:{position:"end",scope:(b.id||"global"),limit:1}},arguments[2]||{});
Effect[b.visible()?Effect.PAIRS[c][1]:Effect.PAIRS[c][0]](b,a)}};Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;Effect.ScopedQueue=Class.create(Enumerable,{initialize:function(){this.effects=[];this.interval=null},_each:function(a){this.effects._each(a)},add:function(b){var c=new Date().getTime();var a=Object.isString(b.options.queue)?b.options.queue:b.options.queue.position;switch(a){case"front":this.effects.findAll(function(d){return d.state=="idle"
}).each(function(d){d.startOn+=b.finishOn;d.finishOn+=b.finishOn});break;case"with-last":c=this.effects.pluck("startOn").max()||c;break;case"end":c=this.effects.pluck("finishOn").max()||c;break}b.startOn+=c;b.finishOn+=c;if(!b.options.queue.limit||(this.effects.length<b.options.queue.limit)){this.effects.push(b)}if(!this.interval){this.interval=setInterval(this.loop.bind(this),15)}},remove:function(a){this.effects=this.effects.reject(function(b){return b==a
});if(this.effects.length==0){clearInterval(this.interval);this.interval=null}},loop:function(){var c=new Date().getTime();for(var b=0,a=this.effects.length;b<a;b++){this.effects[b]&&this.effects[b].loop(c)}}});Effect.Queues={instances:$H(),get:function(a){if(!Object.isString(a)){return a}return this.instances.get(a)||this.instances.set(a,new Effect.ScopedQueue())}};Effect.Queue=Effect.Queues.get("global");
Effect.Base=Class.create({position:null,start:function(options){function codeForEvent(options,eventName){return((options[eventName+"Internal"]?"this.options."+eventName+"Internal(this);":"")+(options[eventName]?"this.options."+eventName+"(this);":""))}if(options&&options.transition===false){options.transition=Effect.Transitions.linear}this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});
this.currentFrame=0;this.state="idle";this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;eval('this.render = function(pos){ if (this.state=="idle"){this.state="running";'+codeForEvent(this.options,"beforeSetup")+(this.setup?"this.setup();":"")+codeForEvent(this.options,"afterSetup")+'};if (this.state=="running"){pos=this.options.transition(pos)*'+this.fromToDelta+"+"+this.options.from+";this.position=pos;"+codeForEvent(this.options,"beforeUpdate")+(this.update?"this.update(pos);":"")+codeForEvent(this.options,"afterUpdate")+"}}");
this.event("beforeStart");if(!this.options.sync){Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).add(this)}},loop:function(c){if(c>=this.startOn){if(c>=this.finishOn){this.render(1);this.cancel();this.event("beforeFinish");if(this.finish){this.finish()}this.event("afterFinish");return}var b=(c-this.startOn)/this.totalTime,a=(b*this.totalFrames).round();if(a>this.currentFrame){this.render(b);
this.currentFrame=a}}},cancel:function(){if(!this.options.sync){Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).remove(this)}this.state="finished"},event:function(a){if(this.options[a+"Internal"]){this.options[a+"Internal"](this)}if(this.options[a]){this.options[a](this)}},inspect:function(){var a=$H();for(property in this){if(!Object.isFunction(this[property])){a.set(property,this[property])
}}return"#<Effect:"+a.inspect()+",options:"+$H(this.options).inspect()+">"}});Effect.Parallel=Class.create(Effect.Base,{initialize:function(a){this.effects=a||[];this.start(arguments[1])},update:function(a){this.effects.invoke("render",a)},finish:function(a){this.effects.each(function(b){b.render(1);b.cancel();b.event("beforeFinish");if(b.finish){b.finish(a)}b.event("afterFinish")})}});Effect.Tween=Class.create(Effect.Base,{initialize:function(c,f,e){c=Object.isString(c)?$(c):c;
var b=$A(arguments),d=b.last(),a=b.length==5?b[3]:null;this.method=Object.isFunction(d)?d.bind(c):Object.isFunction(c[d])?c[d].bind(c):function(g){c[d]=g};this.start(Object.extend({from:f,to:e},a||{}))},update:function(a){this.method(a)}});Effect.Event=Class.create(Effect.Base,{initialize:function(){this.start(Object.extend({duration:0},arguments[0]||{}))},update:Prototype.emptyFunction});Effect.Opacity=Class.create(Effect.Base,{initialize:function(b){this.element=$(b);
if(!this.element){throw (Effect._elementDoesNotExistError)}if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1})}var a=Object.extend({from:this.element.getOpacity()||0,to:1},arguments[1]||{});this.start(a)},update:function(a){this.element.setOpacity(a)}});Effect.Move=Class.create(Effect.Base,{initialize:function(b){this.element=$(b);if(!this.element){throw (Effect._elementDoesNotExistError)
}var a=Object.extend({x:0,y:0,mode:"relative"},arguments[1]||{});this.start(a)},setup:function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle("left")||"0");this.originalTop=parseFloat(this.element.getStyle("top")||"0");if(this.options.mode=="absolute"){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop}},update:function(a){this.element.setStyle({left:(this.options.x*a+this.originalLeft).round()+"px",top:(this.options.y*a+this.originalTop).round()+"px"})
}});Effect.MoveBy=function(b,a,c){return new Effect.Move(b,Object.extend({x:c,y:a},arguments[3]||{}))};Effect.Scale=Class.create(Effect.Base,{initialize:function(b,c){this.element=$(b);if(!this.element){throw (Effect._elementDoesNotExistError)}var a=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:c},arguments[2]||{});this.start(a)
},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle("position");this.originalStyle={};["top","left","width","height","fontSize"].each(function(b){this.originalStyle[b]=this.element.style[b]}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var a=this.element.getStyle("font-size")||"100%";
["em","px","%","pt"].each(function(b){if(a.indexOf(b)>0){this.fontSize=parseFloat(a);this.fontSizeType=b}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=="box"){this.dims=[this.element.offsetHeight,this.element.offsetWidth]}if(/^content/.test(this.options.scaleMode)){this.dims=[this.element.scrollHeight,this.element.scrollWidth]}if(!this.dims){this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth]
}},update:function(a){var b=(this.options.scaleFrom/100)+(this.factor*a);if(this.options.scaleContent&&this.fontSize){this.element.setStyle({fontSize:this.fontSize*b+this.fontSizeType})}this.setDimensions(this.dims[0]*b,this.dims[1]*b)},finish:function(a){if(this.restoreAfterFinish){this.element.setStyle(this.originalStyle)}},setDimensions:function(a,e){var f={};if(this.options.scaleX){f.width=e.round()+"px"
}if(this.options.scaleY){f.height=a.round()+"px"}if(this.options.scaleFromCenter){var c=(a-this.dims[0])/2;var b=(e-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY){f.top=this.originalTop-c+"px"}if(this.options.scaleX){f.left=this.originalLeft-b+"px"}}else{if(this.options.scaleY){f.top=-c+"px"}if(this.options.scaleX){f.left=-b+"px"}}}this.element.setStyle(f)}});Effect.Highlight=Class.create(Effect.Base,{initialize:function(b){this.element=$(b);
if(!this.element){throw (Effect._elementDoesNotExistError)}var a=Object.extend({startcolor:"#ffff99"},arguments[1]||{});this.start(a)},setup:function(){if(this.element.getStyle("display")=="none"){this.cancel();return}this.oldStyle={};if(!this.options.keepBackgroundImage){this.oldStyle.backgroundImage=this.element.getStyle("background-image");this.element.setStyle({backgroundImage:"none"})}if(!this.options.endcolor){this.options.endcolor=this.element.getStyle("background-color").parseColor("#ffffff")
}if(!this.options.restorecolor){this.options.restorecolor=this.element.getStyle("background-color")}this._base=$R(0,2).map(function(a){return parseInt(this.options.startcolor.slice(a*2+1,a*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(a){return parseInt(this.options.endcolor.slice(a*2+1,a*2+3),16)-this._base[a]}.bind(this))},update:function(a){this.element.setStyle({backgroundColor:$R(0,2).inject("#",function(b,c,d){return b+((this._base[d]+(this._delta[d]*a)).round().toColorPart())
}.bind(this))})},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}))}});Effect.ScrollTo=function(d){var c=arguments[1]||{},b=document.viewport.getScrollOffsets(),e=$(d).cumulativeOffset(),a=(window.height||document.body.scrollHeight)-document.viewport.getHeight();if(c.offset){e[1]+=c.offset}return new Effect.Tween(null,b.top,e[1]>a?a:e[1],c,function(f){scrollTo(b.left,f.round())
})};Effect.Fade=function(c){c=$(c);var a=c.getInlineOpacity();var b=Object.extend({from:c.getOpacity()||1,to:0,afterFinishInternal:function(d){if(d.options.to!=0){return}d.element.hide().setStyle({opacity:a})}},arguments[1]||{});return new Effect.Opacity(c,b)};Effect.Appear=function(b){b=$(b);var a=Object.extend({from:(b.getStyle("display")=="none"?0:b.getOpacity()||0),to:1,afterFinishInternal:function(c){c.element.forceRerendering()
},beforeSetup:function(c){c.element.setOpacity(c.options.from).show()}},arguments[1]||{});return new Effect.Opacity(b,a)};Effect.Puff=function(b){b=$(b);var a={opacity:b.getInlineOpacity(),position:b.getStyle("position"),top:b.style.top,left:b.style.left,width:b.style.width,height:b.style.height};return new Effect.Parallel([new Effect.Scale(b,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(b,{sync:true,to:0})],Object.extend({duration:1,beforeSetupInternal:function(c){Position.absolutize(c.effects[0].element)
},afterFinishInternal:function(c){c.effects[0].element.hide().setStyle(a)}},arguments[1]||{}))};Effect.BlindUp=function(a){a=$(a);a.makeClipping();return new Effect.Scale(a,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(b){b.element.hide().undoClipping()}},arguments[1]||{}))};Effect.BlindDown=function(b){b=$(b);var a=b.getDimensions();return new Effect.Scale(b,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:a.height,originalWidth:a.width},restoreAfterFinish:true,afterSetup:function(c){c.element.makeClipping().setStyle({height:"0px"}).show()
},afterFinishInternal:function(c){c.element.undoClipping()}},arguments[1]||{}))};Effect.SwitchOff=function(b){b=$(b);var a=b.getInlineOpacity();return new Effect.Appear(b,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(c){new Effect.Scale(c.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(d){d.element.makePositioned().makeClipping()
},afterFinishInternal:function(d){d.element.hide().undoClipping().undoPositioned().setStyle({opacity:a})}})}},arguments[1]||{}))};Effect.DropOut=function(b){b=$(b);var a={top:b.getStyle("top"),left:b.getStyle("left"),opacity:b.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(b,{x:0,y:100,sync:true}),new Effect.Opacity(b,{sync:true,to:0})],Object.extend({duration:0.5,beforeSetup:function(c){c.effects[0].element.makePositioned()
},afterFinishInternal:function(c){c.effects[0].element.hide().undoPositioned().setStyle(a)}},arguments[1]||{}))};Effect.Shake=function(d){d=$(d);var b=Object.extend({distance:20,duration:0.5},arguments[1]||{});var e=parseFloat(b.distance);var c=parseFloat(b.duration)/10;var a={top:d.getStyle("top"),left:d.getStyle("left")};return new Effect.Move(d,{x:e,y:0,duration:c,afterFinishInternal:function(f){new Effect.Move(f.element,{x:-e*2,y:0,duration:c*2,afterFinishInternal:function(g){new Effect.Move(g.element,{x:e*2,y:0,duration:c*2,afterFinishInternal:function(h){new Effect.Move(h.element,{x:-e*2,y:0,duration:c*2,afterFinishInternal:function(i){new Effect.Move(i.element,{x:e*2,y:0,duration:c*2,afterFinishInternal:function(j){new Effect.Move(j.element,{x:-e,y:0,duration:c,afterFinishInternal:function(k){k.element.undoPositioned().setStyle(a)
}})}})}})}})}})}})};Effect.SlideDown=function(c){c=$(c).cleanWhitespace();var a=c.down().getStyle("bottom");var b=c.getDimensions();return new Effect.Scale(c,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:b.height,originalWidth:b.width},restoreAfterFinish:true,afterSetup:function(d){d.element.makePositioned();d.element.down().makePositioned();
if(window.opera){d.element.setStyle({top:""})}d.element.makeClipping().setStyle({height:"0px"}).show()},afterUpdateInternal:function(d){d.element.down().setStyle({bottom:(d.dims[0]-d.element.clientHeight)+"px"})},afterFinishInternal:function(d){d.element.undoClipping().undoPositioned();d.element.down().undoPositioned().setStyle({bottom:a})}},arguments[1]||{}))};Effect.SlideUp=function(c){c=$(c).cleanWhitespace();
var a=c.down().getStyle("bottom");var b=c.getDimensions();return new Effect.Scale(c,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,scaleMode:{originalHeight:b.height,originalWidth:b.width},restoreAfterFinish:true,afterSetup:function(d){d.element.makePositioned();d.element.down().makePositioned();if(window.opera){d.element.setStyle({top:""})}d.element.makeClipping().show()
},afterUpdateInternal:function(d){d.element.down().setStyle({bottom:(d.dims[0]-d.element.clientHeight)+"px"})},afterFinishInternal:function(d){d.element.hide().undoClipping().undoPositioned();d.element.down().undoPositioned().setStyle({bottom:a})}},arguments[1]||{}))};Effect.Squish=function(a){return new Effect.Scale(a,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(b){b.element.makeClipping()
},afterFinishInternal:function(b){b.element.hide().undoClipping()}})};Effect.Grow=function(c){c=$(c);var b=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var a={top:c.style.top,left:c.style.left,height:c.style.height,width:c.style.width,opacity:c.getInlineOpacity()};
var g=c.getDimensions();var h,f;var e,d;switch(b.direction){case"top-left":h=f=e=d=0;break;case"top-right":h=g.width;f=d=0;e=-g.width;break;case"bottom-left":h=e=0;f=g.height;d=-g.height;break;case"bottom-right":h=g.width;f=g.height;e=-g.width;d=-g.height;break;case"center":h=g.width/2;f=g.height/2;e=-g.width/2;d=-g.height/2;break}return new Effect.Move(c,{x:h,y:f,duration:0.01,beforeSetup:function(i){i.element.hide().makeClipping().makePositioned()
},afterFinishInternal:function(i){new Effect.Parallel([new Effect.Opacity(i.element,{sync:true,to:1,from:0,transition:b.opacityTransition}),new Effect.Move(i.element,{x:e,y:d,sync:true,transition:b.moveTransition}),new Effect.Scale(i.element,100,{scaleMode:{originalHeight:g.height,originalWidth:g.width},sync:true,scaleFrom:window.opera?1:0,transition:b.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(j){j.effects[0].element.setStyle({height:"0px"}).show()
},afterFinishInternal:function(j){j.effects[0].element.undoClipping().undoPositioned().setStyle(a)}},b))}})};Effect.Shrink=function(c){c=$(c);var b=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var a={top:c.style.top,left:c.style.left,height:c.style.height,width:c.style.width,opacity:c.getInlineOpacity()};
var f=c.getDimensions();var e,d;switch(b.direction){case"top-left":e=d=0;break;case"top-right":e=f.width;d=0;break;case"bottom-left":e=0;d=f.height;break;case"bottom-right":e=f.width;d=f.height;break;case"center":e=f.width/2;d=f.height/2;break}return new Effect.Parallel([new Effect.Opacity(c,{sync:true,to:0,from:1,transition:b.opacityTransition}),new Effect.Scale(c,window.opera?1:0,{sync:true,transition:b.scaleTransition,restoreAfterFinish:true}),new Effect.Move(c,{x:e,y:d,sync:true,transition:b.moveTransition})],Object.extend({beforeStartInternal:function(g){g.effects[0].element.makePositioned().makeClipping()
},afterFinishInternal:function(g){g.effects[0].element.hide().undoClipping().undoPositioned().setStyle(a)}},b))};Effect.Pulsate=function(c){c=$(c);var b=arguments[1]||{};var a=c.getInlineOpacity();var e=b.transition||Effect.Transitions.sinoidal;var d=function(f){return e(1-Effect.Transitions.pulse(f,b.pulses))};d.bind(e);return new Effect.Opacity(c,Object.extend(Object.extend({duration:2,from:0,afterFinishInternal:function(f){f.element.setStyle({opacity:a})
}},b),{transition:d}))};Effect.Fold=function(b){b=$(b);var a={top:b.style.top,left:b.style.left,width:b.style.width,height:b.style.height};b.makeClipping();return new Effect.Scale(b,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(c){new Effect.Scale(b,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(d){d.element.hide().undoClipping().setStyle(a)}})}},arguments[1]||{}))
};Effect.Morph=Class.create(Effect.Base,{initialize:function(c){this.element=$(c);if(!this.element){throw (Effect._elementDoesNotExistError)}var a=Object.extend({style:{}},arguments[1]||{});if(!Object.isString(a.style)){this.style=$H(a.style)}else{if(a.style.include(":")){this.style=a.style.parseStyle()}else{this.element.addClassName(a.style);this.style=$H(this.element.getStyles());this.element.removeClassName(a.style);
var b=this.element.getStyles();this.style=this.style.reject(function(d){return d.value==b[d.key]});a.afterFinishInternal=function(d){d.element.addClassName(d.options.style);d.transforms.each(function(e){d.element.style[e.style]=""})}}}this.start(a)},setup:function(){function a(b){if(!b||["rgba(0, 0, 0, 0)","transparent"].include(b)){b="#ffffff"}b=b.parseColor();return $R(0,2).map(function(c){return parseInt(b.slice(c*2+1,c*2+3),16)
})}this.transforms=this.style.map(function(g){var f=g[0],e=g[1],d=null;if(e.parseColor("#zzzzzz")!="#zzzzzz"){e=e.parseColor();d="color"}else{if(f=="opacity"){e=parseFloat(e);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1})}}else{if(Element.CSS_LENGTH.test(e)){var c=e.match(/^([\+\-]?[0-9\.]+)(.*)$/);e=parseFloat(c[1]);d=(c.length==3)?c[2]:null}}}var b=this.element.getStyle(f);
return{style:f.camelize(),originalValue:d=="color"?a(b):parseFloat(b||0),targetValue:d=="color"?a(e):e,unit:d}}.bind(this)).reject(function(b){return((b.originalValue==b.targetValue)||(b.unit!="color"&&(isNaN(b.originalValue)||isNaN(b.targetValue))))})},update:function(a){var d={},b,c=this.transforms.length;while(c--){d[(b=this.transforms[c]).style]=b.unit=="color"?"#"+(Math.round(b.originalValue[0]+(b.targetValue[0]-b.originalValue[0])*a)).toColorPart()+(Math.round(b.originalValue[1]+(b.targetValue[1]-b.originalValue[1])*a)).toColorPart()+(Math.round(b.originalValue[2]+(b.targetValue[2]-b.originalValue[2])*a)).toColorPart():(b.originalValue+(b.targetValue-b.originalValue)*a).toFixed(3)+(b.unit===null?"":b.unit)
}this.element.setStyle(d,true)}});Effect.Transform=Class.create({initialize:function(a){this.tracks=[];this.options=arguments[1]||{};this.addTracks(a)},addTracks:function(a){a.each(function(b){b=$H(b);var c=b.values().first();this.tracks.push($H({ids:b.keys().first(),effect:Effect.Morph,options:{style:c}}))}.bind(this));return this},play:function(){return new Effect.Parallel(this.tracks.map(function(a){var d=a.get("ids"),c=a.get("effect"),b=a.get("options");
var e=[$(d)||$$(d)].flatten();return e.map(function(f){return new c(f,Object.extend({sync:true},b))})}).flatten(),this.options)}});Element.CSS_PROPERTIES=$w("backgroundColor backgroundPosition borderBottomColor borderBottomStyle borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth borderRightColor borderRightStyle borderRightWidth borderSpacing borderTopColor borderTopStyle borderTopWidth bottom clip color fontSize fontWeight height left letterSpacing lineHeight marginBottom marginLeft marginRight marginTop markerOffset maxHeight maxWidth minHeight minWidth opacity outlineColor outlineOffset outlineWidth paddingBottom paddingLeft paddingRight paddingTop right textIndent top width wordSpacing zIndex");
Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.__parseStyleElement=document.createElement("div");String.prototype.parseStyle=function(){var b,a=$H();if(Prototype.Browser.WebKit){b=new Element("div",{style:this}).style}else{String.__parseStyleElement.innerHTML='<div style="'+this+'"></div>';b=String.__parseStyleElement.childNodes[0].style}Element.CSS_PROPERTIES.each(function(c){if(b[c]){a.set(c,b[c])
}});if(Prototype.Browser.IE&&this.include("opacity")){a.set("opacity",this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1])}return a};if(document.defaultView&&document.defaultView.getComputedStyle){Element.getStyles=function(b){var a=document.defaultView.getComputedStyle($(b),null);return Element.CSS_PROPERTIES.inject({},function(c,d){c[d]=a[d];return c})}}else{Element.getStyles=function(b){b=$(b);var a=b.currentStyle,c;
c=Element.CSS_PROPERTIES.inject({},function(d,e){d[e]=a[e];return d});if(!c.opacity){c.opacity=b.getOpacity()}return c}}Effect.Methods={morph:function(a,b){a=$(a);new Effect.Morph(a,Object.extend({style:b},arguments[2]||{}));return a},visualEffect:function(c,e,b){c=$(c);var d=e.dasherize().camelize(),a=d.charAt(0).toUpperCase()+d.substring(1);new Effect[a](c,b);return c},highlight:function(b,a){b=$(b);
new Effect.Highlight(b,a);return b}};$w("fade appear grow shrink fold blindUp blindDown slideUp slideDown pulsate shake puff squish switchOff dropOut").each(function(a){Effect.Methods[a]=function(c,b){c=$(c);Effect[a.charAt(0).toUpperCase()+a.substring(1)](c,b);return c}});$w("getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles").each(function(a){Effect.Methods[a]=Element[a]
});Element.addMethods(Effect.Methods);