function checkThecheck(){var a=document.getElementById('at_least');a.value="";for(i=1;i<5;i++){var b=document.getElementById('interest_'+i);if(b.checked){a.value="ok"}}}var FormCheck=new Class({Implements:[Options,Events],options:{tipsClass:'fc-tbx',errorClass:'fc-error',fieldErrorClass:'fc-field-error',submitByAjax:false,ajaxResponseDiv:false,ajaxEvalScripts:false,onAjaxRequest:$empty,onAjaxSuccess:$empty,onAjaxFailure:$empty,display:{showErrors:1,errorsLocation:1,indicateErrors:1,keepFocusOnError:0,checkValueIfEmpty:1,addClassErrorToField:0,fixPngForIe:1,replaceTipsEffect:1,flashTips:0,closeTipsButton:1,tipsPosition:"right",tipsOffsetX:-45,tipsOffsetY:0,listErrorsAtTop:false,scrollToFirst:true,fadeDuration:300},alerts:{required:"This field is required.",atleast:"Please select at least one option.",alpha:"This field accepts alphabetic characters only.",alphanum:"This field accepts alphanumeric characters only.",nodigit:"No digits are accepted.",digit:"Please enter a valid integer.",digitltd:"The value must be between %0 and %1",number:"Please enter a valid number.",email:"Please enter a valid email.",phone:"Please enter a valid phone number.",url:"Please enter a valid url.",confirm:"This field is different from %0",differs:"This value must be different of %0",length_str:"The length is incorrect, it must be between %0 and %1",length_fix:"The length is incorrect, it must be exactly %0 characters",lengthmax:"The length is incorrect, it must be at max %0",lengthmin:"The length is incorrect, it must be at least %0",checkbox:"Please check the box",radios:"Please select a radio",select:"Please choose a value"},regexp:{required:/[^.*]/,atleast:/[^.*]/,alpha:/^[a-z ._-]+$/i,alphanum:/^[a-z0-9 ._-]+$/i,digit:/^[-+]?[0-9]+$/,nodigit:/^[^0-9]+$/,number:/^[-+]?\d*\.?\d+$/,email:/^[a-z0-9._%-]+@[a-z0-9.-]+\.[a-z]{2,4}$/i,phone:/^[\d\s ().-]+$/,url:/^(http|https|ftp)\:\/\/[a-z0-9\-\.]+\.[a-z]{2,3}(:[a-z0-9]*)?\/?([a-z0-9\-\._\?\,\'\/\\\+&amp;%\$#\=~])*$/i}},initialize:function(e,f){if(this.form=$(e)){this.form.isValid=true;this.regex=['length'];this.setOptions(f);if(typeof(formcheckLanguage)!='undefined')this.options.alerts=formcheckLanguage;this.validations=[];this.alreadyIndicated=false;this.firstError=false;var g=new Hash(this.options.regexp);g.each(function(a,b){this.regex.push(b)},this);this.form.getElements("*[class*=validate]").each(function(c){c.validation=[];var d=c.getProperty("class").split(' ');d.each(function(a){if(a.match(/^validate(\[.+\])$/)){var b=eval(a.match(/^validate(\[.+\])$/)[1]);for(var i=0;i<b.length;i++){c.validation.push(b[i])}this.register(c)}},this)},this);this.form.addEvents({"submit":this.onSubmit.bind(this)});if(this.options.display.fixPngForIe)this.fixIeStuffs();document.addEvent('mousewheel',function(){this.isScrolling=false}.bind(this))}},register:function(b){this.validations.push(b);b.errors=[];if(b.validation[0]=='submit'){b.addEvent('click',function(e){this.onSubmit(e)}.bind(this));return true}if(this.isChildType(b)==false)b.addEvent('blur',function(e){if((b.element||this.options.display.showErrors==1)&&(this.options.display.checkValueIfEmpty||b.value))this.manageError(b,'blur')}.bind(this));else if(this.isChildType(b)==true){var c=this.form.getElements('input[name="'+b.getProperty("name")+'"]');c.each(function(a){a.addEvent('blur',function(){if((b.element||this.options.display.showErrors==1)&&(this.options.display.checkValueIfEmpty||b.value))this.manageError(b,'click')}.bind(this))},this)}},validate:function(d){d.errors=[];d.isOk=true;d.validation.each(function(a){if(this.isChildType(d)){if(this.validateGroup(d)==false){d.isOk=false}}else{var b=[];if(a.match(/^.+\[/)){var c=a.split('[')[0];b=eval(a.match(/^.+(\[.+\])$/)[1].replace(/([A-Z\.]+)/i,"'$1'"))}else var c=a;if(this.regex.contains(c)&&d.get('tag')!="select"){if(this.validateRegex(d,c,b)==false){d.isOk=false}}if(c=='confirm'){if(this.validateConfirm(d,b)==false){d.isOk=false}}if(c=='differs'){if(this.validateDiffers(d,b)==false){d.isOk=false}}if(d.get('tag')=="select"||(d.type=="checkbox"&&c=='required')){if(this.simpleValidate(d)==false){d.isOk=false}}}},this);if(d.isOk)return true;else return false},simpleValidate:function(a){if(a.get('tag')=='select'&&(a.options[a.selectedIndex].text==a.options[0].text)){a.errors.push(this.options.alerts.select);return false}else if(a.type=="checkbox"&&a.checked==false){a.errors.push(this.options.alerts.checkbox);return false}return true},validateRegex:function(a,b,c){var d="";if(c[1]&&b=='length'){if(c[1]==-1){this.options.regexp.length=new RegExp("^[\\s\\S]{"+c[0]+",}$");d=this.options.alerts.lengthmin.replace("%0",c[0])}else if(c[0]==c[1]){this.options.regexp.length=new RegExp("^[\\s\\S]{"+c[0]+"}$");d=this.options.alerts.length_fix.replace("%0",c[0])}else{this.options.regexp.length=new RegExp("^[\\s\\S]{"+c[0]+","+c[1]+"}$");d=this.options.alerts.length_str.replace("%0",c[0]).replace("%1",c[1])}}else if(c[0]&&b=='length'){this.options.regexp.length=new RegExp("^.{0,"+c[0]+"}$");d=this.options.alerts.lengthmax.replace("%0",c[0])}else{d=this.options.alerts[b]}if(c[1]&&b=='digit'){var e=true;if(!this.options.regexp.digit.test(a.value)){a.errors.push(this.options.alerts[b]);e=false}if(c[1]==-1){if(a.value>=c[0])var f=true;else var f=false;d=this.options.alerts.digitmin.replace("%0",c[0])}else{if(a.value>=c[0]&&a.value<=c[1])var f=true;else var f=false;d=this.options.alerts.digitltd.replace("%0",c[0]).replace("%1",c[1])}if(e==false||f==false){a.errors.push(d);return false}}else if(this.options.regexp[b].test(a.value)==false){a.errors.push(d);return false}return true},validateConfirm:function(a,b){if(a.validation.contains('required')==false){a.validation.push('required')}var c=b[0];if(a.value!=this.form[c].value){msg=this.options.alerts.confirm.replace("%0",b[0]);a.errors.push(msg);return false}return true},validateDiffers:function(a,b){var c=b[0];if(a.value==this.form[c].value){msg=this.options.alerts.differs.replace("%0",b[0]);a.errors.push(msg);return false}return true},isChildType:function(a){var b=a.type.toLowerCase();if((b=="radio"))return true;return false},validateGroup:function(a){a.errors=[];var b=this.form[a.getProperty("name")];a.group=b;var c=false;for(var i=0;i<b.length;i++){if(b[i].checked){c=true}}if(c==false){a.errors.push(this.options.alerts.radios);return false}else{return true}},listErrorsAtTop:function(b){if(!this.form.element){this.form.element=new Element('div',{'id':'errorlist','class':this.options.errorClass}).injectTop(this.form)}if($type(b)=='collection'){new Element('p').set('html',"<span>"+b[0].name+" : </span>"+b[0].errors[0]).injectInside(this.form.element)}else{if((b.validation.contains('required')&&b.errors.length>0)||(b.errors.length>0&&b.value&&b.validation.contains('required')==false)){b.errors.each(function(a){new Element('p').set('html',"<span>"+b.name+" : </span>"+a).injectInside(this.form.element)},this)}}},manageError:function(a,b){var c=this.validate(a);if((!c&&a.validation.contains('required'))||(!a.validation.contains('required')&&a.value&&!c)){if(this.options.display.listErrorsAtTop==true&&b=='submit')this.listErrorsAtTop(a,b);if(this.options.display.indicateErrors==2||this.alreadyIndicated==false||a.name==this.alreadyIndicated.name){if(!this.firstError)this.firstError=a;this.alreadyIndicated=a;if(this.options.display.keepFocusOnError&&a.name==this.firstError.name)(function(){a.focus()}).delay(20);this.addError(a);return false}}else if((c||(!a.validation.contains('required')&&!a.value))&&a.element){this.removeError(a);return true}return true},addError:function(b){if(!b.element&&this.options.display.indicateErrors!=0){if(this.options.display.errorsLocation==1){var c=(this.options.display.tipsPosition=='left')?b.getCoordinates().left:b.getCoordinates().right;var d={'opacity':0,'position':'absolute','float':'left','left':c+this.options.display.tipsOffsetX};b.element=new Element('div',{'class':this.options.tipsClass,'styles':d}).injectInside(document.body);this.addPositionEvent(b)}else if(this.options.display.errorsLocation==2){b.element=new Element('div',{'class':this.options.errorClass,'styles':{'opacity':0}}).injectBefore(b)}else if(this.options.display.errorsLocation==3){b.element=new Element('div',{'class':this.options.errorClass,'styles':{'opacity':0}});if($type(b.group)=='object'||$type(b.group)=='collection')b.element.injectAfter(b.group[b.group.length-1]);else b.element.injectAfter(b)}}if(b.element){b.element.empty();if(this.options.display.errorsLocation==1){var e=[];b.errors.each(function(a){e.push(new Element('p').set('html',a))});var f=this.makeTips(e).injectInside(b.element);if(this.options.display.closeTipsButton){f.getElements('a.close').addEvent('mouseup',function(){this.removeError(b)}.bind(this))}b.element.setStyle('top',b.getCoordinates().top-f.getCoordinates().height+this.options.display.tipsOffsetY)}else{b.errors.each(function(a){new Element('p').set('html',a).injectInside(b.element)})}if(!Browser.Engine.trident5&&b.element.getStyle('opacity')==0)new Fx.Morph(b.element,{'duration':this.options.display.fadeDuration}).start({'opacity':[1]});else b.element.setStyle('opacity',1)}if(this.options.display.addClassErrorToField&&this.isChildType(b)==false){b.addClass(this.options.fieldErrorClass)}},addPositionEvent:function(a){if(this.options.display.replaceTipsEffect){a.event=function(){new Fx.Morph(a.element,{'duration':this.options.display.fadeDuration}).start({'left':[a.element.getStyle('left'),a.getCoordinates().right+this.options.display.tipsOffsetX],'top':[a.element.getStyle('top'),a.getCoordinates().top-a.element.getCoordinates().height+this.options.display.tipsOffsetY]})}.bind(this)}else{a.event=function(){a.element.setStyles({'left':a.getCoordinates().right+this.options.display.tipsOffsetX,'top':a.getCoordinates().top-a.element.getCoordinates().height+this.options.display.tipsOffsetY})}.bind(this)}window.addEvent('resize',a.event)},removeError:function(a){this.firstError=false;this.alreadyIndicated=false;a.errors=[];a.isOK=true;window.removeEvent('resize',a.event);if(this.options.display.errorsLocation==2)new Fx.Morph(a.element,{'duration':this.options.display.fadeDuration}).start({'height':[0]});if(!Browser.Engine.trident5){new Fx.Morph(a.element,{'duration':this.options.display.fadeDuration,'onComplete':function(){if(a.element){a.element.destroy();a.element=false}}.bind(this)}).start({'opacity':[1,0]})}else{a.element.destroy();a.element=false}if(this.options.display.addClassErrorToField&&!this.isChildType(a)){a.removeClass(this.options.fieldErrorClass)}},focusOnError:function(a){if(this.options.display.scrollToFirst&&!this.alreadyFocused&&!this.isScrolling){if(this.alreadyIndicated.element){switch(this.options.display.errorsLocation){case 1:var b=a.element.getCoordinates().top;break;case 2:var b=a.element.getCoordinates().top-30;break;case 3:var b=a.getCoordinates().top-30;break}this.isScrolling=true}else if(!this.options.display.indicateErrors){var b=a.getCoordinates().top-30}if(window.getScroll.y!=b){new Fx.Scroll(window,{onComplete:function(){this.isScrolling=false;a.focus()}.bind(this)}).start(0,b)}else{this.isScrolling=false;a.focus()}this.alreadyFocused=true}},fixIeStuffs:function(){if(Browser.Engine.trident4){var a=new RegExp('url\\(([\.a-zA-Z0-9_/:-]+\.png)\\)');var b=new RegExp('(.+)formcheck\.css');for(var i=0;i<document.styleSheets.length;i++){if(document.styleSheets[i].href.match(/formcheck\.css$/)){var c=document.styleSheets[i].href.replace(b,'$1');var d=document.styleSheets[i].rules.length;for(var j=0;j<d;j++){var e=document.styleSheets[i].rules[j].style;var f=c+e.backgroundImage.replace(a,'$1');if(f&&f.match(/\.png/i)){var g=(e.backgroundRepeat=='no-repeat')?'crop':'scale';e.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=\''+f+'\', sizingMethod=\''+g+'\')';e.backgroundImage="none"}}}}}},makeTips:function(b){var c=new Element('table');c.cellPadding='0';c.cellSpacing='0';c.border='0';var d=new Element('tbody').injectInside(c);var e=new Element('tr').injectInside(d);new Element('td',{'class':'tl'}).injectInside(e);new Element('td',{'class':'t'}).injectInside(e);new Element('td',{'class':'tr'}).injectInside(e);var f=new Element('tr').injectInside(d);new Element('td',{'class':'l'}).injectInside(f);var g=new Element('td',{'class':'c'}).injectInside(f);var h=new Element('div',{'class':'err'}).injectInside(g);b.each(function(a){a.injectInside(h)});if(this.options.display.closeTipsButton)new Element('a',{'class':'close'}).injectInside(g);new Element('td',{'class':'r'}).injectInside(f);var i=new Element('tr').injectInside(d);new Element('td',{'class':'bl'}).injectInside(i);new Element('td',{'class':'b'}).injectInside(i);new Element('td',{'class':'br'}).injectInside(i);return c},reinitialize:function(){this.validations.each(function(a){if(a.element){a.errors=[];a.isOK=true;if(this.options.display.flashTips==1){a.element.destroy();a.element=false}}},this);if(this.form.element)this.form.element.empty();this.alreadyFocused=false;this.firstError=false;this.alreadyIndicated=false;this.form.isValid=true},submitByAjax:function(){var b=this.form.getProperty('action');this.fireEvent('ajaxRequest');new Request({url:b,method:this.form.getProperty('method'),data:this.form.toQueryString(),evalScripts:this.options.ajaxEvalScripts,onFailure:function(a){this.fireEvent('ajaxFailure',a)}.bind(this),onSuccess:function(a){this.fireEvent('ajaxSuccess',a);if(this.options.ajaxResponseDiv)$(this.options.ajaxResponseDiv).set('html',a)}.bind(this)}).send()},onSubmit:function(b){new Event(b).stop();this.reinitialize();this.validations.each(function(a){if(!this.manageError(a,'submit'))this.form.isValid=false},this);(this.form.isValid)?(this.options.submitByAjax)?this.submitByAjax():this.form.submit():this.focusOnError(this.firstError)}});