UI={};UI.doCallback=function(fn,data){try{if($type(fn)=="string"){fn=eval(fn)(data)}if($type(fn)=="function"){return fn(data)}if($type(fn)=="element"){return fn}}catch(e){$log("Error calling callback function: "+fn,e)}};UI.loadSparkle=function(b){if($type(b)=="string"){b={path:b}}b=$options(b,{path:"",data:{}});$extend(b.data,{action:"sparkle.parse",path:b.path});var a=[],d=[];var c={then:function(e){a.push(e)}};new Request.HTML({url:"/Remote.cfm",onSuccess:function(e,i,h,j){var f=(h&&h.clean().slice(0,6)=="error:");if(f){var g=h.clean().slice(6).toInt();if(typeOf(g)=="number"){if(confirm("It looks like there was an error while trying to perform this action.\n\nWould you like to open the error in a new window?")){window.open("/errors/inRequest.cfm?btrId="+g)}return}}while(a.length){a.shift()(h)}},onFailure:function(e){if(e.status=="500"&&b.onError){UI.doCallback(b.onError(e));return}if(e.status=="404"){alert('The Sparkle file specified ("'+b.path+'") could not be found. Please check the path:\n\n/Sites/[siteKey]/Sparkle/Remotes/'+b.path+".sparkle");return}$log(e)}}).post(b.data);return c};UI.initClasses=function(a){if(!a){return}a.getElements("input[hint],textarea[hint]").each(function(c){c.store("placeholder",new UI.Placeholder(c,c.getDataFromComment()))});a.getElements(".ui-slides").each(function(c){c.store("slides",new UI.Slides(c,c.getDataFromComment()))});a.getElements(".ui-button").each(function(c){c.store("button",new UI.Button(c,c.getDataFromComment()))});if(UI.Google){var b=a.getElements(".ui-map");if(b.length){UI.Google.load("maps",(function(){b.each(function(c){c.store("map",new UI.Map(c,c.getDataFromComment()))})}.bind(this)))}}a.getElements(".ui-form").each(function(c){c.store("form",new UI.Form(c,c.getDataFromComment()))});a.getElements(".ui-images").each(function(d){var c=d.getDataFromComment()||{};if(!c.mode){$extend(c,{mode:"gallery"})}d.store("image",new UI.Images(d,c))});a.getElements(".ui-image-popup").each(function(c){c.store("image",new UI.Images(c,c.getDataFromComment()))});a.getElements(".ui-suggest").each(function(c){c.store("suggest",new UI.Suggest(c,c.getDataFromComment()))});a.getElements(".ui-filterfield").each(function(c){c.store("filterfield",new UI.FilterField(c,c.getDataFromComment()))});a.getElements(".ui-expander").each(function(c){c.store("expander",new UI.Expander(c,c.getDataFromComment()))});a.getElements(".ui-toggle").each(function(c){c.store("toggle",new UI.Toggle(c,c.getDataFromComment()))});a.getElements(".ui-chosen").each(function(c){c.store("chosen",new UI.Chosen(c,c.getDataFromComment()))})};UI.Slides=new Class({Implements:Options,options:{width:0,height:0,first:1,type:"immediate",trigger:"click",duration:500,effect:"sine",ease:"out",fadeContent:false,containerClass:"ui-slides-container",contentClass:"ui-slide-content",slidesQuery:".ui-slide",navQuery:".ui-slidesnav",navItemQuery:false,autoSlide:false,animateNav:false,scrollNav:false},initialize:function(e,c){this.setOptions(c);var d=this.$el=$(e);this.transition=this.options.effect;if(this.options.effect!="linear"){this.transition+=":"+this.options.ease}this.$nav=d.getElement(this.options.navQuery);if(this.$nav){var b=this.gotoSlide.bind(this);this.navLinks=(this.options.navItemQuery?this.$nav.getElements(this.options.navItemQuery):this.$nav.getChildren());this.navLinks.each(function(g,h){switch(this.options.trigger){case"hover":this.options.trigger="mouseenter";break}g.addEvent(this.options.trigger,function(){b(h)})}.bind(this))}var a=d.getElement(this.options.slidesQuery);var f=this.$container=d.getElement("."+this.options.containerClass);if(!a){$log("Slides incorrectly configured, aborting:",d);return}if(!f){f=this.$container=new Element("div",{"class":this.options.containerClass,styles:{position:"relative",overflow:"hidden"}}).inject(a,"after")}if(this.options.width){f.setStyle("width",this.options.width)}if(this.options.height){f.setStyle("height",this.options.height)}this.slides=d.getElements(this.options.slidesQuery);if(!this.slides.length){alert("No slides detected. Each slide must have the class ["+this.options.slidesQuery+"]");return}this.slides.each((function(g,h){g.inject(f);g.setStyles({display:"none",width:this.options.width||"auto",height:this.options.height||"auto"});g.store("index",h)}.bind(this)));this.options.first-=1;this.gotoSlide(this.options.first,true);if(this.options.autoSlide){this.autoSlide()}},autoSlide:function(){var c=this.$el,d=this.slides;var e=0,b=false;var a=(function(){if(b){return}this.gotoSlide(e);e++;if(e>=d.length){e=0}}.bind(this));a();(function(){a()}).periodical(this.options.autoSlide);c.addEvent("mouseenter",function(){b=true;$clear(a);c.removeEvents("mouseenter")})},prepare:function(b){var c=this.$nextSlide=this.slides[b||0];if(!c){alert("UI.Slides Error: Slide "+b+" could not be found in the Slides array.");return}if(this.currentSlide.index==b){return this}var d=this.currentSlide;if(this.options.fadeContent){var a=c.getElement("."+this.options.contentClass);a.setStyle("opacity",0);this.show(b)}else{this.show(b)}},show:function(d){var m=this.currentSlide,e=this.$nextSlide;var q=e.getDataFromComment(),r=e.retrieve("rendered");if(!r&&q&&q.fromSparkle){UI.loadSparkle(q.fromSparkle).then(function(u){var t=u;e.set("html",t);UI.initClasses(e);e.store("rendered",true);if(q.onRender){UI.doCallback(q.onRender)}})}else{if(!r){e.store("rendered",true)}}e.store("rendered",true);var l=this.$el.getSize().x;var j=this.$el.getSize().y;if(this.navLinks){this.navigation={$previous:this.navLinks[this.currentSlide.index],$current:this.navLinks[d]};if(this.options.animateNav){UI.doCallback(this.options.animateNav,this)}else{if(this.navLinks[this.currentSlide.index]){this.navLinks[this.currentSlide.index].removeClass("selected")}this.navLinks[d].addClass("selected");if(this.options.scrollNav){var i=this.navigation.$current;var n=this.$nav.getDimensions().y;var s=i.getPosition(this.$nav).y,f=i.getDimensions().y;var p=s+f;$log(p);if(p>n){this.$nav.scrollTo(0,f)}else{if(p==0){this.$nav.scrollTo(0,0)}}}}}var h=(function(){this.currentSlide={$el:e,index:d}}.bind(this));var a=(function(t){this.slides.each(function(u){if(t&&u==t.$el){return}u.hide()})}.bind(this));if(!this.currentSlide){$log("No current slide detected, showing immediately.");var g={display:"block"};switch(this.options.type){case"horizontal":g.left=0;break;case"vertical":g.top=0;break;case"fade":g.opacity=1;break}e.setStyles(g);h();return}var m=this.currentSlide;switch(this.options.type){case"horizontal":case"vertical":var o=(m.index<e.retrieve("index"))?-1:1;var c=e.getDimensions();if(m.$nav){m.$nav.removeClass("current").addClass("normal")}m.$el.setStyles({position:"absolute"});var k=this.currentSlide.$el;var b=k.getElement("."+this.options.contentClass);if(this.options.width){k.setStyle("width",this.options.width)}if(this.options.height){k.setStyle("height",this.options.height)}if(!this.options.width&&!this.options.height){this.$el.setStyle("height",c.y);k.setStyles({width:c.x,height:c.y})}k.get("tween").setOptions({duration:this.options.duration,transition:this.transition});switch(this.options.type){case"horizontal":k.get("tween").start("left",c.x*o).chain(function(){k.setStyles({display:"none",position:"relative"});this.finished(e)}.bind(this));break;case"vertical":k.get("tween").start("top",c.y*o).chain(function(){k.setStyles({display:"none",position:"relative"});this.finished(e)}.bind(this));break}e.setStyles({display:"block",position:"absolute"});e.get("tween").setOptions({duration:this.options.duration,transition:this.transition});switch(this.options.type){case"horizontal":e.setStyles({left:c.x*o*-1}).get("tween").start("left",0).chain((function(){e.setStyle("position","relative");this.finished(e)}.bind(this)));break;case"vertical":e.setStyles({top:c.y*o*-1}).get("tween").start("top",0).chain((function(){e.setStyle("position","relative");this.finished(e)}.bind(this)));break}h();break;case"fade":a(m);if(m.$nav){m.$nav.removeClass("current").addClass("normal")}e.show().setStyle("height","auto");var c=e.getComputedSize();e.hide();this.currentSlide.$el.setStyles({opacity:1});this.currentSlide.$el.get("tween").setOptions({duration:this.options.duration,transition:this.transition}).start("opacity",0).chain((function(){a();e.show();e.setStyles({width:c.x,height:c.y,opacity:0}).get("tween").setOptions({duration:this.options.duration,transition:this.transition}).start("opacity",0,1).chain((function(){e.setStyles({position:"relative",width:"auto",height:"auto"});this.finished(e)}.bind(this)))}.bind(this)));h();break;case"immediate":m.$el.hide();e.show();this.finished(e);h();break}return this},finished:function(b){if(this.options.fadeContent){var a=b.getElement("."+this.options.contentClass);a.get("tween").setOptions({duration:500,transition:"linear"});a.get("tween").start("opacity",1).chain(function(){}.bind(this))}this.checkForMaps(b)},next:function(){if(!this.currentSlide||this.currentSlide.index>=this.slides.length-1){return this.prepare(0)}else{return this.prepare(this.currentSlide.index+1)}},previous:function(){if(!this.currentSlide){return this.prepare(0)}else{if(this.currentSlide.index==0){return this.prepare(this.slides.length-1)}else{return this.prepare(this.currentSlide.index-1)}}},gotoFirst:function(){this.gotoSlide(0)},gotoLast:function(){var a=this.slides.length-1;this.gotoSlide(a)},gotoSlide:function(c,a){if(!this.slides[c]||this.currentSlide==c){return}if(!a){this.prepare(c);return}if(this.currentSlide&&this.currentSlide.index>-1){this.slides[this.currentSlide.index].setStyle("display","none");if(this.navLinks&&this.navLinks[this.currentSlide.index]){this.navLinks[this.currentSlide.index].removeClass("selected")}}var b=this.slides[c];this.currentSlide={$el:this.slides[c],index:c};b.setStyle("display","block");if(this.navLinks&&this.navLinks[c]){this.navLinks[c].addClass("selected")}},checkForMaps:function(a){var b=a.getElements(".ui-map");if(!b.length){return}b.each(function(d){var c=d.retrieve("map");if(!c.options.autoCreate&&!c._created){c.render()}})}});document.addEvent("domready",function(){$$(".ui-slides").each(function(a){a.store("slides",new UI.Slides(a,a.getDataFromComment()))})});UI.FilterField=new Class({Implements:Options,options:{itemsEl:document,hideItems:true,itemsQuery:".ui-search-item",fieldQuery:".ui-search-field",activeClass:"ui-search-item-active",inactiveClass:"ui-search-item-inactive",clearQuery:".ui-search-clear",minLength:3,inputDelay:500,onInit:null,onSearch:null,highlightTerms:false,highlightQuery:false},initialize:function(e,a){var c=this.$el=$(e);this.setOptions(a);this.originalItemsQuery=this.options.itemsQuery;this._lastSearch="";var d=this.itemsEl=this.options.itemsEl;if(d!=document){d=this.itemsEl=document.getElement(this.options.itemsEl)}var f=this.$input=c;if(c.get("tag")!="input"){f=this.$input=c.getElement("input")}this.initInput();var b=this.$clearSearch=c.getElement(this.options.clearQuery);this.initClear();this.initSearchData();if(!this.options.highlightQuery){this.options.highlightQuery=this.options.activeClass}if(this.options.onInit){UI.doCallback(this.options.onInit)}},initInput:function(){var a=this.$input;a.addEvents({keyup:function(){var b=a.value;if(!b){if(this.$clearSearch){this.$clearSearch.hide()}}if(b&&b.length<this.options.minLength){return}clearTimeout(this._inputTimer);this._inputTimer=(function(){this.doSearch(a.value)}.bind(this)).delay(this.options.inputDelay);if(b){this.$clearSearch.show()}}.bind(this)})},initClear:function(){var a=this.$clearSearch;if(!a){return}a.hide();a.addEvents({click:function(){this.$input.value="";clearTimeout(this._inputTimer);this.doSearch();a.hide();$("quicksearch-input").fireEvent("blur").focus();this.clearHighlights()}.bind(this)})},setQuery:function(a){this.itemsEl.getElements(this.originalItemsQuery).hide();if(!a){a=this.originalItemsQuery}this.options.itemsQuery=a;this.doSearch(this._lastSearch)},initSearchData:function(){var a=[];this.itemsEl.getElements(this.options.itemsQuery).each((function(b){var c="";b.getElements(this.options.fieldQuery).each(function(d){c+=d.innerHTML+" |||| "});a.push({terms:c,$el:b})}.bind(this)));this._searchData=a},doSearch:function(b){var c=this._searchData;this._lastSearch=b;this.clearHighlights();if((!b||!$chk(b.trim()))&&(this.originalItemsQuery==this.options.itemsQuery)){c.each(function(e){if(this.options.hideItems){e.$el.show()}e.$el.removeClass(this.options.activeClass).removeClass(this.options.inactiveClass)}.bind(this));if(this.options.onSearch){UI.doCallback(this.options.onSearch)}return}if(b){b=b.trim().escapeRegExp()}var a=this.options.itemsQuery.replace(".","","g");c.each((function(e){if(this.options.hideItems){if(e.terms.test(b,"i")){e.$el.show()}else{e.$el.hide()}}if(e.terms.test(b,"i")){e.$el.addClass(this.options.activeClass).removeClass(this.options.inactiveClass)}else{e.$el.addClass(this.options.inactiveClass).removeClass(this.options.activeClass)}}.bind(this)));if(this.options.highlightTerms){var d=new RegExp("("+b+")","gi");this.itemsEl.getElements(this.options.highlightQuery).each((function(f){var g=f.get("text"),e=g.replace(d,'<span class="ui-search-highlight">$1</span>');f.set("html",e)}.bind(this)))}if(this.options.onSearch){UI.doCallback(this.options.onSearch)}},clearHighlights:function(){if(!this.options.highlightTerms){return}var a=this.itemsEl.getElements(".ui-search-highlight");a.removeClass("ui-search-highlight")}});document.addEvent("domready",function(){$$(".ui-filterfield").each(function(a){a.store("filterfield",new UI.FilterField(a,a.getDataFromComment()))})});UI.Placeholder=new Class({Implements:[Events,Options],options:{placeHolder:"",placeHolderCss:""},initialize:function(c,a){this.setOptions(a);this.placeholder=c.get("hint");if(this.options.placeholder){this.placeholder=this.options.placeholder}var b={display:"inline-block",position:"relative","-moz-box-sizing":"border-box","-webkit-box-sizing":"border-box","box-sizing":"border-box"};this.$el=new Element("span",{"class":"ui-textfield",styles:b}).inject(c,"after");var d={"-moz-box-sizing":"border-box","-webkit-box-sizing":"border-box","box-sizing":"border-box"};this.$field=c.setStyles(d).inject(this.$el);this.initPlaceholder();this.$field.addEvent("focus",(function(e){}).bind(this)).addEvent("blur",(function(e){this.updatePlaceholder()}).bind(this)).addEvent("keypress",(function(e){this.updatePlaceholder()}).bind(this)).addEvent("keyup",(function(e){this.updatePlaceholder()}).bind(this)).addEvent("change",(function(e){}).bind(this))},initPlaceholder:function(){if(this.$placeholder){this.$placeholder=this.$placeholder.destroy()}if($chk(this.placeholder)){var a={cursor:"text",top:"0px",left:"0px",position:"absolute",width:"100%",overflow:"hidden",color:"#999","text-align":"left","-moz-box-sizing":"border-box","-webkit-box-sizing":"border-box","box-sizing":"border-box"};this.$placeholder=new Element("span",{"class":"ui-textfield-placeholder",styles:a,html:this.placeholder}).inject(this.$el);if($chk(this.placeholderCss)){this.$placeholder.setStyles(this.placeholderCss)}var b=parseInt(this.$field.getStyle("border-left-width"))+parseInt(this.$field.getStyle("padding-left"))+parseInt(this.$field.getStyle("margin-left"))+1,c=parseInt(this.$field.getStyle("border-top-width"))+parseInt(this.$field.getStyle("padding-top"))+parseInt(this.$field.getStyle("margin-top"));if(Browser.name=="ie"){b=(b<0?0:b);c=(b<0?0:c)}this.$placeholder.setStyles({fontSize:this.$field.getStyle("font-size"),paddingLeft:b,paddingTop:c});this.$placeholder.addEvent("click",this.focus.bind(this));this.updatePlaceholder()}},updatePlaceholder:function(){if(!this.$placeholder){return}this.$placeholder.setStyle("opacity",(this.$field.value.length?0:1))},focus:function(){try{this.$field.focus()}catch(a){}return this},set:function(b,a){switch(b){case"placeholder":this.placeholder=a;this.initPlaceholder();break;default:this.store[b]=a}return this},get:function(a){switch(a){default:return this.store[a]}}});document.addEvent("domready",function(){$$("input[hint],textarea[hint]").each(function(a){a.store("placeholder",new UI.Placeholder(a,a.getDataFromComment()))})});UI.Masonry=new Class({Implements:Options,options:{singleMode:false,columnWidth:undefined,itemQuery:undefined,appendedContent:undefined,resizeable:true},element:undefined,colW:undefined,colCount:undefined,lastColCount:undefined,colY:undefined,lastColY:undefined,bound:undefined,masoned:undefined,bricks:undefined,posLeft:undefined,brickParent:undefined,initialize:function(b,a){this.setOptions(a);this.element=document.id(b);this.go()},go:function(){var b=this.options;if(this.masoned&&b.appendedContent!=undefined){this.brickParent=b.appendedContent}else{this.brickParent=this.element}if(this.brickParent.getChildren().length>0){this.masonrySetup();this.masonryArrange();var a=this.options.resizeable;if(a){if(this.bound==undefined){this.bound=this.masonryResize.bind(this);this.attach()}}if(!a){this.detach()}}if(this.bound!=undefined){this.bound()}},attach:function(){window.addEvent("resize",this.bound);return this},detach:function(){if(this.bound!=undefined){window.removeEvent("resize",this.bound);this.bound=undefined}return this},placeBrick:function(d,e,f,g){var a=0;for(var c=0;c<e;c++){if(f[c]<f[a]){a=c}}d.setStyles({top:f[a],left:this.colW*a+this.posLeft});var b=d.getSize().y+d.getStyle("margin-top").toInt()+d.getStyle("margin-bottom").toInt();for(var c=0;c<g;c++){this.colY[a+c]=f[a]+b}},masonrySetup:function(){var d=this.options.itemQuery;this.bricks=d==undefined?this.brickParent.getChildren():this.brickParent.getElements(d);if(this.options.columnWidth==undefined){var a=this.bricks[0];this.colW=a.getSize().x+a.getStyle("margin-left").toInt()+a.getStyle("margin-right").toInt()}else{this.colW=this.options.columnWidth}var c=this.element.getSize().x+this.element.getStyle("margin-left").toInt()+this.element.getStyle("margin-right").toInt();this.colCount=Math.floor(c/this.colW);this.colCount=Math.max(this.colCount,1);return this},masonryResize:function(){this.brickParent=this.element;this.lastColY=this.colY;this.lastColCount=this.colCount;this.masonrySetup();if(this.colCount!=this.lastColCount){this.masonryArrange()}return this},masonryArrange:function(){if(!this.masoned){this.element.setStyle("position","relative")}if(!this.masoned||this.options.appendedContent!=undefined){this.bricks.setStyle("position","absolute")}var o=new Element("div").inject(this.element,"top");var m=o.getPosition();var e=this.element.getPosition();var g=m.y-e.y;this.posLeft=m.x-e.x;o.dispose();if(this.masoned&&this.options.appendedContent!=undefined){if(this.lastColY!=undefined){this.colY=this.lastColY}for(var f=this.lastColCount;f<this.colCount;f++){this.colY[f]=g}}else{this.colY=[];for(var f=0;f<this.colCount;f++){this.colY[f]=g}}if(this.options.singleMode){for(var c=0;c<this.bricks.length;c++){var h=this.bricks[c];this.placeBrick(h,this.colCount,this.colY,1)}}else{for(var c=0;c<this.bricks.length;c++){var h=this.bricks[c];var p=h.getSize().x+h.getStyle("margin-left").toInt()+h.getStyle("margin-right").toInt();var l=Math.ceil(p/this.colW);l=Math.min(l,this.colCount);if(l==1){this.placeBrick(h,this.colCount,this.colY,1)}else{var n=this.colCount+1-l;var b=[0];for(var f=0;f<n;f++){b[f]=0;for(var d=0;d<l;d++){b[f]=Math.max(b[f],this.colY[f+d])}}this.placeBrick(h,n,b,l)}}}var a=0;for(var f=0;f<this.colCount;f++){a=Math.max(a,this.colY[f])}this.element.setStyle("height",a-g);this.element.fireEvent("masoned",this.element);this.masoned=true;this.options.appendedContent=undefined;return this}});document.addEvent("domready",function(){$$(".ui-masonry").each(function(a){a.store("masonry",new UI.Masonry(a,a.getDataFromComment()))})});UI.Popup=new Class({Implements:[Options,Events],options:{modal:true,width:false,height:false,transition:"immediate",fromElement:null,fromSparkle:null,loadingHTML:null,onRender:null,performOnRender:null,zIndex:1000,cssClass:null,confirmBeforeClose:null,blockoutClose:true,sizeQuery:null,blockoutOpacity:0.5},initialize:function(a){this.setOptions(a);var c=this.$container=new Element("div",{"class":"ui-popup",style:"overflow: hidden; position: absolute; z-index: "+(this.options.zIndex+1)+";"}).inject(document.body,"top").hide();c.store("popup",this);if(this.options.cssClass){c.addClass(this.options.cssClass)}c.store("popup",this);if(this.options.modal){if(!UI.$popupBlockout){UI.$popupBlockout=new Element("div",{"class":"ui-popup-blockout",style:"position: fixed; top: 0px; left: 0px; width: 100%; z-index: "+(this.options.zIndex)+";"}).setOpacity(0).inject(document.body,"top")}else{UI.$popupBlockout.show()}if(this.options.blockoutClose){UI.$popupBlockout.removeEvents("click");UI.$popupBlockout.addEvent("click",(function(){if(this.options.confirmBeforeClose){if(!confirm(this.options.confirmBeforeClose)){return}}this.close()}.bind(this)))}UI.$popupBlockout.set("opacity",this.options.blockoutOpacity)}if(!UI.$popupLoading){UI.$popupLoading=new Element("div",{"class":"ui-popup-loading",style:"position: fixed; top: 0px; left: 0px; width: 100%; z-index: "+(this.options.zIndex+1)+";"}).inject(document.body,"top")}else{UI.$popupLoading.set("opacity",1).show()}if(this.options.loadingHTML){UI.$popupLoading.set("html",this.options.loadingHTML)}else{UI.$popupLoading.set("html",'<div class="ui-popup-loading-indicator"></div>')}this.resizeBlockout();window.addEvent("resize",(function(){this.resizeBlockout()}.bind(this)));if(this.options.fromSparkle){var b=(function(d){this.content=d;this.render()}.bind(this));UI.loadSparkle(this.options.fromSparkle).then(function(d){b(d)})}if(this.options.fromElement){}},render:function(){this.$container.show().setOpacity(0);UI.$popupLoading.hide();this.$el=new Element("div",{style:"position: absolute; width: 100%; height: 100%;"}).inject(this.$container);var c=new Element("div",{style:"position: absolute; width: 100%; height: 100%; z-index: "+(this.options.zIndex+2)+";"}).inject(this.$el);var a=new Element("div",{style:"padding: 0px; position: relative;"}).inject(c);this.$content=new Element("div",{style:"position: relative;"}).inject(a);this.$content.set("html",this.content);this.size();if(this.options.fromSparkle){UI.initClasses(this.$content)}this.positionPopup();window.addEvent("resize",(function(){this.positionPopup()}.bind(this)));this.fireEvent("ready");var b=(function(){this.fireEvent("visible");if(this.options.onRender){UI.doCallback(this.options.onRender,this.$container);(function(){this.size(true)}.bind(this)).delay(1)}if(this.options.performOnRender){UI.doCallback(this.options.performOnRender,this.$container);(function(){this.size(true)}.bind(this)).delay(1)}}.bind(this));if(this.options.transition=="fade"){this.$container.get("tween").setOptions({duration:300}).start("opacity",1).chain(b)}else{this.$container.set("opacity",1);b()}},size:function(a){if(!this.options.width||!this.options.height||a){this.$container.setStyles({position:"relative",top:0,left:0,overflow:"visible"});var b=(this.options.sizeQuery?this.$content.getElement(this.options.sizeQuery):this.$content.getChildren()[0]);var c=b.getSize();if(!this.options.width){this.options.width=c.x}if(!this.options.height||a){this.options.height=c.y}}if(this.options.width){this.$container.setStyles({width:this.options.width})}if(this.options.height){this.$container.setStyles({height:this.options.height})}this.$container.setStyles({position:"absolute",overflow:"hidden","margin-left":"50%",left:-(Math.round(this.options.width/2))});if(a){this.positionPopup()}},close:function(a){this.fireEvent("beforeClose");this.$container.get("tween").setOptions({duration:200}).start("opacity",0).chain((function(){this.fireEvent("close");if(this.options.modal){if(!a){UI.$popupBlockout.get("tween").setOptions({duration:100}).start("opacity",0).chain((function(){this.destroy()}.bind(this)));UI.$popupLoading.get("tween").setOptions({duration:100}).start("opacity",0).chain((function(){this.destroy()}.bind(this)))}}else{this.destroy()}}.bind(this)))},destroy:function(a){window.removeEvent("resize",this.resizeBlockout);this.$container.destroy();if(this.options.modal&&!a){UI.$popupBlockout.hide()}this.fireEvent("destroy")},positionPopup:function(){this.$container.setStyle("margin-top",document.getScrollTop()+((window.getSize().y-this.options.height)/2))},resizeBlockout:function(){if(!this.options.modal){return}var c=window.getSize().y;var b=document.body.clientHeight;var a=Math.max(c,b);UI.$popupBlockout.setStyle("height",a);UI.$popupLoading.setStyle("height",a)}});document.addEvent("domready",function(){$$(".ui-popup").each(function(a){a.store("popup",new UI.Popup(a,a.getDataFromComment()))})});UI.Expander=new Class({Implements:Options,options:{startExpanded:false,labelClass:"ui-expander-label",labelClass_close:"ui-expander-close",contentClass:"ui-expander-content",labelClass_expanded:"ui-expander-label-expanded",labelClass_contracted:"ui-expander-label-contracted",contentClass_expanded:"ui-expander-content-expanded",contentClass_contracted:"ui-expander-content-contracted",fx:true},initialize:function(b,a){this.setOptions(a);this.$el=$(b);this.$content=this.$el.getElement("."+this.options.contentClass);this.$label=this.$el.getElement("."+this.options.labelClass);this.$close=this.$el.getElement("."+this.options.labelClass_close);this.defaults={overflow:this.$content.getStyle("overflow")};if(this.options.startExpanded){this.isExpanded=true}else{this.$content.setStyles({display:"none"});this.isExpanded=false}this.$label.addEvent("click",this.toggle.bind(this));if(this.$close){this.$close.addEvent("click",this.contract.bind(this))}},toggle:function(){if(this.isExpanded){this.contract()}else{this.expand()}},expand:function(){var b=this.defaults;if(this.options.fx){this.$content.setStyles({display:"block",visibility:"hidden",position:"absolute"});var a=this.$content.getSize().y;this.$content.setStyles({height:1,position:"relative",overflow:"hidden",visibility:"visible"}).get("tween").start("height",1,a).chain(function(){this.element.setStyles({height:"",overflow:b.overflow})})}else{this.$content.setStyles({display:"block",visibility:"visible"})}this.$label.removeClass(this.options.labelClass_contracted).addClass(this.options.labelClass_expanded);this.$content.removeClass(this.options.contentClass_contracted).addClass(this.options.contentClass_expanded);this.isExpanded=true},contract:function(){if(this.options.fx){this.$content.setStyle("overflow","hidden").get("tween").start("height",1).chain(function(){this.element.setStyles({height:"",display:"none"})})}else{this.$content.setStyles({display:"none"})}this.$label.removeClass(this.options.labelClass_expanded).addClass(this.options.labelClass_contracted);this.$content.removeClass(this.options.contentClass_expanded).addClass(this.options.contentClass_contracted);this.isExpanded=false}});document.addEvent("domready",function(){$$(".ui-expander").each(function(a){a.store("expander",new UI.Expander(a,a.getDataFromComment()))})});UI.Accordion=new Class({Implements:Options,options:{direction:"vertical",effect:"quad",ease:"in:out",duration:500,width:null,height:null,trigger:"click",itemQuery:null},current:null,initialize:function(e,b){var c=$(e);this.setOptions(b);var d=this.options.effect;if(this.options.ease&&d!="linear"){d+=":"+this.options.ease}this.transition=d;if(this.options.trigger=="hover"){this.options.trigger="mouseenter"}var a=c.getChildren();if(this.options.itemQuery){a=c.getElements(this.options.itemQuery)}a.each((function(k,j){var h=k.getChildren();if(h.length<2){return}var f=h[0],g=h[1];if(g.isVisible()){this.current=g}f.addEvent(this.options.trigger,(function(i){i.stop();if(this.current==g){this.contract(this.current);this.current=null;return}if(this.current){this.contract(this.current)}this.expand(g)}.bind(this)))}.bind(this)))},expand:function(c){var b=c.retrieve("expanded");if(b){return}c.show().setStyle("height","auto");var a=c.getDimensions();c.setStyles({position:"relative",overflow:"hidden"});c.get("tween").setOptions({duration:this.options.duration,transition:this.transition});switch(this.options.direction){case"vertical":c.setStyle("height",0).get("tween").start("height",this.options.height||a.y).chain(function(){});break;case"horizontal":c.setStyle("width",0).get("tween").start("width",this.options.width||a.x).chain(function(){});break}c.store("expanded",true);this.current=c},contract:function(a){a.get("tween").setOptions({duration:this.options.duration,transition:this.transition});switch(this.options.direction){case"vertical":a.get("tween").start("height",0);break;case"horizontal":a.get("tween").start("width",0);break}a.store("expanded",false)}});document.addEvent("domready",function(){$$(".ui-accordion").each(function(a){a.store("accordion",new UI.Accordion(a,a.getDataFromComment()))})});UI.SmoothScroll=new Class({Implements:Options,options:{linkQuery:"a",offset:{x:0,y:0}},initialize:function(c,b){this.setOptions(b);var a=c.getElements(this.options.linkQuery);new Fx.SmoothScroll({links:a,offset:this.options.offset})}});document.addEvent("domready",function(){$$(".ui-smoothscroll").each(function(a){a.store("smoothscroll",new UI.SmoothScroll(a,a.getDataFromComment()))})});UI.Button=new Class({Implements:[Options,Events],options:{action:"do nothing",order:0,isToggle:false},initialize:function(c,a){var b=this.$el=$(c);this.setOptions(a);this.bound={maybeHideMenu:this.maybeHideMenu.bind(this)};this.state={};this.$el.addEvent("focus",(function(){this.appearFocused()}).bind(this)).addEvent("blur",(function(){this.appearBlurred()}).bind(this)).addEvent("keydown",(function(d){if(d.key=="space"||d.key=="enter"){this.toElement().fireEvent("mousedown")}}).bind(this)).addEvent("keyup",(function(d){if(d.key=="space"||d.key=="enter"){this.toElement().fireEvent("click")}}).bind(this)).addEvent("mouseenter",(function(){this.state.mouseover=true;if(this.state.disabled||this.state.pressed){return}if(this.options.on=="hover"){this.action()}this.toElement().removeClass("ui-button-normal").removeClass("ui-button-focus").addClass("ui-button-hover")}).bind(this)).addEvent("mouseleave",(function(){this.state.mouseover=false;this.state.mousedown=false;if(this.state.disabled||this.state.pressed){return}this.toElement().removeClass("ui-button-hover").removeClass("ui-button-press").addClass((this.state.focus)?"ui-button-focus":"ui-button-normal")}).bind(this)).addEvent("mousedown",(function(){if(this.state.disabled){return}this.state.mousedown=true;this.toElement().removeClass("ui-button-normal").removeClass("ui-button-focus").removeClass("ui-button-hover").addClass("ui-button-press")}).bind(this)).addEvent("click",(function(d){var f=b.getProperty("href");if(d&&this.options.action&&this.options.action!="do nothing"&&f=="javascript:;"){d.stop()}if(this.state.disabled||!this.state.mousedown){return}if(!this.options.on||this.options.on!="hover"){this.action()}this.state.mousedown=false;if(this.options.isToggle){if(this.state.pressed){this.unpress()}else{this.makePressed()}return}if(this.options.sticky){this.state.pressed=true}if(!this.options.sticky){this.toElement().removeClass("ui-button-press")}if(this.state.mouseover&&!this.state.pressed){this.toElement().addClass("ui-button-hover")}else{this.toElement().removeClass("ui-button-hover")}if(!this.state.mouseover&&this.state.focus){this.toElement().addClass("ui-button-focus")}else{this.toElement().removeClass("ui-button-focus")}if(!this.state.mouseover&&!this.state.focus){this.toElement().addClass("ui-button-normal")}else{this.toElement().removeClass("ui-button-normal")}}).bind(this));this.$el.addClass("ui-button-normal");this.$el.tabIndex=this.options.order},appearFocused:function(){if(!this.state){return}if(this.state.hover||this.state.pressed){return}this.state.focus=true;if(this.state.disabled){return}this.toElement().removeClass("ui-button-normal").addClass("ui-button-focus")},appearBlurred:function(){if(!this.state){return}this.state.focus=false;if(this.state.disabled||this.state.pressed){return}this.toElement().removeClass("ui-button-focus");if(this.state.hover){this.toElement().addClass("ui-button-hover")}else{this.toElement().addClass("ui-button-normal")}},focus:function(){this.toElement().focus()},press:function(){this.toElement().fireEvent("mousedown");if(!this.options.isToggle){(function(){this.toElement().fireEvent("click")}).bind(this).delay(100)}},makePressed:function(){this.state.pressed=true;this.toElement().fireEvent("mousedown")},makeHovered:function(){this.state.hover=true;this.toElement().fireEvent("mouseenter")},makeUnpressed:function(){this.state.pressed=false;this.state.hover=false;this.state.focus=false;this.toElement().removeClass("ui-button-press").removeClass("ui-button-hover").removeClass("ui-button-focus");this.toElement().addClass("ui-button-normal")},unpress:function(){this.state.pressed=false;this.toElement().removeClass("ui-button-press");if(this.state.hover){this.toElement().addClass("ui-button-hover")}else{if(this.state.focus){this.toElement().addClass("ui-button-focus")}else{this.toElement().addClass("ui-button-normal")}}},disable:function(){if(this.state.disabled){return}this.state.disabled=true;(function(){this.toElement().removeClass("ui-button-hover").removeClass("ui-button-press").removeClass("ui-button-focus").addClass("ui-button-normal").addClass("ui-button-disabled").setStyle("opacity",0.5)}).bind(this).delay(50);return this},enable:function(){if(!this.state.disabled){return}this.state.disabled=false;if(this.state.hover){this.toElement().removeClass("ui-button-normal").addClass("ui-button-hover")}else{if(this.state.focus){this.toElement().removeClass("ui-button-normal").addClass("ui-button-focus")}}(function(){this.toElement().removeClass("ui-button-disabled").setStyle("opacity",1)}.bind(this)).delay(50);return this},reset:function(){this.state.pressed=false;this.state.hover=false;this.state.disabled=false;this.state.focus=false;this.state.mouseover=false;this.state.mousedown=false;this.toElement().removeClass("ui-button-hover").removeClass("ui-button-press").removeClass("ui-button-focus").removeClass("ui-button-disabled").addClass("ui-button-normal")},set:function(b,a){switch(b){case"tabIndex":this.$el.tabIndex=a||0;break}return this},action:function(){var G=this.$el;var g=this.options;switch(g.action){case"show":case"show element":case"show menu":case"hide":case"hide element":var f=null,l="click",A="instant",a=300,p="linear",t="out",k=false;var v="top left",w="top left",C=0,B=0,e=null;var E=false,m=null;var y=[];if(g.target=="this"){this.$target=f=G}else{this.$target=f=$(g.target)}if(!f){return}if(g.on){l=g.on}if(l=="hover"){l="mouseenter"}if(g.transition){A=g.transition}if(g.duration){a=g.duration}if(g.effect){p=g.effect}if(g.ease&&p!="linear"){p+=":"+g.ease}if(g.anchorFrom){v=g.anchorFrom.replace(" ","-").camelCase()}if(g.align){w=g.align.replace(" ","-").camelCase()}if(g.left){C=g.left}if(g.top){B=g.top}e=g.relativeTo;if(e=="this"){e=G}if(g.action=="show menu"&&g.sticky){E=g.sticky}if(g.action=="show menu"&&g.focusField){m=g.focusField}var F=(function(){if(!e){return}if(Browser.name=="firefox"){C+=1}f.position({position:v,edge:w,relativeTo:e,offset:{x:Number(C),y:Number(B)}})});var k=(function(){try{f.getParent().getChildren().hide()}catch(H){}});if(g.onStart){UI.doCallback(g.onStart,f)}switch(g.action){case"show":case"show element":if(g.hideSiblings){y.push(k)}break}switch(A){case"fade":var u=(function(){if(f.isVisible()){return}F();f.show().setOpacity(0);f.get("tween").setOptions({duration:a,transition:p}).start("opacity",1).chain(function(){if(g.onComplete){UI.doCallback(g.onComplete,f)}})});var j=(function(){if(!f.isVisible()){return}f.get("tween").setOptions({duration:a,transition:p}).start("opacity",0).chain(function(){f.hide();if(g.onComplete){UI.doCallback(g.onComplete,f)}})});switch(g.action){case"show":case"show element":case"show menu":y.push(u);break;case"hide":case"hide element":y.push(j);break}break;case"slide":var u=(function(){if(f.isVisible()){return}f.setStyles({overflow:"hidden"});var I=0;f.show();var H=f.getSize().y;f.setStyles({height:0,overflow:"hidden"});f.get("tween").setOptions({duration:a,transition:p}).start("height",I,H).chain(function(){if(g.onComplete){UI.doCallback(g.onComplete,f)}})});var j=(function(){if(!f.isVisible()){return}f.setStyles({overflow:"hidden"});f.get("tween").setOptions({duration:a,transition:p}).start("height",0).chain(function(){if(g.onComplete){UI.doCallback(g.onComplete,f)}})});switch(g.action){case"show":case"show element":case"show menu":y.push(u);break;case"hide":case"hide element":y.push(j);break}break;default:var u=(function(){if(f.isVisible()){return}f.show();F();if(g.onComplete){UI.doCallback(g.onComplete,f)}});var j=(function(){if(!f.isVisible()){return}f.hide();if(g.onComplete){UI.doCallback(g.onComplete,f)}});switch(g.action){case"show":case"show element":case"show menu":y.push(u);break;case"hide":case"hide element":y.push(j);break}}switch(g.action){case"show":case"show element":case"hide":case"hide element":y.each(function(H){H()});if(l=="mouseenter"){G.addEvent("mouseleave",function(){f.hide()})}break;case"show menu":y.each(function(H){H()});break}if(g.action=="show menu"){if(this.options.sticky&&this._menuIsOpen){this.hideMenu(true)}else{if(!this._menuIsOpen){if(UI.$currentButtonMenu&&UI.$currentButtonMenu._menuIsOpen){UI.$currentButtonMenu.hideMenu(true)}UI.$currentButtonMenu=this;if(this.options.relativeWidth){var x=this.$el.getSize();f.setStyle("width",x.x)}var o=G.getStyle("z-index"),z=f.getStyle("z-index");if(o!="auto"){var D=o.toInt();this._buttonIndex=D;G.setStyle("z-index",(D+10))}if(z!="auto"){var q=z.toInt();this._targetIndex=q;f.setStyle("z-index",(q+10))}if(this.options.focusField){var c=$(this.options.focusField);if(c){c.focus()}}this._menuIsOpen=true;if(this.options.onMenuToggle){UI.doCallback(this.options.onMenuToggle,{$el:this.$el,$target:this.$target,visible:true})}if(g.sticky){document.body.addEvent("click",this.bound.maybeHideMenu);document.body.addEvent("focus",this.bound.maybeHideMenu)}else{this.$el.addEvents({mouseenter:(function(){$clear(this._closeTimer)}.bind(this)),mouseleave:(function(H){this.bound.maybeHideMenu(H)}.bind(this))});this.$target.addEvents({mouseenter:(function(){$clear(this._closeTimer)}.bind(this)),mouseleave:(function(H){this.bound.maybeHideMenu(H)}.bind(this))})}}}}break;case"switch elements":var f=null,d=null,s=null,A="instant",a=300,p="linear",t="out";d=$(g.show);s=$(g.hide);if(g.transition){A=g.transition}if(g.duration){a=g.duration}if(g.effect){p=g.effect}if(g.ease&&p!="linear"){p+=":"+g.ease}switch(A){case"fade":s.get("tween").setOptions({duration:a,transition:p}).start("opacity",0).chain(function(){s.hide();d.show().setOpacity(0);d.get("tween").setOptions({duration:a/2,transition:p}).start("opacity",1).chain(function(){if(g.onComplete){UI.doCallback(g.onComplete,f)}})});break;case"slide":var n=s.getSize().y;d.show();var h=d.getSize().y;d.hide();s.setStyle("overflow","hidden");s.get("tween").setOptions({duration:a/2,transition:p}).start("height",n,h).chain(function(){s.setStyle("height","auto");s.hide();d.show();d.get("tween").setOptions({duration:a/2,transition:p}).start("height",h).chain(function(){d.setStyle("height","auto");if(g.onComplete){UI.doCallback(g.onComplete,f)}})});break;case"sweet":var n=s.getSize().y;d.show();var h=d.getSize().y;d.hide();s.get("morph").setOptions({duration:a/2,transition:p}).start({height:[n,h],opacity:0}).chain(function(){s.setStyle("height","auto");s.hide();d.show().setOpacity(0);d.get("morph").setOptions({duration:a/2,transition:p}).start({height:h,opacity:1}).chain(function(){d.setStyle("height","auto");if(g.onComplete){UI.doCallback(g.onComplete,f)}})});break;default:d.show();s.hide();if(g.onComplete){UI.doCallback(g.onComplete,f)}}break;case"next slide":case"previous slide":case"first slide":case"last slide":var r=null,i=G;while(!r){i=i.getParent();if(i){if(i.hasClass("ui-slides")){if(i.retrieve("slides")){r=i.retrieve("slides")}}}}if(!r){$log("Slides store not found for button:",G,"With action: "+g.action);return}switch(g.action){case"next slide":r.next();return;case"previous slide":r.previous();return;case"first slide":r.gotoFirst();return;case"last slide":r.gotoLast();return}break;case"switch class":G.removeClass(g.remove).addClass(g.add);break;case"show popup":case"open popup":new UI.Popup(g);break;case"close popup":case"close then open popup":case"close popup then reload":var b=null,i=G;while(!b){i=i.getParent();if(i){if(i.hasClass("ui-popup")){window.theElement=i;if(i.retrieve("popup")){b=i.retrieve("popup")}}}}if(!b){$log("Popup store not found for button:",G,"With action: "+g.action);return}if(g.action=="close then open popup"){b.destroy(true);UI.$popupBlockout.show();new UI.Popup(g)}else{b.close();if(g.action=="close then reload"){(function(){top.location.reload()}).delay(200)}}break;case"do nothing":break;default:UI.doCallback(g.action,G)}},toElement:function(){return this.$el},maybeHideMenu:function(d){if(this.options.on=="hover"){this.makeHovered()}else{this.makePressed()}var c=d.target,a=d.relatedTarget;if(this.options.sticky&&(c==this.$target||c==this.$el)){return}if(a==this.$el||a==this.$target){return}if(a){if(a.getParent){var b=a.getParents();if(b.contains(this.$target)||b.contains(this.$el)){return}}}else{if(this.options.stickyClose){this.hideMenu(true)}return}this.hideMenu()},hideMenu:function(b){var a=(function(){this.$target.hide();this.reset();this._menuIsOpen=false;if(this.options.sticky){document.body.removeEvent("click",this.bound.maybeHideMenu);document.body.removeEvent("focus",this.bound.maybeHideMenu)}else{this.$el.removeEvent("mouseleave",this.bound.maybeHideMenu);this.$target.removeEvent("mouseleave",this.bound.maybeHideMenu)}if(this._buttonIndex){this.$el.setStyle("z-index",this._buttonIndex)}if(this._targetIndex){this.$target.setStyle("z-index",this._targetIndex)}if(this.options.onMenuToggle){UI.doCallback(this.options.onMenuToggle,{$el:this.$el,$target:this.$target,visible:false})}}.bind(this));this._closeTimer=(function(){a()}.bind(this)).delay((b?0:300))}});document.addEvent("domready",function(){$$(".ui-button").each(function(a){a.store("button",new UI.Button(a,a.getDataFromComment()))})});UI.Suggest=new Class({Implements:Options,options:{target:null,parameter:null,field:null,itemQuery:"li",minLength:3,populateField:false,populateLabelField:false,populateValueField:false,highlightTerms:true,highlightQuery:"a",gotoLink:false,queryPage:null,disableBlur:false,stickyClose:false,extendOnSelect:false,resultsClass:null,resultsQuery:".ui-suggest-results",left:0,top:0,onRender:null,renderFn:null,progressiveFn:null,useFirstResult:false,positionOutside:false,onBlank:null,anchorFrom:"bottomLeft",align:"topLeft",autoHeight:false,heightAdjustment:0},initialize:function(g,c){var e=this.$el=$(g);this.setOptions(c);this.bound={maybeHide:this.maybeHide.bind(this)};var f=this.$field=e.getElement("input");if(this.options.field){f=$(this.options.field)}if(!f){$log("No valid field was found for UI.Suggest, you must use a standard input field inside the container or supply an id as [field].");return}var d=this.$activity=e.getElement(".ui-suggest-activity");var b=this.$results=e.getElement(this.options.resultsQuery||".ui-suggest-results");if(!b){b=this.$results=new Element("div",{"class":"ui-suggest-results",style:"position: absolute;"})}var a=window.document.body;if(this.options.positionOutside){b.inject(a)}else{b.inject(f,"after")}b.hide();if(this.options.resultsClass){b.addClass(this.options.resultsClass)}this.$clear=e.getElement(".ui-suggest-clear");f.addEvents({keypress:(function(i){if(i.key=="esc"){return this.hide()}if(i.key=="enter"){if(this._lastFocused){this._lastFocused.fireEvent("mousedown")}if(this.options.useFirstResult){this._useFirstResult=true}if(this.$results.isVisible()){this.gotoFirstResult()}this.hide();if(this.options.queryPage&&!this._keyingThroughItems){this._redirecting=true;top.location.href="/"+this.options.queryPage+"/"+this.$field.value.trim()}return}var h=null;if(this.results){h=this.results.indexOf(this._lastFocused)}if(i.key=="up"){i.stop();if(this.results&&this.results[h-1]){this.focusItem(this.results[h-1]);this._keyingThroughItems=true}return}if(i.key=="down"){i.stop();if(!this._lastFocused){var j=this.results[0];this.focusItem(j);return}if(this.results&&this.results[h+1]){this.focusItem(this.results[h+1]);this._keyingThroughItems=true}return}}.bind(this)),keyup:(function(i){if(i.key=="esc"||i.key=="enter"){return}if(!f.value.trim()){this.hide();if(this.options.onBlank){UI.doCallback(this.options.onBlank,this)}return}if(this._redirecting){return}var h=f.value.trim(),j=0,k=null;if(this._timer){$clear(this._timer)}this._timer=(function(){this.search()}.bind(this)).delay(300)}.bind(this)),blur:(function(h){if(!this.options.disableBlur&&!this.options.stickyClose){this.hide()}if(this.$activity){this.$el.removeClass("ui-suggest-processing");this.$activity.hide()}}.bind(this))})},hide:function(a){if(this.options.stickyClose){document.body.removeEvent("click",this.bound.maybeHide);document.body.removeEvent("focus",this.bound.maybeHide)}(function(){if(this.$results){this.$results.hide()}this._lastSearch=""}).delay((a?0:250),this)},maybeHide:function(c){var b=c.target;if(b){if(b.getParent){var a=b.getParents();if(a.contains(this.$field)||a.contains(this.$results)){return}}}this.hide(true)},search:function(){if(this._redirecting){return}var a=this.$field.value.trim();if(a.length<this.options.minLength){return}if(a&&(this._lastSearch==a)){return}this._lastSearch=a;this._lastFocused=false;this._keyingThroughItems=false;var b={path:"/"+this.options.target,data:this.options.data||{}};var c=(this.$field.getProperty("name")||"search");if(this.options.parameter){c=this.options.parameter}b.data[c]=a;if(this.$activity){this.$el.addClass("ui-suggest-processing");this.$activity.show()}if(this.$clear){this.$clear.hide()}if(this.options.progressiveFn){UI.doCallback(this.options.progressiveFn,{suggest:this,value:a})}else{if(this.options.onSearch){UI.doCallback(this.options.onSearch,this)}UI.loadSparkle(b).then((function(d){if(this.$field.value.trim()!=a){return}if(this._redirecting){return}this.render(d)}.bind(this)))}},focusItem:function(a){if(this._lastFocused){this._lastFocused.removeClass("ui-suggest-focused")}this._lastFocused=a;if(a){a.addClass("ui-suggest-focused")}},gotoFirstResult:function(){var a=this.$results;a.hide();var b=a.getElements(this.options.itemQuery+" a");if(!b.length){return}var c=b[0];if(this.options.onSelect){var d=c.getElement(".ui-suggest-value");if(d){if(this.options.extendOnSelect){UI.doCallback(this.options.onSelect,[d,this.$field])}else{UI.doCallback(this.options.onSelect,d)}}}else{top.location.href=c.getProperty("href")}this._useFirstResult=false;this.$results.hide()},render:function(b,e){var c=this.$field,a=this.$results;if(this.$activity){this.$el.removeClass("ui-suggest-processing");this.$activity.hide()}if(!b&&!e){return}if(this.options.stickyClose){document.body.addEvent("click",this.bound.maybeHide);document.body.addEvent("focus",this.bound.maybeHide)}if(this.$clear){this.$clear.show()}a.show();if(this.options.progressiveFn){new Element("div",{"class":"ui-suggest-results-chunk",html:b}).inject(a)}else{if(this.options.renderFn){UI.doCallback(this.options.renderFn,{suggest:this,results:b})}else{a.set("html",b)}}this.position();this._lastFocused=false;var b=this.results=a.getElements(this.options.itemQuery);b.each((function(f){f.addEvents({mouseover:(function(){}.bind(this)),mouseout:(function(){f.removeClass("ui-suggest-focused")}.bind(this)),mousedown:(function(l){if(this.options.populateLabelField){var j=f.getElement(".ui-suggest-label").get("text"),i=this.$labelField=this.$el.getElement("[name="+this.options.populateLabelField+"]");i.value=j;if(this.options.populateField=="label"){this.$field.value=j.clean()}}if($type(this.options.populateField)=="boolean"&&this.options.populateField){var j=f.get("text");this.$field.value=j.clean()}if(this.options.populateValueField){var k=f.getElement(".ui-suggest-value").get("text"),h=this.$valueField=this.$el.getElement("[name="+this.options.populateValueField+"]");h.value=k.clean();if(this.options.populateField=="value"){this.$field.value=k.clean()}}if(this.options.onSelect){var k=f.getElement(".ui-suggest-value");if(k){if(this.options.extendOnSelect){UI.doCallback(this.options.onSelect,[k,this.$field])}else{UI.doCallback(this.options.onSelect,k)}}}if(this.options.gotoLink){var g=f;if(f.get("tag")!="a"){g=f.getElement("a")}if(!g){return}top.location.href=g.getProperty("href")}this._lastSearch=this.$field.value.trim();if(this.options.gotoLink||this.options.populateField||this.options.onSelect){if(!this.options.disableBlur){this.hide()}}}.bind(this))})}.bind(this)));if(this.options.highlightTerms){var d=new RegExp("("+this._lastSearch+")","gi");a.getElements(this.options.highlightQuery).each((function(g){var h=g.get("text"),f=h.replace(d,'<span class="ui-suggest-highlight">$1</span>');g.set("html",f)}.bind(this)))}UI.initClasses(a);if(this.options.useFirstResult&&this._useFirstResult){this.gotoFirstResult()}this.autoHeight();if(this.options.onRender){UI.doCallback(this.options.onRender,a)}},position:function(){var b=this.$field,a=this.$results;a.position({relativeTo:b,position:this.options.anchorFrom.replace(" ","-").camelCase(),edge:this.options.align.replace(" ","-").camelCase(),offset:{x:this.options.left,y:this.options.top}})},autoHeight:function(){var b=this.$results;if(!this.options.autoHeight){return}var f=(typeOf(this.options.autoHeight)=="boolean"?b:b.getElement(this.options.autoHeight));f.setStyle("height","auto");var a=b.getSize(),c=window.getSize();var e=b.getPosition();var d=c.y-e.y-this.options.top-this.options.heightAdjustment;if(a.y>(c.y-e.y)){f.setStyle("height",d)}}});document.addEvent("domready",function(){$$(".ui-suggest").each(function(a){a.store("suggest",new UI.Suggest(a,a.getDataFromComment()))})});UI.Floating=new Class({Implements:Options,options:{width:null,align:"right",floatingClass:null,offset:0},initialize:function(b,a){this.setOptions(a);this.$el=b.getElement(".ui-floating-box");this.$track=b;this.$track.setStyles({height:"100%",overflow:"visible",position:"absolute",width:this.options.width});switch(this.options.align){case"left":this.$track.setStyle("left",0);break;case"right":this.$track.setStyle("right",0);break}this.listen()},listen:function(){var a=this.$el.getPosition().y,c=this.$track.getSize().y;var b=(function(){var e=$(document.body).getScroll().y,d=this.$el.getDimensions().y,j=this.options.offset;var h=this.$el.getStyle("margin-top").toInt(),i=this.$el.getStyle("margin-bottom").toInt();var k=(e>(a-j));var g=j+h+i;var f=(((e-a)+g)>(c-d-j));if(k&&!f){this.$el.setStyles({position:"fixed",top:j,bottom:"auto"});if(this.options.floatingClass&&!this.$el.hasClass(this.options.floatingClass)){this.$el.addClass(this.options.floatingClass)}}else{if(f){this.$el.setStyles({position:"absolute",top:"auto",bottom:0+(this.options.offset)})}else{this.$el.setStyles({position:"absolute",top:"auto"});if(this.options.floatingClass&&this.$el.hasClass(this.options.floatingClass)){this.$el.removeClass(this.options.floatingClass)}}}}.bind(this));b();window.addEvent("scroll",b)},resize:function(){window.addEvents("scroll");this.listen()}});document.addEvent("domready",function(){$$(".ui-floating").each(function(a){a.store("floating",new UI.Floating(a,a.getDataFromComment()))})});UI.Images=new Class({Implements:Options,options:{mode:"image",effect:"quad",ease:"in:out",durations:{open:700,resize:400,fade:200,caption:400},explode:false,padding:10,captions:false,animateCaption:true,overlay:true,imageQuery:"a",counter:"Image {num} of {total}",mouseWheel:false,keyboardShortcuts:false},initialize:function(e,b){this.setOptions(b);var c=this.$el=e;if(!b){b={}}this.images=[];switch(this.options.mode){case"gallery":var a=e.getElements(this.options.imageQuery);if(a.length<=1){this.options.mode="image"}a.each(function(g){var f=g.getDataFromComment()||{};var h=new UI.Images.Image(g,this,f);this.images.push(h)},this);break;case"image":var d=new UI.Images.Image(c,this,b);if(d.get("caption")&&!b.captions){this.options.captions=true}break}},setup:function(a){this.$overlay=new Element("div",{"class":"ui-images-overlay",events:{click:this.close.bindWithEvent(this)}}).inject(document.body,"top");this.$box=new Element("div",{"class":"ui-images-box",styles:{width:0,height:0,position:"absolute",opacity:0.2}}).inject(document.body,"top");if(this.options.mode=="gallery"){this.$prevLink=new Element("a",{"class":"ui-images-prev",href:"javascript:;"}).inject(this.$box);this.$prevLink.addEvent("click",this.changeImage.bindWithEvent(this,-1));this.$nextLink=new Element("a",{"class":"ui-images-next",href:"javascript:;"}).inject(this.$box);this.$nextLink.addEvent("click",this.changeImage.bindWithEvent(this,1))}this.$stage=new Element("div",{"class":"ui-images-stage"}).inject(this.$box);this.$bottom=new Element("div",{"class":"ui-images-bottom"}).inject(this.$box);this.$closeButton=new Element("div",{"class":"ui-images-close",events:{click:this.close.bindWithEvent(this)}}).inject(this.$bottom);if(this.options.captions){this.$caption=new Element("div",{"class":"ui-images-caption"}).inject(this.$bottom)}if(this.images.length){this.$counter=new Element("div",{"class":"ui-images-counter"}).inject(this.$bottom)}this._active=false;if(this.options.mouseWheel){document.addEvent("mousewheel",this.mouseWheelListener.bindWithEvent(this))}if(this.options.keyboardShortcuts){document.addEvent("keydown",this.keyboardListener.bindWithEvent(this))}this._setup=true;if(a){this.open(a)}},toElement:function(){return this.$el},open:function(g){if(!this._setup){this.setup(g);return}this._active=true;var c=window.getSize();var a=window.getScroll();var d=window.getScrollSize();var h=Math.round((c.y<768)?c.y/36:c.y/10);var f=a.y;this.$overlay.setStyles({opacity:0,display:"block",width:d.x,height:d.y});var e=g.get("dimensions");this.$box.setStyles({display:"block",width:e.width,height:e.height});var b=g.$el;if(g.$el.getElement("img")){b=g.$el.getElement("img")}this.$box.position({relativeTo:b});this.$box.setOpacity(0);new Fx.Tween(this.$overlay,{property:"opacity"}).start(0.8);this.startLoad(g);window.addEvent("resize",function(){this.resize()}.bind(this))},resize:function(){if(!this._active){return}var a=window.getScrollSize();this.$overlay.setStyles({width:a.x,height:a.y})},startLoad:function(c,a){if(!c){return}var b=new Asset.image(c.get("src"),{onload:function(){if(!a&&this.image==c){this.nextEffect()}}.bind(this)});if(!a){this.$box.addClass("ui-images-loading");this.$stage.setStyle("display","block");this.$stage.empty();this.$bottom.setStyle("opacity",0);if(this.options.mode=="gallery"){this.$prevLink.setStyle("display","none");this.$nextLink.setStyle("display","none")}this.image=c;this.$image=b;this.caption=c.get("caption");this._index=this.images.indexOf(c);this.step=1}},keyboardListener:function(a){if(!this._active){return}if(a.key!="f5"){a.preventDefault()}switch(a.key){case"esc":case"x":case"q":this.close();break;case"b":case"p":case"left":this.changeImage(a,-1);break;case"f":case"n":case"right":this.changeImage(a,1)}},mouseWheelListener:function(a){if(!this._active){return}if(a.wheel>0){this.changeImage(a,-1)}if(a.wheel<0){this.changeImage(a,1)}},changeImage:function(d,c){this._changed=true;d.preventDefault();var a=this._index+c,g=this.images[a],b=this.images.length;if(!g){a==b?g=this.images[0]:g=this.images[b-1]}if(!g){return false}for(var e in this.effects){this.effects[e].cancel()}this.startLoad(g)},nextEffect:function(){switch(this.step++){case 1:var i=this.$image.width+this.options.padding*2,f=this.$image.height+this.options.padding*2;if(this.options.mode=="gallery"){this.$prevLink.setStyle("height",f);this.$nextLink.setStyle("height",f)}var b=window.getScrollTop();var c=((window.getSize().x-this.$image.width)/2),a=((window.getSize().y-this.$image.height)/2)+b;var l=this.options.effect;if(this.options.ease&&l!="linear"){l+=":"+this.options.ease}var d=this.options.durations.resize;if(!this._changed){d=this.options.durations.open}new Fx.Morph(this.$box,{duration:d,transition:this.options.effect,onComplete:this.nextEffect.bind(this)}).start({width:i,height:f,left:c,top:a,opacity:1});break;case 2:this.$box.removeClass("ui-images-loading");this.$stage.setStyle("opacity",0);this.$image.setStyle("margin",this.options.padding);this.$image.inject(this.$stage);new Fx.Tween(this.$stage,{property:"opacity",duration:this.options.durations.fade,onComplete:this.nextEffect.bind(this)}).start(1);break;case 3:if(this.options.mode=="gallery"){this.$prevLink.setStyle("display","block");this.$nextLink.setStyle("display","block")}if(this.options.captions&&this.options.animateCaption){if(this.options.mode=="gallery"&&this.options.counter){var g=this.images.length;var e=this._index+1;var k=this.options.counter;k=k.replace(/\{num\}/,e);k=k.replace(/\{total\}/,g);this.$counter.set("text",k)}if(this.$caption){this.$caption.set("text",this.caption)}var j=this.$bottom.getStyle("height").toInt();this.$bottom.setStyles({opacity:1,top:-(j)});new Fx.Tween(this.$bottom,{property:"top",duration:this.options.durations.caption,onComplete:this.nextEffect.bind(this)}).start(0)}break;case 4:this.startLoad(this.images[this._index-1],true);this.startLoad(this.images[this._index+1],true);break}},close:function(){this.$box.setStyle("display","none");this.$overlay.get("tween").start("opacity",0);this._active=false;this._changed=false}});UI.Images.Image=new Class({Implements:[Events,Options],options:{src:null,caption:"",width:null,height:null},initialize:function(d,a,b){this.setOptions(b);var c=this.$el=d;if(!this.options.src){this.options.src=d.get("href")}if(!this.options.caption){this.options.caption=(d.get("title")||(d.getElement("img")?d.getElement("img").get("alt"):""))}c.addEvent("click",(function(e){e.stop();a.open(this)}.bind(this)))},toElement:function(){return this.$field},set:function(b,a){switch(b){}return this},get:function(b){switch(b){case"src":return this.options.src;case"caption":return this.options.caption;case"dimensions":var a=this.$el;if(this.$el.getElement("img")){a=this.$el.getElement("img")}return a.getDimensions({styles:["padding"]});case"position":var a=this.$el;if(this.$el.getElement("img")){a=this.$el.getElement("img")}return a.getPosition()}}});document.addEvent("domready",function(){$$(".ui-images").each(function(b){var a=b.getDataFromComment()||{};if(!a.mode){$extend(a,{mode:"gallery"})}b.store("image",new UI.Images(b,a))});$$(".ui-image-popup").each(function(a){a.store("image",new UI.Images(a,a.getDataFromComment()))})});UI.Form=new Class({Implements:Options,options:{target:null,fields:[],submitMethod:null,submitBtn:null,feedbackEl:null,activityEl:null,messageEl:null,sections:false,fadeFeedback:false,displayFeedback:true,clearFeedback:true,submitForm:true,ignoreFields:false,detectFields:false,scrollToError:true,scrollToFeedback:false,refreshPage:null,redirectToPage:null,keyboardShortcuts:true,validationMode:"submit",hideHints:false,hideValidHints:false,resetFields:false,focusField:null,hideMenu:false,closePopup:false,splitMemberNameFrom:null,memberNameCheckPopup:null,invalidMessage:"",validFieldMessage:"",invalidFieldMessage:"",validatingFieldMessage:"",onSuccess:null,onFail:null,onPreSubmit:null,onValidation:null,onSubmit:null,onTransmission:null},initialize:function(f,l){var k=this.$el=$(f);if(!l){$log("A form was detected without any valid options.",k);$log("Options:",JSON.encode(l));return}this.setOptions(l);if(this.options.target){this.options.submitMethod="ajax"}this._status="waiting";this._preSubmitQueue=[];var a=this.$submit=[];if(this.options.submitBtnQuery){var a=this.$submit=k.getElements(this.options.submitBtnQuery)}else{if(this.options.submitBtn){var a=this.$submit=[$(this.options.submitBtn)];if(!a&&this.options.submitBtn){alert("Submit button specified in form options is invalid, unable to find: [#"+this.options.submitBtn+"]")}}else{if(f.getElement("input[type=submit]")){var j=f.getElement("input[type=submit]");if(j){a=this.$submit=this.options.submitBtn=[j]}}else{var a=this.$submit=k.getElements(".ui-form-submit")}}}k.addEvent("submit",(function(m){m.stop();this.validateForm()}.bind(this)));var i=this.$feedback=this.options.feedbackEl=$(this.options.feedbackEl)||k.getElement(".ui-form-feedback");if(!this.options.feedbackEl&&this.options.displayFeedback){i=this.$feedback=this.options.feedbackEl=k}var h=this.$elements=this.options.elementsEl=k.getElement(".ui-form-elements");var g=this.$activity=k.getElements(".ui-form-activity");if(this.options.activityEl){g=this.$activity=[$(this.options.activityEl)]}var e=this.$message=k.getElement(".ui-form-message");if(this.options.messageEl){e=this.$message=$(this.options.messageEl)}var b=this.fieldMap=new Hash();this._validationErrors=[];var c=(function(){var p=this.options.fields;p.each((function(q){this.addField(q)}.bind(this)));var n=this.$el.getElements(".ui-field");n.each((function(q){this.addField(q)}.bind(this)));if(this.options.detectFields){var o=this.$el.getElements("input,textarea,select");o.each((function(q){this.addField(q)}.bind(this)))}var m=this.fields=b}.bind(this));c();this.initSections();this.initRepeaters();if(a.length){a.each((function(m){m.addEvent("click",(function(n){n.stop();this.validateForm()}.bind(this)))}.bind(this)))}if(this.options.focusField&&Browser.Engine.name!="trident"){var d=this.fields[this.options.focusField];if(d){d.$field.focus()}}if(this.options.pages){this.initPages()}},addField:function(i,b){var e=this.fieldMap;var d=null,c=null;var b=b||false;switch($type(i)){case"object":d=this.$el.getElement("input[name="+i.key+"]");if(!b){b=i}$extend(b,{fieldOnly:true});c=i.key;break;case"element":d=i;var h=/^(input|select|textarea)$/i.test(d.get("tag"));if(h){if(!b){b={}}$extend(b,{fieldOnly:true});c=i.getProperty("name")}else{d=i;if(!b){b=d.getDataFromComment()||{}}if(b.ignoreField){return}var a=d.getElements("textarea,select,input");b.fields=a;if(b.key){c=b.key}else{switch($type(a)){case"array":var g=a[0];if(!g){alert("A 'ui-field' element in this form is missing its related element (input, textarea, select).\n\nScan over the fields to ensure all 'ui-fields' have the required elements.\n\n The form may not work properly without it.");return}c=g.getProperty("name");break;default:c=a.getProperty("name")}}}break}if(c&&!e[c]){e[c]=new UI.Form.Field(d,this,b)}return e[c]},initRepeaters:function(){var b=this.$el;var d=b.getElements(".ui-form-repeater");this.repeaters={};var a=this.fields;var c=(function(j){var o=j.getDataFromComment()||{};if(!o){$log("No repeater options found, they are required for element:",j);return}var l=o.replacePattern;if(!l){$log("No replace pattern found, it is a required option for repeater:",j);return}var n=j.getElement(".ui-form-repeater-fields");if(!n){$log("No fields found, you must supply an element with the class [ui-form-repeater-fields] of fields with the class [ui-repeater-field] to base the repeater off.",j);return}var g=j.getElement(".ui-form-repeater-toolbar");if(!g){$log("No toolbar found, you must include a toolbar with the class [ui-form-repeater-toolbar] with buttons to control the repeater.",j);return}var k=j.getElement(".ui-form-repeater-add"),p=j.getElement(".ui-form-repeater-remove");var i=0;var m=this.repeaters[o.id]={$el:j,repeats:new Hash()};var h=(function(){if(o.max&&i>=o.max){return}i++;var s=n.clone();s.removeClass("ui-form-repeater-fields").addClass("ui-form-repeater-repeat");s.inject(g,"before").show();this.initRepeaterFields(s);var q=s.getElements(".ui-field");var r=[];q.each((function(v){var u=v.getElements("textarea,select,input");u.each(function(y){var x=y.getProperty("name").replace(l,i);y.setProperty("name",x)});var w=v.getElements("label");w.each(function(x){var y=x.getProperty("for").replace(l,i);x.setProperty("label",y)});var t=this.addField(v);r.push(t.name)}.bind(this)));this.fields=this.fieldMap;m.repeats[i]={$el:s,fields:r};e();UI.initClasses(s)}.bind(this));var f=(function(){if(o.min&&i<=o.min){return}var q=m.repeats[i];if(!q){return}q.$el.destroy();q.fields.each((function(r){this.fieldMap.erase(r)}.bind(this)));m.repeats.erase(i);this.fields=this.fieldMap;i--;e()}.bind(this));var e=(function(){if(k&&o.max&&i>=o.max){k.hide()}else{if(k){k.show()}}if(p&&(o.min&&i<=o.min||!i)){p.hide()}else{if(p){p.show()}}}.bind(this));if(o.min){h()}if(k){k.addEvent("click",function(){h()})}if(p){p.addEvent("click",function(){f()})}}.bind(this));d.each((function(e){c(e)}))},initRepeaterFields:function(c){var a=c.getElements(".ui-repeater-field");a.removeClass("ui-repeater-field").addClass("ui-field");var b=c.getElements(".ui-repeater-suggest");b.removeClass("ui-repeater-suggest").addClass("ui-suggest")},initSections:function(){var c=this.$el;var d=c.getElements(".ui-form-section");this.sections={};this.conditions=[];var a=this.fields;var b=(function(f){var h=f.getDataFromComment()||{};if(!h){$log("No section options found, they are required for element:",f);return}var k=this.sections[h.id]={$el:f};var l={values:h.showIf,_last_:{},onChange:function(m,n){f[m?"show":"hide"]()}};var j=false;if($type(l.values)!="array"){j=true;l.values=[l.values]}var e=function(){var n=l.values;var m=false;n.each((function(p){var q=l._last_;var o=true;$H(p).each(function(r,t){if(!o){return}var s=q[t];if(s==r){o=true}else{o=false}});if(o){m=true}}));if(l.onChange){l.onChange(m)}};var i=f.getElements(".ui-field");i.each(function(n){var m=n.retrieve("field");if(!m){$log("No field class found for element, could because of duplicated [name] property somewhere else on the form.",n);return}m.section=h.id});var g=$H(l.values);l.values.each((function(m){$H(m).each(function(o,n){var r=a[n];if(!r){$log("Field inside section not be found!",n);return}var p=r.$fields,q=r.type;if(!p.length){p=[r.$field]}if($H(l._last_).has(n)){return}l._last_[n]=r.get("value");p.each(function(s){switch(q){case"checkbox":case"radio":s.addEvents({click:(function(u){var t=r.get("value");l._last_[n]=t;e()}.bind(this))});break;case"select-one":s.addEvents({change:(function(u){var t=r.get("value");l._last_[n]=t;e()}.bind(this))});break}})}.bind(this))}.bind(this)));this.conditions.push(l)}.bind(this));d.each((function(e){b(e)}))},initPages:function(){var g=this.$el;var b=g.getElements(".ui-form-page");if(!b.length){$log("No form pages detected.");return}this._page=b[0];var a=(function(){var i=this._page.getPosition();window.document.body.scrollTo(0,i.y)}.bind(this));var h=(function(){if(!this._page.isVisible()){b.each(function(i){if(i.isVisible()){this._page=i}}.bind(this))}}.bind(this));var f=(function(i){if(i&&i.onDisplay){UI.doCallback(i.onDisplay)}}.bind(this));var e=(function(i,m){h();this._page.hide();(i?m--:m++);if(b[m]){this._page=b[m]}else{$log("No next/prev page found.")}var k=this._page.getDataFromComment()||{};if(k.skipIf){var n=this.gatherData(),j=k.skipIf,l=false;$H(j).each(function(p,o){var q=n[o];l=(q==p)});if(l){$log("Next page is not applicable due to conditions based on form data, skipping...");e(i,m);return}}this._page.show();a();f(k)}.bind(this));var c=(function(j,i){var k=this.validatePage(this._page);if(k){e(false,i)}}.bind(this));var d=(function(j,i){e(true,i)}.bind(this));b.each(function(m,l){var n=m.getDataFromComment()||{};var j=m.getElement(".ui-form-next"),k=m.getElement(".ui-form-previous");if(j){j.addEvent("click",function(i){i.stop();c(n,l)}.bind(this))}if(k){k.addEvent("click",function(i){i.stop();d(n,l)}.bind(this))}}.bind(this))},validatePage:function(e){var d=this.form;var a=[];var b=e.getDataFromComment()||{};var c=e.getElements(".ui-field");c.each(function(g){if(g.retrieve("field")){a.push(g.retrieve("field"))}});if(!a.length){return true}this._validationErrors=[];a.each((function(g){if(g.options.validate||g.options.required){g.validate()}}.bind(this)));if(this._validationErrors.length){if(b.onValidation){UI.doCallback(b.onValidation,this._validationErrors)}$log(this._validationErrors);return false}else{if(b.onValidation){UI.doCallback(b.onValidation,false)}return true}},validateForm:function(){if(this.options.pages){var a=this.validatePage(this._page);if(!a){return}}if(this._status=="validating"||this._status=="submitting"){$log("The form is already in a validating or submitting state, please wait...");return}this._status="validating";this._validationErrors=[];this.fields.each((function(b){if(b.options.validate||b.options.required){b.validate()}}.bind(this)));this.preSubmitForm()},preSubmitForm:function(){if(this.options.onPreSubmit){UI.doCallback(this.options.onPreSubmit)}this.toggleForm();if(this._preSubmitQueue.length){if(this.$activity){this.$activity.each(function(e){e.show()})}$log("There are actions still queued, waiting for completion...");return}else{if(this._validationErrors.length){$log("There are validation errors:",this._validationErrors);if(this.options.validationMode!="instant"){this.fields.each(function(e){e.addInstantValidation()})}if(this.options.scrollToError){var a=this._validationErrors[0],c=a.$el;if(c){var d=window.getScrollTop(),b=c.getPosition().y;if(b<d){new Fx.Scroll(document.body,{offset:{x:0,y:-60}}).toElement(c).chain(function(){a.$field.focus()})}}}if(this.$message){this.$message.show().set("html",(this.options.invalidMessage?this.options.invalidMessage:"Please ensure all fields are completed."))}if(this.options.onValidation){UI.doCallback(this.options.onValidation,this._validationErrors)}if(this.$activity){this.$activity.each(function(e){e.hide()})}this.toggleForm(true);this._status="waiting";if(this.options.onSubmit){UI.doCallback(this.options.onSubmit,false)}}else{if(this.options.onSubmit){UI.doCallback(this.options.onSubmit,true)}if(this.options.onValidation){UI.doCallback(this.options.onValidation,false)}if(this.options.submitForm){this.submitForm()}}}},checkSubmitQueue:function(a){if(a){this._preSubmitQueue.erase(a)}if(!this._preSubmitQueue.length){if(this._status=="validating"){$log("Submit Queue is empty, attempting to submit again...");this.preSubmitForm()}else{$log("Submit Queue is empty with no form submit detected.")}}},toggleForm:function(a){if(a){this.$el.removeClass("ui-form-processing");if(this.$activity){this.$activity.each(function(b){b.hide()})}this.$submit.each((function(b){if(b.retrieve("button")){b.retrieve("button").enable()}}.bind(this)))}else{this.$el.addClass("ui-form-processing");if(this.$activity){this.$activity.each(function(b){b.show()})}this.$submit.each((function(b){if(b.retrieve("button")){b.retrieve("button").disable()}}.bind(this)))}},submitForm:function(){var c=this.$el,b=this.$activity,a=this.$message,e=this.$submit,d=this.options.feedbackEl;$log("Submitting form...");if(this._status=="submitting"){return}this._status="submitting";if(this.options.onTransmission){UI.doCallback(this.options.onTransmission)}if(a){a.hide()}this.gatherData();if(this.options.debug){$log("Data:",this.data)}this.fields.each((function(l){var m=l.options.type;switch(m){case"file":var g=l.name,n=l.$field;var j=this.data[g];if(!j){return}this.data[g+"_fileName"]=j;new Element("input",{type:"hidden",name:g+"_fileName",value:j}).inject(c,"top");break}if(l.options.maxChars){var o=l.getValue(),h=o;switch(l.options.maxType){case"words":var i=o.split(" ");if(i.length>l.options.maxChars){var k="";i.each(function(f){$log(f);k=k+f+" "});h=k}break;default:if(o.length>l.options.maxChars){h=o.slice(0,l.options.maxChars)}}l.$field.value=h}}.bind(this)));switch(this.options.submitMethod){case"ajax":switch(this.options.target.toLowerCase()){case"signin":this.options.clearFeedback=false;UI.callAction({action:"member.signin",data:this.data,onComplete:(function(f){this.processResponse(f)}.bind(this))});break;default:UI.loadSparkle({path:this.options.target,data:this.data}).then((function(f){this.processResponse(f)}.bind(this)));break}break;default:c.submit();break}},gatherData:function(){var b=this.data={};var a=[];if(this.options.ignoreFields){a=this.options.ignoreFields.split(",")}this.fields.each((function(g,c){if(a.contains(g.name)){return}var e=g.get("value");switch($type(e)){case"string":case"boolean":if((this.options.splitMemberNameFrom&&this.options.splitMemberNameFrom==g.name)||g.options.splitAsMemberName){if(!e){return}var d=this.splitMemberName(e);if(!this.options.submitMethod){new Element("input",{type:"hidden",name:"salutation",value:d.salutation}).inject(this.$el);new Element("input",{type:"hidden",name:"firstName",value:d.firstName}).inject(this.$el);new Element("input",{type:"hidden",name:"lastName",value:d.lastName}).inject(this.$el)}else{$H(d).each(function(f,h){if(g.options.splitAsMemberName){b[g.options.splitAsMemberName+"_"+h]=f}else{b[h]=f}})}}else{b[c]=e}break;case"array":b[c]=e.toString();break;case"object":switch(g.options.type){case"dateSelects":return b[c]=e.cf;break}switch(g.options.validate){case"date":case"dob":return b[c]=e.cf;break;default:$extend(b,e)}break;default:$log("Warning: Unsupported data type from field detected: ["+$type(e)+"], your form may be not be submitting correctly.");return}}.bind(this)));return b},processResponse:function(e){var c=this.$el,b=this.$activity,a=this.$message,g=this.$submit,d=this.options.elementsEl,f=this.options.feedbackEl;if(this._status!="submitting"){$log("Cannot process form, currently in ["+this._status+"] stage.");return}this._status="submitted";if(e){if(f){if(this.options.fadeFeedback){c.get("tween").setOptions({duration:500,transition:"quad:in:out"}).start("opacity",0).chain((function(){var i=c.setStyle("overflow","hidden").getDimensions();c.hide().setOpacity(1);if(this.options.clearFeedback){f.empty();f.set("html",e)}var h=f.setStyle("overflow","hidden").getDimensions();f.setStyles({height:i.y});f.show().setOpacity(0);f.get("tween").setOptions({duration:500,transition:"quad:in:out"}).start("height",h.y).chain((function(){f.get("tween").start("opacity",1);this.formCompleted()}.bind(this)))}.bind(this)))}else{if(!d){c.hide()}if(this.options.clearFeedback){f.empty();f.set("html",e)}if(d){d.hide()}f.show();this.formCompleted()}}else{this.formCompleted()}if(this.options.refreshPage){top.location.reload()}if(this.options.redirectToPage){top.location.href=this.options.redirectToPage}if(this.options.onSuccess){UI.doCallback(this.options.onSuccess,{html:e,data:this.data})}}},formCompleted:function(){$feedback=this.options.feedbackEl;this.resetForm();UI.initClasses($feedback);if(this.options.scrollToFeedback){if($feedback){new Fx.Scroll(document.body).toElement($feedback)}}if(this.options.hideMenu){this.hideMenu()}if(this.options.closePopup){this.closePopup()}},resetForm:function(){var c=this.$el,b=this.$activity,a=this.$message,e=this.$submit,d=this.options.feedbackEl;this.$submit.each((function(f){if(f.retrieve("button")){f.retrieve("button").enable()}}.bind(this)));c.removeClass("ui-form-processing");if(this.$activity){this.$activity.each(function(f){f.hide()})}this._status="waiting";if(this.options.resetFields){this.resetFields()}},resetFields:function(){this.fields.each(function(a){a.resetField()});this.$el.getElements("input[hint],textarea[hint]").each(function(a){a.retrieve("placeholder").updatePlaceholder()})},hideMenu:function(){var a=this.$el,b=$(this.options.hideMenu).retrieve("button");(function(){var c=b.$target;c.get("tween").setOptions({duration:150,transition:"linear"}).start("opacity",0).chain((function(){c.setOpacity(1).hide();b.makeUnpressed()}.bind(this)));b._menuIsOpen=false}).delay(1500)},closePopup:function(){(function(){var a=this.$el.getParents();a.each(function(b){if(b.hasClass("ui-popup")){b.retrieve("popup").close()}})}.bind(this)).delay(2500)},splitMemberName:function(c){var e={firstName:"",lastName:"",salutation:""};var b=c.split(" ");for(var d=0;d<b.length;d++){if(!/[a-z]/.test(b[d])){b[d]=b[d].toLowerCase()}b[d]=b[d].capitalize(true)}if(b.length==1){e.firstName=b[0]}else{var f=b[0].toLowerCase();if(/^(mr|mrs|miss|ms|sir|madam|dr)$/.test(f)){e.salutation=b.shift()}e.lastName=b.pop();e.firstName=b.join(" ")}return e},toElement:function(){return this.$el},set:function(b,a){switch(b){default:this.store[b]=a}return this},get:function(a){switch(a){case"fields":return this.fields;default:return this.store[a]}}});UI.Form.Field=new Class({Implements:[Events,Options],options:{form:null,type:null,key:null,required:false,validate:false,fieldOnly:false,showHintOnFocus:false,showHint:false,hideHint:false,submitForm:false,section:null,matchField:null,minLength:1,hint:"",fileType:null,fileTypes:null,showAlert:false,minDate:false,maxDate:false,validMessage:"",invalidMessage:"",ignoreField:false,maxChars:false,maxType:false},initialize:function(l,b,m){this.setOptions(m);this.$el=l;l.store("field",this);this.$field=null;this.$fields=[];if(this.options.fieldOnly){this.$field=this.$el}else{if(!m.fields){return}if(m.fields.length>1){this.$fields=m.fields}this.$field=m.fields[0]}this.$hint=this.$el.getElement(".ui-field-feedback");this.form=b;this.$form=this.form.toElement();this.tag=this.$field.get("tag");this.type=this.$field.getProperty("type");this.name=this.$field.getProperty("name");if(!this.name){$log("WARNING! Name not detected for field, form will fail.",this.field)}if(!this.options.type&&this.type=="file"){this.options.type="file"}switch(this.options.type){case"file":this.$selection=this.$el.getElement(".ui-file-selection");if(this.$selection){this.$selection.addClass("ui-file-selection-none")}this.$browse=this.$el.getElement(".ui-file-browse");break;case"date":new UI.Form.Field.Date(this);this.options.validate="date";break;case"dateSelects":var e=this.$el.getElement("select");if(!e){var k=this.$el.getElement("input");if(!k){$log("Date selects require a standard input field.");return}k.hide();var f=new Element("div",{"class":"ui-date-selects"});var c=this.$day=new Element("select",{"class":"ui-date-day"}).inject(f);new Element("option").inject(c);for(var i=1;i<=31;i++){new Element("option",{html:i,value:i}).inject(c)}var h=this.$month=new Element("select",{"class":"ui-date-month"}).inject(f);var a=["January","February","March","April","May","June","July","August","September","October","November","December"];new Element("option").inject(h);a.each(function(d,n){new Element("option",{html:d,value:n}).inject(h)});var g=this.$year=new Element("select",{"class":"ui-date-year"}).inject(f);new Element("option").inject(g);for(var j=1900;j<=2020;j++){new Element("option",{html:j,value:j}).inject(g)}f.inject(k,"after")}else{var c=this.$day=this.$el.getElement(".ui-date-day");var h=this.$month=this.$el.getElement(".ui-date-month");var g=this.$year=this.$el.getElement(".ui-date-year")}this.$fields.push(c,h,g);this.options.validate="dateSelects";this.type="select-one";break}if(this.options.minDate){this.minDate=new Date().parse(this.options.minDate)}if(this.options.minDate){this.maxDate=new Date().parse(this.options.maxDate)}if((this.$hint&&this.form.options.hideHints&&!this.options.showHint)||this.options.hideHint){this.$hint.hide()}if(this.$hint&&this.options.hint){this.$hint.set("html",this.options.hint)}if(this.options.required&&!this.options.validate){this.options.validate="length"}if(!this.options.required&&!this.options.validate){this.valid="yes"}else{this.valid="no"}this.customAction=false;if(!/^(length|password|match|numeric|date|dob|email|dateSelects)$/.test(this.options.validate)){this.customAction=true}this.initEvents()},initEvents:function(){var c=this.form;if(this.options.maxChars){var b=this.$maxChars=this.$el.getElement(".ui-field-maxchars");if(!b){$log(this.$field,"is missing the .ui-field-maxchars element to use the maxChars options.")}var a=(function(){var h=this.$field.value.clean();var e=(this.options.maxType=="words"?h.split(" ").length:h.length),g=""+e+"/"+this.options.maxChars;var f=(e>this.options.maxChars);b.set("html",g);b[f?"addClass":"removeClass"]("ui-field-maxchars-invalid")}.bind(this));a()}this.$field.addEvents({keyup:(function(e){if(this.options.maxChars&&b){a()}}.bind(this)),keypress:(function(e){if(this.tag!="textarea"&&e.key=="enter"){e.stop();if(c.options.keyboardShortcuts){(function(){c.validateForm()}).delay(100)}}}.bind(this))});var d=c.options.validationMode;if(this.options.type=="file"){this.options.validate="length"}if(c.options.validationMode=="instant"){this.addInstantValidation()}if(this.options.showHintOnFocus){this.$field.addEvents({focus:(function(){if(this.$hint){this.$hint.show()}}.bind(this))})}},addInstantValidation:function(){var a=(function(d,e){var c=(e?0:500);if(/^(length|password|match|numeric|email|dob|phone)$/i.test(this.options.validate)){c=250}if(this.tag=="select"){c=0}if(/^(radio|checkbox|file)$/i.test(this.type)){c=0}if(!this.options.required&&!this.get("value")){c=0}if(!e&&d.key=="tab"){return}$clear(this.executeValidation);this.executeValidation=(function(){this.validate()}.bind(this)).delay(c)}.bind(this));var b=(function(c){c.addEvents({keyup:(function(d){a(d)}.bind(this)),blur:(function(d){if(this.valid!="processing"){a(d,true)}}.bind(this))});switch(this.type){case"file":c.addEvents({change:(function(d){a(d)}.bind(this)),click:(function(d){a(d)}.bind(this))});break;case"checkbox":case"radio":case"select-one":c.addEvents({click:(function(d){if(this.type=="select-one"&&!this._clicked){this._clicked=true;return}a(d)}.bind(this))});break}}.bind(this));if(this.$fields.length){this.$fields.each(function(c){b(c)})}else{b(this.$field)}},clearStatus:function(){this.valid="no";this.$field.removeClass("ui-field-valid").removeClass("ui-field-invalid");this.$el.removeClass("ui-field-container-valid").removeClass("ui-field-container-invalid");if(this.$hint){this.$hint.removeClass("ui-field-feedback-validating").removeClass("ui-field-feedback-valid").removeClass("ui-field-feedback-invalid")}},isValid:function(e,b){var c=this.form;this.clearStatus();this.$field.addClass("ui-field-valid");this.$el.addClass("ui-field-container-valid");var a=this.validMessage=e;if(this.$hint){switch(this.options.type){case"date":if(this.options.dateType!="tooltip"){this.$hint.show().addClass("ui-field-feedback-valid")}break;default:if(b||c.options.hideValidHints){this.$hint.hide()}else{if(!a){a=this.validMessage=this.options.validMessage||c.options.validFieldMessage}this.$hint.show().addClass("ui-field-feedback-valid").empty();this.$hint.set("html",a)}}}switch(this.options.type){case"file":if(this.options.validBrowseText){if(this.$browse){this.$browse.set("text",this.options.validBrowseText)}}if(this.$selection){var d=this.get("value");if(!d){return}this.$selection.set("html",d).removeClass("ui-file-selection-none").addClass("ui-file-selection-selected").show()}break}this.valid="yes";if(this.options.submitForm){if(this._file==this.get("value")){$log("Change event fired but the same file was selected.");return}this._file=this.get("value");c.submitForm()}return"yes"},isInvalid:function(c){var a=this.form;this.clearStatus();this.$field.addClass("ui-field-invalid");this.$el.addClass("ui-field-container-invalid");var b=this.invalidMessage=c;if(this.$hint){switch(this.options.type){case"date":if(this.options.dateType!="tooltip"){this.$hint.show().addClass("ui-field-feedback-invalid")}break;default:if(!b){b=this.invalidMessage=this.options.invalidMessage||a.options.invalidFieldMessage}this.$hint.show().addClass("ui-field-feedback-invalid").empty();this.$hint.set("html",b)}}switch(this.type){case"file":if(this.$selection){this.$selection.set("html","(please add valid image)").removeClass("ui-file-selection-selected").addClass("ui-file-selection-none")}break}this.valid="no";a._validationErrors.push(this);return"no"},validate:function(){var e=this.form,c=this.name,f=this.get("value");var a=this.$form.retrieve("form").get("fields");var b=(function(p){if(!this.options.required&&!f.length){this.isValid(false,true);return}if(this.section){var r=e.sections[this.section];if(!r){$log("A section was marked inside a field but could not be found.");return}if(!r.$el.isVisible()){this.isValid(false,true);return}}switch(p){case"length":switch(this.type){case"file":if(!f.length||f.length<this.options.minLength){this.isInvalid()}var l=[];if(this.options.fileType){switch(this.options.fileType){case"image":l=["jpg","jpeg","png"];break;case"document":l=["doc","docx","pdf","pages"];break;case"audio":l=["wav","mp3","aac"];break}}else{if(this.options.fileTypes){l=this.options.fileTypes.split(",")}}if(!l.length){this.isValid();return}var k=f.split(".").getLast().toLowerCase();if(l.contains(k)){this.isValid()}else{if(f&&f.length&&this.options.showAlert){alert("The file you have selected to upload is not supported.\n\nPlease choose a valid file.\n\nValid types include: "+l)}this.$field.value="";this.isInvalid()}break;case"checkbox":if(f){this.isValid()}else{this.isInvalid()}break;case"checkboxes":if(!$H(f).getLength()){this.isInvalid()}else{this.isValid()}break;default:if(!f||f.length<this.options.minLength){this.isInvalid()}else{this.isValid()}}break;case"password":if(f.length<this.options.minLength){this.isInvalid()}else{this.isValid()}break;case"match":var t=a[this.options.matchField];if(!t){$log("No matching field could be found for the 'match' field type, check that you have specified the correct field first.");return}var g=t.get("value");if(!f||f!=g){this.isInvalid()}else{this.isValid()}break;case"numeric":f=f.toString().replace(/ /g,"");if(!/^ *[0-9]+ *$/.test(f)||f.length<this.options.minLength){this.isInvalid()}else{this.isValid()}break;case"url":f=f.toString().replace(/ /g,"");var n=/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi;var q=new RegExp(n);if(f.match(q)&&f.length){this.isValid()}else{this.isInvalid()}break;case"money":f=f.toString().replace(/ /g,"");if(!/^ *[0-9-.]+ *$/.test(f)||f.length<this.options.minLength){this.isInvalid()}else{this.isValid()}break;case"phone":f=f.toString().replace(/ /g,"").replace(/\(/g,"").replace(/\)/g,"").replace(/\+/g,"").replace(/\-/g,"");if(!/^ *[0-9]+ *$/.test(f)||f.length<this.options.minLength){this.isInvalid()}else{this.isValid()}break;case"date":var s=f.parsed.get("time");if(this.options.minDate){minDateTime=this.minDate.get("time");if(s<minDateTime){this.isInvalid();return}}if(this.options.maxDate){maxDateTime=this.maxDate.get("time");if(s>maxDateTime){this.isInvalid();return}}if(f.cf){this.isValid()}else{this.isInvalid()}break;case"dateSelects":if(this.form._status!="validating"){if(!f.day||!f.month||!f.year){return}}if(f.cf){this.isValid()}else{this.isInvalid()}break;case"dob":if(!/^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/.test(f.stored)){this.isInvalid()}else{this.isValid()}break;case"email":if(!/^[\w\-]+(\.[\w\-]+)*@[\w\-]+\.([\w\-]+\.)*[a-z]{2,}$/i.test(f)){this.isInvalid()}else{this.isValid()}break;default:if(!f.length||f.length<this.options.minLength){this.isInvalid();return}e._preSubmitQueue.push(this.name);this.valid="processing";this.clearStatus();if(this.$hint){this.$hint.show().addClass("ui-field-feedback-validating");this.$hint.set("html",this.options.validatingMessage||e.options.validatingFieldMessage)}var j=(function(v){var x=v.clean(),u=(x.slice(0,4)=="fail"),w=(x.slice(0,7)=="success");if(u){x=x.slice(6);this.isInvalid(x);if(this.options.performOnReturn){UI.doCallback(this.options.performOnReturn,{success:false,msg:x})}}else{if(w){x=x.slice(9);this.isValid(x);if(this.options.performOnReturn){UI.doCallback(this.options.performOnReturn,{success:true,msg:x})}}else{$log("Sparkle validation return could not be parsed for success/fail.",v)}}e.checkSubmitQueue(h)}.bind(this));var o=this.options.validate,i={};if($type(this.options.validate)=="object"){o=this.options.validate.path;i=this.options.validate.data}var m={path:o,data:i};var h=this.get("name");m.data[h]=f;UI.loadSparkle(m).then(function(u){j(u)}.bind(this))}}.bind(this));if(this.options.required&&!f&&/^(length|password|match|numeric|date|dob|email)$/.test(this.options.type)){this.isInvalid()}else{var d=[];switch($type(this.options.validate)){case"string":d=$A(this.options.validate.split(":"));break;case"object":d=[this.options.validate];break}d.each(function(g){b(g)})}},toElement:function(){return this.$field},getValue:function(){var d=this.$form,r=this.get("name"),a=d[r];if($type(a)=="collection"||$type(a)=="object"){a=a[0]}if(a){var k=a.value,q=a.get("tag"),c=a.getProperty("type")}if(this.options.type){switch(this.options.type){case"date":if(!k){return false}k=k.toString().replace(/-/g,"/");var o=new Date.parse(k);if(!o.isValid()){$log("Date could not be parsed.");return false}var e={stored:k,parsed:o,cf:o.format("%Y-%m-%d")};return e;break;case"dateSelects":var m=this.$day.value,p=this.$month.value,j=this.$year.value;if(!m||!p||!j){return false}var k=m+"/"+p+"/"+j,o=new Date.parse(k);if(!o.isValid()){return false}var e={day:m,month:p,year:j,stored:k,parsed:o,cf:o.format("%Y-%m-%d")};return e;break}}switch(q){case"input":switch(c){case"text":case"password":case"file":switch(this.options.validate){case"date":case"dob":if(!k){return false}k=k.toString().replace(/-/g,"/");var o=new Date.parse(k);if(!o.isValid()){$log("Date could not be parsed.");return false}var e={stored:k,parsed:o,cf:o.format("%Y-%m-%d")};return e;break;default:return k}break;case"checkbox":if(!this.$fields.length){return a.get("checked")}var b={};if(this.options.key){b=[]}for(var n=0;n<=this.$fields.length-1;n++){var l=this.$fields[n];var f=l.checked;var s=this.options.key||l.getProperty("name");if(f){switch($type(b)){case"object":b[s]=true;break;case"array":var g=l.get("value").toInt();b.push(g);break}}}return b;break;case"radio":var k=false;for(var n=0;n<=d[r].length-1;n++){var f=d[r][n].checked;if(f){k=d[r][n].value}if($type(k)=="string"){if(k=="true"||k=="on"){k=true}else{if(k=="false"||k=="off"){k=false}}}}return k;break;default:return k}case"textarea":if(this.$field.hasClass("ui-wysiwyg")){var h=this.$field.retrieve("MooEditable");if(h){return h.getContent()}else{return k}}else{return k}break;case"select":return k;break}},resetField:function(){var b=this.$form;var f=this.$field,d=this.$fields;var c=this.get("name");var a=this.tag,e=this.type;if(e=="hidden"){return}var g=(function(k){switch(a){case"input":switch(e){case"text":case"password":k.value="";break;case"checkbox":k.checked=false;break;case"radio":var j=this.get("name");for(var h=0;h<=b[c].length-1;h++){b[c][h].checked=false}break;default:k.value=""}case"textarea":k.value="";break;case"select":k.selectedIndex=0;break}}.bind(this));if(d.length){d.each(function(h){g(h)})}else{g(f)}this.clearStatus();if(this.$hint){this.$hint.empty().hide()}this._file=null;this._clicked=null},set:function(b,a){switch(b){case"value":if(this.value==a){return}this.value=a;break;default:this.store[b]=a}return this},get:function(a){switch(a){case"value":return this.getValue();case"id":return this.$field.getProperty("id")||false;case"name":return this.$field.getProperty("name");default:return this.store[a]}}});UI.Form.Field.Date=new Class({Extends:UI.Form.Field,options:{dateHint:"eg. today, last monday",fillField:true,tooltip:false},initialize:function(b,a){this.setOptions(a);this.field=b;this.$field=b.$field;this.form=b.form;this.$el=b.$hint;if(b.options.dateType=="tooltip"){this.options.tooltip=true;this.$el=b.$el.getElement(".ui-date-hint").hide()}this.$el.set("html",this.options.dateHint);this.$field.addEvents({keyup:(function(){var c=(function(){$clear(this._hintUpdate);this._hintUpdate=function(){this.parse()}.delay(200,this)}.bind(this));c()}.bind(this)),focus:(function(){if(this.options.tooltip){this.$el.show().set("opacity",0);this.$el.get("tween").setOptions({duration:150,transition:"linear"}).start("opacity",1);if(this.options.tooltip){this.$el.position({relativeTo:b.$field,position:"bottomLeft",edge:"topLeft",offset:{x:0,y:0}})}}}.bind(this)),blur:(function(){if(this.options.tooltip){this.$el.get("tween").setOptions({duration:150,transition:"linear"}).start("opacity",0).chain((function(){if(this.options.fillField&&this.parsedDate){this.field.$field.value=this.parsedDate.format("%d/%m/%Y")}this.$el.hide()}.bind(this)))}}.bind(this))})},parse:function(){var b=this.field.get("value").stored;if(!b){this.$el.set("html",this.options.dateHint);return}var a=this.parsedDate=new Date.parse(b);if(a.isValid()){this.$el.set("html",a.format("%A %d%o %B %Y"))}else{this.$el.set("html",this.options.dateHint)}}});document.addEvent("domready",function(){$$(".ui-form").each(function(a){a.store("form",new UI.Form(a,a.getDataFromComment()))})});UI.Carousel=new Class({Implements:Options,options:{gapSize:50,focusedClass:null,duration:250,autoTransition:true,autoDelay:5000,zIndex:1},initialize:function(f,a){this.setOptions(a);var b=this.$el=$(f);var d=this.slides=$H(b.getChildren());if(!d.length){alert("No elements inside the carousel detected, you must have children inside the carousel element.");return}this._index=0;var e=this._$slide=d[0];if(this.options.focusedClass&&!e.hasClass(this.options.focusedClass)){e.addClass(this.options.focusedClass)}var c=b.getSize().x;d.each(function(g,h){var l=d.length*this.options.gapSize;var j=0;if(h>0){j=(c-(-(h*this.options.gapSize))-l)}g.setStyle("left",j);g.store("left",j);var k=g.getStyle("z-index");if(k!="auto"){var i=k.toInt();g.setStyle("z-index",(i+10))}else{var k=this.options.zIndex;if(h>0){k=10+h}g.setStyle("z-index",k)}g.addEvent("mouseenter",(function(){$clear(this._switchSlides);this.switchSlide(h)}.bind(this)))}.bind(this));if(this.options.autoTransition){this.switchSlides()}},switchSlide:function(d){if(this._index==d){return}this._index=d;var c=this._$slide;if(this.options.focusedClass){c.removeClass(this.options.focusedClass)}var g=this._$slide=this.slides[d];if(this.options.focusedClass){g.addClass(this.options.focusedClass)}var a=function(h){var k=this.slides[h];var j=0;if(h>0){j=h*this.options.gapSize}k.get("morph").setOptions({transition:"quad:in:out",duration:this.options.duration}).start({left:j})}.bind(this);var b=function(h){var k=this.slides[h];var j=k.retrieve("left");k.get("morph").setOptions({transition:"quad:in:out",duration:this.options.duration}).start({left:j})}.bind(this);var f=d,e=this.slides.length;this.slides.each(function(h,j){if(j==0||j==d){return}if(j>d){b(j)}else{a(j)}}.bind(this));a(d)},switchSlides:function(){this._switchSlides=(function(){if(this._stopSlides){return}var a=this.slides.length-1;var b=this._index+1;if(b>a){b=0}this.switchSlide(b)}.bind(this)).periodical(this.options.autoDelay)}});document.addEvent("domready",function(){$$(".ui-carousel").each(function(a){a.store("carousel",new UI.Carousel(a,a.getDataFromComment()))})});UI.ChildFader=new Class({Implements:Options,options:{start:1000,duration:500,interval:1000,pauseOnHover:true},initialize:function(g,a){var e=$(g);this.setOptions(a);var d=e.getChildren();d.each(function(j,h){j.setStyles({position:"absolute",opacity:(h)?0:1,display:"block"})});var c=false,f=0,b=false;if(this.options.pauseOnHover){e.addEvent("mouseenter",function(){b=true});e.addEvent("mouseleave",function(){b=false})}(function(){c=true;if(b){return}d[f].set("tween",{duration:this.options.duration}).tween("opacity",0);f++;if(f>=d.length){f=0}d[f].set("tween",{duration:this.options.duration}).tween("opacity",1)}).periodical((c?a.interval:a.start),this)}});document.addEvent("domready",function(){$$(".ui-fadechildren").each(function(a){a.store("childfader",new UI.ChildFader(a,a.getDataFromComment()))})});UI.Google={status:{maps:false,infoBox:false},load:function(d,e){if(!window.google){return}var b=false;switch(d){case"maps":var c=function(){if(!e||typeOf(e)!="function"){return}e()};switch(UI.Google.status.maps){case"loaded":if(b){$log("Maps already loaded...")}c();break;case"loading":UI.Google._check=function(){if(UI.Google.status.maps=="loaded"&&UI.Google.status.infoBox=="loaded"){if(b){$log("Maps finished loading after request was queued...")}clearTimeout(UI.Google._check);c();return}if(b){$log("Maps have already been requested, waiting for load...")}}.periodical(100);break;default:var a=function(){UI.Google.status.maps="loaded";if(b){$log("Maps finished loading...")}Asset.javascript("/JS/Kaleidoscope/Maps/InfoBox-20110920.js",{onLoad:function(){UI.Google.status.infoBox="loaded";if(b){$log("Loaded infoBox...")}c()}})};UI.Google.status.maps="loading";if(b){$log("Maps loading...")}google.load("maps","3",{callback:a,other_params:"sensor=false"})}break}}};UI.Map=new Class({Implements:[Events,Options],options:{marker:null,markers:[],markerOptions:{draggable:false,icon:null,shadow:null},zoom:null,minZoom:0,typeMenu:"default",navMenu:"default",mapType:"roadmap",streetView:false,draggable:true,manualMode:false,keyboardShortcuts:false,scrollWheel:false,bgColor:"#B3B7CF",clusters:false,clusterOptions:{},autoCreate:true,performOnReady:null},markers:[],markersOnly:[],initialize:function(b,a){this.setOptions(a);this.$el=b;this.loaded()},loaded:function(){this.geocoder=new google.maps.Geocoder();if(this.options.autoCreate){this.render()}},render:function(){var i=this.$el,f=this.options.markers;if(this.options.marker){f=[this.options.marker]}var a=this.center=new google.maps.LatLng(37.71859,6.679688);if(this.options.center){a=this.center=new google.maps.LatLng(this.options.center.latitude,this.options.center.longitude)}if(this.options.marker&&!this.options.center){a=this.center=new google.maps.LatLng(this.options.marker.latitude,this.options.marker.longitude)}var l={mapTypeId:this.options.mapType,center:a,backgroundColor:this.options.bgColor,streetViewControl:this.options.streetView,draggable:this.options.draggable,scrollwheel:this.options.scrollWheel,keyboardShortcuts:this.options.keyboardShortcuts,mapTypeControl:(this.options.typeMenu),navigationControl:(this.options.navMenu)};if(this.options.typeMenu){var e=this.options.mapType,g=google.maps.MapTypeId;var c;switch(k){case"hybrid":c=g.TERRAIN;break;case"satellite":c=g.SATELLITE;break;case"terrain":c=g.TERRAIN;break;default:c=g.ROADMAP}l.mapTypeId.style=c}if(this.options.typeMenu){var k=this.options.typeMenu,d=google.maps.MapTypeControlStyle;l.mapTypeControlOptions={position:""};var c;switch(k){case"dropdown":c=d.DROPDOWN_MENU;break;case"horizontal":c=d.HORIZONTAL_BAR;break;default:c=d.DEFAULT}l.mapTypeControlOptions.style=c}if(this.options.navMenu){var h=this.options.navMenu,j=google.maps.NavigationControlStyle;l.navigationControlOptions={position:""};var c;switch(h){case"android":c=j.ANDROID;break;case"small":c=j.SMALL;break;case"zoompan":c=j.ZOOM_PAN;break;default:c=j.DEFAULT}l.navigationControlOptions.style=c}var b=this.map=new google.maps.Map(i,l);if(!this.options.manualMode){if(f.length||typeOf(f)=="hash"&&f.getLength()){f.each(function(m){this.addMarker(m)},this);if(this.markers.length==1){this.marker=this.markers[0]}}this.markersAdded()}},markersAdded:function(){var a=this.map;this.fitBounds();google.maps.event.addListener(a,"click",(function(){if(this._content&&this._content.instance){this._content.instance.hide()}}.bind(this)));if(this.options.clusters){this.markerClusterer=new MarkerClusterer(a,this.markersOnly,this.options.clusterOptions)}if(this.options.performOnReady){UI.doCallback(this.options.performOnReady)}},addMarker:function(r){var v=this.map,p=false;if(r.latitude&&r.longitude){p=new google.maps.LatLng(r.latitude,r.longitude)}else{return}var i=this.options.markerOptions||{};var c={position:p,map:v,draggable:(i.draggable||false)};var f=false;if(i.icon){f={icon:i.icon,shadow:i.shadow}}if(r.icon){if(r.icon){f={icon:r.icon,shadow:r.shadow}}}if(f){Object.append(c,this.getMarkerImage(f))}var h=new google.maps.Marker(c);var s={marker:h,data:r};if(f){s.markerImageOptions=f}if(this.options.infoBox){var k={data:r};if(f){k.markerImageOptions=f}if($H(this.options.infoBox).getLength()){Object.append(k,this.options.infoBox)}var u=this.options.infoBox.hover,q=this.options.infoBox.click;var a=false,j=false;if(u&&u.renderFn){a=UI.doCallback(u.renderFn,k.data)}if(q&&q.renderFn){j=UI.doCallback(q.renderFn,k.data)}var d=0,n=0;if(this.options.infoBox.offset){if(this.options.infoBox.offset.x){d=(this.options.infoBox.offset.x)}if(this.options.infoBox.offset.y){n=(this.options.infoBox.offset.y)}}var g=this.options.infoBox.openAs,w=this.options.infoBox.disableAutoPan;if(this.options.infoBox.hover){var b={content:a,infoBoxClearance:new google.maps.Size(1,1),alignBottom:true,pixelOffset:new google.maps.Size(-(u.width/2)+(d),n),pane:"floatPane",enableEventPropagation:false,isHidden:(g?false:true),disableAutoPan:(w?true:false)}}if(this.options.infoBox.click){var l={content:j,infoBoxClearance:new google.maps.Size(1,1),alignBottom:true,pixelOffset:new google.maps.Size(-(q.width/2)+(d),n),pane:"floatPane",enableEventPropagation:false,isHidden:(g?false:true),disableAutoPan:(w?true:false)}}var o=new InfoBox((g=="click"?l:b));o.open(v,h);if(this.options.infoBox.hover){b.isHidden=false}if(this.options.infoBox.click){l.isHidden=false}google.maps.event.addListener(h,"mouseover",function(m){if(!this.options.infoBox.hover){return}if(e()||t()){return}o.setOptions(b);o.show(v,h)}.bind(this));google.maps.event.addListener(h,"mouseout",function(m){if(!this.options.infoBox.hover){return}if(e()&&t()){return}o.hide(v,h)}.bind(this));google.maps.event.addListener(h,"click",function(m){if(!this.options.infoBox.hover){return}if(e()&&t()){this._infoBox.infoBox.hide();this._infoBox=false;return}if(this._infoBox&&this._infoBox.infoBox){this._infoBox.infoBox.hide()}o.setOptions(l);o.show(v,h);this._infoBox={infoBox:o,clicked:true}}.bind(this));var e=(function(){if(this._infoBox){if(this._infoBox.clicked){return true}}return false}.bind(this));var t=(function(){if(this._infoBox){if(this._infoBox.infoBox){return(this._infoBox.infoBox==o)}}return false}.bind(this))}this.markers.push(s);this.markersOnly.push(h);return s},getMarkerImage:function(d){var a=null,b=null;var c={src:"",width:20,height:32,anchor:false};switch(typeOf(d.icon)){case"object":Object.append(c,d.icon);break;case"string":c.src=d.icon;break}a=this.makeMarkerImage({src:c.src,width:c.width,height:c.height,anchor:c.anchor});if(d.shadow){var e={src:"",width:20,height:32,anchor:false};switch(typeOf(d.shadow)){case"object":Object.append(e,d.shadow);break;case"string":e.src=d.shadow;break}b=this.makeMarkerImage({src:e.src,width:e.width,height:e.height,anchor:e.anchor})}return{icon:a,shadow:b}},makeMarkerImage:function(c){var d=new google.maps.Size(c.width,c.height);var a=new google.maps.Point(0,0);var b=new google.maps.Point(0,c.height);switch(c.anchor){case"center":b=new google.maps.Point(c.width/2,c.height/2);break;case"bottom":b=new google.maps.Point(c.width/2,c.height);break}return new google.maps.MarkerImage(c.src,d,a,b)},setMarkerImage:function(a,c){var b=this.getMarkerImage(c);a.setIcon(b.icon);if(c.shadow){a.setShadow(b.shadow)}},clearMarkers:function(){this.markers.each(function(a){a.marker.setMap(null)});this.markers.empty()},fitBounds:function(c){var b=this.map,a=this.calculateBounds(c);var d=google.maps.event.addListener(b,"bounds_changed",(function(h){var f=this.get("zoom");if(this.options.zoom&&this.markers.length){var g=this.options.zoom;if(g<this.options.minZoom){b.setZoom(g)}}if(this.options.noMarkerZoom&&!this.markers.length){if(this.options.noMarkerZoom){b.setZoom(this.options.noMarkerZoom)}}if(this.options.zoomAdjustment){var e=f+(this.options.zoomAdjustment);if(e<this.options.minZoom){b.setZoom(e)}}if(this.get("zoom")>this.options.minZoom&&this.options.minZoom>0){b.setZoom(this.options.minZoom)}google.maps.event.removeListener(d)}.bind(this)));b.fitBounds(a)},calculateBounds:function(b){var a=new google.maps.LatLngBounds;var b=(b||this.markers);if(b.length){b.each(function(c){a.extend(c.marker.position)})}else{a.extend(this.center)}return a},resize:function(){google.maps.event.trigger(this.map,"resize")},recenter:function(){this.map.panTo(this.center)},set:function(c,b){switch(c){case"zoom":this.map.setZoom(b);break;case"center":this.map.setCenter(b);break;case"options":this.map.setOptions(b);break;case"panAndZoom":if(!b.position||!b.zoom){return}this.map.setCenter(b.position);var a=google.maps.event.addListener(this.map,"idle",(function(){if(this.get("zoom")!=b.zoom){this.set("zoom",b.zoom)}google.maps.event.removeListener(a)}.bind(this)));break;case"streetView":new google.maps.StreetViewPanorama(this.$el,{position:new google.maps.LatLng(b.latitude,b.longitude),enableCloseButton:true,pov:{heading:0,pitch:0,zoom:0}});break;default:this.store[c]=b}return this},get:function(a){switch(a){case"zoom":return this.map.getZoom();default:return this.store[a]}}});document.addEvent("domready",function(){var a=$$(".ui-map");if(!a.length){return}UI.Google.load("maps",(function(){a.each(function(b){b.store("map",new UI.Map(b,b.getDataFromComment()))})}))});UI.Lazyload=new Class({Implements:Options,options:{target:null,total:0,show:3,auto:true,forceInit:false,fadeActivity:false,contentClass:"ui-lazyload-content",loadClass:"ui-lazyload-load",activityClass:"ui-lazyload-activity"},initialize:function(f,c){this.setOptions(c);if(!this.options.target||!this.options.show){return}var e=this.$el=$(f);var b=this.$content=(this.$el.getElement("."+this.options.contentClass)||this.$el);var a=this.$load=this.$el.getElement("."+this.options.loadClass);var d=this.$activity=this.$el.getElement("."+this.options.activityClass);this.init()},init:function(){this._count=0;this._row=this.options.show;this._remaining=this.options.remaining;this._status="idle";var a=(function(){var c=this.$el.getSize().y;var d=this.$el.getPosition().y+c;var b=window.getScroll().y+window.getSize().y;if(d<b){if(this._status!="idle"){return}this.load()}var e=((this._count>=this.options.auto)||!this.options.auto);if(e||!this._remaining){window.removeEvent("scroll",a)}}.bind(this));window.addEvent("scroll",a);window.fireEvent("scroll");if(this.$load){this.$load.addEvent("click",function(){this.load()}.bind(this))}if(!this.options.auto&&this._remaining){this.$load.show()}},load:function(b){if(!this._remaining&&!b){this._status="finished";$log("All items have been loaded.");return}this._count++;this._status="loading";if(this.$load){this.$load.hide()}if(this.$activity){if(this.options.fadeActivity){this.$activity.show().setOpacity(0).fade("in")}else{this.$activity.show()}}var a={startRow:this._row+1};if(this.options.data){Object.append(a,this.options.data)}UI.loadSparkle({path:this.options.target,data:a}).then((function(c){if(this.$activity){if(this.options.fadeActivity){this.$activity.fade("out")}else{this.$activity.hide()}}var d=new Element("div",{"class":"ui-lazyload-loaded",html:c}).inject(this.$content);UI.initClasses(d);this._row+=this.options.show;if(d.getElement(".ui-lazyload-counts")){this._counts=d.getElement(".ui-lazyload-counts").getDataFromComment();this._remaining=this._counts.remaining}else{$log("Error: Remaining count doesn't exist, setting to false.");this._remaining=false}this._status="idle";var e=((this._count>=this.options.auto)||!this.options.auto);if(e&&this.$load){if(this._remaining){this.$load.show()}else{this.$load.hide()}}window.fireEvent("scroll");if(this.options.onLoad){UI.doCallback(this.options.onLoad,d)}}.bind(this)))}});document.addEvent("domready",function(){$$(".ui-lazyload").each(function(a){a.store("lazyload",new UI.Lazyload(a,a.getDataFromComment()))})});UI.Toggle=new Class({Implements:Options,options:{onToggle:null},initialize:function(e,b){this.setOptions(b);var c=this.$el=$(e);var f=c.getElement("input");if(!f){$alert("UI.Toggle has been incorrectly configured, no [input] element found.");return}this.value=(c.hasClass("ui-toggle-is-false")?false:true);var d=c.getElement(".ui-toggle-true"),a=c.getElement(".ui-toggle-false");d.addEvent("click",function(){c.removeClass("ui-toggle-is-false").addClass("ui-toggle-is-true");this.value=f.value=true;if(this.options.onToggle){UI.doCallback(this.options.onToggle,true)}}.bind(this));a.addEvent("click",function(){c.removeClass("ui-toggle-is-true").addClass("ui-toggle-is-false");this.value=f.value=false;if(this.options.onToggle){UI.doCallback(this.options.onToggle,false)}}.bind(this))}});document.addEvent("domready",function(){$$(".ui-toggle").each(function(a){a.store("toggle",new UI.Toggle(a,a.getDataFromComment()))})});UI.Chosen=new Class({Implements:Options,options:{defaultText:"",ignoreSearchPadding:false},active_field:false,mouse_on_container:false,results_showing:false,result_highlighted:null,result_single_selected:null,choices:0,initialize:function(b,a){this.setOptions(a);this.click_test_action=this.test_active_click.bind(this);this.form_field=b;this.is_multiple=this.form_field.multiple;this.is_rtl=this.form_field.hasClass("ui-chosen-rtl");if(!this.options.defaultText){this.options.defaultText=(this.form_field.multiple?"Select Some Options":"Select an Option")}this.set_up_html();this.register_observers()},set_up_html:function(){var d,c,b,a;if(!this.form_field.id){this.form_field.id=String.uniqueID()}this.container_id=this.form_field.id.replace(/(:|\.)/g,"_")+"_chzn";this.f_width=this.form_field.getCoordinates().width;this.default_text=this.form_field.get("data-placeholder")?this.form_field.get("data-placeholder"):this.options.defaultText;if(Browser.name=="ie"){this.f_width=(this.f_width<0?0:this.f_width)}d=new Element("div",{id:this.container_id,"class":"ui-chosen-container"+(this.is_rtl?" ui-chosen-rtl":"")}).setStyle("width",this.f_width);if(this.is_multiple){d.set("html",'<ul class="ui-chosen-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" style="width:25px;" /></li></ul><div class="ui-chosen-drop" style="left:-9000px;"><ul class="ui-chosen-results"></ul></div>')}else{d.set("html",'<a href="javascript:void(0)" class="ui-chosen-single"><span>'+this.default_text+'</span><div><b></b></div></a><div class="ui-chosen-drop" style="left:-9000px;"><div class="ui-chosen-search"><input type="text" /></div><ul class="ui-chosen-results"></ul></div>')}this.form_field.setStyle("display","none").grab(d,"after");this.container=document.id(this.container_id);this.container.addClass("ui-chosen-container-"+(this.is_multiple?"multi":"single"));this.dropdown=this.container.getElement("div.ui-chosen-drop");c=this.container.getCoordinates().height;b=this.f_width-this.dropdown.get_side_border_padding();if(Browser.name=="ie"){b=(b<0?0:b);c=(c<0?0:c)}this.dropdown.setStyles({width:b,top:c});this.search_field=this.container.getElement("input");this.search_results=this.container.getElement("ul.ui-chosen-results");this.search_field_scale();this.search_no_results=this.container.getElement("li.no-results");if(this.is_multiple){this.search_choices=this.container.getElement("ul.ui-chosen-choices");this.search_container=this.container.getElement("li.search-field")}else{this.search_container=this.container.getElement("div.ui-chosen-search");this.selected_item=this.container.getElement(".ui-chosen-single");a=b-this.search_container.get_side_border_padding()-(!this.options.ignoreSearchPadding?this.search_field.get_side_border_padding():0);if(Browser.name=="ie"){a=(a<0?0:a)}this.search_field.setStyle("width",a)}this.results_build();this.set_tab_index()},register_observers:function(){this.container.addEvents({click:this.container_click.bind(this),mouseenter:this.mouse_enter.bind(this),mouseleave:this.mouse_leave.bind(this)});this.search_results.addEvents({click:this.search_results_click.bind(this),mouseover:this.search_results_mouseover.bind(this),mouseout:this.search_results_mouseout.bind(this)});this.form_field.addEvent("liszt:updated",this.results_update_field.bind(this));this.search_field.addEvents({blur:this.input_blur.bind(this),keyup:this.keyup_checker.bind(this),keydown:this.keydown_checker.bind(this)});if(this.is_multiple){this.search_choices.addEvent("click",this.choices_click.bind(this));this.search_field.addEvent("focus",this.input_focus.bind(this))}else{this.selected_item.addEvent("focus",this.activate_field.bind(this))}},container_click:function(a){if(a&&a.type==="click"){a.stopPropagation()}if(!this.pending_destroy_click){if(!this.active_field){if(this.is_multiple){this.search_field.value=""}document.addEvent("click",this.click_test_action);this.results_toggle()}else{if(!this.is_multiple&&a&&(a.target===this.selected_item||a.target.getParents("a.ui-chosen-single").length)){a.preventDefault();this.results_show()}}this.activate_field()}else{this.pending_destroy_click=false}},mouse_enter:function(){this.mouse_on_container=true},mouse_leave:function(){this.mouse_on_container=false},input_focus:function(a){if(!this.active_field){setTimeout(this.container_click.bind(this),50)}},input_blur:function(a){if(!this.mouse_on_container){this.active_field=false;setTimeout(this.blur_test.bind(this),100)}},blur_test:function(a){if(!this.active_field&&this.container.hasClass("ui-chosen-container-active")){this.close_field()}},close_field:function(){document.removeEvent("click",this.click_test_action);if(!this.is_multiple){this.selected_item.set("tabindex",this.search_field.get("tabindex"));this.search_field.set("tabindex",-1)}this.active_field=false;this.results_hide();this.container.removeClass("ui-chosen-container-active");this.winnow_results_clear();this.clear_backstroke();this.show_search_field_default();this.search_field_scale()},activate_field:function(){if(!this.is_multiple&&!this.active_field){this.search_field.set("tabindex",this.selected_item.get("tabindex"));this.selected_item.set("tabindex",-1)}this.container.addClass("ui-chosen-container-active");this.active_field=true;this.search_field.set("value",this.search_field.get("value"));this.search_field.focus()},test_active_click:function(a){if(a.target.getParents("#"+this.container_id).length){this.active_field=true}else{this.close_field()}},results_build:function(){this.parsing=true;this.results_data=this.form_field.select_to_array();if(this.is_multiple&&this.choices>0){this.search_choices.getElements("li.search-choice").destroy();this.choices=0}else{if(!this.is_multiple){this.selected_item.getElements("span").set("text",this.default_text)}}var a="";this.results_data.each(function(b){if(b.group){a+=this.result_add_group(b)}else{if(!b.empty){a+=this.result_add_option(b);if(b.selected&&this.is_multiple){this.choice_build(b)}else{if(b.selected&&!this.is_multiple){this.selected_item.getElements("span").set("text",b.text)}}}}},this);this.show_search_field_default();this.search_field_scale();this.search_results.set("html",a);this.parsing=false},result_add_group:function(a){if(!a.disabled){a.dom_id=this.container_id+"_g_"+a.array_index;return'<li id="'+a.dom_id+'" class="group-result"><div>'+a.label+"</div></li>"}else{return""}},result_add_option:function(b){var a;if(!b.disabled){b.dom_id=this.container_id+"_o_"+b.array_index;a=b.selected&&this.is_multiple?[]:["active-result"];if(b.selected){a.push("result-selected")}if(b.group_array_index!=null){a.push("group-option")}return'<li id="'+b.dom_id+'" class="'+a.join(" ")+'"><div>'+b.html+"</div></li>"}else{return""}},results_update_field:function(){this.result_clear_highlight();this.result_single_selected=null;this.results_build()},result_do_highlight:function(b){var f,e,c,d,a;if(b){this.result_clear_highlight();this.result_highlight=b;this.result_highlight.addClass("highlighted");c=parseInt(this.search_results.getStyle("maxHeight"),10);a=this.search_results.getScroll().y;d=c+a;e=this.result_highlight.getPosition(this.search_results).y+this.search_results.getScroll().y;f=e+this.result_highlight.getCoordinates().height;if(f>=d){this.search_results.scrollTo(0,(f-c)>0?f-c:0)}else{if(e<a){this.search_results.scrollTo(0,e)}}}},result_clear_highlight:function(){if(this.result_highlight){this.result_highlight.removeClass("highlighted")}this.result_highlight=null},results_toggle:function(){if(this.results_showing){this.results_hide()}else{this.results_show()}},results_show:function(){var a;if(!this.is_multiple){this.selected_item.addClass("ui-chosen-single-with-drop");if(this.result_single_selected){this.result_do_highlight(this.result_single_selected)}}a=this.is_multiple?this.container.getCoordinates().height:this.container.getCoordinates().height-1;if(Browser.name=="ie"){a=(a<0?0:a)}this.dropdown.setStyles({top:a,left:0});this.results_showing=true;this.search_field.focus();this.search_field.set("value",this.search_field.get("value"));this.winnow_results()},results_hide:function(){if(!this.is_multiple){this.selected_item.removeClass("ui-chosen-single-with-drop")}this.result_clear_highlight();this.dropdown.setStyle("left",-9000);this.results_showing=false},set_tab_index:function(b){var a;if(this.form_field.get("tabindex")){a=this.form_field.get("tabindex");this.form_field.set("tabindex",-1);if(this.is_multiple){this.search_field.set("tabindex",a)}else{this.selected_item.set("tabindex",a);this.search_field.set("tabindex",-1)}}},show_search_field_default:function(){if(this.is_multiple&&this.choices<1&&!this.active_field){this.search_field.set("value",this.default_text);this.search_field.addClass("default")}else{this.search_field.set("value","");this.search_field.removeClass("default")}},search_results_click:function(a){var b=a.target.hasClass("active-result")?a.target:a.target.getParent(".active-result");if(b){this.result_highlight=b;this.result_select()}},search_results_mouseover:function(a){var b=a.target.hasClass("active-result")?a.target:a.target.getParent(".active-result");if(b){this.result_do_highlight(b)}},search_results_mouseout:function(a){if(a.target.hasClass("active-result")||a.target.getParent(".active-result")){this.result_clear_highlight()}},choices_click:function(a){a.preventDefault();if(this.active_field&&!(a.target.hasClass("search-choice")||a.target.getParent(".search-choice"))&&!this.results_showing){this.results_show()}},choice_build:function(c){var a=this.container_id+"_c_"+c.array_index;this.choices+=1;var b=new Element("li",{id:a}).addClass("search-choice").set("html","<span>"+c.html+'</span><a href="#" class="search-choice-close" rel="'+c.array_index+'"></a>');this.search_container.grab(b,"before");document.id(a).getElement("a").addEvent("click",this.choice_destroy_link_click.bind(this))},choice_destroy_link_click:function(a){a.preventDefault();this.pending_destroy_click=true;this.choice_destroy(a.target)},choice_destroy:function(a){this.choices-=1;this.show_search_field_default();if(this.is_multiple&&this.choices>0&&this.search_field.value.length<1){this.results_hide()}this.result_deselect(a.get("rel"));a.getParent("li").destroy();if(this.is_multiple){this.check_multiple_selections()}},result_select:function(){var d,c,b,a;if(this.result_highlight){d=this.result_highlight;c=d.get("id");this.result_clear_highlight();d.addClass("result-selected");if(this.is_multiple){this.result_deactivate(d)}else{this.result_single_selected=d}a=c.substr(c.lastIndexOf("_")+1);b=this.results_data[a];b.selected=true;this.form_field.options[b.options_index].selected=true;if(this.is_multiple){this.choice_build(b)}else{this.selected_item.getElement("span").set("text",b.text)}this.results_hide();this.search_field.set("value","");this.form_field.fireEvent("change");this.search_field_scale();if(this.is_multiple){this.check_multiple_selections()}else{if(b.value){this.container.addClass("ui-chosen-selected")}else{this.container.removeClass("ui-chosen-selected")}}}},check_multiple_selections:function(){var a=false;this.results_data.each(function(b){if(b.selected){a=true}});if(a){this.container.addClass("ui-chosen-selected")}else{this.container.removeClass("ui-chosen-selected")}},result_activate:function(a){a.addClass("active-result").setStyle("display","block")},result_deactivate:function(a){a.removeClass("active-result").setStyle("display","none")},result_deselect:function(c){var a,b;b=this.results_data[c];b.selected=false;this.form_field.options[b.options_index].selected=false;a=document.id(this.container_id+"_o_"+c);a.removeClass("result-selected").addClass("active-result").setStyle("display","block");this.result_clear_highlight();this.winnow_results();this.form_field.fireEvent("change");this.search_field_scale()},results_search:function(a){if(this.results_showing){this.winnow_results()}else{this.results_show()}},winnow_results:function(){var j,d,b,g,f,c,i,e,h,a;this.no_results_clear();c=0;i=this.search_field.get("value")===this.default_text?"":new Element("div",{text:this.search_field.get("value").trim()}).get("html");g=new RegExp("^"+i.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i");a=new RegExp(i.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i");this.results_data.each(function(k){if(!k.disabled&&!k.empty){if(k.group){document.id(k.dom_id).setStyle("display","none")}else{if(!(this.is_multiple&&k.selected)){j=false;f=k.dom_id;if(g.test(k.html)){j=true;c+=1}else{if(k.html.indexOf(" ")>=0||k.html.indexOf("[")===0){b=k.html.replace(/\[|\]/g,"").split(" ");if(b.length){b.each(function(l){if(g.test(l)){j=true;c+=1}})}}}if(j){if(i.length){e=k.html.search(a);h=k.html.substr(0,e+i.length)+"</em>"+k.html.substr(e+i.length);h=h.substr(0,e)+"<em>"+h.substr(e)}else{h=k.html}if(document.id(f).get("html")!==h){document.id(f).set("html",h)}this.result_activate(document.id(f));if(k.group_array_index!=null){document.id(this.results_data[k.group_array_index].dom_id).setStyle("display","block")}}else{if(this.result_highlight&&f===this.result_highlight.get("id")){this.result_clear_highlight()}this.result_deactivate(document.id(f))}}}}},this);if(c<1&&i.length){this.no_results(i)}else{this.winnow_results_set_highlight()}},winnow_results_clear:function(){this.search_field.set("value","");this.search_results.getElements("li").each(function(a){a.hasClass("group-result")?a.setStyle("display","block"):!this.is_multiple||!a.hasClass("result-selected")?this.result_activate(a):void 0},this)},winnow_results_set_highlight:function(){var a;if(!this.result_highlight){a=this.search_results.getElement(".active-result");if(a){this.result_do_highlight(a)}}},no_results:function(a){var b=new Element("li",{"class":"no-results"}).set("html",'No results match "<span></span>"');b.getElement("span").set("html",a);this.search_results.grab(b)},no_results_clear:function(){this.search_results.getElements(".no-results").destroy()},keydown_arrow:function(){var b,a;if(!this.result_highlight){b=this.search_results.getElement("li.active-result");if(b){this.result_do_highlight(b)}}else{if(this.results_showing){a=this.result_highlight.getNext("li.active-result");if(a){this.result_do_highlight(a)}}}if(!this.results_showing){this.results_show()}},keyup_arrow:function(){if(!this.results_showing&&!this.is_multiple){this.results_show()}else{if(this.result_highlight){var a=this.result_highlight.getAllPrevious("li.active-result");if(a.length){this.result_do_highlight(a[0])}else{if(this.choices>0){this.results_hide()}this.result_clear_highlight()}}}},keydown_backstroke:function(){if(this.pending_backstroke){this.choice_destroy(this.pending_backstroke.getElement("a"));this.clear_backstroke()}else{this.pending_backstroke=this.search_choices.getLast("li.search-choice");this.pending_backstroke.addClass("search-choice-focus")}},clear_backstroke:function(){if(this.pending_backstroke){this.pending_backstroke.removeClass("search-choice-focus")}this.pending_backstroke=null},keyup_checker:function(a){this.search_field_scale();switch(a.key){case"backspace":if(this.is_multiple&&this.backstroke_length<1&&this.choices>0){this.keydown_backstroke()}else{if(!this.pending_backstroke){this.result_clear_highlight();this.results_search()}}break;case"enter":a.preventDefault();if(this.results_showing){this.result_select()}break;case"esc":if(this.results_showing){this.results_hide()}break;case"tab":case"up":case"down":case"shift":break;default:this.results_search()}},keydown_checker:function(a){this.search_field_scale();if(a.key!=="backspace"&&this.pending_backstroke){this.clear_backstroke()}switch(a.key){case"backspace":this.backstroke_length=this.search_field.value.length;break;case"tab":this.mouse_on_container=false;break;case"enter":a.preventDefault();break;case"up":a.preventDefault();this.keyup_arrow();break;case"down":this.keydown_arrow();break}},search_field_scale:function(){var j,a,d,b,g,i,f,c,e;if(this.is_multiple){d=0;f=0;g={position:"absolute",visibility:"hidden"};i=this.search_field.getStyles("font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing");Object.merge(g,i);a=new Element("div",{styles:g});a.set("text",this.search_field.get("value"));if(document.body.grab){document.body.grab(a)}f=a.getCoordinates().width+25;a.destroy();if(f>this.f_width-10){f=this.f_width-10}if(Browser.name=="ie"){f=(f<0?0:f);j=(j<0?0:j)}this.search_field.setStyle("width",f);j=this.container.getCoordinates().height;this.dropdown.setStyle("top",j)}}});Element.implement({get_side_border_padding:function(){var e=this.getStyles("padding-left","padding-right","border-left-width","border-right-width");var d=Object.filter(e,function(g){return(typeof(g)=="string")});var c=Object.map(d,function(g){return g.toInt()});var f=Object.values(c);var a=0,b=f.length;if(b){while(b--){a+=f[b]}}return a},select_to_array:function(){var a=new SelectParser();this.getChildren().each(function(b){a.add_node(b)});return a.parsed}});var SelectParser=new Class({options_index:0,parsed:[],add_node:function(a){if(a.nodeName==="OPTGROUP"){this.add_group(a)}else{this.add_option(a)}},add_group:function(b){var a=this.parsed.length;this.parsed.push({array_index:a,group:true,label:b.label,children:0,disabled:b.disabled});b.getChildren().each(function(c){this.add_option(c,a,b.disabled)},this)},add_option:function(b,c,a){if(b.nodeName==="OPTION"){if(b.text!==""){if(c!=null){this.parsed[c].children+=1}this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:b.value,text:b.text,html:b.innerHTML,selected:b.selected,disabled:a===true?a:b.disabled,group_array_index:c})}else{this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:true})}this.options_index+=1}}});document.addEvent("domready",function(){$$(".ui-chosen").each(function(a){a.store("chosen",new UI.Chosen(a,a.getDataFromComment()))})});
