if(!$defined(window.console)){window.console={log:function(a){}}}var InputText=new Class({initialize:function(a){this.element=a=$(a);this.text=a.value;a.store("inputText",this);a.addEvents({focus:(function(){if(a.value==this.text){var b=a.retrieve("valueObserver",false);if(b){b.set("")}else{a.value=""}a.removeClass("default_text")}}).bind(this),blur:(function(){if(a.value==""){var b=a.retrieve("valueObserver",false);if(b){b.set(this.text)}else{a.value=this.text}a.addClass("default_text")}}).bind(this)})},isValid:function(){return(this.element.value&&this.element.value!=this.text)},value:function(){console.log("inputtext value",this.element.value);return this.isValid()?this.element.value:""}});Element.implement({fadeOut:function(){this.fade(Browser.Engine.trident?"hide":"out")},fadeIn:function(){this.fade(Browser.Engine.trident?"show":"in")}});var LoginDropDown=new Class({Implements:[Options],options:{fadeOptions:{duration:"short"},inputStyles:{normal:{color:"#000"},error:{color:"#f00"}}},initialize:function(b,a){this.setOptions(a);this.element=$(b);this.menuShown=false;this.menu=this.element.getElement(".login_menu");this.menu.set("tween",this.options.fadeOptions);this.menu.setStyle("display","block").fade("hide");this.show=this.element.getElement(".login_show");this.toggler=this.documentClicked.bind(this);this.show.addEvent("click",this.showClicked.bind(this));this.email=this.menu.getElement("input.email").retrieve("inputText");this.password=this.menu.getElement("input#password-password").retrieve("inputText");this.validator=new Form(this.menu);this.menu.getElement("button").addEvent("click",this.doLogin.bind(this));this.menu.getElement("form").addEvent("submit",this.doLogin.bind(this));this.request=new Request({url:this.menu.getElement("form").getAttribute("action"),onSuccess:this.loginSuccess.bind(this),onFailure:this.loginFailure.bind(this)})},showClicked:function(a){a.stop();console.log("toggling");if(this.menuShown){this.menu.fadeOut();this.menuShown=false;document.removeEvent("click",this.toggler)}else{this.menu.fadeIn();this.menuShown=true;document.addEvent("click",this.toggler)}},documentClicked:function(a){if($(a.target).getParent(".login_menu")){return true}this.showClicked(a);return false},doLogin:function(c){c.stop();console.log(c,c.target);var b=false;var a=false;if(this.validator.validate()){console.log("form valid ... submitting");this.request.post({email:this.email.value(),password:this.password.value()})}else{console.log("form invalid!")}},loginSuccess:function(){console.log("login success");this.menu.fadeOut();this.menuShown=false;window.location=window.location.href},loginFailure:function(){console.log("login failure");this.validator.setInvalid(this.email.element);this.validator.setInvalid(this.password.element)}});window.addEvent("domready",function(){if($defined($$(".login_menu")[0])){pass=new PassShark("password",{interval:100,duration:500,replacement:"%u25CF",prefix:"password-",debug:false,inputText:true});$$("input.email").each(function(e){new InputText(e)});login=new LoginDropDown($$(".login")[0])}$$("input.search_input").each(function(e){new InputText(e)});var c=new Class({Implements:[Options,Events],initialize:function(){this.findDirection=this.findDirection.bindWithEvent(this);document.addEvent("mousemove",this.findDirection);var e=$A(["n","ne","e","se","s","sw","w","nw"]);this.dir=e;this.xold=0;this.yold=0;this.flag=0},setDirection:function(e){this.direction=this.dir[e]},findDirection:function(e){this.flag+=1;if(this.flag>0&&this.flag<4){return}this.flag=0;x=e.page.x;y=e.page.y;xdiff=x-this.xold;ydiff=y-this.yold;this.xold=x;this.yold=y}});c.instance=new c();$$(".teaser").each(function(e){var g=e.getElement(".info");var j=new Fx.Tween(g,{link:"cancel",duration:150});var h=e.getCoordinates(document.body);function f(l,n,k,m){var o=false;if((l<=h.right&&h.right<=k)||(k<=h.right&&h.right<=l)){o="e"}else{if((l<=h.left&&h.left<=k)||(k<=h.left&&h.left<=l)){o="w"}else{if((n<=h.bottom&&h.bottom<=m)||(m<=h.bottom&&h.bottom<=n)){o="s"}else{if((n<=h.top&&h.top<=m)||(m<=h.top&&h.top<=n)){o="n"}}}}return o}e.addEvents({mouseenter:function(k){start=[k.page.x,k.page.y];old=[c.instance.xold,c.instance.yold];switch(f(old[0],old[1],start[0],start[1])){case"s":g.setStyles({top:186,left:0});j.start("top",0);break;case"n":g.setStyles({top:-186,left:0});j.start("top",0);break;case"w":g.setStyles({top:0,left:-280});j.start("left",0);break;case"e":g.setStyles({top:0,left:280});j.start("left",0);break}},mouseleave:function(k){start=[k.page.x,k.page.y];old=[c.instance.xold,c.instance.yold];switch(f(old[0],old[1],start[0],start[1])){case"n":g.setStyles({top:0,left:0});j.start("top",-186);break;case"s":g.setStyles({top:0,left:0});j.start("top",186);break;case"e":g.setStyles({top:0,left:0});j.start("left",280);break;case"w":g.setStyles({top:0,left:0});j.start("left",-280);break}}})});var b=Fx.Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,alwaysHide:false,trigger:"click",initialDisplayFx:true,returnHeightToAuto:true},initialize:function(){var g=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});this.parent(g.elements,g.options);this.togglers=$$(g.togglers);this.container=document.id(g.container);this.previous=-1;this.internalChain=new Chain();if(this.options.alwaysHide){this.options.wait=true}if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show}if(this.options.start){this.options.display=false;this.options.show=false}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity"}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth"}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight"}for(var f=0,e=this.togglers.length;f<e;f++){this.addSection(this.togglers[f],this.elements[f])}this.elements.each(function(j,h){if(this.options.show===h){this.fireEvent("active",[this.togglers[h],j])}else{for(var k in this.effects){j.setStyle(k,0)}}},this);if($chk(this.options.display)){this.display(this.options.display,this.options.initialDisplayFx)}this.addEvent("complete",this.internalChain.callChain.bind(this.internalChain))},addSection:function(j,g){j=document.id(j);g=document.id(g);var k=this.togglers.contains(j);this.togglers.include(j);this.elements.include(g);var e=this.togglers.indexOf(j);var f=this.display.bind(this,e);j.store("accordion:display",f);j.addEvent(this.options.trigger,function(l){l.stop();f()});if(this.options.height){g.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"})}if(this.options.width){g.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"})}g.fullOpacity=1;if(this.options.fixedWidth){g.fullWidth=this.options.fixedWidth}if(this.options.fixedHeight){g.fullHeight=this.options.fixedHeight}g.setStyle("overflow","hidden");if(!k){for(var h in this.effects){g.setStyle(h,0)}}return this},detach:function(){this.togglers.each(function(e){e.removeEvent(this.options.trigger,e.retrieve("accordion:display"))},this)},display:function(e,f){if(!this.check(e,f)){return this}f=$pick(f,true);if(this.options.returnHeightToAuto){var h=this.elements[this.previous];if(h&&!this.selfHidden){for(var g in this.effects){h.setStyle(g,h[this.effects[g]])}}}e=($type(e)=="element")?this.elements.indexOf(e):e;if((this.timer&&this.options.wait)||(e===this.previous&&!this.options.alwaysHide)){return this}this.previous=e;var j={};this.elements.each(function(m,l){j[l]={};var k;if(l!=e){k=true}else{if(this.options.alwaysHide&&((m.offsetHeight>0&&this.options.height)||m.offsetWidth>0&&this.options.width)){k=true;this.selfHidden=true}}this.fireEvent(k?"background":"active",[this.togglers[l],m]);for(var n in this.effects){j[l][n]=k?0:m[this.effects[n]]}},this);this.internalChain.chain(function(){if(this.options.returnHeightToAuto&&!this.selfHidden){var k=this.elements[e];if(k){k.setStyle("height","auto")}}}.bind(this));return f?this.start(j):this.set(j)}});var d=$$("div.column_container.nav");if(d.length){d=d[0];var a=function(g){var j=[];var h=[];var k=-1;var e=0;g.getChildren("li").each(function(l){if(l.getChildren("a").length&&l.getChildren("ul").length){if(l.getChildren("ul")[0].getChildren("li").length==0){return}if(l.hasClass("active")){k=e}j.push(l.getChildren("a")[0]);h.push(l.getChildren("ul")[0]);e+=1}});var f=new b(j,h,{opacity:true,show:k,onActive:function(m,l){m.addClass("open")},onBackground:function(m,l){m.removeClass("open")},duration:250});h.each(function(l){a(l)})};a(d.getElement("ul.left"))}});var Observer=new Class({Implements:[Options,Events],options:{interval:100,duration:0},initialize:function(b,c,a){this.setOptions(a);this.element=$(b);this.element.store("valueObserver",this);this.property=c;this.value=this.element.get(c);this.start()},check:function(){var a=this.element.get(this.property);if(a==this.value||a=="search"){return}this.value=a;this.fireEvent("onChange",[a])},start:function(){this.stop();this.interval=this.check.periodical(this.options.interval,this)},stop:function(){$clear(this.interval)},set:function(a){this.stop();this.value=a;this.element.set(this.property,a);this.start()}});Element.Events.observedChange={onAdd:function(a){new Observer(this,"value",{onChange:a})}};Element.implement({fadeOut:function(){this.fade(Browser.Engine.trident?"hide":"out")},fadeIn:function(){this.fade(Browser.Engine.trident?"show":"in")}});var LiveSearch=new Class({initialize:function(b,d,a){this.selected=null;var c=$(b).retrieve("inputText",false);if(c){this.defaultText=c.text}else{this.defaultText=$(b).value}this.search=$(b).addEvents({focus:(function(){if(this.hasResults){this.showResults()}}).bind(this),blur:(function(){if(!this.search.value||this.search.value==this.defaultText){this.hasResults=false}}).bind(this)});this.spinner=$(d).set("tween",{duration:250}).fade("hide");this.results=$(a);this.resultWrapper=this.results.getParent().set("tween",{duration:250}).fade("hide");this.request=new Request({url:baseHref+"search",link:"cancel",onRequest:Element.fade.pass([this.spinner,"show"]),onSuccess:function(e){this.results.set("html",e);this.showResults()}.bind(this),onComplete:Element.fadeOut.pass(this.spinner)});this.userInteract()},hideResults:function(){this.resultWrapper.fadeOut();this.request.cancel();this.spinner.fadeOut();this.selected=null},showResults:function(){this.hasResults=true;this.resultWrapper.fadeIn();this.results.getElements("li.search_entry_selected").removeClass("search_entry_selected");this.selected=this.results.getElement("li").addClass("search_entry_selected")},changePosition:function(b){if(!this.selected){return}var a;switch($type(b)){case"event":a=$(b.target);if(!a.match("li.search_result")){a=a.getParent("li.search_results")}break;case"string":a=this.selected[(b=="up")?"getPrevious":"getNext"]("li.search_results")}if(!a){return}this.selected.removeClass("search_entry_selected");a.addClass("search_entry_selected");this.selected=a},selectResult:function(b){var a;if(b){a=b.stop().target;if(a.get("tag")!="a"){a=a.getParent("a")}}else{if(!this.selected){return}else{a=this.selected.getElement("a")}}window.location.href=a.get("href");this.hideResults()},userInteract:function(){document.addEvent("mousedown",function(a){if($(a.target).getParent){if(!$(a.target).getParent("div.search")){this.hideResults()}}else{this.hideResults()}}.bind(this));this.search.addEvents({observedChange:function(a){(a.length>2)?this.request.post({search:a}):this.hideResults()}.bind(this),keydown:function(a){switch(a.key){case"esc":this.hideResults();break;case"up":case"down":this.changePosition(a.key);break;case"enter":this.selectResult()}}.bind(this)});this.resultWrapper.addEvent("mouseover",this.changePosition.bind(this))}});window.addEvent("domready",function(){new LiveSearch("search_input","spinner_search","search_results")});var StyledCheckbox=new Class({Implements:[Events,Options],options:{animate:false,animationOptions:{duration:300,link:"chain"},animationStateNormal:{"background-color":"#FFF"},animationStatePressed:{"background-color":"#FFF"},group:null,onAction:$empty,saveUnchecked:false},initialize:function(b,a){this.setOptions(a);this.element=b;this.element.store("__widget__",this);this.build();if(this.options.animate){this.buildAnimation()}},buildAnimation:function(){var a=new Fx.Morph(this.element,this.options.animationOptions);a.set(this.options.animationStateNormal);this.element.store("EF.widget.animation",a)},startAnimation:function(){var a=this.element.retrieve("EF.widget.animation");a.start(this.options.animationStatePressed);a.start(this.options.animationStateNormal)},build:function(){var g=this.element;var b=g.getElement("input");this.check(g);b.style.display="none";var c=b.get("type")=="checkbox";var f=g.hasClass("");if(this.options.saveUnchecked&&c&&!f){var d=new Element("input",{type:"text","class":"custominput_valueholder",value:b.get("checked")?1:0,name:b.get("name")}).inject(b,"after");b.set("name","")}this.value=c?b.get("checked"):b.get("value");this.checked=b.get("checked");var a=function(e){e.stop();if(this.options.animate&&e.target==b){this.startAnimation()}if(e.target!=b){if(c){b.checked=!b.checked;this.check(g);if(this.options.saveUnchecked&&!f){d.set("value",b.get("checked")?1:0)}}else{if(!b.checked){b.checked=true}$$(this.options.group).each(function(h){if(h.getElement("input").type=="radio"){this.check(h)}}.bind(this))}if(!f&&e.target==b){this.value=c?b.get("checked"):b.get("value");this.checked=b.get("checked");this.fireEvent("action",b.get("value"))}}}.bind(this);g.addEvent("click",a);if(c){$$('label[for="'+b.id+'"]').addEvent("click",a)}},check:function(c){c=$(c)||$(this.element);var a=c.getElement("input");var b=a.get("type");if(a.id=="male_1"){console.log("toggling",c,a,a.checked)}if(a.checked){c.addClass(b+"_on");c.removeClass(b+"_off")}else{c.addClass(b+"_off");c.removeClass(b+"_on")}this.fireEvent("action",[a.checked])},setChecked:function(c){var b=$(b)||$(this.element);var a=b.getElement("input");a.checked=c;this.check()},isChecked:function(){var b=$(b)||$(this.element);var a=b.getElement("input");return a.checked}});StyledCheckbox.extend({assign:function(a,b){return $$(a).map(function(c){return new StyledCheckbox(c,b)})}});var Form=new Class({Implements:[Events,Options],options:{classNormal:"normal",classFocus:"focus",classError:"error",sendJSON:false,signalSubmit:false},Regex:{email:/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i,telephone:/^(\+|\d|\(|\)|\s)+$/i},initialize:function(b,a){this.setOptions(a);console.log(b,$(b));this.elements=$H({});this.voptions=$H({});this.constraints=$H({});this.el=$(b).addEvent("submit",this.submit.bindWithEvent(this));this.els=this.el.getElements("input[type!=submit][type!=reset], textarea").filter(function(c){var d=c.get("title");c.addEvents({focus:this.focus.bind(this,c),blur:this.blur.bind(this,c)});if(!d){return false}this.elements.set(c.id,c);this.voptions.set(c.id,d.split(",").map(String.trim).map(String.toLowerCase));c.erase("title");return true},this)},setInvalid:function(a){a.morph(a.get("tag")+"."+this.options.classError)},validate:function(){this.error=false;this.elements.each(function(a){this.check(a)},this);if(this.error){return false}return true},submit:function(b){console.log("form submitted");this.error=false;this.elements.each(function(c){this.check(c)},this);if(this.error){b.stop();return false}var a={};this.el.getElements("input[type!=submit][type!=reset], textarea").each(function(c){a[c.name]=c.get("value")});if(this.options.signalSubmit){this.fireEvent.delay(0,this,["submit",[this.el]]);b.stop();return false}if(this.options.sendJSON){new Request.JSON({url:this.el.get("action"),onComplete:(function(c){if(!c||!c.msg){return}this.el.getElements("input[type=submit], input[type=reset], li.required").set("tween",{duration:200}).fade(0);$("message_sent").setStyles({opacity:0,display:"block"}).set("tween",{duration:800}).fade(1)}).bind(this)}).post(a);return false}return true},focus:function(a){a.morph(a.get("tag")+"."+this.options.classFocus)},blur:function(a){a.morph(a.get("tag")+"."+this.options.classNormal);if(this.voptions.has(a.id)&&this.voptions.get(a.id).contains("autocheck")){this.check(a)}},check:function(c){var a=false,e=c.get("value");if(this.voptions.has(c.id)){var f=c.retrieve("inputText",false);if(f){console.log("before getting inptext value in form.check");e=f.value();a=!f.isValid();console.log("after getting inptext value in form.check",f.value())}if(this.voptions.get(c.id).contains("required")&&(!e||e.test(/^\s+$/))){a=true}$H(this.Regex).each(function(g,h){if(!this.voptions.get(c.id).contains(h)){return}if(!e.test(g)){a=true}}.bind(this))}if(this.constraints.has(c.id)){var b=this.constraints.get(c.id).type;var d=this.constraints.get(c.id).data;if(!a){a=Form.Validators[b](c,d)}}if(a){this.error=a;c.morph(c.get("tag")+"."+this.options.classError)}else{c.morph(c.get("tag")+"."+this.options.classNormal)}},addConstraint:function(b,a,c){if(!this.elements.has(a.id)){this.elements.set(a.id,a)}this.constraints.set(a.id,{type:b,data:c})},reset:function(){this.els.fireEvent("keydown");this.error=false;this.el.getElements("input[type!=submit][type!=reset], textarea").set("value","")}});Form.Validators={};Form.Validators.requiredIfNot=function(a,c){var b=a.get("value");if(!$(c).get("checked")&&(!b||b.test(/^\s+$/))){return true}return false};Form.Validators.requiredEqual=function(b,d){var c=b.get("value");var a=d.get("value");if(c&&a==c){return true}return false};Form.Validators.requiredEqualPassShark=function(c,b){var d=c.retrieve("originalElement").value;var a=b.retrieve("originalElement").value;if(d&&a==d){return false}return true};Form.Validators.equalPassShark=function(c,b){var d=c.retrieve("originalElement").value;var a=b.retrieve("originalElement").value;if(a==d){return false}return true};var GMRequest=new Class({Extends:Request,processHTML:function(c){var b=c.match(/<body[^>]*>([\s\S]*?)<\/body>/i);c=(b)?b[1]:c;var a=new Element("div");return $try(function(){var d="<root>"+c+"</root>",g;if(Browser.Engine.trident){g=new ActiveXObject("Microsoft.XMLDOM");g.async=false;g.loadXML(d)}else{g=new DOMParser().parseFromString(d,"text/xml")}d=g.getElementsByTagName("root")[0];if(!d){return null}for(var f=0,e=d.childNodes.length;f<e;f++){var h=Element.clone(d.childNodes[f],true,true);if(h){a.grab(h)}}return a})||a.set("html",c)}});var PassShark=new Class({Implements:[Options,Events,Log,Class.Occlude],Binds:["start","stop","_check"],options:{interval:100,duration:500,replacement:"%u25CF",prefix:"password-",debug:false,eraseName:false,inputText:false},initialize:function(b,a){this.origElement=this.element=document.id(b);if(this.occlude()){return this.occluded}this.setOptions(a);this.$E=function(c){return document.getElement(c)};this._setup()},_setup:function(){if(this.options.debug){this.enableLog()}var a=this.origElement.getProperties("name","id","class","style","size","maxlength","disabled","tabindex","accesskey","value","title");this.checker=null;this.timer=null;this._cloakInput(a)}.protect(),_cloakInput:function(e){this.origElement.hide();var c=255;var d=this.options;var b=(typeof e=="object")?$merge(e,{type:"text",name:d.prefix+(e.name?e.name:""),id:d.prefix+(e.id?e.id:""),maxlength:e.maxlength!=-1?e.maxlength:c,accesskey:e.accesskey!=undefined?e.accesskey:"",tabindex:e.tabindex!=""?e.tabindex:""}):{};this.origElement.title="";if(this.options.eraseName){b.name=""}var a=new Element("input",b).inject(this.origElement,"after");if(this.options.inputText){this.labelText=this.origElement.value;a.set("value",this.origElement.value);a.addClass("default_text");a.store("inputText",this)}a.store("originalElement",this.origElement);this.log("inject element: ",a);$pick(this.$E("label[for="+e.id+"]"),new Element("label")).setProperty("for",d.prefix+e.id);this.origElement.setProperty("tabindex","");this.origElement.setProperty("accesskey","");this.element=a.store("focus",0).addEvents({focus:this.start,blur:this.stop});this._check.delay(d.interval,this,["",true])}.protect(),start:function(a){if(this.options.debug){this.log("Event:",a.type)}this.element.store("focus",1);if(this.options.inputText&&this.element.value==this.labelText){this.element.set("value","");this.element.removeClass("default_text")}$clear(this.checker);this.checker=this._check.delay(this.options.interval,this,"")},stop:function(a){if(this.options.debug){this.log("Event:",a.type)}if(this.options.inputText&&!this.element.value){this.element.set("value",this.labelText);this.element.addClass("default_text")}this.element.store("focus",0);this.checker=$clear(this.checker)},_onDeletion:function(f,e){var d=this.origElement.get("value");var a=f;if((typeof f=="number")&&(this.element.getCaretPosition()<f)){a=f-e}else{if(typeof f!="object"){f=f+e}}var c=d.slice(0,f.start||a);var b=d.slice(f.end||f);this.origElement.set("value",c+b)}.protect(),_setPassword:function(d){if(this.options.debug){this.log("_setPassword:",d)}var b="";var c=0;for(var a=0;a<d.length;a++){if(d.charAt(a)==unescape(this.options.replacement)){b+=this.origElement.get("value").charAt(a-c)}else{b+=d.charAt(a);if(this.element.getCaretPosition()!==d.length){c++}}}this.origElement.set("value",b)}.protect(),_convertLastChar:function(){if(this.element.get("value")!=""){var b="";for(var a=0;a<this.element.get("value").length;a++){b+=unescape(this.options.replacement)}var c=this._getCaretRange();this.element.set("value",b);if(this.element.retrieve("focus")){this._correctCaret(c)}}},_check:function(b,g,f){if(this.options.debug){this.log("_check:",b)}if(this.options.inputText&&this.element.value==this.labelText){return}var a=this.element.get("value");if(a.length<b.length){var d=b.length-a.length;this._onDeletion(f,d)}if(b!=a){this._setPassword(a);if(a.length>1){var c="";for(i=0;i<a.length-1;i++){c+=unescape(this.options.replacement)}c+=a.charAt(a.length-1);var e=this._getCaretRange();this.element.set("value",c);this._correctCaret(e)}$clear(this.timer);this.timer=this._convertLastChar.delay(this.options.duration,this)}if(!g){$clear(this.checker);this.checker=this._check.delay(this.options.interval,this,[this.element.get("value"),false,e||this._getCaretRange()])}},_correctCaret:function(a){switch(typeof a){case"number":return this.element.setCaretPosition(a);case"object":return this.element.selectRange(a.start,a.end)}}.protect(),_getCaretRange:function(){return(this.element.getSelectedRange().start===this.element.getSelectedRange().end)?this.element.getCaretPosition():this.element.getSelectedRange()}.protect(),isValid:function(){return(this.element.value&&this.element.value!=this.labelText)},value:function(){return this.isValid()?this.origElement.value:""}});
