// *************************************
// Librería Funciones Genéricas JVScript
// Visual InterDev 6.0 ASP
//
// Steria Ibérica S.A.
//
// *************************************

/* Función Establece la forma del cursor del ratón */

function fSetCursor(tipoCursor) {
  if (document.all) {
    for (var i=0;i<document.all.length;i++)
      document.all(i).style.cursor=tipoCursor;
  }
}

/* Función carga los datos del documento seleccionado */

function fLoad_Documento(objList,pagAsp) {

	// Formulario que contiene la lista
	objForm = objList.form;

	// Valor seleccionado en la lista
	sValorSel = objList.options[objList.options.selectedIndex].value;

	if (sValorSel != 'FFFF') {
	// Si el valor seleccionado no es 'AÑADIR NUEVA', cargamos
	// datos del documento seleccionado
		window.location = pagAsp + '.asp?' + objList.name + '=' + sValorSel;
	}

    else if (objForm.hayEnlaces.value == "SI") {
    // Si el valor seleccionado es 'AÑADIR NUEVA' y el anterior documento
    // tenia enlaces asociados mostrados en la ventana, entonces volvemos
    // a recargar la ventana
		window.location = pagAsp + '.asp';
    }
    else {
    // En otro caso, no recargamos la ventana. Solamente limpiamos sus campos
      for(var i=0; i<objForm.elements.length; i++) {
        switch (objForm.elements[i].type) {
           case "text":
           case "textarea":   objForm.elements[i].value='';
                              break;
           case "select-one": if (objForm.elements[i].name != objList.name) {
                                if (objForm.elements[i].options[0].text=='')
                                  objForm.elements[i].selectedIndex = -1;
                                else
                                  objForm.elements[i].selectedIndex = 0;
                              }
        }
      }
    }
}

/* Función comprueba si existe un campo dentro de un formulario */

function existe_campo(form,campo) {
	for(var i=0; i<form.elements.length; i++) {
		if (form.elements[i].name == campo) {
			return true;
        } /*if*/
    } /*for*/
    return false;
}

/* Función comprueba que el valor de un campo de un formulario no este vacio */

function empty(str) {
	if (str==""){
		alert("Campo obligatorio.\nIntroduzca valor.");
        return true;
    }
	else {
		if (str!=null) {
			for (var i=0 ; i<str.length; i++){
				if (str.charAt(i)!= " ")
				return false;
            } /*for*/
			alert("Campo obligatorio.\nIntroduzca valor.");
			return true;
		}/*if*/
        return false;
	}
}

function vacio(objeto) {

	if (objeto.value==""){
           alert("Campo obligatorio.\nIntroduzca valor.");
           objeto.focus();
           objeto.select();
           return true;
    }
    else {
		if (objeto.value!=null) {
            for (var i=0 ; i<objeto.value.length; i++){
				if (objeto.value.charAt(i)!= " ") return false;
            } /*for*/
			alert("Campo obligatorio.\nIntroduzca valor.");
			objeto.focus();
			objeto.select();
	        return true;
		}/*if*/
		return false;
	}
}

function vacio_sin_alert(objeto) {
	if (objeto.value==""){
	   return true;
	  }
	else {if (objeto.value!=null) {
		for (var i=0 ; i<objeto.value.length; i++){
		if (objeto.value.charAt(i)!= " ")
			return false;
		} /*for*/
	   return true;
		}/*if*/
	   return false;
	  }
}

/*Función que comprueba si el valor de un campo es o no vacío.*/

function tiene_algo(str) {
	if (str!="") return true
  	else {
		alert("Seleccione día y hora.");
		return false;
	}
}

/*Función que comprueba si el valor de una campo es o no vacío.*/

function tiene_algo2(str) {
	if (str!="") return true
	else {
		alert("Seleccione día.");
		return false;
	}
}

/*Función que comprueba si el valor de una campo es o no vacío.*/

function tiene_algo3(str) {
	if (str!="") return true
	else {
		alert("Seleccione hora.");
		return false;
	}
}

/*Función que comprueba si el valor de un campo es o no vacio */

function tiene_algo4(str) {
	if (str!="") return true
    else {
    	alert("Seleccione al menos un curso.");
        return false;
    }
}

/* Función comprueba que todos los campos de un formulario no esten vacios */

function any_empty(forms) {
   for(var i=0; i<forms.elements.length; i++) {
	  if (empty(forms.elements[i].value)) {
		 forms.elements[i].focus();
		 forms.elements[i].select();
		 return false;
		 }/*if*/
	  }
	return true;
}

/* Función  comprueba que un campo sea numérico */

function checkNumber(text) {
	var str=text.value;
	for (var i=0; i<str.length; i++) {
	     var ch = str.substring(i, i + 1);
         if ((ch < "0" || ch > "9") && (ch != ",")) {
		    alert("Valor numérico introducido\nincorrecto.");
			text.focus();
			text.select();
			return false;
		}
	}
    return true;
}

/* Comprueba que el valor introducido coincida con un mes del año */

function checkMes(text) {
	var error = 0;
	var str=text.value;
	if (str.length == 2){
	   if (str.substring(0,1) == "1") {
	     if (str.substring(1,2) < "0" || str.substring(1,2) > "2") {
			error = 1;
         }
       }
       else {
       	 error = 1;
       }
	}
    else {
	   if (str < "1" || str > "9") {
	      error = 1;
       }
    }
	if (error == 1) {
	   alert("Valor no corresponde a\n un mes del año.");
	   text.focus();
       text.select();
	   return false;
    }
    return true;
}

/* Función comprueba que un campo tenga formato fecha:DD/MM/AAAA */

function checkDate(text) {
	checkDate(text,0);
}

/* Función comprueba que un campo tenga formato fecha:DD/MM/AAAA */

function checkDate(text,idioma) {
		 if (isNaN(idioma)){
		 	idioma=0;
		 }
		 
         var str=text.value;
         var cad, dia, mes, ano;
         var error=0;
         if (str.length==0) {error=0}
         else if (str.charAt(0)==" "){ error=1; }
         else if (str.length!=6&&str.length!=8&&str.length!=10) {error=1}
         else {
             for (i=0;i<str.length;i++) {
                 if (((i!=2) && (i!=5))||str.length==6) {
                    cad=str.charAt(i);
                    if ((cad<"0") || (cad>"9"))
                         error=1;
                 }/*if*/
              } /*for*/
             if (error==0) {
                dia=str.substring(0,2);
                if (str.length==6) {
                	mes=str.substring(2,4);
                	ano=str.substring(4,6);
                }
        	else{
        		mes=str.substring(3,5);
        		if (str.length==8) ano=str.substring(6,8);
        		else ano=str.substring(6,10);
        	}

        	if ((eval(dia)>31) || (eval(dia)<1)) error=3;
                if ((eval(mes)>12) || (eval(mes)<1)) error=4;
                if (((eval(mes)==4)||(eval(mes)==6)||(eval(mes)==9)||(eval(mes)==11))&&(eval(dia)>30)) error=2;
                if ((eval(mes)==2)&& ( ((eval(ano)%4==0)&&(eval(dia)>29)) || ((eval(ano)%4!=0)&&(eval(dia)>28)) ) ) error=2;
		if (str.length==10) {if ((eval(ano)>2100) || (eval(ano)<1900)) error=1; }
		else {
			if (eval(ano)<34) ano='20'+ano;
			else ano='19'+ano;
		}

             }/*if*/
         }
         if (error == 1) {

             if(idioma==0){
             	alert("Formato fecha incorrecta\n    (DD/MM/AAAA) o (DDMMAA) o (DD/MM/AA)");
             }else {
             	alert("Wrong date format\n    (DD/MM/AAAA) o (DDMMAA) o (DD/MM/AA)");
             }
             text.focus();
             text.select();
             return false;
             }
         else if (error == 2) {
         	 if (idioma == 0) {
             	alert("Formato fecha incorrecta\n    Día incorrecto para el mes especificado");
             }else {
             	alert("Wrong date format\n    Incorrect day for the specified month");
             }
             text.focus();
             text.select();
             return false;
             }
         else if (error == 3) {
         	 if (idioma == 0) {
             	alert("Formato fecha incorrecta\n    Día incorrecto");
             }else {
                alert("Wrong date format\n    Incorrect day");
             }
             text.focus();
             text.select();
             return false;
             }
         else if (error == 4) {
         	 if (idioma == 0) {
             	alert("Formato fecha incorrecta\n    Mes incorrecto");
             }else {
             	alert("Wrong date format\n    Incorrect month");
             }
             text.focus();
             text.select();
             return false;
             }
         else {
         	text.value=dia+'/'+mes+'/'+ano;
         	return true;
        }
}

/* Función que comprueba que en un grupo de botones de radio haya uno seleccionado */

function ischecked(objform,objradio) {
  for(var i=0; i<objradio.length; i++) {
     if (objradio[i].checked) {
        return true;
     }/*if*/
  }/*for*/
  alert("Seleccione el tipo\n de usuario.");
  return false;
}

/* Función comprueba que se ha seleccionado al menos una de las casillas de verificación
   de un formulario */

function verifyCheck(objform) {
    for (var i=0; i<objform.elements.length; i++) {
          if (objform.elements[i].checked) {
              objform.submit();
              return true;
              }/*if*/
           }/*for*/
    alert("No hay ninguna casilla\nde verificación seleccionada.");
	return false;
}

/* Función comprueba que se ha seleccionado al menos una de las casillas de verificación
   de un formulario */

function verifyCheck_num(objform,num) {

     for (var i=num; i<objform.elements.length; i++) {
          if (objform.elements[i].checked) {
              objform.submit();
              return true;
              }/*if*/
           }/*for*/
     alert("No hay ninguna casilla\nde verificación seleccionada.");
     return false;
   }



/*Función que permite anular el contenido del campo "text2" dependiendo del valor que tenga
  el campo "text1"*/

function select_text(text1,text2) {
     var n=text1.selectedIndex;
     var ch=text1.options[n].value.charAt(0);
     if ((ch=="D") || (ch=="F") ||
         (ch=="G") || (ch=="3") ||
         (ch=="4") || (ch=="5") ||
         (ch=="6") || (ch=="7") ||
         (ch=="8")) {
            if (text2.value!="") {
               alert("No introducir curso académico\npara ese tipo de certificado.");
               text2.value="";
               };/*if*/
            return true;
            }/*if*/
      else {if (empty(text2.value)) {
               text2.focus();
               text2.select();
               return false;
               }/*if*/
            else {
               if (!checkNumber(text2)) return false;
               return true;
               }/*else*/
            }/*else*/
         }
         
/* Función que comprueba que el contenido de un campo de texto sea un número mayor
   que cero. */

function gtzero(text) {
     if (checkNumber(text)) {
        if (eval(text.value)==0) {
            alert("El número introducido tiene que\nser mayor que cero.");
            text.focus();
            text.select();
            return false;
            }/*if*/
        return true;
        }/*if*/
     return false;

  }

/* Función que comprueba que el número introducido este entre 8 y 15 (Para Horarios CMD) */

function compruebahora(text) {
     if (checkBinario(text)) {
        if (eval(text.value)>15 || eval(text.value)<8) {
            alert("El número introducido tiene que\nser mayor o igual que 8\ny menor o igual que 15");
            text.focus();
            text.select();
            return false;
            }/*if*/
        return true;
        }/*if*/
     return false;
}

/* Función que comprueba que el número introducido este entre 0 y 60, y sea divisor de 60 (Horarios CMD) */

function compruebamin(text) {
     if (checkBinario(text)) {
        if (eval(text.value) >= 0 && eval(text.value) <60) {return true;}
        else{
             alert("El número introducido tiene que\nser mayor o igual que 0\ny menor que 60.");
             text.focus();
             text.select();
             return false;
            }/*else*/
     }/*if*/
     return false;
}

/* Función que comprueba que la división del intervalo temporal que va desde la hora de inicio text2:text3 hasta la hora de fin text4:text5 por el intervalo text1 de como resultado un número natural */

function compruebafrec(text1,text2,text3,text4,text5) {
       var hi = eval(text2.value);
       var mi = eval(text3.value);
       var hf = eval(text4.value);
       var mf = eval(text5.value);

       if (checkNumber(text1)){
         if (hf < hi) {
             alert("La hora de fin ha de\nser mayor que la hora de inicio.");
             text4.focus();
             text4.select();
             return false;
         }
         else{
             if (hi == hf){
                if (mf <= mi){
                    alert("La hora de fin ha de\nser mayor que la hora de inicio.");
                    text5.focus();
                    text5.select();
                    return false;
                }
              }
         }
         var t = (hf - hi)*60 + (mf - mi);
         if (t%eval(text1.value) == 0){ return true; }
         else{
            alert("El número de consultas que se\nobtienen no es un número entero.");
            text1.focus();
            text1.select();
            return false;
         }
      }
      return false;
}

/* Función que verifica los campos de tarifas de precios: ptas, y euros. */

function verifyTarifa(objform) {
     var error=1;
     if ((objform.elements[4].value)=="") error=4;
     if ((objform.elements[7].value=="") && (error==1)) error=7;
     if ((objform.elements[10].value=="") && (error==1)) error=10;
     if ((objform.elements[13].value=="") && (error==1)) error=13;
     if ((error==4) || (error==7) || (error==10) || (error==13)) {
         alert("Campo obligatorio.\nIntroduzca valor.");
         objform.elements[error].focus();
         return false;
         };/*if*/
     for (var i=4;i<16;i++) {
         if (objform.elements[i].value!="") {
             if (!checkNumber(objform.elements[i]))
             return false;
             }/*if*/
         }/*for*/
     objform.submit();
     return true;
}



/* Función que comprueba que el campo introducido es un número de dos dígitos */

function checkBinario(text) {

     var str=text.value;
     if (str.length == 2)
     {
        if (!(checkNumber(text)))
          return false;
     }
     else
     {
        alert("Campo de dos caracteres");
        text.focus();
        text.select();
        return false;
     };
     return true;
}



/* Función que comprueba que el campo introducido es un número de cuatro dígitos */

function checkano(text) {

  var str=text.value;
  if (str.length == 4)
   {
       if (!(checkNumber(text)))
	 return false;
   }
  else
   {
	alert("Campo de cuatro caracteres");
	text.focus();
	text.select();
	return false;
   };
  return true;
}

function checkano_curso(text) {

var str=text.value;
 if (str.length == 4)
   {
     if (!(checkNumber(text)))
      {
       return false;
      }
     if ((eval(text.value)<1996) || (eval(text.value)>2025))
      {
	alert("Año debe estar entre 1996 y 2025");
        text.focus();
        text.select();
        return false;
      }
   }
 else
   {
       alert("Campo de cuatro caracteres");
       text.focus();
       text.select();
       return false;
  };
  return true;
}



/* Función que comprueba que el valor del campo 1 es menor o igual que la suma
   de los campos 2 y 3 del formulario */

function minpp(objform) {
    for (var i=1; i<4; i++) {
        if (!checkNumber(objform.elements[i])) return false;
     }
    num1=eval(objform.elements[1].value);
    num2=eval(objform.elements[2].value);
    num3=eval(objform.elements[3].value);
    if (num3 > (num1 + num2)) {
       alert("Número de personas \nmínimo insuficientes.");
       objform.elements[1].focus();
       objform.elements[1].select();
       return false;
       }
    return true;

}


/* Función que informa de como utilizar el botón de impresión. */

function como_imprimo() {
     var mensaje;
     mensaje="Para imprimir presione el botón \n";
     mensaje+="que aparece en la parte inferior\n";
     mensaje+="izquierda de la página siguiente\n";
     mensaje+="antes de 8 segundos.";
/*     alert(mensaje);   */
     }


/* Función que comrpueba que la fecha se haya introducido con formato MM/YYYY */

function checkDate2(text) {
     var str=text.value;
     var cad;
     var error=0;
     if (str.length<7) {error=1}
     else {
	  for (i=0;i<str.length;i++) {
	      if (i!=2) {
	       cad=str.charAt(i);
	       if ((cad<"0") || (cad>"9"))
	          error=1;
	      }/*if*/
	  } /*for*/
 	  if (error==0) {
   	     cad=str.substring(0,2);
  	     if ((eval(cad)>12) || (eval(cad)<1)) error=1;
  	     if (str.charAt(2)!='/') error=1;
  	     cad=str.substring(3,7);
    	     if ((eval(cad)>2100) || (eval(cad)<1900)) error=1;
	  }/*if*/
    }
    if (error == 1){
      alert("Formato fecha incorrecta\n    (MM/AAAA)");
      text.focus();
      text.select();
      return false;
    }
    else return true;
 }


/*Función que permite anular el contenido del campo "text2" dependiendo del valor que tenga el campo "text1"
  para la petición de certificados del tercer ciclo*/

 function select2(text1,text2) {
    var n=text1.selectedIndex;
    var ch=text1.options[n].value.charAt(0);
    if (ch!="C") {
         if (text2.value!="") {
            alert("No introducir curso académico\npara ese tipo de certificado.");
            text2.value="";
	   };/*if*/
	 return true;
	 }/*if*/
    else {if (empty(text2.value)) {
	  text2.focus();
	  text2.select();
	  return false;
	  }/*if*/
          else {
	    if (!checkNumber(text2)) return false;
	    return true;
	 }/*else*/
     }/*else*/
    }

function lsDate(text1,text2) {
         var str1=text1.value;
         var str2=text2.value;
         var cad1,cad2;
         var error=0;

         cad1 = str1.substring(6,10)
         cad2 = str2.substring(6,10);

         if (eval(cad1) > eval(cad2))
         {
            error = 1;
         }
         else
         {
           if (eval(cad1) == eval(cad2))
           {
               cad1 = str1.substring(3,5);
               cad2 = str2.substring(3,5);
               if (eval(cad1) > eval(cad2))
               {
                  error = 1;
               }
               else
               {
                   if (eval(cad1) == eval(cad2))
                   {
                     cad1 = str1.substring(0,2);
                     cad2 = str2.substring(0,2);
                     if (eval(cad1) > eval(cad2))
                     {
                         error = 1;
                     }
                   }
              }
           }
         }
         if (error == 1)
         {
             alert("Fecha inicial mayor \n que Fecha final");
             text1.focus();
             text1.select();
             return false;
         }
         else return true;
        }



