// JavaScript Document
window.onload = initForms

// agregando la funcion de validacion a todos los formularios

function initForms(){

         for (var i=0;i<document.forms.length;i++){
			  document.forms[i].onsubmit = function() {return validForm();}			  
		 }
}

// procesando String

function ltrim(s) {
   return s.replace(/^\s+/, "");
}

function rtrim(s) {
   return s.replace(/\s+$/, "");
}

function trim(s) {
   return rtrim(ltrim(s));
}

// funciones de validacion

function validForm(){

     var allGood = true;
	 
	 var allTags = document.getElementsByTagName("*");

     for (var i=0;i<allTags.length;i++){
		  
		  if (i==63){
		      i==63;
		  }
		   
		 if (!validTag(allTags[i],allGood)){
			 allGood = false;
		 }
	 }
	 
	 if (!allGood){
		 alert ("Los campos marcados con * son obligatorios"); 
	 }
	 
	 
	 return allGood;

}

function validTag(thisTag,allGood){

         var outClass = "";
		 
		 var allClasses = thisTag.className.split(" ");
		 
		 for (var j=0;j<allClasses.length;j++){
			 	 
			  outClass += validBaseOnClass(allClasses[j],thisTag,allGood);		  
		 }
	   
	     thisTag.className = outClass;
		 
		 if (outClass.indexOf("invalid") > -1){
			 thisTag.focus();
			 
			 if ((thisTag.nodeName == "INPUT")||(thisTag.nodeName == "TEXTAREA")){
				 thisTag.select(); 
			 }
			 return false;
		 }
		 return true;
}

function radioPicked(radioName){
         var radioSet = "";
		 
		 for (var i=0; i<document.forms.length; i++){
			  if (!radioSet){
				  radioSet = document.forms[i][radioName];  
			  }
		 }
	          
	     if (!radioSet) return false;
			  
		 for (i=0;i<radioSet.length; i++){
		     if (radioSet[i].checked){
				 return true;
			 }
		 }
		 return false;
}

function validBaseOnClass (thisClass,thisTag,allGood){
             	
	     var classBack = "";
		 
		 switch(thisClass){
			
			case "":
			      break;
			
			case "invalid":
			      break;
			      
			case "reqCod":
			       
			      thisTag.value = trim(thisTag.value); 
				  
			      if ((allGood)&&(thisTag.value == "")) 
				      classBack = "invalid ";
				      classBack += thisClass;
					  break;
		    
			case "radio":
			
			      if (allGood && !radioPicked(thisTag.name))
				      classBack = "invalid ";
				      classBack += thisClass;
					  break;
					  
			default:
			        classBack += thisClass;
			
		 }
		 
		 return classBack;

}

