// JavaScript Document

function showMsg(str) {
	if (str != ""){
		alert("La información requerida en el formulario esta incompleta o tiene errores\nPor favor verifique los siguientes errores:\t\t\t\t\t\n\n" + str);
		return false;
	}
	return true;
}

function myTrim(str) {
	var tmpStr
	tmpStr = str.replace(/^\s*/, "");
	return tmpStr.replace(/\s*$/, "");
}

function isEmpty(str, msg) {
	var retmsg = "";
	if (myTrim(str) == "") {
		retmsg = msg;
	}
	return retmsg;
}

function evalRegExp(regexp, str, msg) {
	var retmsg = "";
	if (!regexp.test(str)) {
		retmsg = msg;
	}
	return retmsg;
}

function checkLogin (str) {	
	str = myTrim(str)
	var err = isEmpty(str, "* El login no puede estar vacio.\n");
	 
	if (err == "") {	
		if ((str.length < 4) || (str.length > 100)) {
			err += "* El login debe ser mayor a 4 caracteres y menor a 100 caracteres.\n";
		}
		err += evalRegExp(/^[-_\w\.@]+$/i, str, "* El login contiene caracteres ilegales.\n");
	}
	
	return err;
}

function checkName(str) {
	str = myTrim(str)
	var err = isEmpty(str, "* El nombre no puede estar vacio.\n");
	
	if (err == "") {
		
		if(!fm_validaCampo(str, '', '1', 1))
		{
			err += "* El nombre contiene caracteres ilegales.\n"
		}
		//err += evalRegExp(/^([a-zA-Z] [a-zA-z\s])+$/, str, "* El nombre contiene caracteres ilegales.\n");
	}
	
	return err;
}

function checkLastName(str) {
	str = myTrim(str)
	var err = isEmpty(str, "* El apellido no puede estar vacio.\n");
	
	if (err == "") {

		if(!fm_validaCampo(str, '', '1', 1))
		{
			err += "* El apellido contiene caracteres ilegales.\n"
		}
		
		//err += evalRegExp(/^([a-zA-Z] [a-zA-z\s])+$/, str, "* El apellido contiene caracteres ilegales.\n");
		//err += evalRegExp(/^([a-z ñáéíóú]{2,60})$/, str, "* El apellido contiene caracteres ilegales.\n");
	}
	return err;
}

function checkEmail(str, str2) {
	str = myTrim(str);
	str2 = myTrim(str2);
	var err = isEmpty(str, "* El correo electronico no puede estar vacio.\n");
	
	if (err == "") {
		err += evalRegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/, str, "* El Correo electronico no es una dirección de correo valida.\n");
	}
	if(str!=str2){
	err += "* Los Correos electronico no coinciden.\n";
	}
	
	return err;
}


function checkLampara(choice) {
	var err = "";
    if (choice == 0) {
    	err = "* Debe escojer una lampara.\n";
    }    
	return err;
}


function checkMed(choice) {
	var err = "";
    if (choice == 0) {
    	err = "* Debe escojer un MED.\n";
    }    
	return err;
}


function checkPais(choice) {
	var err = "";
    if (choice == 0 || choice == '') {
    	err = "* Debe escojer el Pais al que pertenece.\n";
    }    
	return err;
}

function checkEnfermedad(choice) {
	var err = "";
    if (choice == 0) {
    	err = "* Debe escojer una opcion de su interes en pida salud.\n";
    }    
	return err;
}

function checkIdioma(choice) {
	var err = "";
    if (choice == 0) {
    	err = "* Debe escojer una Idioma.\n";
    }    
	return err;
}


function checkPassword(str) {
	str = myTrim(str)
	var err = isEmpty(str, "* La contraseña no puede ser vacia.\n");
	
	if (err == "") {
		if (str.length < 4) {
			err += "* La contraseña debe ser mayor a 4 caracteres.\n";
		} 
	}
	return err;
}


function checkEstatura(str) {	
	return  isEmpty(str, "* El Campo Estatura no puede estar vacio.\n");
}

function checkPeso(str) {	
	return  isEmpty(str, "* El Campo Peso no puede estar vacio.\n");
}

function checkEdad(str) {	
	return  isEmpty(str, "* El Campo Edad no puede estar vacio.\n");
}

function checkAccessLevel(choice) {
	var err = "";
    if (choice == 0) {
    	err = "* Debe escoger un nivel de acceso.\n";
    }    
	return err;
}

function checkGroup(choice) {
	var err = "";
    if (choice == 0) {
    	err = "* Debe escoger un Grupo.\n";
    }    
	return err;
}



function checkForumCat(choice) {
	var err = "";
    if (choice == 0) {
    	err = "* Debe escoger una categoria de foros.\n";
    }    
	return err;
}

function checkFaqTitle(str) {	
	return  isEmpty(str, "* El titulo de la pregunta no puede estar vacio.\n");
}


function checkDate(str) {
	str = myTrim(str)
	var err = isEmpty(str, "* La fecha no puede ser vacia.\n");
	
	if (err == "") {
		err += evalRegExp(/(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d/, str, "* La fecha introducida no es una fecha valida o esta vacia, use este formato dd/mm/aaaa.\n");
	}
	return err;
}

function getRealLeft(el) {
    xPos = el.offsetLeft;
    tempEl = el.offsetParent;
    while (tempEl != null) {
        xPos += tempEl.offsetLeft;
        tempEl = tempEl.offsetParent;
    }
    return xPos;
}

function getRealTop(el) {
    yPos = el.offsetTop;
    tempEl = el.offsetParent;
    while (tempEl != null) {
        yPos += tempEl.offsetTop;
        tempEl = tempEl.offsetParent;
    }
    return yPos;
}

function Trim(s) 
{
	return myTrim(s);
}

// ******************************************************************************

function nuevoAjax()
{ 
	/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
	lo que se puede copiar tal como esta aqui */
	var xmlhttp=false; 
	try 
	{ 
		// Creacion del objeto AJAX para navegadores no IE
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
	}
	catch(e)
	{ 
		try
		{ 
			// Creacion del objet AJAX para IE 
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch(E) { xmlhttp=false; }
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); } 

	return xmlhttp; 
}

// ******************************************************************************

function EnviarDatos()
{
	// Obtendo la capa donde se muestran las respuestas del servidor
	var capa   = document.getElementById("carga");
	var nombre = document.getElementById("txtNombre");
	var apell  = document.getElementById("txtApellido");
	var fecha  = document.getElementById("txtFecha");
	var pais   = document.getElementById("cmbPais");
	var ciudad = document.getElementById("txtCiudad");
	var email  = document.getElementById("txtEmail");
	var telef  = document.getElementById("txtTel");
	var enfer  = document.getElementById("hddCod_Enf");
	//alert(rep_cad(nombre.value)+' '+apell.value+' '+fecha.value+' '+pais.value+' '+rep_cad(ciudad.value)+' '+email.value+' '+telef.value);
	// Creo el objeto AJAX
	var ajax=nuevoAjax();
	// Limpiar variable resultado
	var vtResult = '';
	// Coloco el mensaje "Cargando..." en la capa
	capa.innerHTML="<img src='img/loading.gif' width='32' height='32' border='0' alt=''>  Cargando...";
	// Abro la conexión, envío cabeceras correspondientes al uso de POST y envío los datos con el método send del objeto AJAX
	ajax.open("POST", "reg_user_ajax.asp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send("txtNombre="+rep_cad(nombre.value)+"&txtApellido="+rep_cad(apell.value)+"&txtFecha="+fecha.value+"&cmbPais="+pais.value+"&txtCiudad="+rep_cad(ciudad.value)+"&txtEmail="+email.value+"&txtTel="+telef.value+"&hddCod_Enf="+enfer.value);

	ajax.onreadystatechange=function()
	{
		if (ajax.readyState==4)
		{
			// Respuesta recibida. Coloco el texto plano en la capa correspondiente
			capa.innerHTML='';
			//alert(ajax.responseText);
			vtResult = ajax.responseText.split("|");
			//
			if(vtResult[0] == 'true'){
				//capa.innerHTML=vtResult[1];
				window.opener.document.form1.hddValEnc.value= '1';
				window.opener.document.form1.submit();
				window.close();
			}else if (vtResult[0] == 'false'){
				capa.innerHTML=vtResult[1];
			}
		}
	}
}

// ******************************************************************************

function FMLogin(vtOrig)
{
	// Obtendo la capa donde se muestran las respuestas del servidor
	var capa   = document.getElementById("carga");
	var login = document.getElementById("txtUsuario");
	var pass  = document.getElementById("txtClave");
	//alert(login.value+' '+pass.value);
	// Creo el objeto AJAX
	var ajax=nuevoAjax();
	// Limpiar variable resultado
	var vtResult = '';
	// Coloco el mensaje "Cargando..." en la capa
	capa.innerHTML="<img src='img/loading.gif' width='32' height='32' border='0' alt=''>  Cargando...";
	// Abro la conexión, envío cabeceras correspondientes al uso de POST y envío los datos con el método send del objeto AJAX
	ajax.open("POST", "login_ajax.asp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send("txtUsuario="+login.value+"&txtClave="+pass.value);

	ajax.onreadystatechange=function()
	{
		if (ajax.readyState==4)
		{
			// Respuesta recibida. Coloco el texto plano en la capa correspondiente
			capa.innerHTML='';
			//alert(ajax.responseText);
			vtResult = ajax.responseText.split("|");
			//
			if(vtResult[0] == 'true'){
				//capa.innerHTML=vtResult[1];
				if (vtOrig)
				{
					window.opener.document.form1.submit();
					window.close();
				}else{
					document.form1.submit();
				}
			}else if (vtResult[0] == 'false'){
				capa.innerHTML=vtResult[1];
			}
			document.getElementById("txtClave").value="";
		}
	}
}

// ******************************************************************************

/* Valida un Email */
function fm_val_email(vtEmail) 
{ 
	if( vtEmail.indexOf('@',0) <= 0  || vtEmail.indexOf(';',0) != -1
     || vtEmail.indexOf(' ',0) != -1 || vtEmail.indexOf('/',0) != -1
     || vtEmail.indexOf(';',0) != -1 || vtEmail.indexOf('<',0) != -1
     || vtEmail.indexOf('>',0) != -1 || vtEmail.indexOf('*',0) != -1
     || vtEmail.indexOf('|',0) != -1 || vtEmail.indexOf('`',0) != -1
     || vtEmail.indexOf('&',0) != -1 || vtEmail.indexOf('$',0) != -1
     || vtEmail.indexOf('!',0) != -1 || vtEmail.indexOf('"',0) != -1
     || vtEmail.indexOf('ñ',0) != -1 || vtEmail.indexOf('Ñ',0) != -1
     || vtEmail.indexOf('á',0) != -1 || vtEmail.indexOf('Á',0) != -1
     || vtEmail.indexOf('é',0) != -1 || vtEmail.indexOf('É',0) != -1
     || vtEmail.indexOf('í',0) != -1 || vtEmail.indexOf('Í',0) != -1
     || vtEmail.indexOf('ó',0) != -1 || vtEmail.indexOf('Ó',0) != -1
     || vtEmail.indexOf('ú',0) != -1 || vtEmail.indexOf('Ú',0) != -1
	 || vtEmail.indexOf(':',0) != -1 || vtEmail.length < 5 )
	{ 
		return false; 
	}else{
		return true;
	}
}
// ******************************************************************************

function rep_cad(cadena)
{
	cadena=cadena.replace(' ', '||');
	cadena=cadena.replace(' ', '||');
	cadena=cadena.replace(' ', '||');
	cadena=cadena.replace(' ', '||');
	cadena=cadena.replace(' ', '||');
	cadena=cadena.replace(' ', '||');
	cadena=cadena.replace('á', '|a|');
	cadena=cadena.replace('Á', '|A|');
	cadena=cadena.replace('é', '|e|');
	cadena=cadena.replace('É', '|E|');
	cadena=cadena.replace('í', '|i|');
	cadena=cadena.replace('Í', '|I|');
	cadena=cadena.replace('ó', '|o|');
	cadena=cadena.replace('Ó', '|O|');
	cadena=cadena.replace('ú', '|u|');
	cadena=cadena.replace('Ú', '|U|');
	cadena=cadena.replace('ñ', '|n|');
	cadena=cadena.replace('Ñ', '|N|');
	
	return cadena;
}

// ******************************************************************************

// Mauricio Escobar, 30/08/00. Validacion de campos sin usar expresiones regulares. 
//tipo 1 = todos los caracteres
//tipo 2 = solo numeros

function fm_validaCampo(campo, caract_extra, nulo, tipo) {  
  if (nulo == 1 && campo == "") {  
    //alert("ERROR: No puede dejar este campo vacio")  
    return false  
  }  
  var ubicacion  
  var enter = "\n"
  //
  switch (tipo)
  {
	case 1 :
		var caracteres = "abcdefghijklmnopqrstuvwxyzñ1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZÑáéíóúÁÉÍÓÚ" + String.fromCharCode(13) + enter + caract_extra;
		break;
	case 2 :
		var caracteres = "1234567890" + String.fromCharCode(13) + enter + caract_extra;
		break;
  }
  //  
  var contador = 0  
  for (var i=0; i < campo.length; i++) {  
    ubicacion = campo.substring(i, i + 1)  
    if (caracteres.indexOf(ubicacion) != -1) {  
      contador++  
    } else {  
     // alert("ERROR: No se acepta el caracter '" + ubicacion + "'.")  
      return false  
    }  
  }  
  
  //para que envie los datos, quitar las  2 lineas siguientes  
  //alert("Datos correctos.")  
  return true;  
}  

// ******************************************************************************

// Mauricio Escobar, 30/08/00. Validacion de campos sin usar expresiones regulares. 

function fm_valcampo_num(campo, caract_extra, nulo) {  
  if (nulo == 1 && campo == "") {  
    //alert("ERROR: No puede dejar este campo vacio")  
    return false  
  }  
  
  var ubicacion  
  var enter = "\n"  
  var caracteres = "abcdefghijklmnopqrstuvwxyzñ1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZÑáéíóúÁÉÍÓÚ" + String.fromCharCode(13) + enter + caract_extra  
  
  var contador = 0  
  for (var i=0; i < campo.length; i++) {  
    ubicacion = campo.substring(i, i + 1)  
    if (caracteres.indexOf(ubicacion) != -1) {  
      contador++  
    } else {  
     // alert("ERROR: No se acepta el caracter '" + ubicacion + "'.")  
      return false  
    }  
  }  
  
  //para que envie los datos, quitar las  2 lineas siguientes  
  //alert("Datos correctos.")  
  return true;  
}  