/**
 * @author rtapia
 */
window.onerror=function(desc,page,line,chr)
{
  alert(
    'JavaScript error occurred! \n'
    +'\nError description: \t'+desc
    +'\nPage address:      \t'+page
    +'\nLine number:       \t'+line
  );
  return true;
}

function setTxt(strName)
{
    if (window.arrVals[strName])
    {
        var elTxt = document.getElementById(strName);
        elTxt.value = arrVals[strName];
	}
}

function setSel(strName)
{
    if (window.arrVals[strName])
    {
        var elSelPais = document.getElementById(strName);
        for (i=0; i<elSelPais.options.length; i++)
	    {
            if (elSelPais.options[i].value == arrVals[strName])
            {
                elSelPais.options[i].selected = true;
            }
        }
    }
}

function setCheck(strName)
{
    if (window.arrVals[strName])
    {
        var elCheck = document.getElementById(strName);
		if (arrVals[strName] == "1")
		{
    		elCheck.checked = true;
		}
		else
		{
            elCheck.checked = false;
		}
    }
}

function setRadio(strName)
{
    if (window.arrVals[strName])
    {
		document.getElementById(arrVals[strName]).checked = true;
    }
}

function setErr(strName)
{
    if (window.arrErrs[strName])
	{
        var elErr = document.getElementById(strName);
        elErr.innerHTML = "<br>" + arrErrs[strName];	
	}
}

function load_vals_registro()
{
	if (window.arrVals && arrVals!= null)
	{
        setTxt("userid");		
        setTxt("contrasena");
        setTxt("contrasena_confirmar");
        setTxt("email");
        setTxt("email_confirmar");
	    setSel("sexo");
        setCheck("calificar_fotos");
		setCheck("contrato");
        setSel("edad");
        if (window.arrVals["pais"])
        {
            setSel("pais");
            cargarEstados();
            if (window.arrVals["estado"])
            {
               setSel("estado");
               cargarCiudades();
               setSel("ciudad");
            }
        }
        setTxt("acerca_de_mi");
	}
}

function load_errs_registro()
{
    if (window.arrErrs && arrErrs!= null)
    {
	    setErr("useridErr");
        setErr("sexoErr");
        setErr("contrasena_confirmarErr");
        setErr("email_confirmarErr");
        setErr("fotoErr");
        setErr("contratoErr");
        setErr("edadErr");
        setErr("paisErr");
        setErr("estadoErr");
        setErr("ciudadErr");
        setErr("acerca_de_miErr");
        setErr("attemptErr");
        setErr("formErr");
	}
}

function load_vals_entrar()
{
    if (window.arrVals && arrVals!= null)
    {
        setTxt("userid_o_email");       
        setTxt("contrasena");
		setCheck("seguir_conectado");
    }
}

function load_errs_entrar()
{
    if (window.arrErrs && arrErrs!= null)
    {
        setErr("userid_o_emailErr");
        setErr("contrasenaErr");
    }
}

function load_vals_enviar()
{
    if (window.arrVals && arrVals!= null)
    {
        setTxt("email");       
    }
}

function load_errs_enviar()
{
    if (window.arrErrs && arrErrs!= null)
    {
        setErr("emailErr");
    }
}

function load_vals_miperfil()
{
    if (window.arrVals && arrVals!= null)
    {
        setTxt("email");
        setTxt("email_confirmar");
        setTxt("email_original");
        setSel("sexo");
		
        setSel("edad");
        if (window.arrVals["pais"])
        {
            setSel("pais");
            cargarEstados();
            if (window.arrVals["estado"])
            {
               setSel("estado");
               cargarCiudades();
               setSel("ciudad");
            }
        }
        setSel("pref_sexual");

        setTxt("acerca_de_mi");
		
        setTxt("intereses0");
        setTxt("intereses1");
        setTxt("intereses2");
        setTxt("intereses3");
        setTxt("intereses4");

        setTxt("zodiaco");

        setTxt("musica0");
        setTxt("musica1");
        setTxt("musica2");

        setTxt("antros0");
        setTxt("antros1");
        setTxt("antros2");

        setTxt("artistas0");
        setTxt("artistas1");
        setTxt("artistas2");

        setTxt("peliculas0");
        setTxt("peliculas1");
        setTxt("peliculas2");

        setTxt("libros0");
        setTxt("libros1");
        setTxt("libros2");

        setTxt("comida0");
        setTxt("comida1");
        setTxt("comida2");

        setTxt("codigo_promotor");
    }
}

function load_errs_miperfil()
{
    if (window.arrErrs && arrErrs!= null)
    {
        setErr("contrasena_confirmarErr");
        setErr("email_confirmarErr");
        setErr("sexoErr");
        
        setErr("edadErr");
        setErr("paisErr");
        setErr("estadoErr");
        setErr("ciudadErr");
        setErr("pref_sexualErr");

        setErr("acerca_de_miErr");
        setErr("palabra_claveErr");

        setErr("formErr");
    }
}

function load_errs_subirfoto()
{
    if (window.arrErrs && arrErrs!= null)
    {
        setErr("fotoErr");
    }
}

function load_vals_preferencias()
{
    if (window.arrVals && arrVals!= null)
    {
        setCheck("perfil_visible");
        setCheck("calificar_fotos");
        setCheck("avisos_email");
    }
}

function load_errs_preferencias()
{
}

function load_vals_componermensaje()
{
    if (window.arrVals && arrVals!= null)
    {
        setSel("destinatarioid");
        setTxt("asunto");
        setTxt("texto");
    }
}

function load_errs_componermensaje()
{
    if (window.arrErrs && arrErrs!= null)
    {
        setErr("destinatarioidErr");
        setErr("asuntoErr");
    }
}

function load_vals_buscar()
{
    if (window.arrVals && arrVals!= null)
    {
        setSel("sexo");
		
        if (window.arrVals["edadInf"])
        {
            setSel("edadInf");
            cargarEdadSup();
            if (window.arrVals["edadSup"])
            {
               setSel("edadSup");
            }
        }
		
        if (window.arrVals["pais"] && window.arrVals["pais"] != 'cualquiera')
        {
            setSel("pais");
            cargarEstados();
            if (window.arrVals["estado"] && window.arrVals["pais"] != 'cualquiera')
            {
               setSel("estado");
               cargarCiudades();
               setSel("ciudad");
            }
        }
		
        setCheck("con_foto");
        setTxt("intereses0");
        setTxt("intereses1");
        setTxt("intereses2");
        setSel("pref_sexual");
        setSel("ultima_actividad");
		setTxt("amigoid");
        setTxt("busqueda_avanzada");
    }
}

function load_errs_buscar()
{
}

function load_vals_invitarcontactos()
{
    if (window.arrVals && arrVals!= null)
    {
		setRadio("inv_type");
        setTxt("nombre");
        setTxt("username");
        setSel("provider");
        setTxt("password");
        setTxt("emails");
    }
}

function load_errs_invitarcontactos()
{
    if (window.arrErrs && arrErrs!= null)
    {
        setErr("nombreErr");
        setErr("usernameErr");
        setErr("passwordErr");
        setErr("emailsErr");
    }
}

function load_vals_buscaramigos()
{
    if (window.arrVals && arrVals!= null)
    {
        setTxt("username");
        setSel("provider");
        setTxt("password");
    }
}

function load_errs_buscaramigos()
{
    if (window.arrErrs && arrErrs!= null)
    {
        setErr("usernameErr");
        setErr("passwordErr");
    }
}


function load_vals_sugerencias()
{
    if (window.arrVals && arrVals!= null)
    {
        setTxt("nombre");
        setTxt("email");
        setTxt("texto");
    }
}

function load_errs_sugerencias()
{
    if (window.arrErrs && arrErrs!= null)
    {
        setErr("textoErr");
    }
}

function load_vals_baja()
{
    if (window.arrVals && arrVals!= null)
    {
        setSel("motivo");
        setTxt("comentario");
    }
}

function load_errs_baja()
{
    if (window.arrErrs && arrErrs!= null)
    {
        setErr("motivoErr");
        setErr("comentarioErr");
    }
}

////////////////////////

function borrarEdadSup()
{
    var elSelEdadSup = document.getElementById("edadSup");
    
    // borrar valores anteriores
    while (elSelEdadSup.length > 0)
    {
        elSelEdadSup.remove(0);
    }
}

function cargarEdadSup()
{
    var elSelEdadSup = document.getElementById("edadSup");
    
    var elSelEdadInf = document.getElementById("edadInf");    
    var optEdadInf = elSelEdadInf.options[elSelEdadInf.selectedIndex];
    var strEdadInf = optEdadInf.value;

    if (strEdadInf == 'cualquiera')
    {
        var optNew = new Option('cualquiera','cualquiera');

        try
        {
            elSelEdadSup.add(optNew, null); // standards compliant; doesn't work in IE
        }
        catch(ex)
        {
            elSelEdadSup.add(optNew); // IE only
        }
        return;
    }
    
    for (i=parseInt(strEdadInf); i<100; i++)
    {
        var stri = i+'';
        var optNew = new Option(stri,stri);

        try
        {
            elSelEdadSup.add(optNew, null); // standards compliant; doesn't work in IE
        }
        catch(ex)
        {
            elSelEdadSup.add(optNew); // IE only
        }
        
    }   
}

function onChangeEdadInf()
{
	var val_edad_sup = document.getElementById("edadSup").value;
	    
	borrarEdadSup();
    cargarEdadSup();
	
	if (val_edad_sup != "")
	{
		if (document.getElementById("edadSup").value < val_edad_sup)
		{
	        var elSelEdadSup = document.getElementById("edadSup");
	        for (i=0; i<elSelEdadSup.options.length; i++)
	        {
	            if (elSelEdadSup.options[i].value == val_edad_sup)
	            {
	                elSelEdadSup.options[i].selected = true;
	            }
	        }			
		}
	}
}

//JS Validation

	function setErrLocal(str_errfld, str_err)
	{
	    var elerr = document.getElementById(str_errfld);
	    elerr.innerHTML = '<br>' + str_err;
	}
    function checkMandatory(str_fld, str_errfld, str_fld_label)
    {
        var el = document.getElementById(str_fld);
        if (el.value=='')
        {
            setErrLocal(str_errfld, 'Favor de llenar el campo ' +  str_fld_label);
            return false;
        }
        return true;
    }
    function checkNoLongWords(str_fld, str_errfld)
    {
        var wspaceReg = /\s/;
        var el = document.getElementById(str_fld);
        var array_words = el.value.split(wspaceReg);
        ok = true;
        for (i=0; i<array_words.length; i++)
        {
            if (array_words[i].length >= 18)
            {
                ok = false;
            }
        }
        if (!ok)
        {
            setErrLocal(str_errfld, 'No incluir palabras con más de 18 letras, o separar con espacios');
            return false;
        }
        return true;
    }
    function checkNoHtml(str_fld, str_errfld)
    {
        var el = document.getElementById(str_fld);
        
        text = el.value.toLowerCase();
                
        if (text.indexOf('<') != -1 ||
            text.indexOf('>') != -1)
        {
            setErrLocal(str_errfld, 'Favor de no incluir HTML (i.e. los signos &lt; y &gt;)');
            return false;
        }
        return true;
    }
    function checkNoIncluirEmail(str_fld, str_errfld)
    {
        var el = document.getElementById(str_fld);
        
        text = el.value.toLowerCase();
                
        txt_mail = '';
                
        if (text.indexOf('@') != -1)
            txt_mail = '@';
        else if (text.indexOf('mail') != -1)
            txt_mail = 'mail';
        else if (text.indexOf('yahoo') != -1)
            txt_mail = 'yahoo';
        else if (text.indexOf('arroba') != -1)
            txt_mail = 'arroba';

        if (txt_mail != '')
        {
            setErrLocal(str_errfld, 'Favor de no incluir tu email (ver ' + txt_mail + '). Esto te protege del spam y mejora la página.');
            return false;
        }
        return true;
    }
    function checkNoSexo(str_fld, str_errfld)
    {
        var el = document.getElementById(str_fld);
        
        text = el.value.toLowerCase();
        
        txt_sex = '';
                
        if (text.indexOf('sexo') != -1)
            txt_sex = 'sexo';
        else if (text.indexOf('sexy') != -1)
            return true;
        else if (text.indexOf('sex') != -1)
            txt_sex = 'sex';
        else if (text.indexOf('teta') != -1)
            txt_sex = 'teta';
        else if (text.indexOf('culo') != -1)
            txt_sex = 'culo';
        else if (text.indexOf('cojer') != -1)
            txt_sex = 'cojer';
        else if (text.indexOf('coger') != -1)
            txt_sex = 'coger';
        
        if (txt_sex != '')
        {
            setErrLocal(str_errfld, 'No uses lenguaje obsceno o vulgar (ver ' + txt_sex + '), o tu cuenta será eliminada.');
            return false;
        }
        return true;
    }
    function check_len_acerca_de_mi()
    {
        var el = document.getElementById('acerca_de_mi');
        var elfaltan = document.getElementById('acerca_de_mi_faltan');
        if (el.value.length < 100)
        {
            faltan = 100 - el.value.length;
            faltan_txt = '<font class="texto_rojo">faltan ' + faltan + '</font>'
        }
        else
        {
            faltan_txt = 'faltan 0'
        }
        elfaltan.innerHTML = 'Descríbete a tí mismo y a quién te gustaría conocer. Mínimo 100 letras ('
                       + faltan_txt + ')';
    }
    function checkLen(str_fld, str_errfld, str_fld_label, str_fld_min_len)
    {
        var el = document.getElementById(str_fld);
        if (el.value.length < 100)
        {
            setErrLocal(str_errfld, 'El campo ' +  str_fld_label + ' debe tener un mínimo de ' + str_fld_min_len + ' letras');
            return false;
        }
        return true;
    }
    function clearErr(str_errfld)
    {
        var elerr = document.getElementById(str_errfld);
        elerr.innerHTML = '';
    }
    