
/* uso de esta fns
id_form=identiifcador del form, valor=pagina a la cual se hace referencia
<INPUT TYPE='submit' name='eliminar' value='Eliminar seleccionado' onClick=\"JavaScript:destino('TS','TiposSello_Eliminar.php');\">*/
//------------------------------------------------------------------------------------
function str_replace(cadena, cambia_esto, por_esto) {
      return cadena.split(cambia_esto).join(por_esto);
}
//------------------------------------------------------------------------------------
function retorna_titulo(cadena){
	var titulo;
	titulo=str_replace(cadena,'int','');
	titulo=str_replace(titulo,'num','');
	titulo=str_replace(titulo,'txt','');
	//titulo=str_replace(titulo,'email','');
	titulo=str_replace(titulo,'select','');
	titulo=str_replace(titulo,'tel','');
	titulo=str_replace(titulo,'requerido','');
	titulo=str_replace(titulo,',','');
	return titulo;
}
//-----------------------------------------------------------------------------------
//quitar espacios en blanco del inicio y final de una cadena de texto
function jsTrim(JSvalue) { 
	//La típica función de quitar espacios en blanco de la mayoría de los lenguajes de programación
	var JStemp = JSvalue;
	var JSobj = /^(\s*)([\W\w]*)(\b\s*$)/;
	//Elimina los espacios de delante y detrás
	if (JSobj.test(JStemp)) 
		{ JStemp = JStemp.replace(JSobj, '$2'); }
		//Elimina los espacios duplicados
	var JSobj = / +/g;
	JStemp = JStemp.replace(JSobj, " ");
	if (JStemp == " ") 
		{ JStemp = ""; }
	return JStemp;
}
//------------------------------------------------------------------------------------
function EsNumerico(valor){
		var number = parseFloat(valor);
		if (isNaN(number)==true)
			return false; 
			//alert("No es numérico");
		else
			return true;
			//alert("Es numérico");
}
//------------------------------------------------------------------------------------
function EsEntero(valor){ 
      //intento convertir a entero. 
     //si era un entero no le afecta, si no lo era lo intenta convertir 
	 valor = parseInt(valor) 
      //Compruebo si es un valor numérico 
      if (isNaN(valor)) { 
            //entonces (no es numero) devuelvo el valor cadena vacia
            return false;
      }else{ 
            //En caso contrario (Si era un número) devuelvo el valor 
            return true; 
      } 
}
//------------------------------------------------------------------------------------
//Validar objetos de formulario
//------------------------------------------------------------------------------------
//title="int_requerido"
function valida_txtEntero(elemento){
	var error="";
	var valValidar=elemento.getAttribute("validar");
	var TituloCampo=retorna_titulo(valValidar);
	elemento.value=jsTrim(elemento.value);
	//validar campo de texto entero requerido	
	if(valValidar.indexOf("int",0)!=-1 && valValidar.indexOf("requerido",0)!=-1 ){
		if (elemento.value == "" || !EsEntero(elemento.value)){
			error+= "\n\tEl campo "+TituloCampo+" (*) requiere un valor numerico entero.";
		}
		
	}
	//validar campo de texto entero no requerido	
	if(valValidar.indexOf("int",0)!=-1 && valValidar.indexOf("requerido",0)==-1 ){
		if (elemento.value != "" && !EsEntero(elemento.value)){
			error+= "\n\tEl campo "+TituloCampo+" requiere un valor numerico entero.";
		}
	}
	return error;
}
//------------------------------------------------------------------------------------
//title="num_requerido"
function valida_txtNumerico(elemento){
	var error="";
	var valValidar=elemento.getAttribute("validar");
	var TituloCampo=retorna_titulo(valValidar);
	elemento.value=jsTrim(elemento.value);

	//validar campo de texto numerico requerido	
	if(valValidar.indexOf("num",0)!=-1 && valValidar.indexOf("requerido",0)!=-1 ){
		if (elemento.value == "" || !EsNumerico(elemento.value)){
			error+= "\n\tEl campo "+TituloCampo+" (*) requiere un valor numerico.";
		}
	}
	//validar campo de texto numerico no requerido	
	if(valValidar.indexOf("num",0)!=-1 && valValidar.indexOf("requerido",0)==-1 ){
		if (elemento.value != "" && !EsNumerico(elemento.value)){
			error+= "\n\tEl campo "+TituloCampo+" requiere un valor numerico.";
		}
	}
	return error;
}
//------------------------------------------------------------------------------------
//title="txt_requerido"
function valida_txtTexto(elemento){
	var error="";
	var valValidar=elemento.getAttribute("validar");
	var TituloCampo=retorna_titulo(valValidar);
	elemento.value=jsTrim(elemento.value);
	
	//validar campo de texto requerido	
	if(valValidar.indexOf("txt",0)!=-1 && valValidar.indexOf("requerido",0)!=-1){
		if (elemento.value == "" ){
			error+= "\n\tEl campo "+TituloCampo+" (*) es requerido.";
		}
	}
	return error;
}
//------------------------------------------------------------------------------------
////title="Email_requerido"
function valida_txtEmail(elemento){
	var error="";
	var valValidar=elemento.getAttribute("validar");
	var TituloCampo=retorna_titulo(valValidar);
	//variable que sirve de filtro de email
	var filtro=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;

	elemento.value=jsTrim(elemento.value);
	//validar campo de email requerido	
	if(valValidar.indexOf("email",0)!=-1 && valValidar.indexOf("requerido",0)!=-1){
		if ( elemento.value == "" || !filtro.test(elemento.value) ){
			error+= "\n\tEl campo "+TituloCampo+" (*) requerido no posse un valor valido.";
		}
	}
	//validar campo de email no requerido	
	if(valValidar.indexOf("email",0)!=-1 && valValidar.indexOf("requerido",0)==-1 ){
		alert ("hola");
		if (elemento.value != "" && !filtro.test(elemento.value) ){
			error+= "\n\tEl campo "+TituloCampo+" no posse un valor valido.";
		}
	}
	
	return error;
}
function valida_textarea(elemento){
	var error="";
	var valValidar=elemento.getAttribute("validar");
	var TituloCampo=retorna_titulo(valValidar);
	elemento.value=jsTrim(elemento.value);
	
	//validar campo de texto requerido	
	if(valValidar.indexOf("txt",0)!=-1 && valValidar.indexOf("requerido",0)!=-1){
		if (elemento.value == "" ){
			error+= "\n\tEl campo "+TituloCampo+" (*) es requerido.";
		}
	}
	
	return error;
}
//------------------------------------------------------------------------------------
////title="select_requerido"
function valida_select(elemento){
	var error="";
	var valValidar=elemento.getAttribute("validar");
	var TituloCampo=retorna_titulo(valValidar);
	elemento.value=jsTrim(elemento.value);
	//validar campo de texto requerido	
	if ( elemento.value == "" || elemento.value==0){
		error+= "\n\tDebe seleccionar un campo de la lista "+campo+".";
	}
	return error;
}
//------------------------------------------------------------------------------------
function valida_option(elemento){
	if(elemento.checked==true){
		return true
	}
	return false;
}
//----------------------------------------------------------------------------------
function ValidaForm(id_form) {
	//alert (document.formu.age.value+' '+document.formu.age.type);
	var flagOption=false;
	var error="";
	var ele=document.forms[id_form];
	
	for ( var i = 0; i < ele.length; i++ ) {
		//si el objeto es tipo text
		if (ele.elements[i].type=="text"){
			//nombretitle=ele.elements[i].title;
			error +=valida_txtTexto(ele.elements[i]);
			error +=valida_txtEmail(ele.elements[i]);
			error +=valida_txtEntero(ele.elements[i]);
			error +=valida_txtNumerico(ele.elements[i]);
		}
		if (ele.elements[i].type=="password"){
			//nombretitle=ele.elements[i].title;
			error +=valida_txtTexto(ele.elements[i]);
		}
		//si el objeto es tipo select no multiple
		if (ele.elements[i].type=="select-one"){
			error+=valida_select(ele.elements[i]);
		}
		if (ele.elements[i].type=="textarea"){
			error+=valida_textarea(ele.elements[i]);
		}
		/*
		//si el objeto es tipo select
		if (ele.elements[i].type=="radio" && flagOption==false){
			flagOption=valida_option(ele.elements[i]);
		}
		*/
	}
	/*
	if (flagOption==false){
		error+="\n\tHay campos de opcion que no se han seleccionado.";
	}*/
	
	if (error != ""){
		var msg = "______________________________________________________________\n\n";
		msg += "Su información no ha sido enviada porque existen problemas con el formulario.\n";
		msg += "Por favor corrija el problema y reenvie el formulario.\n";
		msg += "______________________________________________________________\n\n";
		msg += "La siguiente información es necesaria: -\n";
		
		error += alert(msg + error + "\n\n");
		return false;
	}
	return true;
	
}






