/*  Formcontrols, version 2.0
 *  (c) 2008 Minnim
 *	http://www.minnim.tv/
 *
 *	Dependencias: prototype + script.aculo.us effects
 *  http://www.prototypejs.org/
 *  http://script.aculo.us/
 *--------------------------------------------------------------------------*/
RadioControl=Class.create();Object.extend(RadioControl.prototype,{initialize:function(b,d,c,a){this.start(b,d,c,a)},start:function(b,d,c,a){this.buttons=new Array(),this.value=null,this.hidden=b,this.msg=d,this.noValidColor=c,this.validColor=a,this.valid=true,this.autoHighlight=true;this.disabledClass="disabled",this.listeners=new Array()}});Object.extend(RadioControl.prototype,{findPos:function(b){var a=null;this.buttons.each(function(d,c){if(d==b){a=c;return}});return a},findPosValue:function(a){var b=null;this.buttons.each(function(d,c){if(d.val==a){b=c;return}});return b},onPress:function(a){this.value=a.val;$(this.hidden).value=this.value;this.validate()},clickEvent:function(a){this.onPress(Event.element(a))},removeListeners:function(){var a=this.buttons;this.listeners.each(function(c,b){a[b].stopObserving("click",c)})},addControl:function(b,a){if(!$(b).hasClassName(this.disabledClass)){$(b).val=a;$(b).setStyle({cursor:"pointer"});this.listeners.push(this.clickEvent.bindAsEventListener(this));$(b).observe("click",this.listeners[this.listeners.length-1]);this.buttons.push($(b))}},highlightOn:function(){if(this.valid){new Effect.HighlightText(this.msg,{startcolor:this.validColor,endcolor:this.noValidColor,time:0.5});this.valid=false}},highlightOff:function(){if(!this.valid){new Effect.HighlightText(this.msg,{startcolor:this.noValidColor,endcolor:this.validColor,time:0.5})}this.valid=true},validate:function(){if(this.value==null){if(this.autoHighlight){this.highlightOn()}return false}if(this.autoHighlight){this.highlightOff()}return true},checkHidden:function(){if($(this.hidden).value!=""){var a=this.findPosValue($(this.hidden).value);this.onPress(this.buttons[a])}}});RadioControlImg=Class.create();Object.extend(Object.extend(RadioControlImg.prototype,RadioControl.prototype),{initialize:function(d,h,f,b,a,e,g,c){this.start(d,h,f,b);this.over=a,this.step=e,this.columns=c,this.vstep=g},roundUtil:function(b,c){if(b==null||c==null){return 0}var a=Math.floor(b/c);return a},onPress:function(b){if(this.columns==undefined||this.columns=="undefined"){this.columns=null}if(this.vstep==undefined||this.vstep=="undefined"){this.vstep=null}var a=this.findPos(b);$(this.over).style.left=((a-this.roundUtil(a,this.columns)*this.columns)*this.step)+"px";$(this.over).style.top=(this.vstep*this.roundUtil(a,this.columns))+"px";$(this.over).setStyle({visibility:"visible"});this.value=b.val;$(this.hidden).value=this.value;this.validate()},set:function(a){this.onPress($(a))}});RadioControlClass=Class.create();Object.extend(Object.extend(RadioControlClass.prototype,RadioControl.prototype),{initialize:function(c,e,d,b,a){this.start(c,e,d,b);this.over=a},removeOver:function(){this.buttons.invoke("removeClassName",this.over);this.buttons.invoke("setStyle",{cursor:"pointer"})},onPress:function(b){var a=this.findPos(b);this.removeOver();$(b).addClassName(this.over);$(b).setStyle({cursor:"default"});this.value=b.val;$(this.hidden).value=this.value;$(this.hidden).fire("radiocontrol:setvalue");this.validate()}});MultipleRadioControls=Class.create();Object.extend(MultipleRadioControls.prototype,{initialize:function(d,c,f,e,b,a){this.start(d,c,f,e,b,a)},start:function(d,c,f,e,b,a){this.target=d;this.hidden=c;this.msg=f;this.noValidColor=e;this.validColor=b;this.disabledClass="disabled";this.over=a;this.autoHighlight=true;this.lists=new Array();this.control=null;this.listener=null},addList:function(){var b=this.lists.length;this.lists[b]=new Array();for(i=0;i<arguments.length;i++){var a=arguments[i];this.lists[b].push(a)}},addSelectListener:function(b){this.listener=b;var a=this;$(this.listener).observe("change",this.showList.bindAsEventListener(this))},validate:function(){if(this.control!=null){return this.control.validate()}return false},checkHidden:function(){this.showList($(this.listener).value);this.control.checkHidden()},showList:function(b){if(typeof b=="object"){b=Event.element(b).value}var a="<ul>\n";var c=this.lists[b];var d=this;c.each(function(e){if(e.active){a+='<li id="talla_'+e.val+'">'+e.text+"</li>"}else{a+='<li id="talla_'+e.val+'" class="'+d.disabledClass+'" >'+e.text+"</li>"}a+="\n"});a+="</ul>\n";if(this.control!=null){this.control.removeListeners()}this.control=null;$(this.target).innerHTML=a;this.control=new RadioControlClass(this.hidden,this.msg,this.noValidColor,this.validColor,this.over);this.control.autoHighlight=this.autoHighlight;c.each(function(e){d.control.addControl("talla_"+e.val,e.val)});$(this.hidden).value=""}});TextValidator=Class.create();Object.extend(TextValidator.prototype,{initialize:function(a,b){this.start(a,b)},start:function(a,b){this.input_id=a;this.listeners=new Array();this.keyDownListener=null;this.lastval="";this.valid=true;this.errorCode=1;this.related=new Array();this.autoHighlight=true;this.ignore=false;this.effect=null;this.label_html="";this.validateOn=null;this.setOptions(b);this.lastval=$F(this.input_id);this.keyDownListener=this.setLastVal.bindAsEventListener(this);$(this.input_id).observe("keydown",this.keyDownListener);$(this.input_id).observe("focus",this.keyDownListener);this.listeners.push(this.applyMask.bindAsEventListener(this));$(this.input_id).observe("keyup",this.listeners[0])},addRelated:function(){for(var a=0;a<arguments.length;a++){this.related.push(arguments[a])}},setOptions:function(a){this.options={highlightId:null,noValidColor:"#EE5f19",validColor:"#000000",validType:"empty",useMask:false,required:true,minChars:null,maxChars:null,boldOnError:false,minValue:null};Object.extend(this.options,a||{});if(this.options.highlightId&&this.options.boldOnError){this.label_html=$(this.options.highlightId).innerHTML.stripTags("strong")}},removeListeners:function(){$(this.input_id).stopObserving("keyup",this.listeners[0])},removeAllListeners:function(){$(this.input_id).stopObserving("keyup",this.listeners[0]);$(this.input_id).stopObserving("keydown",this.keyDownListener);$(this.input_id).stopObserving("focus",this.keyDownListener)},highlightOn:function(){if(this.valid){if(this.options.boldOnError&&this.options.highlightId){var a=this.label_html.toLowerCase();if(!a.startsWith("<strong>")){$(this.options.highlightId).update("<strong>"+this.label_html+"</strong>")}}if(this.options.highlightId!=null&&this.options.noValidColor!=null&&this.options.validColor!=null){this.effect=new Effect.HighlightText(this.options.highlightId,{startcolor:this.options.validColor,endcolor:this.options.noValidColor,time:0.5})}this.valid=false}},highlightOff:function(){if(!this.valid){if(this.options.boldOnError&&this.options.highlightId){$(this.options.highlightId).update(this.label_html)}if(this.options.highlightId!=null&&this.options.noValidColor!=null&&this.options.validColor!=null){this.effect=new Effect.HighlightText(this.options.highlightId,{startcolor:this.options.noValidColor,endcolor:this.options.validColor,time:0.5})}this.valid=true}},cancel:function(){if(this.effect==null){return}this.effect.cancel();this.valid=true},validate:function(){if(this.ignore){return true}if(!this.validAll()){if(this.autoHighlight){this.highlightOn()}$(this.input_id).fire("validator:onValidate",{valid:false});return false}if(this.validAll()){if(this.autoHighlight){this.highlightOff()}}$(this.input_id).fire("validator:onValidate",{valid:true});return true},validReg:function(b){if(b==undefined){b=$F(this.input_id)}var a=false;switch(this.options.validType.toLowerCase()){case"number":a=!/[^\d]/.test(b);break;case"alpha":a=/^[a-zA-Z]+$/.test(b);break;case"alphanum":a=!/\W/.test(b);break;case"email":a=/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,4}$/.test(b);break;case"empty":a=!b.blank();break}return a},isEmpty:function(){return $F(this.input_id).blank()},isRequired:function(){return this.options.required},validMinChars:function(){if($F(this.input_id).length<this.options.minChars&&this.options.minChars!=null){return false}return true},validMaxChars:function(){if($F(this.input_id).length>this.options.maxChars&&this.options.maxChars!=null){return false}return true},validMinValue:function(){if($F(this.input_id)<this.options.minValue&&this.options.minValue!=null){return false}return true},validAll:function(){if(!this.isRequired()&&this.isEmpty()){return true}if(this.isRequired()&&this.isEmpty()){return false}if(!this.validReg()){return false}if(!this.validMinChars()){return false}if(!this.validMaxChars()){return false}if(!this.validMinValue()){return false}return true},getValue:function(){return $F(this.input_id)},getLastVal:function(){return this.lastval},setLastVal:function(a){this.lastval=$F(this.input_id)},applyMask:function(a){if(this.options.useMask){if(a.keyCode==8){var b=$F(this.input_id);this.lastval=b;if(this.validateOn=="keyup"){return this.validate()}}if(!this.validReg()){$(this.input_id).value=this.lastval}else{this.lastval=b}}if(this.validateOn=="keyup"){return this.validate()}}});var MultipleText=Class.create();Object.extend(MultipleText.prototype,{initialize:function(b,a){this.inputs=new Array();this.listeners=new Array();this.highlightId=b;this.valid=true;this.setOptions(a);this.validateOn=null;this.autoHighlight=true;this.ignore=false;this.effect=null},setOptions:function(a){this.options={highlightId:null,noValidColor:"#EE5f19",validColor:"#000000",validType:"empty",useMask:true,required:true,minChars:null,maxChars:null};Object.extend(this.options,a||{})},addInput:function(c,b){var a=new TextValidator(c,Object.extend(this.options,b||{}));a.autoHighlight=this.autoHighlight;this.listeners.push(this.keyUpEvent.bindAsEventListener(this));$(a.input_id).observe("keyup",this.listeners[this.listeners.length-1]);this.inputs.push(a)},cancel:function(){if(this.effect==null){return}this.effect.cancel();this.valid=true},highlightOn:function(){if(this.valid){if(this.highlightId!=null&&this.options.noValidColor!=null&&this.options.validColor!=null){this.effect=new Effect.HighlightText(this.highlightId,{startcolor:this.options.validColor,endcolor:this.options.noValidColor,time:0.5})}this.valid=false}},highlightOff:function(){if(!this.valid){if(this.highlightId!=null&&this.options.noValidColor!=null&&this.options.validColor!=null){this.effect=new Effect.HighlightText(this.highlightId,{startcolor:this.options.noValidColor,endcolor:this.options.validColor,time:0.5})}this.valid=true}},keyUpEvent:function(a){if(!this.validateInputs()){if(this.validateOn!="keyup"){return}this.highlightOn()}else{if(this.validateOn!="keyup"){return}this.highlightOff()}},validateInputs:function(){var a=true;this.inputs.each(function(c){var b=c.validate();if(!b){a=false}return});return a},validate:function(){if(this.ignore){return true}this.validateOn="keyup";this.keyUpEvent();return this.validateInputs()}});SelectValidator=Class.create();Object.extend(SelectValidator.prototype,TextValidator.prototype);Object.extend(SelectValidator.prototype,{initialize:function(a,b){this.start(a,b)},start:function(a,b){this.input_id=a;this.listeners=new Array();this.lastval="";this.valid=true;this.errorCode=1;this.related=new Array();this.autoHighlight=true;this.ignore=false;this.effect=null;this.label_html="";this.setOptions(b);this.lastval=$F(this.input_id);this.listeners.push(this.applyMask.bindAsEventListener(this));$(this.input_id).observe("change",this.listeners[0])},setOptions:function(a){this.options={highlightId:null,noValidColor:"#EE5f19",validColor:"#000000",validType:"empty",useMask:false,required:true,minChars:null,maxChars:null};Object.extend(this.options,a||{});Object.extend(this.options,{validType:"empty",useMask:false,required:true});if(this.options.highlightId&&this.options.boldOnError){this.label_html=$(this.options.highlightId).innerHTML}},validate:function(){if(this.ignore){return true}if($(this.input_id).disabled){this.highlightOff();return true}if(!this.validAll()){if(this.autoHighlight){this.highlightOn()}return false}if(this.validAll()){if(this.autoHighlight){this.highlightOff()}}return true}});var MultipleSelect=Class.create();Object.extend(MultipleSelect.prototype,{initialize:function(b,a){this.inputs=new Array();this.listeners=new Array();this.highlightId=b;this.valid=true;this.setOptions(a);this.validateOn=null;this.autoHighlight=true;this.ignore=false;this.effect=null;this.label_html=""},setOptions:function(a){this.options={highlightId:null,noValidColor:"#EE5f19",validColor:"#000000",validType:"empty",useMask:true,required:true,minChars:null,maxChars:null};Object.extend(this.options,a||{});if(this.highlightId&&this.options.boldOnError){this.label_html=$(this.highlightId).innerHTML;this.label_html}},addInput:function(c,b){var a=new SelectValidator(c,Object.extend(this.options,b||{}));a.autoHighlight=this.autoHighlight;this.listeners.push(this.keyUpEvent.bindAsEventListener(this));$(a.input_id).observe("keyup",this.listeners[this.listeners.length-1]);this.inputs.push(a)},cancel:function(){if(this.effect==null){return}this.effect.cancel();this.valid=true},highlightOn:function(){if(this.valid){if(this.options.boldOnError){$(this.highlightId).update("<strong>"+this.label_html+"</strong>")}if(this.highlightId!=null&&this.options.noValidColor!=null&&this.options.validColor!=null){this.effect=new Effect.HighlightText(this.highlightId,{startcolor:this.options.validColor,endcolor:this.options.noValidColor,time:0.5})}this.valid=false}},highlightOff:function(){if(!this.valid){if(this.options.boldOnError){$(this.highlightId).update(this.label_html)}if(this.highlightId!=null&&this.options.noValidColor!=null&&this.options.validColor!=null){this.effect=new Effect.HighlightText(this.highlightId,{startcolor:this.options.noValidColor,endcolor:this.options.validColor,time:0.5})}this.valid=true}},keyUpEvent:function(a){if(!this.validateInputs()){if(this.validateOn!="keyup"){return}this.highlightOn()}else{if(this.validateOn!="keyup"){return}this.highlightOff()}},validateInputs:function(){var a=true;this.inputs.each(function(c){var b=c.validate();if(!b){a=false}return});return a},validate:function(){if(this.ignore){return true}this.validateOn="keyup";this.keyUpEvent();return this.validateInputs()}});EditableText=Class.create();Object.extend(EditableText.prototype,{initialize:function(c,a,b){this.fieldId=c;this.fieldHTML=$(this.fieldId).innerHTML;this.inputClass=a;this.options={format:'<input type="text" value="{0}" name="{1}" id="{2}_editable" class="{3}" {4}/>',tabIndex:null};Object.extend(this.options,b||{});new Insertion.After(this.fieldId,'<input type="hidden" value="'+this.getValue()+'" name="'+this.fieldId+'" id="'+this.fieldId+'_hidden" />')},printf:function(){var a=arguments.length;var e=arguments[0];for(var b=1;b<a;b++){var d="\\{"+(b-1)+"\\}";var c=new RegExp(d,"g");e=e.replace(c,arguments[b])}return e},getValue:function(){if($(this.fieldId+"_hidden")!=null){return $(this.fieldId+"_hidden").value}if($(this.fieldId+"_editable")==null){return $(this.fieldId).innerHTML.strip()}return $F(this.fieldId+"_editable")},showInput:function(){$(this.fieldId).setStyle({visibility:"visible"});var b="";if(this.options.tabIndex){b='tabindex="'+this.options.tabIndex+'"'}var a=this.printf(this.options.format,this.getValue(),this.fieldId,this.fieldId,this.inputClass,b);$(this.fieldId).update(a);$(this.fieldId+"_hidden").remove()}});var CompareText=Class.create();Object.extend(CompareText.prototype,TextValidator.prototype);Object.extend(CompareText.prototype,{initialize:function(){this.inputs=new Array();this.options={highlightId:null,noValidColor:"#EE5f19",validColor:"#000000"};this.valid=true;this.autoHighlight=true;this.errorCode=2;for(var a=0;a<arguments.length;a++){this.inputs.push(arguments[a])}},cancel:function(){this.inputs.each(function(a){a.cancel()})},highlightOn:function(){if(this.valid){if(typeof this.inputs[0]=="object"){this.inputs.each(function(a){a.highlightOn()});this.valid=false}}},highlightOff:function(){if(!this.valid){if(typeof this.inputs[0]=="object"){this.inputs.each(function(a){a.highlightOff()})}this.valid=true}},checkValid:function(){var b=true;if(typeof this.inputs[0]=="object"){var a=this.inputs[0].getValue()}else{var a=$F(this.inputs[0])}this.inputs.each(function(d,e){if(typeof d=="object"){var c=d.getValue()}else{var c=$F(d)}if(c!=a){b=false;return}});return b},validate:function(){var a=this.checkValid();return a}});CheckValidator=Class.create();Object.extend(Object.extend(CheckValidator.prototype,TextValidator.prototype),{validate:function(){if(this.ignore){return true}if(!$(this.input_id).checked){if(this.autoHighlight){this.highlightOn()}return false}if($(this.input_id).checked){if(this.autoHighlight){this.highlightOff()}}return true}});SumControl=Class.create();Object.extend(Object.extend(SumControl.prototype,TextValidator.prototype),{initialize:function(a,c,b){this.start(a,b);this.val=c;this.options={};Object.extend(this.options,{validType:"number",format:"{0} &#8364;",useMask:true,useComma:true});Object.extend(this.options,b);this.listeners.push(this.keyUpEvent.bindAsEventListener(this));$(this.input_id).observe("keyup",this.listeners[this.listeners.length-1])},validate:function(){return !this.isEmpty()},getType:function(){return $(this.input_id).type},getHandler:function(){switch(this.getType()){case"text":return"keyup";break;case"select-one":return"change"}},printf:function(){var a=arguments.length;var e=arguments[0];for(var b=1;b<a;b++){var d="\\{"+(b-1)+"\\}";var c=new RegExp(d,"g");e=e.replace(c,arguments[b])}return e},getSum:function(){var a=$F(this.input_id);if(String(Number(a))=="NaN"){a=this.getLastVal()}if(a.blank()){a=0}a=a*this.val;var b=Number(a)*100;b=Math.round(b);a=b/100;return a},keyUpEvent:function(b){var a=this.getSum();if(this.options.highlightId!=null){var c=".";var d=",";if(!this.options.useComma){d="."}$(this.options.highlightId).innerHTML=this.printf(this.options.format,String(a).replace(c,d))}return a},update:function(){var a=this.keyUpEvent();return a},removeListeners:function(){for(i=1;i<this.listeners.length;i++){$(this.input_id).stopObserving("keyup",this.listeners[i])}}});SumSelectControl=Class.create();Object.extend(SumSelectControl.prototype,{initialize:function(c,a,b){this.input_id=c,this.listeners=new Array();this.val=1;this.highlightId=a;this.format="{0} &#8364;";this.useComma=true;this.listeners.push(this.keyUpEvent.bindAsEventListener(this));$(this.input_id).observe("change",this.listeners[this.listeners.length-1])},printf:function(){var a=arguments.length;var e=arguments[0];for(var b=1;b<a;b++){var d="\\{"+(b-1)+"\\}";var c=new RegExp(d,"g");e=e.replace(c,arguments[b])}return e},getType:function(){return $(this.input_id).type},getHandler:function(){switch(this.getType()){case"text":return"keyup";break;case"select-one":return"change"}},getSum:function(){var a=$F(this.input_id);if(String(Number(a))=="NaN"||a.blank()){a=0}a=a*this.val;var b=Number(a)*100;b=Math.round(b);a=b/100;return a},keyUpEvent:function(b){var a=this.getSum();var c=".";var d=",";if(!this.useComma){d="."}$(this.highlightId).innerHTML=this.printf(this.format,String(a).replace(c,d));return a},update:function(){var a=this.keyUpEvent();return a},removeListeners:function(a){if(a){$(this.input_id).stopObserving("change",this.listeners[a]);return}for(i=0;i<this.listeners.length;i++){$(this.input_id).stopObserving("change",this.listeners[i])}}});SumList=Class.create();Object.extend(SumList.prototype,{initialize:function(a){this.highlightId=a,this.format="{0} &#8364;",this.controls=new Array(),this.periodical=null,this.listeners=new Array(),this.useComma=true;this.objType="SumList"},addControl:function(a){if(String(a.objType)=="undefined"||a.objType!=this.objType){a.removeListeners(1);this.listeners.push(this.keyUpEvent.bindAsEventListener(this));$(a.input_id).observe(a.getHandler(),this.listeners[this.listeners.length-1]);this.controls.push(a);return}this.addSumList(a)},removeListeners:function(){for(i=0;i<this.listeners.length;i++){var a=this.listeners[i];this.controls.each(function(b){$(b.input_id).stopObserving(b.getHandler(),a)})}this.listeners=new Array()},addSumList:function(b){this.controls=this.controls.concat(b.controls);var a=this.listeners;var c=this;this.controls.each(function(e){a.push(c.keyUpEvent.bindAsEventListener(c));var d=a[a.length-1];$(e.input_id).observe(e.getHandler(),d)})},printf:function(){var a=arguments.length;var e=arguments[0];for(var b=1;b<a;b++){var d="\\{"+(b-1)+"\\}";var c=new RegExp(d,"g");e=e.replace(c,arguments[b])}return e},getSum:function(){var a=0;this.controls.each(function(c){a+=c.update()});var b=Number(a)*100;b=Math.round(b);a=b/100;return a},keyUpEvent:function(){var a=this.getSum();var b=".";var c=",";if(!this.useComma){c="."}$(this.highlightId).innerHTML=this.printf(this.format,String(a).replace(b,c));return a},update:function(){return this.keyUpEvent()}});RelatedSelects=Class.create();Object.extend(RelatedSelects.prototype,{initialize:function(a){this.start(a)},start:function(a){this.target=a;this.lists=new Array();this.formats=new Array();this.listener=null;this.defaultFormat=""},addList:function(){var c=this.lists.length;var b=0;if(typeof arguments[0]=="number"||typeof arguments[0]=="string"){c=arguments[0];b=1}this.lists[c]=new Array();for(i=b;i<arguments.length;i++){if(typeof arguments[i]=="string"){this.formats[c]=arguments[i]}else{if(arguments[i].length!=undefined){for(z=0;z<arguments[i].length;z++){var a=arguments[i][z];this.lists[c].push(a)}}else{var a=arguments[i];this.lists[c].push(a)}}}},addSelectListener:function(a){this.listener=a;$(this.listener).observe("change",this.showList.bindAsEventListener(this))},checkHidden:function(){this.showList($(this.listener).value)},showList:function(c){if(typeof c=="object"){c=Event.element(c).value}var b="";var a=1;var f=$(this.target);$(this.target).length=0;$(this.target).remove(0);if(this.defaultFormat!=null){$(this.target).options[0]=new Option(this.defaultFormat,"")}else{a=0}if(c.blank()||this.lists[c]==undefined||this.lists[c]==null){$(this.target).disable()}else{var e=this.formats[c];if(e){$(this.target).options[0]=new Option(e,"")}var d=this.lists[c];var g=this;d.each(function(h){f.options[a]=new Option(h.text,h.val);a++});$(this.target).enable()}}});FormValidator=Class.create();Object.extend(FormValidator.prototype,{initialize:function(a){this.formId=a,this.controls=new Array(),this.controls[0]=new Array(),this.inputs=new Array(),this.extraMsg=new Array(),this.listener=null,this.focused=null,this.autoHighlight=true;this.isAlert=false;this.lastErrorIndex=null;this.currentControls=null;this.msgText=new Array();this.enableFocusListener();$(this.formId).onsubmit=function(){return false};$(this.formId).observe("submit",this.handleOnSubmit.bindAsEventListener(this))},handleOnSubmit:function(b){var c=this.findInput(this.focused);if(c!=null){var a=this.validate();return false}return false},addControl:function(){var a=arguments[0];var c=0;if(typeof arguments[0]!="number"){a=0}else{this.controls[a]=new Array();c=1}for(var b=c;b<arguments.length;b++){if(typeof arguments[b]=="string"){this.msgText[a]=arguments[b]}else{arguments[b].autoHighlight=this.autoHighlight;this.controls[a].push(arguments[b])}}},addInput:function(){for(var a=0;a<arguments.length;a++){this.inputs.push(arguments[a])}},addAlert:function(a){this.extraMsg.push(a)},findInput:function(a){var b=null;this.inputs.each(function(d,c){if(d==a){b=c;return}});return b},checkHidden:function(){this.controls.each(function(b,a){b.each(function(c){if(typeof c.checkHidden=="function"){c.checkHidden()}})})},checkValid:function(){var d=true;var e=null;var f=this.autoHighlight;var c=false;var b=0;var a=this.controls;while(b<this.controls.length&&!c){this.controls[b].each(function(h){var g=h.validate();if(!g){d=false}});if(!d){c=true}else{b++}}if(typeof this.msgText[b]!="undefined"){$(this.extraMsg[0]).update(this.msgText[b])}this.currentControls=this.controls[b];if(d){return d}this.controls[b].each(function(h){var g=h.validate();if(!g){if(!f){h.highlightOn()}}else{if(!f){h.highlightOff()}}});return d},checkCurrentControls:function(){var a=true;var b=this.autoHighlight;this.currentControls.each(function(d){var c=d.validate();if(!c){if(!b){d.highlightOn()}a=false}else{if(!b){d.highlightOff()}}});$(this.formId).fire("FormValidator:currentValidation",{valid:a});return a},validate:function(){$(this.formId).fire("FormValidator:beforeValidate");var a=this.checkValid();if(a){$(this.formId).fire("FormValidator:validate",{valid:true});$(this.formId).submit();return true}else{$(this.formId).fire("FormValidator:validate",{valid:false});if(this.extraMsg.length!=0&&!this.isAlert){$(this.extraMsg[0]).setStyle({opacity:0,visibility:"visible"});this.appearMsg();this.isAlert=true}}return false},appearMsg:function(){_parent=this;$(this.extraMsg[0]).setStyle({opacity:0,visibility:"visible"});new Effect.Appear(this.extraMsg[0],{from:0,to:1,afterFinish:function(a){var b=_parent.checkCurrentControls();if(!b){_parent.fadeMsg(_parent.extraMsg[0])}else{$(_parent.extraMsg[0]).setStyle({opacity:0,visibility:"hidden"});_parent.isAlert=false}}})},fadeMsg:function(){_parent=this;$(this.extraMsg[0]).setStyle({opacity:"0.9"});new Effect.Fade(this.extraMsg[0],{from:1,to:0,afterFinish:function(a){a.element.setStyle({opacity:0});if(!_parent.checkCurrentControls()){_parent.appearMsg(_parent.extraMsg[0])}else{$(_parent.extraMsg[0]).setStyle({opacity:0,visibility:"hidden"});_parent.isAlert=false}}})},addButtonListener:function(a){this.listener=a;$(this.listener).observe("click",this.validate.bindAsEventListener(this))},enableFocusListener:function(){var a=$(this.formId);var b=this;a.getInputs("text").each(function(c){$(c).observe("focus",function(d){b.focused=Event.element(d).id});$(c).observe("blur",function(d){b.focused=null})})}});var Pulsate=Class.create({initialize:function(a){this.effect=null;this.cont=null;this.times=null;this.stopWith=null;this.options={id:null,times:0};Object.extend(this.options,a||{})},start:function(a){var b={startWith:"appear",times:0,stopWith:"fade"};Object.extend(b,this.options);Object.extend(b,a);this.stopWith=b.stopWith;if(b.times>0){this.cont=0;this.times=b.times*2}if(b.startWith=="appear"){this.appear();return}if(b.startWith=="fade"){this.fade();return}},cancel:function(a){var b={stopWith:"fade"};Object.extend(b,a);if(!this.stopWith){this.stopWith=b.stopWith}this.effect.cancel();if(this.stopWith=="show"){this.effect=new Effect.Appear(this.options.id,{from:1,to:1,duration:0})}else{this.effect=new Effect.Fade(this.options.id,{from:0,to:0,duration:0})}this.stopWith=null;this.finish()},finish:function(){$(this.options.id).fire("Pulsate:finish")},appear:function(){this.effect=new Effect.Appear(this.options.id,{from:0,to:1,afterFinish:this.appearCallback.bind(this)})},fade:function(){this.effect=new Effect.Fade(this.options.id,{from:1,to:0,afterFinish:this.fadeCallback.bind(this)})},appearCallback:function(a){$(this.options.id).setStyle({opacity:"0.9"});this.fade();if(this.cont==null){return}if(this.cont>=this.times){this.cancel()}this.cont++},fadeCallback:function(a){this.appear();if(this.cont==null){return}if(this.cont>=this.times){this.cancel()}this.cont++}});