/* Copyright (c) 2010 ReactivOn SAS. All rights reserved - Tous droits réservés.
 *
 * Aucune partie de ce fichier ne peut être reproduit sous quelque forme et par quelque moyen, ou utilisé pour réaliser quelque travail dérivé sans accord explicite de REACTIVON SAS.
 * No part of this file may be reproduced in any form or by any means or used to make any derivative work without explicit agreement of REACTIVON SAS.
 */

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(g){if(g.event.stopPropagation){g.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(g){g.stop()});d.name=e.getProperty("name");FancyForm.update(d)});b.each(function(d){var e=d.inputElement;d.addEvent("click",function(g){g.stop();g.type="prop";e.fireEvent("click",g,1)});d.addEvent("mousedown",function(g){if($type(e.onmousedown)=="function"){e.onmousedown()}g.preventDefault()});d.addEvent("mouseup",function(g){if($type(e.onmouseup)=="function"){e.onmouseup()}});e.addEvent("focus",function(g){if(FancyForm.focus){d.setStyle("outline","1px dotted")
}});e.addEvent("blur",function(g){d.setStyle("outline",0)});e.addEvent("click",function(g){if(g.event.stopPropagation){g.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(g.type=="prop"){FancyForm.focus=0}FancyForm.update(d);FancyForm.focus=1;if(g.type=="prop"&&!FancyForm.initing&&$type(e.onclick)=="function"){e.onclick()}});e.addEvent("mouseup",function(g){if(g.event.stopPropagation){g.event.stopPropagation()}});e.addEvent("mousedown",function(g){if(g.event.stopPropagation){g.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()});
