function formValidatorLoadTheme(A,B,C){fileref=document.createElement("link");fileref.setAttribute("rel","stylesheet");fileref.setAttribute("type","text/css");fileref.setAttribute("href",C+B+".css");document.getElementsByTagName("head").item(0).appendChild(fileref);$(A).addClassName("ioForm"+B)}var Validator=Class.create();Validator.prototype={initialize:function(C,B,D,A){if(typeof D=="function"){this.options=$H(A);this._test=D}else{this.options=$H(D);this._test=function(){return true}}this.error=B||"Validation failed.";this.className=C},test:function(A,B){return(this._test(A,B)&&this.options.all(function(C){return Validator.methods[C.key]?Validator.methods[C.key](A,B,C.value):true}))}};Validator.methods={pattern:function(A,C,B){return Validation.get("IsEmpty").test(A)||B.test(A)},minLength:function(A,C,B){return A.length>=B},maxLength:function(A,C,B){return A.length<=B},min:function(A,C,B){return A>=parseFloat(B)},max:function(A,C,B){return A<=parseFloat(B)},notOneOf:function(A,C,B){return $A(B).all(function(D){return A!=D})},oneOf:function(A,C,B){return $A(B).any(function(D){return A==D})},is:function(A,C,B){return A==B},isNot:function(A,C,B){return A!=B},equalToField:function(A,C,B){return A==$F(B)},notEqualToField:function(A,C,B){return A!=$F(B)},include:function(A,C,B){return $A(B).all(function(D){return Validation.get(D).test(A,C)})}};var Validation=Class.create();Validation.prototype={initialize:function(D,B){this.options=Object.extend({onSubmit:true,pathTheme:APP_PATH+"css/validation",stopOnFirst:false,immediate:true,onkeydown:true,focusOnError:true,iconAlign:"left",showMsg:true,useTitles:true,theme:"Ringo",passField:null,onFormValidate:function(F,G){},enableTinyMCE:false,onElementValidate:function(F,G){}},B||{});if(this.options.enableTinyMCE){tinyMCE.triggerSave()}formValidatorLoadTheme(D,this.options.theme,this.options.pathTheme);this.form=$(D);this.form.descendants().each(function(F){switch(F.tagName){case"LABEL":F.addClassName("ioFormLabel");break}});Form.getElements(this.form).each(function(F){if(F.hasClassName("required")){a="ioIsRequired"}else{a="ioNotRequired"}if(F.present){b="ioNotEmpty"}else{b="ioIsEmpty"}spanBefore='<span id="'+F.name+'-required" style="-moz-user-select: none;" class="'+a+'"><span id="'+F.name+'-editing" class="ioNotEditing"><span id="'+F.name+'-empty" class="'+b+'"><span id="'+F.name+'-valid" class=""><span id="'+F.name+'-ajax" class=""><span class="ioStatusImg"/></span></span></span></span></span>';if(F.type!="submit"&&F.type!="hidden"&&F.type!="reset"&&F.type!="button"&&!F.hasClassName("noicon")){(this.options.iconAlign=="left")?new Insertion.Before(F,spanBefore):new Insertion.After(F,spanBefore)}else{new Insertion.Before(F,'<span id="'+F.name+'-valid" style="display:none"></span>')}}.bind(this));if(this.options.onSubmit){Event.observe(this.form,"submit",this.onSubmit.bind(this),false);this.form.submit=function(){inputSubmit=Builder.node("input",{type:"submit",style:"display:none;"});this.form.appendChild(inputSubmit);inputSubmit.click()}.bind(this)}if(this.options.immediate){var C=this.options.useTitles;var A=this.options.showMsg;var E=this.options.onElementValidate;Form.getElements(this.form).each(function(F){Event.observe(F,"blur",function(G){Validation.validate(Event.element(G),{useTitle:C,showMsg:A,onElementValidate:E})});Event.observe(F,"keydown",function(G){$(F.name+"-editing").className="ioIsEditing"})})}},onSubmit:function(A){if(!this.validate()){Event.stop(A)}},validate:function(){var A=false;var C=this.options.useTitles;var B=this.options.showMsg;var D=this.options.onElementValidate;if(this.options.stopOnFirst){A=Form.getElements(this.form).all(function(E){return Validation.validate(E,{useTitle:C,showMsg:B,onElementValidate:D})})}else{A=Form.getElements(this.form).collect(function(E){return Validation.validate(E,{useTitle:C,showMsg:B,onElementValidate:D})}).all()}if(!A&&this.options.focusOnError){Form.getElements(this.form).findAll(function(E){return $(E).hasClassName("validation-failed")}).first().focus()}this.options.onFormValidate(A,this.form);return A},reset:function(){Form.getElements(this.form).each(Validation.reset)}};Object.extend(Validation,{validate:function(C,A){A=Object.extend({useTitle:false,showMsgs:false,onElementValidate:function(D,E){}},A||{});C=$(C);if($(C.name+"-editing")){$(C.name+"-editing").className="ioNotEditing"}var B=C.classNames();return B.all(function(D){var E=Validation.test(D,C,A.useTitle,A.showMsgs);A.onElementValidate(E,C);return E})},test:function(B,G,I,H){var J=Validation.get(B);var A="__advice"+B.camelize();try{if(Validation.isVisible(G)&&!J.test($F(G),G)){if(!G[A]){var D=Validation.getAdvice(B,G);if(D===null){var E=I?((G&&G.title)?G.title:J.error):J.error;D='<div class="validation-advice" id="advice-'+B+"-"+Validation.getElmID(G)+'" style="display:none">'+E+"</div>";switch(G.type.toLowerCase()){case"checkbox":case"radio":var C=G.parentNode;if(C){new Insertion.Bottom(C,D)}else{new Insertion.After(G,D)}break;default:$(G.name+"-valid").className="ioNotValid";new Insertion.After(G,D)}D=Validation.getAdvice(B,G)}if(typeof Effect=="undefined"){if(H){D.style.display="block"}}else{if(H){new Effect.Appear(D,{duration:1,to:0.7})}}}G[A]=true;$(G.name+"-valid").className="ioNotValid";G.addClassName("validation-failed");return false}else{D=Validation.getAdvice(B,G);if(D!==null){if(typeof Effect=="undefined"){D.hide()}else{new Effect.Fade(D)}$(G.name+"-valid").className="ioIsValid"}G[A]="";G.addClassName("validation-passed");$(G.name+"-valid").className="ioIsValid";return true}}catch(F){throw (F)}},isVisible:function(A){while(A.tagName!="BODY"){if(!$(A).visible()){return false}A=A.parentNode}return true},getAdvice:function(A,B){return $("advice-"+A+"-"+Validation.getElmID(B))||$("advice-"+Validation.getElmID(B))},getElmID:function(A){return A.id?A.id:A.name},reset:function(B){B=$(B);var A=B.classNames();A.each(function(D){var E="__advice"+D.camelize();if(B[E]){var C=Validation.getAdvice(D,B);C.hide();B[E]=""}B.removeClassName("validation-failed");B.removeClassName("validation-passed")})},add:function(D,C,E,B){var A={};A[D]=new Validator(D,C,E,B);Object.extend(Validation.methods,A)},addAllThese:function(A){var B={};$A(A).each(function(C){B[C[0]]=new Validator(C[0],C[1],C[2],(C.length>3?C[3]:{}))});Object.extend(Validation.methods,B)},get:function(A){return Validation.methods[A]?Validation.methods[A]:Validation.methods._LikeNoIDIEverSaw_},methods:{_LikeNoIDIEverSaw_:new Validator("_LikeNoIDIEverSaw_","",{})}});Validation.add("IsEmpty","",function(A){return((A==null)||(A.length==0))});Validation.addAllThese([["required","Este campo es requerido.",function(A){return !Validation.get("IsEmpty").test(A)}],["validate-number","Ingrese un numero valido.",function(A){return Validation.get("IsEmpty").test(A)||(!isNaN(A)&&!/^\s+$/.test(A))}],["validate-digits","Ingrese un numero valido sin lineas o comas.",function(A){return Validation.get("IsEmpty").test(A)||!/[^\d]/.test(A)}],["validate-alpha","Use solo letras (a-z) en este campo.",function(A){return Validation.get("IsEmpty").test(A)||/^[a-z A-Z]+$/.test(A)}],["validate-alphanum","Use solo letras (a-z) o numeros (0-9) en este campo.",function(A){return Validation.get("IsEmpty").test(A)||!/\W/.test(A)}],["validate-date","Ingrese una fecha valida.",function(A){var B=new Date(A);return Validation.get("IsEmpty").test(A)||!isNaN(B)}],["validate-email","Ingrese una direccion de email valida.",function(A){return Validation.get("IsEmpty").test(A)||/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(A)}],["validate-url","Ingrese una direccion URL valida (http://www.ejem.com).",function(A){return Validation.get("IsEmpty").test(A)||/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(A)}],["validate-url-nohttp","Ingrese una direccion URL valida (www.ejem.com).",function(A){return Validation.get("IsEmpty").test(A)||/^(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(A)}],["validate-date-au","Use este formato de fecha: dd/mm/yyyy. Por ejemplo 17/03/2006.",function(A){if(Validation.get("IsEmpty").test(A)){return true}var B=/^(\d{2})\/(\d{2})\/(\d{4})$/;if(!B.test(A)){return false}var C=new Date(A.replace(B,"$2/$1/$3"));return(parseInt(RegExp.$2,10)==(1+C.getMonth()))&&(parseInt(RegExp.$1,10)==C.getDate())&&(parseInt(RegExp.$3,10)==C.getFullYear())}],["validate-date-ymd","Use este formato de fecha: yyyy-mm-dd",function(A){if(Validation.get("IsEmpty").test(A)){return true}var B=/^(\d{4})\-(\d{2})\-(\d{2})$/;if(!B.test(A)){return false}var C=new Date(A.replace(B,"$1/$2/$3"));return(parseInt(RegExp.$2,10)==(1+C.getMonth()))&&(parseInt(RegExp.$3,10)==C.getDate())&&(parseInt(RegExp.$1,10)==C.getFullYear())}],["validate-money-pesos","Ingrese un valor valido, por ejemplo $100.00 .",function(A){return Validation.get("IsEmpty").test(A)||/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(A)}],["validate-file-image","El archivo debe ser una imagen.",function(A){return Validation.get("IsEmpty").test(A)||/.*\.(jpg|gif|png|jpeg|bmp)/i.test(A)}],["validate-file-movie","El archivo debe ser una pelicula (avi,mpg,mpeg).",function(A){return Validation.get("IsEmpty").test(A)||/.*\.(flv|avi|mpg|mpeg)/i.test(A)}],["validate-file-doc","El archivo debe ser un documento.",function(A){return Validation.get("IsEmpty").test(A)||/.*\.(pdf|doc|txt|docx)/i.test(A)}],["validate-file-zip","El archivo debe estar comprimido.",function(A){return Validation.get("IsEmpty").test(A)||/.*\.(zip|rar|ace)/i.test(A)}],["validate-selection","Seleccione un elemento",function(A,B){return B.options?B.selectedIndex>0:!Validation.get("IsEmpty").test(A)}],["validate-password-compare","la contraseña no coincide",function(A,B){return B.options?B.selectedIndex>0:!Validation.get("IsEmpty").test(A)}],["validate-one-required","Seleccione uno de los elementos de la lista.",function(A,D){var C=D.parentNode;var B=C.getElementsByTagName("INPUT");return $A(B).any(function(E){return $F(E)})}]]);Validation.add("validate-min6","Debe ingresar mas de 6 caracteres",{minLength:6});Validation.add("validate-password","",{minLength:4,notOneOf:["password","PASSWORD","1234567","0123456","admin","webmexico","administrador","administrator","moderador","supervisor"]});Validation.add("validate-password-compare","",{equalToField:"password"});Validation.add("validate-nickname","",{notOneOf:["password","PASSWORD","1234567","0123456","admin","webmexico","moderator","administrador","administrator","moderador","supervisor"]});