function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}addLoadEvent(attachFormHandlers);addLoadEvent(function(){document.forms[0].elements[0].focus();});function attachFormHandlers(){if(document.getElementsByTagName){var objForm=document.getElementsByTagName('form');for(var iCounter=0;iCounter<objForm.length;iCounter++){objForm[iCounter].onsubmit=function(){return checkForm(this);}}}}function checkForm(objForm){var arClass,bValid,txtError,nombreCheck,iCheck,cuentaChecks;var objField=objForm.getElementsByTagName('*');for(var iFieldCounter=0;iFieldCounter<objField.length;iFieldCounter++){arClass=objField[iFieldCounter].className.split(' ');for(var iClassCounter=0;iClassCounter<arClass.length;iClassCounter++){switch(arClass[iClassCounter]){case'required':bValid=isRequired(objField[iFieldCounter].value);txtError=objField[iFieldCounter].name+" no puede dejarse en blanco.";break;case'string':bValid=isString(objField[iFieldCounter].value.replace(/^\s*|\s*$/g,''));txtError=objField[iFieldCounter].name+" solo puede contener caracteres.";break;case'number':bValid=isNumber(objField[iFieldCounter].value);txtError=objField[iFieldCounter].name+" debe ser un numero.";break;case'email':bValid=isEmail(objField[iFieldCounter].value);txtError="Introduzca una direccion de correo electronico valida";break;case'date':txtError=isDate(objField[iFieldCounter].value);bValid=(txtError=="");break;case'isChecked':nombreCheck=objField[iFieldCounter].name;bValid=false;iCheck=0;while(iCheck<objField.length){if(objField[iCheck].name==nombreCheck){if(objField[iCheck].checked)bValid=true;}iCheck++;}txtError="Debe seleccionar un valor para "+nombreCheck;break;case'numberOfChecks':iClassCounter++;rango=arClass[iClassCounter].split('_');nombreCheck=objField[iFieldCounter].name;cuentaChecks=0;iCheck=0;while(iCheck<objField.length){if(objField[iCheck].name==nombreCheck){if(objField[iCheck].checked){cuentaChecks++;}}iCheck++;}bValid=isBetween(cuentaChecks,parseInt(rango[0]),parseInt(rango[1]));if(rango[0]==rango[1]){txtError="Debe seleccionar "+rango[0]+" opciones";}else{txtError="Debe seleccionar entre "+rango[0]+" y "+rango[1]+" opciones";}break;case'between':iClassCounter++;rango=arClass[iClassCounter].split('_');bValid=isBetween(parseInt(objField[iFieldCounter].value),parseInt(rango[0]),parseInt(rango[1]));txtError="El valor debe estar comprendido entre "+rango[0]+" y "+rango[1];break;case'euro':bValid=isEuro(objField[iFieldCounter].value);txtError="Introduzca el valor en formato euro (números y coma).";break;case'checkPass':iClassCounter++;alert(arClass[iClassCounter]);iCheck=0;bValid=false;while(iCheck<objField.length){if(objField[iCheck].name==arClass[iClassCounter]){bValid=true;iCheck=objField.length;}iCheck++;}txtError="Las contraseñas no coinciden.";break;case'checkPass':iClassCounter++;iCheck=0;bValid=false;while(iCheck<objField.length){if(objField[iCheck].name==arClass[iClassCounter]){if(objField[iCheck].value==objField[iFieldCounter].value){bValid=true;iCheck=objField.length;}}iCheck++;}txtError="Las contraseñas no coinciden.";break;default:bValid=true;}if(bValid==false){alert(txtError);objField[iFieldCounter].focus();return false;}}}return true;}function isRequired(strValue){return(strValue!='');}function isString(strValue){return(typeof strValue=='string'&&strValue!=''&&isNaN(strValue));}function isNumber(strValue){return(!isNaN(strValue)||strValue=='');}function isEmail(strValue){if(strValue!=""){var objRE=/^[\w-\.\']{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,}$/;return(objRE.test(strValue));}else{return true;}}function isEuro(strValue){var objRE=/^\s*-?((\d{1,3}(\.(\d){3})*)|\d*)(,\d{1,2})?\s?(\u20AC)?\s*$/;return(objRE.test(strValue));}function isBetween(intValue,lower,upper){resultado=true;if(intValue<lower)resultado=false;if(intValue>upper)resultado=false;return resultado;}function isDate(dateStr){var datePat=/^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;var matchArray=dateStr.match(datePat);var respuesta="";if(matchArray==null){respuesta+="Por favor, introduzca la fecha con formato dd/mm/yyyy o dd-mm-yyyy. \n";return respuesta;}month=matchArray[3];day=matchArray[1];year=matchArray[5];if(month<1||month>12){respuesta+="El mes debe tener un valor entre 1 y 12. \n";return respuesta;}if(day<1||day>31){respuesta+="Día debe tener un valor entre 1 y 31. \n";return respuesta;}if((month==4||month==6||month==9||month==11)&&day==31){respuesta+="El mes "+month+" no tiene 31 días! \n";return respuesta;}if(month==2){var isleap=(year%4==0&&(year%100!=0||year%400==0));if(day>29||(day==29&&!isleap)){respuesta+="Febrero "+year+" no tiene "+day+" días! \n";return respuesta;}}return respuesta;}
