<!--
////////////////////////////////////////////////////////////////////////////////////////////
//FUNCIONES QUE EXISTEN EN ESTE FICHERO                
//	1.esDiaSemana(campo)
//	2.esDiaMes(campo)
//      3.periodoMinMax(desde,hasta)
//	4.esPerido(idobj)	                        
//	5.fechaValida(idobj)                           
//	6.horaValida(idobj)                           
//      7.fechaHoraValida(idobj)				
//	8.comprobar_Fecha(f,tabla)                   
//	9.comprobar_desde_hasta(desde,hasta)        
//	10.horaDesdeHasta(desde,hasta)
//	11.salidaMenorLlegada(salida,llegada,numDias);
//	12.fechaActual();
/////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////
// 1.
/////////////////////////////esDiaSemana()/////////////////////////////////
// ESTA FUNCION COMPRUEBA QUE EL CAMPO INTRODUCIDO SEA UN DIA DE LA SEMANA
// ( L,M,X,J,V,S,D )
/////////////////////////////////////////////////////////////////////////////////////
function esDiaSemana(campo)
{
var valor=quitaBlancos(campo.value);
var cadena=campo.value;
var chr;
		campo.value=valor.toUpperCase();
		for (var i=0;i<campo.value.length;i++)
		{
    			chr=campo.value.substring(i,i+1);
			//alert("chr:"+chr)
    			if ( chr !="L" && chr !="M" && chr !="X" && chr !="J" && chr !="V" && chr !="S" && chr !="D")
    			{
				return false;
			}
    		}
return true;
}

/////////////////////////////////////////////////////////////////////////////////////
// 2.
/////////////////////////////esDiaMes()/////////////////////////////////
// ESTA FUNCION COMPRUEBA QUE EL CAMPO INTRODUCIDO SEA UN DIA DE LA SEMANA
// Y MES (DD,DD,...)
/////////////////////////////////////////////////////////////////////////////////////
function esDiaMes(campo)
{
var valor=quitaBlancos(campo.value);
var cadena=campo.value;
var chr;
		//%2C==>coma
		for(var i=0;i<valor.length;i++)
		{
			chr=valor.substring(i,i+1);
			//alert("chr:"+chr)
			if (chr <"0" || chr >"9" )
			{
				if (escape(chr) == escape(',') && i==0) 
				{
					return false;
				}
				if (escape(chr) == escape(',') && escape(valor.substring(i+1,i+2))== escape(',') )
				{
					return false;
				}
				if (escape(chr) != escape(','))
				{
					return false;
				}
			}
		}
			//CAPTURO EL TIPO CORRESPONDIENTE A ESE REG
			pos=cadena.indexOf(',');
			dia=cadena.substring(0,pos);
			cadena=cadena.substring(pos+1);

			if (cadena<1 || cadena>31)
			{
				return false;
			}
	return true;
}

/////////////////////////////////////////////////////////////////////////////////////
// 3.
/////////////////////////////periodoMinMax(desde,hasta) ////////////////////////////////
//Recibe como parametros los elementos de la tabla correspondientes a los periodos
// CALCULA QUE EL PERIODO DESDE SEA MENOR QUE EL HASTA
/////////////////////////////////////////////////////////////////////////////////////
//Recibe como parametros los elementos de la tabla correspondientes a los periodos
function periodoMinMax(desde,hasta)
{
	var desdef="";
  	var hastaf="";
	if (!esPeriodo(desde.idobj))
	{
		alert("El campo "+desde.texto+" debe ser un periodo correcto (DD/MM).");
		return false;
	}
		
	if (!esPeriodo(hasta.idobj))
	{
		alert("El campo "+hasta.texto+" debe ser un periodo correcto (DD/MM).");
		return false;
	}
     var dia1=desde.idobj.value.substring(0,2);
     var mes1=desde.idobj.value.substring(3,5);
     desdef=mes1+dia1;
     dia1=hasta.idobj.value.substring(0,2);
     mes1=hasta.idobj.value.substring(3,5);
     hastaf=mes1+dia1;
	//alert("hastaf:"+hastaf)
	if (hastaf !="")
	{
    		if (desdef>hastaf)
    		{
    			alert("El campo "+desde.texto+" no puede ser mayor el campo "+hasta.texto);
    			return false;
     		}
	}
 return true;
}
	
/////////////////////////////////////////////////////////////////////////////////////
// 4.
/////////////////////////////esPeriodo(idobj) ////////////////////////////////
// ESTA FUNCION CALCULA QUE EL CAMPO SEA UN PERIODO (DD/MM)
/////////////////////////////////////////////////////////////////////////////////////
function esPeriodo(idobj){
  var dia,mes,mod,chr;
  var valor=quitaBlancos(idobj.value);
  idobj.value=valor; //le quito a la fecha todos los espacios en blanco

  if (idobj.value==null || idobj.value.length==0 || idobj.value==" " || idobj.value=="")
    return true;

  if (idobj.value.length!=5)
     return false;

  for (var i=0;i<5;i++)
  {
    chr=idobj.value.charAt(i);
    if (i!=2)
    {
      if (chr<"0"||chr>"9") return false;
    }
    else
    {
      if (chr!="/") return false;
    }
  }

  dia=parseInt(idobj.value.substring(0,2),10);
  mes=parseInt(idobj.value.substring(3,5),10);
  if (1>dia || dia>31)
    return false;
  if (1>mes || mes>12)
    return false;
  if ((mes==4 || mes==6 || mes==9 || mes==11) && dia==31)
     return false;
  if (mes==2 &&  dia>29)
     return false; 
  else
     return true;
}

/////////////////////////////////////////////////////////////////////////////////////
// 5.
/////////////////////////////fechaValida ////////////////////////////////
//COMPRUEBA SI LA FECHA ES CORRECTA (DIA CORRECTO, MES CORRECTO, AÑO CORRECTO
/////////////////////////////////////////////////////////////////////////////////////
function fechaValida(idobj){
  var dia,mes,yea,mod,chr;
  var valor=quitaBlancos(idobj.value);
  idobj.value=valor;

  if (idobj.value==null || idobj.value.length==0)
    return true;
  if (idobj.value.length!=10)
     return false;
  for (var i=0;i<10;i++){
    chr=idobj.value.charAt(i);
    if (i!=2 && i!=5){
      if (chr<"0"||chr>"9") return false
      }
    else{
      if (chr!="/") return false
      }
    }
  dia=parseInt(idobj.value.substring(0,2),10);
  mes=parseInt(idobj.value.substring(3,5),10);
  yea=parseInt(idobj.value.substring(6,10),10);
  if (1>dia || dia>31)
    return false;
  if (1>mes || mes>12)
    return false;
  if (1>yea)
    return false;
  if ((mes==4 || mes==6 || mes==9 || mes==11) && dia==31)
     return false;
  if (mes==2)
  {
    mod=yea%4;
    if (mod==0)
	{
      mod=yea%100;
	  if(mod==0)
	  	{
	        var mod2=yea%400;
			if(mod2==0 &&  dia>29)
				return false;
			else if(mod2!=0 && dia>28)
			  	return false;
		}
	  else if(dia>29)
	  	return false;
	}
    else if (dia>28)
        return false;
 }
  return true;
}


/////////////////////////////////////////////////////////////////////////////////////
// 6.
////////////////////////////horaValida///////////////////////////////////////
//COMPRUEBA QUE LA HORA ES CORRECTA (24 HORAS)
/////////////////////////////////////////////////////////////////////////////////////


function horaValida(idobj){
  var hor,min,chr;
  var valor=quitaBlancos(idobj.value);
  idobj.value=valor;

  if (idobj.value==null || idobj.value.length==0)
    return true;
  if (idobj.value.length!=5)
     return false;
  for (var i=0;i<5;i++){
    chr=idobj.value.charAt(i);
	
    if (i!=2){
      if (chr<"0"||chr>"9"){
	
	 return false;
      }
	 
    }
    else{
      if (chr!=":"){
	
	return false;
      }
    }
   }
  hor=parseInt(idobj.value.substring(0,2),10);
  min=parseInt(idobj.value.substring(3,5),10);
  if (hor>24)
    return false;
  if (min>60)
    return false;
  return true;
}

/////////////////////////////////////////////////////////////////////////////////////
// 7.
//////////////////////////////fechaHoraValida//////////////////////////////////////////
//COMPRUEBA SI LA FECHA ES CORRECTA (DIA CORRECTO, MES CORRECTO, AÑO CORRECTO
/////////////////////////////////////////////////////////////////////////////////////

function fechaHoraValida(idobj){
  var dia,mes,yea,mod,chr,hora,min;
  var valor=quitaBlancos(idobj.value);
  //idobj.value=valor

  if (valor==null || valor.length==0)
    return true;
  if (valor.length!=15)
     return false;

  for (var i=0;i<15;i++)
 {
    chr=valor.charAt(i);
    if (i!=2 && i!=5 && i!=12)
    {
      if (chr<"0"||chr>"9") return false;
     }
     else
     {
     		if (i==2 || i==5 )
      	{ 
			if (chr!="/") return false;
		}
		else
			if (chr!=":") return false;
     }
 }


  dia=parseInt(valor.substring(0,2),10);
  mes=parseInt(valor.substring(3,5),10);
  yea=parseInt(valor.substring(6,10),10);
  hora=parseInt(valor.substring(10,12),10);
  min=parseInt(valor.substring(13,15),10);

//validacion de la fecha
  if (1>dia || dia>31)
    return false;
  if (1>mes || mes>12)
    return false;
  if (1>yea)
    return false;
  if ((mes==4 || mes==6 || mes==9 || mes==11) && dia==31)
     return false;
  if (mes==2)
  {
    mod=yea%4;
    if (mod==0)
	{
      mod=yea%100;
	  if(mod==0)
	  	{
	        var mod2=yea%400;
			if(mod2==0 &&  dia>29)
				return false;
			else if(mod2!=0 && dia>28)
			  	return false;
		}
	  else if(dia>29)
	  	return false;
	}
    else if (dia>28)
        return false;
 }

//validacion de la hora
  if (hor>24)
    return false;
  if (min>60)
    return false;

//caso en el que la hora y fecha esté bien
  return true;
}



/////////////////////////////////////////////////////////////////////////////////////
// 8. 
///////////////////////////comprobar_Fecha//////////////////////////////////
//COMPRUEBA QUE LA FECHA NO SEA MENOR LA FECHA ACTUAL
/////////////////////////////////////////////////////////////////////////////////////

function comprobar_Fecha(f,tabla)
{
  var alta="";
  var actual="";
  var valor=quitaBlancos(idobj.value);
  idobj.value=valor;

  // 1.- La fecha que se pase de  debe ser mayor o igual
  //     que la fecha del sistema
   existe=existeCampo(f,tabla.nombre);
   if (existe){

   if (!campoVacio(tabla.idobj,tabla.tipo)){
     var dia1=tabla.idobj.value.substring(0,2);
     var mes1=tabla.idobj.value.substring(3,5);
     var yea1=tabla.idobj.value.substring(6,10);
     alta=yea1+mes1+dia1;

     actual=new Date();
     var dia2=actual.getDate();
     var mes2=actual.getMonth()+1;

//     var yea2=actual.getYear()+1900   comentado por Ivan

     var yea2=actual.getYear();
     if (yea2 < 98)
        yea2 += 2000;
      else
        yea2 += 1900;
    
     actual=new String(yea2);
     actual+=(mes2<10?"0"+mes2:mes2);
     actual+=(dia2<10?"0"+dia2:dia2);
      }
    if (alta<actual){
      alert(tabla.texto+" no puede ser menor que fecha del sistema");
      return false;
      }

 }
 return true;

}

/////////////////////////////////////////////////////////////////////////////////////
// 9.
////////////////////////////comprobar_desde_hasta//////////////////////////////////////
//COMPRUEBA QUE LA FECHA DESDE NO SEA MAYOR QUE LA FECHA HASTA
/////////////////////////////////////////////////////////////////////////////////////

function comprobar_desde_hasta(desde,hasta)
{
  // 1.- La fecha que se pase desde  debe ser mayor o igual
  //     que la fecha hasta
  //var valor=quitaBlancos(desde.value)
  //desde.value=valor

  var desdef="";
  var hastaf="";

	if (!fechaValida(desde)){
		alert("Compruebe que el campo fecha tenga un formato correcto (DD/MM/YYYY) y los datos sean válidos.");
		return false;
	}

	if (!fechaValida(hasta)){
		alert("Compruebe que el campo fecha tenga un formato correcto (DD/MM/YYYY) y los datos sean válidos.");
		return false;
	}
                  
     var dia1=desde.value.substring(0,2);
     var mes1=desde.value.substring(3,5);
     var yea1=desde.value.substring(6,10);
     desdef=yea1+mes1+dia1;
     dia1=hasta.value.substring(0,2);
     mes1=hasta.value.substring(3,5);
     yea1=hasta.value.substring(6,10);
     hastaf=yea1+mes1+dia1;
    if (hastaf !="")
    {
    	if (desdef>hastaf)
	{
      	alert("La fecha Inicial  no puede ser mayor que la fecha Final");
      	return false;
      }
    }
 return true;
}


/////////////////////////////////////////////////////////////////////////////////////
// 10.
////////////////////////////horaDesdeHasta//////////////////////////////////
// COMPRUEBA QUE LA HORA DESDE SEA MENOR QUE LA HORA HASTA
/////////////////////////////////////////////////////////////////////////////////////
function horaDesdeHasta(desde,hasta)
//como parametros no se manda el elemento de la tabla porque estas validaciones
//se van a hacer sobre campos de una lista editable
{
var hor_desde,min_desde,hor_hasta,min_hasta;
	var desdeh;
  	var hastah;
	if (!horaValida(desde))
	{
      	alert("Compruebe que el campo  tenga un formato correcto (HH:MM) y los datos sean válidos.");
		return false;
	}
		
	if (!horaValida(hasta))
	{
      	alert("Compruebe que el campo  tenga un formato correcto (HH:MM) y los datos sean válidos.");
		return false;
	}
  	hor_desde=desde.value.substring(0,2);
  	min_desde=desde.value.substring(3,5);
	desdeh=hor_desde+min_desde;
	
	hor_hasta=hasta.value.substring(0,2);
	min_hasta=hasta.value.substring(3,5);
	hastah=hor_hasta+min_hasta;
	
	if (hasta.value  != "")
	{
	  	if (parseInt(desdeh,10)>parseInt(hastah,10))
		{
			alert("La hora inicial no puede ser mayor que la hora final");
    			return false;
		}
	}
 return true;
}

/////////////////////////////////////////////////////////////////////////////////////
// 11.
////////////////////////////salidaMenorLlegada//////////////////////////////////
// COMPRUEBA QUE LA HORA DE SALIDA SEA MENOR QUE LA HORA DE LLEGADA SIEMPRE Y CUANDO EL
// NÚMERO DE DIAS SEA CERO. CUANDO EL NÚMERO DE DÍAS SEA MAYOR QUE CERO LA HORA DE SALIDA
// PODRÁ SER MENOR QUE LA HORA DE LLEGADA
/////////////////////////////////////////////////////////////////////////////////////
function salidaMenorLlegada(salida,llegada,numDias){
  if (salida.value != "" && llegada.value !="" && numDias.value !="") {
	if (numDias.value==0) horaDesdeHasta(salida,llegada);
	else return true;
  }
  else return true;
}
/////////////////////////////////////////////////////////////////////////////////////
// 12.
////////////////////////////fechaActual//////////////////////////////////
// FUNCIÓN QUE DEVUELVE LA FECHA ACTUAL DEL SISTEMA FORMATEAD
/////////////////////////////////////////////////////////////////////////////////////
function fechaActual(){
    actual=new Date();
    dia=actual.getDate();
    mes=actual.getMonth()+1;
    ano=actual.getYear();
    if (ano < 98)
        ano += 2000;
    else{
        ano += 1900;
	if (dia<10) dia='0'+String(dia);
	if (mes<10) mes='0'+String(mes);
    }
    fecha=dia+"/"+mes+"/"+ano;
    return fecha
}
// -->

