
/* 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');\">*/
//------------------------------------------------------------------------------------
//utilizar con: onKeyUp="verificarABC(this); dentro del input type="text"
//esta funcion permite solo texto al escribir 
function verificarABC(f){ 
  if(f.value.match(/[^a-z\ ]/)){ 
    f.value=f.value.replace(/[^a-z\ ]/gi,"") 
  } 
}

var letras="ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú "; //' ABCÇDEFGHIJKLMNÑOPQRSTUVWXYZabcçdefghijklmnñopqrstuvwxyzàáÀÁéèÈÉíìÍÌïÏóòÓÒúùÚÙüÜ'; 
var numeros='1234567890';
var signos=',.:;@-\''; 
var math='+-=()*/'; 
var custom='<>#$%&?¿'; 

function alpha(allow) { 
var k; 
k=document.all?parseInt(event.keyCode): parseInt(event.which); 
return (allow.indexOf(String.fromCharCode(k))!=-1); 
}


/*Original
function alpha(e,allow) { 
var k; 
k=document.all?parseInt(e.keyCode): parseInt(e.which); 
return (allow.indexOf(String.fromCharCode(k))!=-1); 
}
<input type="text" onkeypress="return alpha(event,numbers)" /> 
<input type="text" onkeypress="return alpha(event,letters)" /> 
<input type="text" onkeypress="return alpha(event,numbers+letters+signs)" />
*/
/*
function validar(formulario) {
if (formulario.nombre.value.length < 4) {
alert("Escriba por lo menos 4 caracteres en el campo "Nombre".");
formulario.nombre.focus();
return (false);
}
var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú ";
var checkStr = formulario.nombre.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length) {
allValid = false;
break;
}
}
if (!allValid) {
alert("Escriba sólo letras en el campo "Nombre".");
formulario.nombre.focus();
return (false);
}
var checkOK = "0123456789";
var checkStr = formulario.edad.value;
var allValid = true;
var decPoints = 0;
var allNum = "";
*/
//------------------------------------------------------------------------------------
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 ){
		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 (valValidar.indexOf("requerido",0)!=-1){
		if ( elemento.value == "" || elemento.value==0){
			error+= "\n\tDebe seleccionar un campo de la lista "+TituloCampo+".";
		}
	}
	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;
	
}







