// JavaScript Document

//***********************************************************************************************
// validarFecha(dd/mm/yyyy)
//
// Valida que el día y el mes introducidos sean correctos. Además valida que el año introducido
// sea o no bisiesto
//
//***********************************************************************************************
function esFechaCorrecta(laFecha) {
    campos=laFecha.split("/"); //separador fecha es (/)
    if (campos.length>1) {
        dia=parseInt(campos[0],10);
        elMes=parseInt(campos[1],10);
        anio=parseInt(campos[2],10);
    } else //no lleva separador
        return false;
  
    if(elMes>12)
        return false;

    if(dia>31)
        return false;
   
    // MES FEBRERO
    if (elMes == 2){
        if (esBisiesto(anio)){
            if (dia > 29)
                return false;
            else
                return true;
        } else {
            if (dia > 28)
                return false;
        }
    }

    //RESTO DE MESES
    if(elMes== 4 || elMes==6 || elMes==9 || elMes==11) {
        if (dia > 30)
            return false;
        else
            return true;
    }
    return true;
}

//*****************************************************************************************
// esBisiesto(anio)
//
// Determina si el año pasado com parámetro es o no bisiesto
//*****************************************************************************************
function esBisiesto(anio)
{
    var BISIESTO;
    if(parseInt(anio)%4==0){
        if(parseInt(anio)%100==0){
            if(parseInt(anio)%400==0){
                BISIESTO=true;
            } else {
                BISIESTO=false;
            }
        } else {
            BISIESTO=true;
        }
    }
    else
	    BISIESTO=false;


    return BISIESTO;
}

//***********************************************************************************************
// parseToDate(dd/mm/yyyy)
//
// Cambia una fecha formato dd/mm/aaaa a la clase Date de Javascript, se pude usar para comparar fechas
//
//***********************************************************************************************
function parseToDate(laFecha) {
    if (esFechaCorrecta(laFecha)) { //cambiar fecha
         campos=laFecha.split("/"); //separador fecha es (/)
         miFecha=new Date(parseInt(campos[2],10),parseInt(campos[1],10)-1,parseInt(campos[0],10));
        return miFecha;   
    } else { //no es fecha valida
        return;
    }
}

function ponNoches() {
	//Restar las fechas para saber dias introducidos
	if (esFechaCorrecta($('#fechaIni').val()) && esFechaCorrecta($('#fechaFin').val())) {
		da1=parseToDate($('#fechaIni').val());
		da2=parseToDate($('#fechaFin').val());;
		if (da1>=da2 )
			$('#noches').val('**');
		else
		{
			dife=da2.getTime() - da1.getTime()+10800000; //se añade 10800000 pa evitar el error de marzo, años bisiestos
			bnoches=parseInt(dife/ (1000 * 60 * 60 * 24),10);
			$('#noches').val(bnoches);
		}
	} else {
		$('#noches').val('0');
	}
}

function fechaWeb(lafecha){
	Fdia=lafecha.getDate();
	if (Fdia<10)
		Fdia="0"+Fdia;
	Fmes=lafecha.getMonth()+1;
	if (Fmes<10)
		Fmes="0"+Fmes;
	Fany=lafecha.getFullYear();
	return Fdia+"/"+Fmes+"/"+Fany;
}

function sumaLosDias(){
	laFecha=$('#fechaIni').val();
	losDias=parseInt($('#noches').val(),10);
	//la fecha viene en formato dd/mm/aaaa
	fdia=laFecha.substring(0,2);
	fmes=parseInt(laFecha.substring(3,5),10)-1;
	fany=laFecha.substring(6,10);
	midia=new Date(fany,fmes,fdia);

	milisegundos=parseInt(losDias*24*60*60*1000);
	tiempo=midia.getTime();
	total=midia.setTime(parseInt(tiempo+milisegundos));
	
	//retorno en el mismo formato
	$('#fechaFin').val(fechaWeb(midia));
}

function abreCapa(laCapa,laURL,elAncho,elAlto,idioma,modal) {
	modo=true;
	if (modal!=undefined)
		modo=modal;
	$("#"+laCapa).load(laURL+"&lang="+idioma,'',function() { //ajax
		$("#"+laCapa).dialog({
			width: elAncho,
			height: elAlto,
			modal: modo
		});
		
	});
}

