var elSelect=new Class({options:{container:false,baseClass:"elSelect",submit:false},source:false,selected:false,_select:false,current:false,selectedOption:false,dropDown:false,optionsContainer:false,hiddenInput:false,submitting:false,inputHidden:false,initialize:function(a){this.setOptions(a);if(this.options.container&&(this.selected=false,this.source=$(this.options.container).getElement("select")))this.buildFrameWork(),$(this.source).getElements("option").each(this.addOption,this),this.submitting=
this.options.submit,this.inputHidden=$(this.options.container).getElement("input"),this.inputHidden.set("class",this.inputHidden.get("name")),$(this.options.container).set("html",""),this._select.injectInside($(this.options.container)),this.inputHidden.injectInside($(this.options.container)),this.bindEvents()},buildFrameWork:function(){this._select=(new Element("div")).addClass(this.options.baseClass);this.current=(new Element("div")).addClass("selected").injectInside($(this._select));this.selectedOption=
(new Element("div")).addClass("selectedOption").injectInside($(this.current));this.dropDown=(new Element("div")).addClass("dropDown").injectInside($(this.current));(new Element("div")).addClass("clear").injectInside($(this._select));this.optionsContainer=(new Element("div")).addClass("optionsContainer").injectInside($(this._select));var a=(new Element("div")).addClass("optionsContainerTop").injectInside($(this.optionsContainer)),a=(new Element("div")).injectInside($(a));(new Element("div")).injectInside($(a));
a=(new Element("div")).addClass("optionsContainerBottom").injectInside($(this.optionsContainer));a=(new Element("div")).injectInside($(a));(new Element("div")).injectInside($(a));this.hiddenInput=(new Element("input")).setProperties({type:"hidden",name:this.source.getProperty("name")}).injectInside($(this.options.container))},bindEvents:function(){document.addEvent("click",function(){if(this.optionsContainer.getStyle("display")=="block")this.onDropDown()}.bind(this));$(this.options.container).addEvent("click",
function(a){(new Event(a)).stop()});this.current.addEvent("click",this.onDropDown.bindWithEvent(this))},addOption:function(a){var b=(new Element("div")).addClass("option").setProperty("value",a.value);a.disabled?b.addClass("disabled"):b.addEvents({click:this.onOptionClick.bindWithEvent(this),mouseout:this.onOptionMouseout.bindWithEvent(this),mouseover:this.onOptionMouseover.bindWithEvent(this)});$defined(a.getProperty("class"))&&$chk(a.getProperty("class"))&&b.addClass(a.getProperty("class"));if(a.selected)this.selected&&
this.selected.removeClass("selected"),this.selected=b,b.addClass("selected"),this.selectedOption.set("text",a.text),this.hiddenInput.setProperty("value",a.value);b.set("text",a.text);b.injectBefore($(this.optionsContainer).getLast())},onDropDown:function(){if(this.optionsContainer.getStyle("display")=="block")this.optionsContainer.setStyle("display","none");else{this.optionsContainer.setStyle("display","block");$(this.selected).addClass("selected");var a=this.optionsContainer.getStyle("width").toInt()>
this._select.getStyle("width").toInt()?this.optionsContainer.getStyle("width"):this._select.getStyle("width");this.optionsContainer.setStyle("width",a);this.optionsContainer.getFirst().setStyle("width",a);this.optionsContainer.getLast().setStyle("width",a)}},onOptionClick:function(a){a=new Event(a);if(this.selected!=a.target)this.selected.removeClass("selected"),a.target.addClass("selected"),this.selected=a.target,this.selectedOption.set("text",this.selected.get("text")),this.hiddenInput.setProperty("value",
this.selected.getProperty("value")),this.hiddenInput.fireEvent("change",this.selected.getProperty("value")),eventCard&&(cinemaOverrideGeoloc=this.selected.getProperty("value"),eventCard.updateProgrammationList());$("adminForm")&&this.submitting==true&&$("adminForm").submit();this.onDropDown()},onOptionMouseover:function(a){a=new Event(a);$(this.selected).removeClass("selected");a.target.addClass("selected")},onOptionMouseout:function(a){(new Event(a)).target.removeClass("selected")}});elSelect.implement(new Events);
elSelect.implement(new Options);

