/**
* Filename.......: jsFunc.js
* Project........: TestManager
* Last Modified..: $Date: 10/12/2004
*/

function validarValoracion(id,nOpc)
{
    // Esta función valida que en una pregunta de valoración no existan dos opciones cone el mismo valor.
    id_dividido=idSplit(id);
    sel=document.getElementById(id);
//   valorV=sel.options[sel.selectedIndex].value;
    if (sel.options[sel.selectedIndex].value!="Seleccione")
    {
       for(i=1;i<=nOpc;i++)
       {
           id_aux=id_dividido[0]+'_';
           if (id==(id_aux+i)) continue;
           aux=document.getElementById(id_aux+i);
           if (sel.options[sel.selectedIndex].value==aux.options[aux.selectedIndex].value && sel.options[sel.selectedIndex].value!="")
           {
               alert ("No puede poner dos valoraciones iguales.");
               sel.selectedIndex=0;
               break;
           }
       }
    }
}

function idSplit(id)    // Esta funcion quita el qid del id
{
    id_spl=id.split('_');
    return id_spl;
}

function validarOther(id)
{
    // Esta función valida que no exista una respuesta de other que contenga valoración y que no tenga texto.
    aux=document.getElementById(id);
    if(aux.options[aux.selectedIndex].value!="Seleccione")
    {
        // alert (id+"_text");
        text_aux=document.getElementById(id+"_text");
        if (text_aux.value=="")
        {
             alert ("Escribe una respuesta");
             aux.selectedIndex=0;
             text_aux.focus();
        }
    }
}

function validarRango(id, nOp)
{
                // Esta función valida el rango en función del numero de opciones y d las respuestas de !other.
    
                /*
    nOpReales=nOp;
    id_dividido=idSplit(id);
    for (i=1;i<=nOp;i++)
    {
        id_text = id_dividido[0] + "_" + i + "_text";
        id_select=id_dividido[0] + "_" + i;
        text_aux = document.getElementById(id_text);
        select_aux = document.getElementById(id_select);
        if ((text_aux!=null))
        {
            if ((text_aux.value=="") || (select_aux.options[select_aux.selectedIndex].value=="")) nOpReales--;
        }
        
    }
                */
    nOpReales = calcularNOpReales(id,nOp);
    aux=document.getElementById(id);
    if (aux.options[aux.selectedIndex].value>nOpReales)
    {
        alert ("Fuera de rango");
        aux.selectedIndex=0;
    }
}

function calcularNOpReales(id, nOp)
{
    nOpReales=nOp;
    id_dividido=idSplit(id);
    for (i=1;i<=nOp;i++)
    {
        id_text = id_dividido[0] + "_" + i + "_text";
        id_select=id_dividido[0] + "_" + i;
        text_aux = document.getElementById(id_text);
        select_aux = document.getElementById(id_select);
        if ((text_aux!=null))
        {
            if ((text_aux.value=="") || (select_aux.options[select_aux.selectedIndex].value=="")) nOpReales--;
        }
        
    }
    return nOpReales;
}

function decrementarRangos(id,nOp)
{
    // Esta función decrementa el rango de las opciones de una pregunta de order cuando eliminamos una opción de tipo !other, si estas tienen un rango superior a la opción eliminada.
    
    opcion = document.getElementById(id);
    id_dividido=idSplit(id);
    eval("varValorAnterior=v"+id+";");        // Nombre de la variable que contiene el valor anterior.
    if (opcion.value=="")
    {
        nOpReales = calcularNOpReales(id,nOp);
        for (i=varValorAnterior;i<=nOp;i++)
        {
            id_recorrer = id_dividido[0] + "_" + i;
            opcion_recorrer = document.getElementById(id_recorrer);
            //if (opcion_recorrer.value>nOpReales) 
            //{
                opcion_recorrer.value--;
            //}
        }
    }
}

/*
Funcion para validar el formato de una fecha una fecha. dd/mm/aaaa
Fecha: 14/04/03
Autor: Javi Ruiz (Almería)
*/
function fechaValidar(campo)
{
	fecha = campo.value;
	var exp=new RegExp("(^([0-9]{2})/([0-9]{2})/([0-9]{4})$)");
	if ( fecha == "" ){
		return false;
	}
	partes=fecha.split('/');
	switch (partes[1])
	{
//	case '1' : limite_dias= 31;
//		break;
	case '01' : limite_dias= 31;
		break;
//	case '3' : limite_dias= 31;
//		break;
	case '03' : limite_dias= 31;
		break;
//	case '5' : limite_dias= 31;
//		break;
	case '05' : limite_dias= 31;
		break;
//	case '7' : limite_dias= 31;
//		break;
	case '07' : limite_dias= 31;
		break;
//	case '8' : limite_dias= 31;
//		break;
	case '08' : limite_dias= 31;
		break;
	case '10' : limite_dias= 31;
		break;
	case '12' : limite_dias= 31;
		break;
//	case '4' : limite_dias= 30;
//		break;
	case '04' : limite_dias= 30;
		break;
//	case '6' : limite_dias= 30;
//		break;
	case '06' : limite_dias= 30;
		break;
//	case '9' : limite_dias= 30;
//		break;
	case '09' : limite_dias= 30;
		break;
	case '11' : limite_dias= 30;
		break;
	case '02': if (partes[2]%400==0) limite_dias=29
					else if (partes[2]%100==0) limite_dias=28
							else if (partes[2]%4==0) limite_dias=29
									else limite_dias=28;
		break;
	default : limite_dias=0;
	}
	if (exp.test(fecha) == false || partes[0]>limite_dias || partes[0]<1 || partes[1]<1 || partes[1]>12){
        alert("Compruebe que la fecha es correcta y el formato es dd/mm/aaaa ( Ej: 01/06/2003 ).")
		return false;
	}
	/* else{
        alert(campo.id);
    }*/
	return true;
}

function saltoValidar(obj)
{
    pregunta = document.getElementById("pregunta_actual");
    // alert (obj.options[obj.selectedIndex].value);
    // alert(pregunta.value);
    if ((pregunta.value)>=(obj.options[obj.selectedIndex].value))
    {
        alert ("El salto no puede incluir la pregunta actual.");
         obj.selectedIndex=(pregunta.value);
    }
}