
//función que devuelve el resultado de sumar dias_ a fecha_
function sumarDiasAFecha(fecha_,dias_,edit_resultado_){
   //s_FormateaFecha(this);
   
   var dia = parseInt(fecha_.split("/")[0],10);
   var mes = parseInt(fecha_.split("/")[1],10);
   var anyo = parseInt(fecha_.split("/")[2],10);
   
   var fecha = "";
   
   var fecha_real = new Date(anyo, mes, dia)
   
   if ( !(isNaN(fecha_real)) ) {   
       dia = dia + parseInt(dias_,10);
       if (dia <= parseInt(DiafinMes(mes,anyo),10)){
          if (dia <= 0){
            mes_ = mes - 1;
            if (mes_ == 0){
                mes_ = 12;
                anyo = anyo - 1;
            }
            dia = parseInt(DiafinMes(mes_,anyo),10) + dia;
            
            if (mes_ < 10) var mes_ = "0"+mes_.toString(10);
            
            if (dia < 10) var dia_0 = "0"+dia.toString(10);
            else var dia_0 = dia;
            
            fecha = dia_0+"/"+mes_+"/"+anyo;
            
          } else {
            if (mes < 10) var mes_ = "0"+mes.toString(10);
            else var mes_ = mes;
    		
            if (dia < 10) var dia_0 = "0"+dia.toString(10);
            else var dia_0 = dia;
    		  
            fecha = dia_0+"/"+mes_+"/"+anyo;
          }
       }
       else {
          //restar a dias_ los que faltan para completar el més.
          var dias_mes_actual = parseInt(DiafinMes(mes,anyo),10);
          var diff = dias_mes_actual - (dia - parseInt(dias_,10));
          dias_ = parseInt(dias_,10) - diff;
	      mes = ++mes;  //calcular el mes siguiente
	      if (mes > 12) {
	          mes = 1;
	          anyo = ++anyo;  //incrementar el anyo
	      }
	      while (dias_ > parseInt(DiafinMes(mes,anyo),10)) { //mientras los dias restantes sean mayor que los dias del mes siguiente
	            dias_ = dias_ - parseInt(DiafinMes(mes,anyo),10);  //resto los dias del mes a los dias restantes
		        mes = ++mes;
                if (mes > 12) {
	               mes = 1;
	               anyo = ++anyo;  //incrementar el anyo
	            }
		        if (dias_ == 0) dias_ = 1;		 
	      }
		  
          if (mes < 10) var mes_ = "0"+mes.toString(10);
	      else var mes_ = mes;
		 
	      if (dias_ < 10) var dia_1 = "0"+dias_.toString(10);
	      else var dia_1 = dias_;
		 
          fecha = dia_1+"/"+mes_+"/"+anyo;  	  
       }
	   if ( !(edit_resultado_==null)) edit_resultado_.value = fecha;
   }
}

//función que devuelve el resultado de sumar dias_ a fecha_
function calculaNoches(fecha_,fechaSalida_,edit_resultado_){
   //Formateamos la fecha de entrada
   var dia = parseInt(fecha_.split("/")[0],10);
   var mes = parseInt(fecha_.split("/")[1]-1,10);
   var anyo = parseInt(fecha_.split("/")[2],10);
   
   var fecha = "";
   
   var fecha_real = new Date(anyo, mes, dia);
   
   //Formateamos la fecha de salida
   var diaSalida = parseInt(fechaSalida_.split("/")[0],10);
   var mesSalida = parseInt(fechaSalida_.split("/")[1]-1,10);
   var anyoSalida = parseInt(fechaSalida_.split("/")[2],10);
   
   var fecha_salida_real = new Date(anyoSalida, mesSalida, diaSalida);
   
    var resta=(fecha_real-fecha_salida_real)/1000/3600/24; 
    edit_resultado_.value = resta;
}

function DiafinMes(nMes, nAno){
    var nRes = 0;
    switch (nMes){
     case 1: nRes = 31; break;
     case 2: nRes = 28; break;
     case 3: nRes = 31; break;
     case 4: nRes = 30; break;
     case 5: nRes = 31; break;
     case 6: nRes = 30; break;
     case 7: nRes = 31; break;
     case 8: nRes = 31; break;
     case 9: nRes = 30; break;
     case 10: nRes = 31; break;
     case 11: nRes = 30; break;
     case 12: nRes = 31; break;
    }
	if (anyoBisiesto(nAno) && (nMes == 2)) nRes = ++nRes;
	return nRes;
}

function ver_calendario(tipo, formulario_, nm_campo_) {

	var fecha = eval(formulario_+"."+nm_campo_+".value");
	var nombre = eval(formulario_+".name");
	ventanaXY(425,250,175,128,'/srhv2/calendario.asp?tipo='+tipo+'&dt='+fecha+"&formulario="+nombre+'&nm_campo='+nm_campo_,'')
	//ventanaXY(425,250,175,128,'/srhv2/inc/calendario_v.3.1.asp?tipo='+tipo+'&dt='+fecha+"&formulario="+nombre+'&nm_campo='+nm_campo_,'')
	//ventanaXY(425,250,600,400,'/srhv2/inc/calendario_v.3.1.asp?tipo='+tipo+'&dt='+fecha+"&formulario="+nombre,'')
	
}

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;
  }
}
