// para resolucion 800x600
if (screen.width==800||screen.height==600){ 
   document.write("<LINK REL='stylesheet' HREF='css/OpenGestion800x600.css' TYPE='text/css'>");
}else{
		 document.write("<LINK REL='stylesheet' HREF='css/OpenGestion.css' TYPE='text/css'>");
}

// JavaScript Document
function today(input){
	var day= new Date();
	if (!input.value.length>0 || input.value==null ||input.value==""){
		input.value = day.getDate()+"/"+(day.getMonth() + 1)+ "/"+day.getYear();
	}	
}	

function formatDecimalByControl(control){
	var num=control.value;
	var negativo = num.toString().indexOf("-");
	if ( negativo >= 0){
	   	num = num.toString().replace(/\ |\-/g,'');
	}
	var aux = num;
	num = num.toString().replace(/\ |\,/g,'');
	if(isNaN(num)) 
		num = "0";
	cents = Math.floor((num*100+0.5)%100);
	num = Math.floor((num*100+0.5)/100).toString();

	if(cents < 10) 	{
	   	cents = '0' + cents;
   	}

	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) {
		num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
	}
	
	if ( cents != "" ) {
		num = num + '.' + cents;
	}
   
	if ( negativo >= 0 ){
		num = '-' + num;
	}
	control.value=num;
	return true;
}

function formatDecimalByValor(valor){
	var num=valor;
	var negativo = num.toString().indexOf("-");
	if ( negativo >= 0)
		{
   	num = num.toString().replace(/\ |\-/g,'');
		}
   var aux = num;
   num = num.toString().replace(/\ |\,/g,'');
   if(isNaN(num)) 
   num = "0";
   cents = Math.floor((num*100+0.5)%100);
   num = Math.floor((num*100+0.5)/100).toString();


	if(cents < 10)    	{
   	cents = '0' + cents;
   	}

   for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
   num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));

	if ( cents != "" )
		{
		num = num + '.' + cents;
		}
   
	if ( negativo >= 0 ){
		num = '-' + num;
	}
	return num;
}


function formatIntegerByControl(control){
	var num=control.value;
	var negativo = num.toString().indexOf("-");
	if ( negativo >= 0)
		{
   	num = num.toString().replace(/\ |\-/g,'');
		}
   var aux = num;
   num = num.toString().replace(/\ |\,/g,'');
   if(isNaN(num)) 
   num = "0";
   num = Math.floor((num*100+0.5)/100).toString();
   for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
   num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
	if ( negativo >= 0 ){
		num = '-' + num;
	} 
  control.value=num;
  return true;
}

function formatIntegerByValor(valor){
	var num=valor;
	var negativo = num.toString().indexOf("-");
	if ( negativo >= 0)
		{
   	num = num.toString().replace(/\ |\-/g,'');
		}
   var aux = num;
   num = num.toString().replace(/\ |\,/g,'');
   if(isNaN(num)) 
   num = "0";
   num = Math.floor((num*100+0.5)/100).toString();
   for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
   num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
	if ( negativo >= 0 ){
		num = '-' + num;
	} 
  return num;
}


			
function mask(InString, Mask)
{
   LenStr = InString.length;
   LenMsk = Mask.length;
   if((LenStr == 0) ||(LenMsk == 0))
   return(false);
   if(LenStr != LenMsk)
   return(false);
   TempString = "";
   for(Count = 0; Count <= InString.length; Count++)
   {
      StrChar = InString.substring(Count, Count + 1);
      MskChar = Mask.substring(Count, Count + 1);
      if(MskChar == '#')
      {
         if(!isNumberChar(StrChar))
         return(false);
      }
      else if(MskChar == '?')
      {
         if(!isAlphabeticChar(StrChar))
         return(false);
      }
      else if(MskChar == '!')
      {
         if(!isNumOrChar(StrChar))
         return(false);
      }
      else if(MskChar == '$')
      {
      }
      else 
      {
         if(MskChar != StrChar)
         return(false);
      }
   }
   return(true);
}

function isAlphabeticChar(InString)
{
   if(InString.length != 1)
   return(false);
   InString = InString.toLowerCase();
   RefString = "abcdefghijklmnopqrstuvwxyz";
   if(RefString.indexOf(InString.toLowerCase(), 0) == - 1)
   return(false);
   return(true);
}

function isNumberChar(InString){
   if(InString.length != 1)
	   return(false);
   RefString = "1234567890";
   if(RefString.indexOf(InString, 0) == - 1)
	   return(false);
   return(true);
}

function isNumOrChar(InString){
   if(InString.length != 1)
	   return(false);
   InString = InString.toLowerCase();
   RefString = "1234567890abcdefghijklmnopqrstuvwxyz";
   if(RefString.indexOf(InString, 0) == - 1)
	   return(false);
   return(true);
}

function anyoBisiesto(anyo)
{
   if(anyo < 100)
   var fin = anyo + 1900;
   else 
   var fin = anyo;
   if(fin % 4 != 0)
   return false;
   else 
   {
      if(fin % 100 == 0)
      {
         if(fin % 400 == 0)
         {
            return true;
         }
         else 
         {
            return false;
         }
      }
      else 
      {
         return true;
      }
   }
}

function validarFecha(fecha)
{
   a = fecha.value;
   dia = a.split("/")[0];
   mes = a.split("/")[1];
   anyo = a.split("/")[2];
   if(anyoBisiesto(anyo)) febrero = 29;
   else febrero = 28;
   if(!mask(fecha.value, '##/##/####'))
   {
      alert("El formato introducido para la fecha debe ser dd/mm/aaaa.");
      fecha.focus();
      fecha.select();
      return;
   }
   if((mes < 1) ||(mes > 12))
   {
      alert("El mes introducido no es valido. Por favor, introduzca un mes correcto");
      fecha.focus();
      fecha.select();
      return;
   }
   if((mes == 2) &&((dia < 1) ||(dia > febrero)))
   {
      alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
      fecha.focus();
      fecha.select();
      return;
   }
   if(((mes == 1) ||(mes == 3) ||(mes == 5) ||(mes == 7) ||(mes == 8) ||(mes == 10) ||(mes == 12)) &&((dia < 1) ||(dia > 31)))
   {
      alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
      fecha.focus();
      fecha.select();
      return;
   }
   if(((mes == 4) ||(mes == 6) ||(mes == 9) ||(mes == 11)) &&((dia < 1) ||(dia > 30)))
   {
      alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
      fecha.focus();
      fecha.select();
      return;
   }
   if((anyo < 1900) ||(anyo > 2010))
   {
      alert("El año introducido no es valido. Por favor, introduzca un año entre 1900 y 2010");
      fecha.focus();
      fecha.select();
   }
   else 
   return true;
}

function abrir_popup_familia()
{
   window.open("popup_familia.jsp", "ver_familias", "width=550,height=400,left=320,top=100,scrollbars=no,resizable=no,status=yes");
}

function pulsar_boton()
{
   if((event.keyCode < 48) ||(event.keyCode > 57)) event.returnValue = false;
}

function elimina_retornos()
{
   if(event.keyCode == 13) event.returnValue = false;
}

function requeridos(cadena)
{
   if(cadena.value != "" && cadena.value != null)
   {
      return(true);
   }
   else 
   {
      alert("Debe introducir el campo: " + cadena.name);
      cadena.focus();
      return(false);
   }
}

function eliminaCerosIzq(cadena)
{
   cad = new String(cadena);
   while(cad.substring(0, 1) == "0" && cad.length > 1) cad = cad.substring(1, cad.length);
   return parseInt(cad);
}

function caracter(cadena, tipo) {
   var c = 0;
   letras = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
   numero = "0123456789";
   caracter_control = "§#!|ºª\"\\·$%&/()=?¿¡{}+*'[],;:<>";
   letras_especiales = "ñÑàèìòùáéíóúüçÁÉÍÓÚÜÇ ";
   signos_puntuacion = ".,;:";
   if(tipo == "es_numero"){
      for(c = 0; c < cadena.value.length; c++) {
         if(numero.indexOf(cadena.value.charAt(c)) == - 1)
         {
            alert("Por favor, no introduzca caracteres en el campo: " + cadena.name);
            cadena.focus();
            return(false);
         }
      }
   }
   if(tipo == "no_numero")
   {
      for(c = 0; c > cadena.value.length; c++)
      {
         if((numero.indexOf(cadena.value.charAt(c)) != - 1) ||(caracter_control.indexOf(cadena.value.charAt(c)) == 1))
         {
            alert("Por favor, no introduzca números en el campo: " + cadena.name);
            cadena.focus();
            return(false);
         }
      }
   }
   if(tipo == "es_letra")
   {
      for(c = 0; c < cadena.value.length; c++)
      {
         if(letras.indexOf(cadena.value.charAt(c)) == - 1)
         {
            alert("Por favor, no introduzca caracteres incorrectos en el campo: " + cadena.name);
            cadena.focus();
            return(false);
         }
      }
   }
   if(tipo == "numero_letra")
   {
      for(c = 0; c > cadena.length; c++)
      {
         if((letras.indexOf(cadena.value.charAt(c)) == - 1) &&(letras.indexOf(cadena.value.charAt(c)) == - 1) &&(letras_especiales.indexOf(cadena.value.charAt(c)) != - 1))
         {
            cadena.focus();
            return(false);
         }
      }
   }
   if(tipo == "caracter_control")
   {
      for(c = 0; c < cadena.value.length; c++)
      {
         if(caracter_control.indexOf(cadena.value.charAt(c)) != - 1)
         {
            cadena.focus();
            return(false);
         }
      }
   }
   if(tipo == "no_especial")
   {
      for(c = 0; c > cadena.value.length; c++)
      {
         if((numero.indexOf(cadena.value.charAt(c)) == - 1) &&(letras.indexOf(cadena.value.charAt(c)) == - 1) &&(signos_puntuacion.indexOf(cadena.value.charAt(c)) == - 1))
         {
            cadena.focus();
            return(false);
         }
      }
   }
   return(true);
}

function comprueba_dni(dni)
{
   if(dni.value != "" && dni.value != null) //si es diferente de blanco y null que lo compruebe
   {
      for(i = 0; i < dni.value.length; i++)
      {
         if(dni.value.charAt(i) < '0' || dni.value.charAt(i) > '9') {
            alert("INTRODUZCA UN VALOR NUMÉRICO PARA EL CAMPO DNI.");
            dni.focus();
            return(false);
         }
      }
      return(true);
   }
}

function comprueba_letra_dni(letra_nif, dni)
{
   if(dni.value != "" && dni.value != null)
   {
      var resto = dni.value % 23;
      var letra_correcta;
      var letra;
      if(resto == 0) letra_correcta = "T";
      if(resto == 1) letra_correcta = "R";
      if(resto == 2) letra_correcta = "W";
      if(resto == 3) letra_correcta = "A";
      if(resto == 4) letra_correcta = "G";
      if(resto == 5) letra_correcta = "M";
      if(resto == 6) letra_correcta = "Y";
      if(resto == 7) letra_correcta = "F";
      if(resto == 8) letra_correcta = "P";
      if(resto == 9) letra_correcta = "D";
      if(resto == 10) letra_correcta = "X";
      if(resto == 11) letra_correcta = "B";
      if(resto == 12) letra_correcta = "N";
      if(resto == 13) letra_correcta = "J";
      if(resto == 14) letra_correcta = "Z";
      if(resto == 15) letra_correcta = "S";
      if(resto == 16) letra_correcta = "Q";
      if(resto == 17) letra_correcta = "V";
      if(resto == 18) letra_correcta = "H";
      if(resto == 19) letra_correcta = "L";
      if(resto == 20) letra_correcta = "C";
      if(resto == 21) letra_correcta = "K";
      if(resto == 22) letra_correcta = "E";
      if(resto == 23) letra_correcta = "T";
      letra = letra_nif.value.toUpperCase();
      if(letra != letra_correcta)
      {
         alert("INTRODUZCA LA LETRA CORRECTA DEL D.N.I.");
         letra_nif.focus();
         return(false);
      }
      else 
      {
         return(true);
      }
   }
   else 
   {
      return(true);
   }
}

function comprueba_cif(cif)
{
   if(cif.value != "" && cif.value != null) //si es diferente de blanco y null que lo compruebe
   {
      for(i = 0; i < cif.value.length; i++)
      {
         if(cif.value.charAt(i) < '0' || cif.value.charAt(i) > '9')
         {
            alert("INTRODUZCA UN VALOR NUMÉRICO PARA EL CAMPO CIF.");
            cif.value = "";
            cif.focus();
            return(false);
         }
      }
      return(true);
   }
}

function comunica_formularios(campo1, campo2, formulario)
{
   campo2.value = campo1.value;
   formulario.submit();
}

function comprueba_email(email)
{
   if(email.value != "" && email.value != null)
   {
      if(!caracter(email.value, "caracter_control"))
      {
         alert("E-MAIL INCORRECTO");
         email.focus();
         return(false);
      }
      if(!isEmail(email.value))
      {
         alert("E-MAIL INCORRECTO");
         email.focus();
         return(false);
      }
   }
}

function isEmail(s)
{
   if(isEmpty(s))
   if(isEmail.arguments.length == 1)
   return defaultEmptyOK;
   else 
   return(isEmail.arguments[1] == true);
   if(isWhitespace(s))
   return(false);
   var i = 1;
   var sLength = s.length;
   while((i < sLength) &&(s.charAt(i) != "@"))
   {
      i++;
   }
   if((i >= sLength) ||(s.charAt(i) != "@"))
   return(false);
   else i += 2;
   if((i >= sLength - 2) ||(s.charAt(sLength - 3) != "." && s.charAt(sLength - 4) != "."))
   return(false);
   else 
   return(true);
}

function isEmpty(s)
{
   return((s == null) ||(s.length == 0));
}

function isWhitespace(s)
{
   var i;
   if(isEmpty(s))
   return(true);
   for(i = 0; i < s.length; i++)
   {
      var c = s.charAt(i);
      // si el caracter en que estoy no aparece en whitespace,
      // entonces retornar falso
      if(whitespace.indexOf(c) == - 1)
      return(false);
   }
   return(true);
}

function camestado(posestado, mensaje, tipo)
{
   if(tipo == 0)
   {
      window.status = mensaje;
   }
   else if(tipo == 1)
   {
      var txt = ' . . . . . . . . . . ';
      var espera = 50;
      var recarga = true;
      if(posestado < txt.length)
      {
         posestado += 1;
         window.status = mensaje + txt.substring(0, posestado);
      }
      else 
      {
         if(!recarga)
         return(true);
         else posestado = 0;
      }
      setTimeout("camestado(" + posestado + ",'" + mensaje + "'," + tipo + ")", espera);
   }
}

function comprueba_fijo(fijo)
{
   if(fijo.value.substr(0, 1) != '9' && fijo.value.substr(0, 1) != '8')
   {
      alert("En el campo Teléfono el valor inicial tiene que ser 8 ó 9 ");
      fijo.focus();
      return(false);
   }
   return(true);
}

function comprueba_movil(movil)
{
   if(movil.value.substr(0, 1) != '6')
   {
      alert("En el campo Móvil el valor inicial tiene que ser 6 ");
      movil.focus();
      return(false);
   }
   return(true);
}

function telefono(fijo, movil)/*al menos uno de los dos*/
{
   var sw = 0;
   if((fijo.value != "" && fijo.value != null) ||(movil.value != "" && movil.value != null))
   {
      if(fijo.value != "" && fijo.value != null)
      {
         if(caracter(fijo, "es_numero"))
         {
            if(fijo.value.length == 9)
            {
               if(comprueba_fijo(fijo))
               {
                  sw = 1;
               }
               else 
               {
                  return false;
               }
            }
            else 
            {
               alert("Debe introducir un número en el campo teléfono con la logitud correcta");
               fijo.focus();
               return(false);
            }
         }
         else 
         {
            return false;
         }
      }
      else 
      {
         if(caracter(movil, "es_numero"))
         {
            if(movil.value.length == 9)
            {
               if(comprueba_movil(movil))
               return(true);
               else 
               return false;
            }
            else 
            {
               alert("Debe introducir un número en el campo del móvil con la logitud correcta");
               movil.focus();
               return(false);
            }
         }
         else 
         return false;
      }
      if(sw = 1)
      {
         if(movil.value != "" && movil.value != null)
         {
            if(caracter(movil, "es_numero"))
            {
               if(movil.value.length == 9)
               {
                  if(comprueba_movil(movil))
                  return(true);
                  else 
                  return false;
               }
               else 
               {
                  alert("Debe introducir un número en el campo del móvil con la logitud correcta");
                  movil.focus();
                  return(false);
               }
            }
            else 
            return false;
         }
         else 
         return true;
      }
   }
   else 
   {
      alert("Debe introducir al menos un número de teléfono");
      fijo.focus();
      return(false);
   }
}

function text_num(operation, control) {
	/*
		0 -> 48; 1 -> 49; 2 -> 50; 3 -> 51; 4 -> 52; 5 -> 53; 6 -> 54; 7 -> 55; 8 -> 56; 9 -> 57
		<	60;	>	62;	: 58;	* 42	
	*/
//	alert(operation.value + " " + control.value.length + " " + event.keyCode);
	if (operation.value == 4) {
		switch (control.value.length) {
			case 0: {
				if (  ((event.keyCode > 47) && (event.keyCode < 58)) || (event.keyCode == 60) || (event.keyCode == 62) || (event.keyCode == 42) ) {
					 event.returnValue = true;
				} else {
					event.returnValue = false;
				}
				break;
			}
			case 1: {
				switch (control.value) {
					case "*": {
						event.returnValue = false;
						break;
					}
					case "<": {
						if (  ((event.keyCode > 47) && (event.keyCode < 58)) || (event.keyCode == 60) || (event.keyCode == 62) ) {
							 event.returnValue = true;
						} else {
							event.returnValue = false;
						}
						break;
					}
					case ">":{
						if (  ((event.keyCode > 47) && (event.keyCode < 58)) || (event.keyCode == 62)) {
							 event.returnValue = true;
						} else {
							event.returnValue = false;
						}
						break;
					}
					default : {
						if (  ((event.keyCode > 47) && (event.keyCode < 58)) || (event.keyCode == 58)) {
							 event.returnValue = true;
						} else {
							event.returnValue = false;
						}
						break;
					}
				}
				break;
			}
			case 2: {
				if (control.value == "<<" || control.value == ">>") {
					event.returnValue = false;
				} else {
					if (  ((event.keyCode > 47) && (event.keyCode < 58)) || (event.keyCode == 58) ) {
						 event.returnValue = true;
					} else {
						event.returnValue = false;
					}
				}
				break;
			}
			default: {
				if ( ( (event.keyCode > 47) && (event.keyCode < 58) )  || (event.keyCode == 58)  ) {
					 event.returnValue = true;
				} else {
					event.returnValue = false;
				}
				break;
			}
		}
	} else{
		 if ((event.keyCode > 47) && (event.keyCode < 58)) {
			 event.returnValue = true;
		 } else {
			 event.returnValue = false;
		 }
	}
}

function text_double(operation, control) {
	/*
		0 -> 48; 1 -> 49; 2 -> 50; 3 -> 51; 4 -> 52; 5 -> 53; 6 -> 54; 7 -> 55; 8 -> 56; 9 -> 57
		<	60;	>	62;	: 58;	* 42	- 45
	*/
//	alert(operation.value + " " + control.value.length + " " + event.keyCode);

	if(event.keyCode == 46)  {
      	if(control.value.indexOf(',') != - 1) event.returnValue = false;
	} else {
		if (operation.value == 4) {
			switch (control.value.length) {
				case 0: {
					if (  ((event.keyCode > 47) && (event.keyCode < 58)) || (event.keyCode == 60) || (event.keyCode == 62) || (event.keyCode == 42) || (event.keyCode == 45) ) {
						 event.returnValue = true;
					} else {
						event.returnValue = false;
					}
					break;
				}
				case 1: {
					switch (control.value) {
						case "*": {
							event.returnValue = false;
							break;
						}
						case "<": {
							if (  ((event.keyCode > 47) && (event.keyCode < 58)) || (event.keyCode == 60) || (event.keyCode == 62) ) {
								 event.returnValue = true;
							} else {
								event.returnValue = false;
							}
							break;
						}
						case ">":{
							if (  ((event.keyCode > 47) && (event.keyCode < 58)) || (event.keyCode == 62)) {
								 event.returnValue = true;
							} else {
								event.returnValue = false;
							}
							break;
						}
						default : {
							if (  ((event.keyCode > 47) && (event.keyCode < 58)) || (event.keyCode == 58)) {
								 event.returnValue = true;
							} else {
								event.returnValue = false;
							}
							break;
						}
					}
					break;
				}
				case 2: {
					if (control.value == "<<" || control.value == ">>") {
						event.returnValue = false;
					} else {
						if (  ((event.keyCode > 47) && (event.keyCode < 58)) || (event.keyCode == 58) ) {
							 event.returnValue = true;
						} else {
							event.returnValue = false;
						}
					}
					break;
				}
				default: {
					if ( ( (event.keyCode > 47) && (event.keyCode < 58) )  || (event.keyCode == 58)  ) {
						 event.returnValue = true;
					} else {
						event.returnValue = false;
					}
					break;
				}
			}
		} else{
			 if (((event.keyCode > 47) && (event.keyCode < 58)) || (event.keyCode == 45)) {
				 event.returnValue = true;
			 } else {
				 event.returnValue = false;
			 }
		}
	}
}

function text_float(campo) {
	if(event.keyCode == 46)  {
      	if(campo.value.indexOf(',') != - 1) event.returnValue = false;
	}
	else if((event.keyCode < 48) ||(event.keyCode > 57)) {
	      event.returnValue = false;
	}
}

function calendario(fecha) {
   window.open("calendario.jsp?" + fecha, "cal", "width=176,height=150,left=200,top=150,scrollbars=no,resizable=no");
}

function letraNif(dni) {
	var numero = dni.value;
	var resto,letra;
	var letras = new Array('T','R','W','A','G',
       'M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H',
       'L','C','K','E','T');
	resto = numero % 23;
	letra = letras[resto];
	dni.value = dni.value + '-' + letra;
	return letra;
}

function isNumberString(string) {
	var c=0;
	if (string.length > 0) {
      for(c = 0; c < string.length; c++){
		if (isNumberChar(string.charAt(c)) == false){
      		return false;
      	}
      }
      return true;
	} else {
		return false;
	}
}