var FancyForm={start:function(B,A){if(FancyForm.initing!=undefined){return}if($type(B)!="array"){B=$$("input")}if(!A){A=[]}FancyForm.onclasses=($type(A.onClasses)=="object")?A.onClasses:{checkbox:"checked",radio:"selected"};FancyForm.offclasses=($type(A.offClasses)=="object")?A.offClasses:{checkbox:"unchecked",radio:"unselected"};if($type(A.extraClasses)=="object"){FancyForm.extra=A.extraClasses}else{if(A.extraClasses){FancyForm.extra={checkbox:"f_checkbox",radio:"f_radio",on:"f_on",off:"f_off",all:"fancy"}}else{FancyForm.extra={}}}FancyForm.onSelect=$pick(A.onSelect,function(C){});FancyForm.onDeselect=$pick(A.onDeselect,function(C){});FancyForm.chks=[];FancyForm.add(B);$each($$("form"),function(C){C.addEvent("reset",function(D){window.setTimeout(function(){FancyForm.chks.each(function(E){FancyForm.update(E);E.inputElement.blur()})},200)})})},add:function(A){if($type(A)=="element"){A=[A]}FancyForm.initing=1;var C=[];var B=A.filter(function(D){if($type(D)!="element"||D.inputElement||(D.get("tag")=="input"&&D.getParent().inputElement)){return false}if(D.get("tag")=="input"&&(FancyForm.onclasses[D.getProperty("type")])){var E=D.getParent();if(E.getElement("input")==D){E.type=D.getProperty("type");E.inputElement=D;this.push(E)}else{D.addEvent("click",function(F){if(F.event.stopPropagation){F.event.stopPropagation()}})}}else{if((D.inputElement=D.getElement("input"))&&(FancyForm.onclasses[(D.type=D.inputElement.getProperty("type"))])){return true}}return false}.bind(C));B=B.combine(C);B.each(function(D){var E=D.inputElement;E.setStyle("position","absolute");E.setStyle("left","-9999px");D.addEvent("selectStart",function(F){F.stop()});D.name=E.getProperty("name");FancyForm.update(D)});B.each(function(D){var E=D.inputElement;D.addEvent("click",function(F){F.stop();F.type="prop";E.fireEvent("click",F,1)});D.addEvent("mousedown",function(F){if($type(E.onmousedown)=="function"){E.onmousedown()}F.preventDefault()});D.addEvent("mouseup",function(F){if($type(E.onmouseup)=="function"){E.onmouseup()}});E.addEvent("focus",function(F){if(FancyForm.focus){D.setStyle("outline","1px dotted")}});E.addEvent("blur",function(F){D.setStyle("outline",0)});E.addEvent("click",function(F){if(F.event.stopPropagation){F.event.stopPropagation()}if(E.getProperty("disabled")){return}if(!D.hasClass(FancyForm.onclasses[D.type])){E.setProperty("checked","checked")}else{if(D.type!="radio"){E.setProperty("checked",false)}}if(F.type=="prop"){FancyForm.focus=0}FancyForm.update(D);FancyForm.focus=1;if(F.type=="prop"&&!FancyForm.initing&&$type(E.onclick)=="function"){E.onclick()}});E.addEvent("mouseup",function(F){if(F.event.stopPropagation){F.event.stopPropagation()}});E.addEvent("mousedown",function(F){if(F.event.stopPropagation){F.event.stopPropagation()}});if(extraclass=FancyForm.extra[D.type]){D.addClass(extraclass)}if(extraclass=FancyForm.extra.all){D.addClass(extraclass)}});FancyForm.chks.combine(B);FancyForm.initing=0},update:function(A){if(A.inputElement.getProperty("checked")){A.removeClass(FancyForm.offclasses[A.type]);A.addClass(FancyForm.onclasses[A.type]);if(A.type=="radio"){FancyForm.chks.each(function(B){if(B.name==A.name&&B!=A){B.inputElement.setProperty("checked",false);FancyForm.update(B)}})}if(extraclass=FancyForm.extra.on){A.addClass(extraclass)}if(extraclass=FancyForm.extra.off){A.removeClass(extraclass)}if(!FancyForm.initing){FancyForm.onSelect(A)}}else{A.removeClass(FancyForm.onclasses[A.type]);A.addClass(FancyForm.offclasses[A.type]);if(extraclass=FancyForm.extra.off){A.addClass(extraclass)}if(extraclass=FancyForm.extra.on){A.removeClass(extraclass)}if(!FancyForm.initing){FancyForm.onDeselect(A)}}if(!FancyForm.initing){A.inputElement.focus()}},all:function(){FancyForm.chks.each(function(A){A.inputElement.setProperty("checked","checked");FancyForm.update(A)})},none:function(){FancyForm.chks.each(function(A){A.inputElement.setProperty("checked",false);FancyForm.update(A)})}};window.addEvent("domready",function(){FancyForm.start()});