var FancyForm={start:function(a,b){FancyForm.runningInit=1;$type(a)!="array"&&(a=$$("input"));b||(b=[]);FancyForm.onclasses=$type(b.onClasses)=="object"?b.onClasses:{checkbox:"checked",radio:"selected"};FancyForm.offclasses=$type(b.offClasses)=="object"?b.offClasses:{checkbox:"unchecked",radio:"unselected"};FancyForm.extra=$type(b.extraClasses)=="object"?b.extraClasses:b.extraClasses?{checkbox:"f_checkbox",radio:"f_radio",on:"f_on",off:"f_off",all:"fancy"}:{};FancyForm.onSelect=$pick(b.onSelect,function(){});
FancyForm.onDeselect=$pick(b.onDeselect,function(){});var c=[];FancyForm.chks=filter(a,function(a){a=$(a);if($type(a)!="element")return!1;if(a.tagName.toLowerCase()=="input"&&FancyForm.onclasses[a.getAttribute("type")]){var b=a.parentNode;Element.extend(b);b.getElementsBySelector("input")[0]==a?(b.type=a.getAttribute("type"),b.inputElement=a,this.push(b)):a.observe("click",function(a){a.stopPropagation()})}else if(a.getElementsBySelector("input")&&(a.inputElement=a.getElementsBySelector("input")[0])&&
FancyForm.onclasses[a.type=a.inputElement.getAttribute("type")])return!0;return!1}.bind(c));FancyForm.chks=mergeArray(FancyForm.chks,c);c=null;FancyForm.chks.each(function(a){a.inputElement.setStyle({position:"absolute"});a.inputElement.setStyle({left:"-9999px"});a.observe("selectStart",function(){});a.name=a.inputElement.getAttribute("name");a.inputElement.checked?FancyForm.select(a):FancyForm.deselect(a);a.observe("click",function(b){if(!a.inputElement.getAttribute("disabled"))$type(b.preventDefault)==
"function"?b.preventDefault(!0):$type(b.returnValue)=="function"&&b.returnValue(!0),a.hasClassName(FancyForm.onclasses[a.type])?a.type!="radio"&&FancyForm.deselect(a):FancyForm.select(a),FancyForm.focusing=1,a.inputElement.focus(),FancyForm.focusing=0});a.observe("mousedown",function(a){$type(a.preventDefault)=="function"?a.preventDefault(!0):$type(a.returnValue)=="function"&&a.returnValue(!0)});a.inputElement.observe("focus",function(){FancyForm.focusing||a.setStyle({outline:"1px dotted"})});a.inputElement.observe("blur",
function(){a.setStyle({outline:"0"})});(extraclass=FancyForm.extra[a.type])&&a.addClassName(extraclass);(extraclass=FancyForm.extra.all)&&a.addClassName(extraclass)});FancyForm.runningInit=0},select:function(a){a=$(a);a.inputElement.checked="checked";a.removeClassName(FancyForm.offclasses[a.type]);a.addClassName(FancyForm.onclasses[a.type]);a.type=="radio"&&FancyForm.chks.each(function(b){b.name!=a.name||b==a||FancyForm.deselect(b)});(extraclass=FancyForm.extra.on)&&a.addClassName(extraclass);(extraclass=
FancyForm.extra.off)&&a.removeClassName(extraclass);if(!FancyForm.runningInit)FancyForm.onSelect(a)},deselect:function(a){a.inputElement.checked=!1;a.removeClassName(FancyForm.onclasses[a.type]);a.addClassName(FancyForm.offclasses[a.type]);(extraclass=FancyForm.extra.off)&&a.addClassName(extraclass);(extraclass=FancyForm.extra.on)&&a.removeClassName(extraclass);if(!FancyForm.runningInit)FancyForm.onDeselect(a)},all:function(){FancyForm.chks.each(function(a){FancyForm.select(a)})},none:function(){FancyForm.chks.each(function(a){FancyForm.deselect(a)})}};
function $merge(){for(var a={},b=0;b<arguments.length;b++)for(var c in arguments[b]){var e=arguments[b][c],d=a[c];a[c]=d&&$type(e)=="object"&&$type(d)=="object"?$merge(d,e):e}return a}function $defined(a){return a!=void 0}function $pick(a,b){return $defined(a)?a:b}
function $type(a){if(!$defined(a))return!1;if(a.htmlElement)return"element";var b=typeof a;if(b=="object"&&a.nodeName)switch(a.nodeType){case 1:return"element";case 3:return/\S/.test(a.nodeValue)?"textnode":"whitespace"}if(b=="object"||b=="function"){switch(a.constructor){case Array:return"array";case RegExp:return"regexp";case Class:return"class"}if(typeof a.length=="number"){if(a.item)return"collection";if(a.callee)return"arguments"}}return b}
function filter(a,b,c){for(var e=[],d=0,f=a.length;d<f;d++)b.call(c,a[d],d,a)&&e.push(a[d]);return e}function mergeArray(a,b){for(var c=0,e=b.length;c<e;c++)a.push(b[c]);return a};

