
function validaTextRequeridos(form,array){
	/* Función para validación de campos requeridos de tipo "text".
		Ejempleo de uso:
		
		Código en cabacera del programa 
		------------------------------------
		function validaEnvio(){
			//Se instancia un objeto de tipo arreglo con el número de campos requeridos del formulario
			requiredFields=new Array; 
			//Se van agreagndo los nómbres de los campos que son requridos
			requiredFields[0]="txt_NombreCliente"; 
			requiredFields[1]="txt_ApePaterno";
			// Se manda llamar la función y se le envía el arreglo como parametro
			var resultado=validaTextRequeridos(requiredFields); 
			//La funcion devolverá true si todos los campos requeridos fueron llenados
			// y devolverá false si falta algún campo por llenar además de mostra
			// una ventana con el nombre de los campos faltantes acompañados 
			// de una descripción de dichos campos por medio de la propiedad title
		}
		-------------------------------------
		Código html del formnulario
		Se debe agregar a cada campo de  tipo "text" ya que esta función sólo soporta este tipo,
		deberá agregarse la propiedad "title" con una descripción del campo solicitado, con una descripción breve
		del campo al que se refiere.
		Ejemplo:
		------------------------
		<form ....>
			<input name="txt_NombreCliente" type="text" title="Primer Nombre del Solicitante."/>
		</form> 
	*/
	
   // var x=parseInt(array.length);
	//alert("Tamaño del arreglo :" + x);
	bandera=0;
	separador="\n";
	campos="Los siguientes campos son requeridos:\n";	
	//alert("Elementos del formulario " + form.elements.length);
	//var fx = form.elements.length;
	for( c = 0 ; c < form.elements.length ; c++){
		for( cont = 0 ; cont < parseInt(array.length) ; cont++){
//			alert("Campo requerido: " + array[cont]);
//			alert(form.elements[c].name);
			if(form.elements[c].name == array[cont]){ //Verifica si el nombre del campo es igual a uno de los requeridos			
//				alert("Antes: '"+form.elements[c].value+"'");
				trim(form.elements[c]);
				//alert("DespUes: '"+form.elements[c].value+"'")
				if(form.elements[c].value == ""){// Verifica si contiene algún texto
				alert(form.elements[c].type);
					campos=campos +  form.elements[c].title + separador;
					bandera=bandera+1;
				}			
			}
		}
	}
	
	if(bandera>0){
		 alert(campos);
		 return false;
	}else{
		return true;
	}		
}// Fin de función validar

function validaSelectRequeridos(form,array){
	/* Función para validación de campos requeridos de tipo "select".
		Ejempleo de uso:
		Código en cabacera del programa 
		------------------------------------
		function validaEnvio(){
			//Se instancia un objeto de tipo arreglo con el número de campos requeridos del formulario
			requiredLists=new Array; 
			//Se van agreagndo los nómbres de los campos que son requridos
			requiredLists[0]="cboEstados"; 
			requiredLists[1]="CboMunicipios";
			// Se manda llamar la función y se le envía el arreglo como parametro
			var resultado=validaSelectRequeridos(requiredLists); 
			//La funcion devolverá true si todos los campos requeridos fueron diferentes a 0
			// por lo que no debe olvidar agregar al inicio del campo "select" un "<option value=0></option>"
			// y devolverá false si falta algún campo por seleccionar, además de mostra
			// una ventana con el nombre de los campos faltantes acompañados 
			// de una descripción de dichos campos por medio de la propiedad title
		}
		-------------------------------------
		Código html del formnulario
		Se debe agregar a cada campo de  tipo "select" ya que esta función sólo soporta este tipo,
		deberá agregarse la propiedad "title" con una descripción del campo solicitado, con una descripción breve
		del campo al que se refiere.
		Ejemplo:
		------------------------

		------------------------
		<form ....>
			<select name="cboEstados" title="Estados de la republica." >
		      <option value="0"></option>
		      .....
			  .....
		    </select>
		</form> 
	*/
    var x=parseInt(array.length);
	//alert("Tamaño del arreglo :" + x);
	bandera=0;
	separador="\n";
	campos="Debe seleccionar una opción de:\n";	
	//alert("Elementos del formulario " + form.elements.length);
	var fx = form.elements.length;
	for(c=0;c<fx;c++){
		for(i=0;i<x;i++){
			//alert("Campo requerido: " + array[i]);
			if(form.elements[c].name==array[i]){ //Verifica si el nombre del campo es igual a uno de los requeridos
				if(form.elements[c].selectedIndex<=0){// Verifica si contiene algún texto
					alert(form.elements[c].type);				
					campos=campos +  form.elements[c].title + separador;
					bandera=bandera+1;
				}			
			}
		}
	}

	if(bandera>0){
		 alert(campos);
		 return false;
	}else{
		return true;
	}		

}

//FUNCIÓN QUE VALIDA CAMPOS TEXT,TEXAREA,SELECT REQUERIDOS
function validaCualquierCampo(form,array){
	/* Función para validación de campos requeridos de tipo "text".
		Ejempleo de uso:
		
		Código en cabacera del programa 
		------------------------------------
		function validaEnvio(){
			//Se instancia un objeto de tipo arreglo con el número de campos requeridos del formulario
			requiredFields=new Array; 
			//Se van agreagndo los nómbres de los campos que son requridos
			requiredFields[0]="txt_NombreCliente"; 
			requiredFields[1]="txt_ApePaterno";
			// Se manda llamar la función y se le envía el arreglo como parametro
			var resultado=validaTextRequeridos(requiredFields); 
			//La funcion devolverá true si todos los campos requeridos fueron llenados
			// y devolverá false si falta algún campo por llenar además de mostra
			// una ventana con el nombre de los campos faltantes acompañados 
			// de una descripción de dichos campos por medio de la propiedad title
		}
		-------------------------------------
		Código html del formnulario
		Se debe agregar a cada campo de  tipo "text" ya que esta función sólo soporta este tipo,
		deberá agregarse la propiedad "title" con una descripción del campo solicitado, con una descripción breve
		del campo al que se refiere.
		Ejemplo:
		------------------------
		<form ....>
			<input name="txt_NombreCliente" type="text" title="Primer Nombre del Solicitante."/>
		</form> 
	*/
	
   // var x=parseInt(array.length);
	//alert("Tamaño del arreglo :" + x);
	bandera=0;
	separador="\n";
	campos="Los siguientes campos son requeridos:\n";	
	//alert("Elementos del formulario " + form.elements.length);
	//var fx = form.elements.length;	
	var nombre;
	marcado=false;
	for( c = 0 ; c < form.elements.length ; c++){
		for( cont = 0 ; cont < parseInt(array.length) ; cont++){
//			alert("Campo requerido: " + array[cont]);
			//alert(form.elements[c].name + ':' + form.elements[c].type);

			if(form.elements[c].name == array[cont]){ //Verifica si el nombre del campo es igual a uno de los requeridos			
//				alert("Antes: '"+form.elements[c].value+"'");
				trim(form.elements[c]);
				//alert("DespUes: '"+form.elements[c].value+"'")
				
				
				switch(form.elements[c].type){					
					case 'select-one':					
						if(form.elements[c].selectedIndex<=0){// Verifica si el valor seleccionado es menor o igual a cero							
						campos=campos +  form.elements[c].title + separador;	
						bandera=bandera+1;
						}
					
					break;
					
					case 'checkbox':					
						if(form.elements[c].checked!=true){// Verifica si el checked es diferente de activo							
						campos=campos +  form.elements[c].title + separador;	
						bandera=bandera+1;
						}
					break;
					
					//Se valida que este seleccionada una opción al menos
					case 'radio':					
					var nombre;
					marcado=false;
					
							if(nombre!=form.elements[c].name){								
                    				nombre=form.elements[c].name;
                    			for(aa=0;form.elements[c+aa].name==form.elements[c].name;aa++){
                        			if(form.elements[c+aa].checked){
										marcado=true
									};
                    			}
                    			if(marcado==false){
									campos=campos +  form.elements[c].title + separador;	
									bandera=bandera+1;										
								}
            
                			}					
						
					break;            
              					
					default:
						if(form.elements[c].value == ""){// Verifica si contiene algún texto				
						campos=campos +  form.elements[c].title + separador;	
						bandera=bandera+1;
						}
					break;					
				}				
				
			}
		}
	}
	
	if(bandera>0){
		 alert(campos);
		 return false;
	}else{
		return true;
	}		
}// Fin de función validar


//Validar los campos de tipo radio buttons
function validaRadioButton(f){
var campos="Los siguientes campos son requeridos:\n";
bandera=0;
separador="\n";
marcado=false;
var nombre;		

        for(a=0;a<f.elements.length;a++){
            if(f[a].type=="radio"){
                if(nombre!=f[a].name){
                    nombre=f[a].name;
                    for(aa=0;f[a+aa].name==f[a].name;aa++){
                        if(f[a+aa].checked){marcado=true};
                    }
                    if(marcado==false){
					campos=campos +  f[a].title + separador;	
					bandera=bandera+1;					
					//return false;
					}
            
                }
            marcado=false;
            }
    
        }
		
	if(bandera>0){
	alert(campos);
	return false;
	}else{
	return true;
	}			
}



function trim(Obj) {
	/* Borra los espacios en blanco del lado izquierdo y derecho recibe como parametro un objeto
	 
	*/
	return rtrim(ltrim(Obj));	
}

/*======================================================================================
Funcion que elimina los blancos a la izquierda de un string.
Obj: Objeto que contiene Strin a eliminar blancos de la izquierda.
Retorna :Un Objeto
*/
function ltrim(obj) {
	
	InString = obj.value;
	n = i = 0;
	
	while (i < InString.length) {
		if (InString.charAt(i) != " ") {
			n = i
			break
		}
		i++
	}
	if (n == 0 && i == InString.length)
		obj.value = ''
	else
		obj.value = InString.substring(n, InString.length)
	return obj;
	
}

/*======================================================================================
Elimina los blancos a la derecha de un string.
obj:	objeto que contiene string a eliminar blancos de la derecha
Retorna: Un Objeto	
*/
function rtrim(obj) {
	InString = obj.value;
	n = i = InString.length
	while (i > 0) {
		if (InString.charAt(i - 1) != " ") {
			n = i
			break
		}
		i--
	}
	if (n == InString.length && i == 0)
		obj.value = ''
	else
		obj.value = InString.substring(0, n);
	return obj;	
}

/*----------------------- Funcion de validacion de email
Recibe una cadena como parametro, devuelve true si el correo es válido
o false si es falso
Fecha de Actualización: 03-Abr-09

*/
function validaMail(form_id,email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = document.forms[form_id].elements[email].value;
   if(reg.test(address) == false){
      alert('Correo no valido');
      return false;
   }else{
	   return true;	
   }// Fin de if
}// Fin de funcion

//Compara que la nueva contrasena y su confirmacion sean las mismas
function ValidaContrasenaYConfirmacion(form_id,pass1,pass2) { 

   var password1 = document.forms[form_id].elements[pass1].value;
   var password2 = document.forms[form_id].elements[pass2].value;

   	if(password1 == password2){     
      return true;
   	}else{
	  alert('La nueva contraseña y la confirmación no coinciden!');
	  return false;	
   	}// Fin de if
}// Fin de funcion

