var comienzo=false;
var hoy =new Date();
if (!comienzo){
	var Meses = new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
	var fecha_real = new Date();
	var hoy = new Date();
	var diaSeleccionableActual = new Date(fecha_real.getFullYear(),fecha_real.getMonth(),parseInt(fecha_real.getDate())+4);
	var DiasPorMes=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	var DiasSemana=["L","M","X","J","V","S","D"];
	comienzo=true;
}
//funcion que pinta el calendario
function abrirCalendario(tipoFecha,context,dia,mes,anio,site){

  var numDiasMes = 	DiasPorMes[mes];
  if(numDiasMes<dia)dia = numDiasMes;

  /*
  var primerDiaSeleccionable = new Date(parseInt(anio),parseInt(mes),parseInt(dia));
  var txtCal="";

  if(primerDiaSeleccionable > diaSeleccionableActual){
    diaSeleccionableActual = primerDiaSeleccionable;
  }

  fecha_real = new Date(anio,mes,dia);
  anio_real = diaSeleccionableActual.getFullYear();
  mes_real = diaSeleccionableActual.getMonth();
  dia_real = diaSeleccionableActual.getDate();
  */
  var primerDiaSeleccionable = new Date(parseInt(anio),parseInt(mes),parseInt(dia));
  diaSeleccionableActual= new Date(parseInt(anio),parseInt(mes),parseInt(dia));

  var txtCal="";
  fecha_real = new Date(anio,mes,dia);
  anio_real = primerDiaSeleccionable.getFullYear();
  mes_real = primerDiaSeleccionable.getMonth();
  dia_real = primerDiaSeleccionable.getDate();

  ano = "" +primerDiaSeleccionable.getFullYear();
  mes = (primerDiaSeleccionable.getMonth());
  mes = (mes<10?"0":"")+mes;

  fechaSeleccionada="/"+mes+"/"+ano.substring(2,4);
  var Anyo=primerDiaSeleccionable.getFullYear();
  var EsteDia=primerDiaSeleccionable.getDate();
  // Comprobamos que febrero sea bisiesto o no.
  if(anyoBisiesto(Anyo)){
    DiasPorMes[1] = 29;
  }
  else{
  	 DiasPorMes[1] = 28;
  }

  // Numero de dias del mes actual
  NDias =DiasPorMes[primerDiaSeleccionable.getMonth()];
  // Calculo que dia de la semana es el primero del mes
  PrimerDia=primerDiaSeleccionable;
  PrimerDia.setDate(1);
  Comienzo=PrimerDia.getDay();
  if (Comienzo==0) Comienzo=6;
  else Comienzo=PrimerDia.getDay()-1;
  /// Empezamos a crear la tabla con el div que contiene el calendario
   txtCal=""
   //txtCal="<div id='calendario' style='position:absolute; visibility: hidden;z-index=1;'  class='drag'>"
   txtCal=txtCal+"<table width=\"175\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">"
   txtCal=txtCal+"<tr><td width=\"175\">"
   txtCal=txtCal+"<table width=\"100%\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\" class=\"listadogranate1\">"
   txtCal=txtCal+"<tr>"
   //Pintamos el mes
   if (primerDiaSeleccionable.getMonth() == mes_real && primerDiaSeleccionable.getFullYear() == anio_real ){
     txtCal=txtCal+"<td>&nbsp;"
   }
   else{
     txtCal=txtCal+"<td><a href='Javascript:mesAtras(\""+tipoFecha+"\",\""+context+"\",\""+dia+"\",\""+mes+"\",\""+anio+"\",\""+site+"\");'><img src=\""+context+"/appVacacional/"+site+"/images/ico_flecha.gif\" width=\"16\" height=\"15\" border=\"0\"></a></td>";
   }
	txtCal=txtCal+"</td>"
	txtCal=txtCal+'<td width=\"112\" align=\"center\" colspan=\"5\">'+Meses[primerDiaSeleccionable.getMonth()*1]
	txtCal=txtCal+" "
   	txtCal=txtCal+Anyo
    txtCal=txtCal+"<td width=\"20\" align=\"center\">"
    txtCal=txtCal+"<a href='Javascript:mesAdelante(\""+tipoFecha+"\",\""+context+"\",\""+dia+"\",\""+mes+"\",\""+anio+"\",\""+site+"\");'><img src=\""+context+"/appVacacional/"+site+"/images/ico_flecha_dere.gif\" width=\"16\" height=\"15\" border=\"0\"></a>";
 	txtCal=txtCal+"</td></tr>"
	txtCal=txtCal+"</table>"
	txtCal=txtCal+"<table width=\"175\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\" class=\"tabla3\">"
	txtCal=txtCal+"<tr align=\"center\" class=\"cubiertaH\">";
	//pintamos el dia de la semana que corresponde
	for(var d=0;d<DiasSemana.length;d++){
		txtCal=txtCal+"<td>"+DiasSemana[d]+"</td>";
	}
	txtCal=txtCal+"</tr>";
 	//Pintamos los huecos en blanco para cuadrar los espacios del calendario
	txtCal=txtCal+"<tr>"
   	columna=0;
	for (i=0; i<Comienzo; i++){
        txtCal=txtCal+"<td width=\"25\" class=\"calendario\">"
        columna++;
        txtCal=txtCal+"</td>"
    }
   // Empezamos a pintar los dias del mes mirando si se puede seleccionar o no
	for (i=1; i<=NDias; i++){
		if ( primerDiaSeleccionable.getMonth() == mes_real && primerDiaSeleccionable.getFullYear() == anio_real && i < dia_real){
	   		//este dia no esta para ser seleccionado
			txtCal=txtCal+"<td width=\"25\" class='calDiaDesactivado'>"+i;
		}
   		else {
			//este dia se puede seleccionar
  	  		var seleccionado =i+"/"+((parseInt(primerDiaSeleccionable.getMonth())*1)+1)+"/"+primerDiaSeleccionable.getFullYear()+"";
	  		txtCal=txtCal+"<td width=\"25\" class=\"calendario\"><a class=\"calendario\" href=\"javascript:seleccionarFecha('"+seleccionado+"','"+tipoFecha+"');\">"+i+"</a>";
   		}
        if (i == EsteDia || columna == 6)txtCal=txtCal
        else if (columna == 0)txtCal=txtCal
        txtCal=txtCal+"</td>"
		columna++;
        if (columna == 7){
			// Cerramos y empezamos una nueva fila
			txtCal=txtCal+"</tr><tr>";
            columna=0;
        }
	}//fin del for
  txtCal=txtCal+"</tr>";
  txtCal=txtCal+"<tr><td colspan=\"2\" align=\"left\"><table width=\"96%\" height=\"18\" border=\"0\" align=\"right\" cellpadding=\"0\" cellspacing=\"0\"><tr valign=\"middle\"> ";
  txtCal=txtCal+"<td width=\"28%\" class=\"linkGrisOscuro\"><div align=\"left\"><a href=\"javascript:cerrarCalendario()\" class=\"linkGrisOscuro\">Cerrar</a></div></td>";
  txtCal=txtCal+"</tr> </table></td></tr>";
  txtCal=txtCal+"</table></td></tr></table>";
  //pintamos el resultado del calendario en la capa
  //calendario.outerHTML=txtCal;
//  calendario.innerHTML=txtCal;
  //la hacemos visible
//  calendario.style.visibility="visible";
	document.getElementById("frameCalendario").style.width="179";
	document.getElementById("frameCalendario").style.height="145";
  document.getElementById("frameCalendario").style.top=yPos-10;
  document.getElementById("frameCalendario").style.left=xPos+15;

	this.frameCalendario.document.getElementById("calendarioPrincipal").innerHTML=txtCal;

  
}


//funcion que pinta el calendario del mes siguiente o anterior
function abrirCalendarioOtroMes(tipoFecha,context,dia,mes,anio,site){

  var numDiasMes = 	DiasPorMes[mes];
  if(numDiasMes<dia)dia = numDiasMes;

  var primerDiaSeleccionable = new Date(parseInt(anio),parseInt(mes),parseInt(dia));
  var txtCal="";
  fecha_real = new Date(anio,mes,dia);
  anio_real = diaSeleccionableActual.getFullYear();
  mes_real = diaSeleccionableActual.getMonth();
  dia_real = diaSeleccionableActual.getDate();

  ano = "" +primerDiaSeleccionable.getFullYear();
  mes = (primerDiaSeleccionable.getMonth());
  mes = (mes<10?"0":"")+mes;

  fechaSeleccionada="/"+mes+"/"+ano.substring(2,4);
  var Anyo=primerDiaSeleccionable.getFullYear();
  var EsteDia=primerDiaSeleccionable.getDate();
  // Comprobamos que febrero sea bisiesto o no.
  if(anyoBisiesto(Anyo)){
    DiasPorMes[1] = 29;
  }
  else{
  	 DiasPorMes[1] = 28;
  }

  // Numero de dias del mes actual
  NDias =DiasPorMes[primerDiaSeleccionable.getMonth()];
  // Calculo que dia de la semana es el primero del mes
  PrimerDia=primerDiaSeleccionable;
  PrimerDia.setDate(1);
  Comienzo=PrimerDia.getDay();
  if (Comienzo==0) Comienzo=6;
  else Comienzo=PrimerDia.getDay()-1;
  /// Empezamos a crear la tabla con el div que contiene el calendario
   txtCal=""
   //txtCal="<div id='calendario' style='position:absolute; visibility: hidden;z-index=1;'  class='drag'>"
   txtCal=txtCal+"<table width=\"175\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">"
   txtCal=txtCal+"<tr><td width=\"175\">"
   txtCal=txtCal+"<table width=\"100%\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\" class=\"listadogranate1\">"
   txtCal=txtCal+"<tr>"
   //Pintamos el mes
   if (primerDiaSeleccionable.getMonth() == mes_real && primerDiaSeleccionable.getFullYear() == anio_real ){
     txtCal=txtCal+"<td>&nbsp;"
   }
   else{
     txtCal=txtCal+"<td><a href='Javascript:mesAtras(\""+tipoFecha+"\",\""+context+"\",\""+dia+"\",\""+mes+"\",\""+anio+"\",\""+site+"\");'><img src=\""+context+"/appVacacional/"+site+"/images/ico_flecha.gif\" width=\"16\" height=\"15\" border=\"0\"></a></td>";
   }
	txtCal=txtCal+"</td>"
	txtCal=txtCal+'<td width=\"112\" align=\"center\" colspan=\"5\">'+Meses[primerDiaSeleccionable.getMonth()*1]
	txtCal=txtCal+" "
   	txtCal=txtCal+Anyo
    txtCal=txtCal+"<td width=\"20\" align=\"center\">"
    txtCal=txtCal+"<a href='Javascript:mesAdelante(\""+tipoFecha+"\",\""+context+"\",\""+dia+"\",\""+mes+"\",\""+anio+"\",\""+site+"\");'><img src=\""+context+"/appVacacional/"+site+"/images/ico_flecha_dere.gif\" width=\"16\" height=\"15\" border=\"0\"></a>";
 	txtCal=txtCal+"</td></tr>"
	txtCal=txtCal+"</table>"
	txtCal=txtCal+"<table width=\"175\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\" class=\"tabla3\">"
	txtCal=txtCal+"<tr align=\"center\" class=\"cubiertaH\">";
	//pintamos el dia de la semana que corresponde
	for(var d=0;d<DiasSemana.length;d++){
		txtCal=txtCal+"<td>"+DiasSemana[d]+"</td>";
	}
	txtCal=txtCal+"</tr>";
 	//Pintamos los huecos en blanco para cuadrar los espacios del calendario
	txtCal=txtCal+"<tr>"
   	columna=0;
	for (i=0; i<Comienzo; i++){
        txtCal=txtCal+"<td width=\"25\" class=\"calendario\">"
        columna++;
        txtCal=txtCal+"</td>"
    }
   // Empezamos a pintar los dias del mes mirando si se puede seleccionar o no
	for (i=1; i<=NDias; i++){
		if ( primerDiaSeleccionable.getMonth() == mes_real && primerDiaSeleccionable.getFullYear() == anio_real && i < dia_real){
	   		//este dia no esta para ser seleccionado
			txtCal=txtCal+"<td width=\"25\" class='calDiaDesactivado'>"+i;
		}
   		else {
			//este dia se puede seleccionar
  	  		var seleccionado =i+"/"+((parseInt(primerDiaSeleccionable.getMonth())*1)+1)+"/"+primerDiaSeleccionable.getFullYear()+"";
	  		txtCal=txtCal+"<td width=\"25\" class=\"calendario\"><a class=\"calendario\" href=\"javascript:seleccionarFecha('"+seleccionado+"','"+tipoFecha+"');\">"+i+"</a>";
   		}
        if (i == EsteDia || columna == 6)txtCal=txtCal
        else if (columna == 0)txtCal=txtCal
        txtCal=txtCal+"</td>"
		columna++;
        if (columna == 7){
			// Cerramos y empezamos una nueva fila
			txtCal=txtCal+"</tr><tr>";
            columna=0;
        }
	}//fin del for
  txtCal=txtCal+"</tr>";
  txtCal=txtCal+"<tr><td colspan=\"2\"><table width=\"96%\" height=\"18\" border=\"0\" align=\"right\" cellpadding=\"0\" cellspacing=\"0\"><tr valign=\"middle\"> ";
  txtCal=txtCal+"<td width=\"28%\" class=\"linkGrisOscuro\"><div align=\"left\"><a href=\"javascript:cerrarCalendario()\" class=\"linkGrisOscuro\">Cerrar</a></div></td>";
  txtCal=txtCal+"</tr> </table></td></tr>";
  txtCal=txtCal+"</table></td></tr></table>";
  //pintamos el resultado del calendario en la capa
  //calendario.outerHTML=txtCal;
//  calendario.innerHTML=txtCal;
  //la hacemos visible
//  calendario.style.visibility="visible";
  parent.window.frameCalendario.document.getElementById("calendarioPrincipal").innerHTML=txtCal;
}








/*
 Funcion en la que le pasamos el dia seleccionado y lo pintamos en el campo de texto
*/
function seleccionarFecha(fecha,tipoFecha){

	if(tipoFecha=="Ida"){
		parent.document.formBuscador.txtDesde.value = fecha;
		parent.document.formBuscador.dsalida.value = fecha.split("/")[0];
		parent.document.formBuscador.msalida.value = fecha.split("/")[1];
		parent.document.formBuscador.asalida.value = fecha.split("/")[2];

        controlFechaVueltaCalendario();
	}
	else{
		parent.document.formBuscador.txtHasta.value = fecha;
		parent.document.formBuscador.dregreso.value = fecha.split("/")[0];
		parent.document.formBuscador.mregreso.value = fecha.split("/")[1];
		parent.document.formBuscador.aregreso.value = fecha.split("/")[2];

	}
	cerrarCalendario();
}



//funcion a disminuir en un mes el calendario
function mesAtras(tipoFecha,context,dia,mes,anio,site){
	if (mes==0){
  		mes=11;
  		anio=parseInt(eval(anio))-1;
  	}
  	else{
  		mes = parseInt(eval(mes))-1;
  	}
    //primerDiaSeleccionable=new Date(anoActual,mesActual,1); //a?o,mes,dia
    //abrirCalendario(tipoFecha,context,dia,mes,anio,site);
        abrirCalendarioOtroMes(tipoFecha,context,dia,mes,anio,site);
}

//funcion para aumentar en uno el mes a pintar.
function mesAdelante(tipoFecha,context,dia,mes,anio,site){
  	if (mes==11){
  		mes=0;
  		anio=parseInt(eval(anio))+1;
  	}
  	else{

  		mes = parseInt(eval(mes))+1;
  	}
    //primerDiaSeleccionable=new Date(anoActual,mesActual,1); //a?o,mes,dia
    //abrirCalendario(tipoFecha,context,dia,mes,anio,site);
    abrirCalendarioOtroMes(tipoFecha,context,dia,mes,anio,site);
}


function anyoBisiesto(anyo) {
	// pasamos yy a yyyy
	if (anyo < 100)   var fin = anyo + 1900;
	else     var fin = anyo ;

	// Si (a?o Mod 4) no es cero  el a?o no es bisiesto
	if (fin % 4 != 0)            return false;
	else{
		if (fin % 100 == 0){
			// Si (a?o / 4 ) && (a?o / 100) &&(a?o / 400)
			if (fin % 400 == 0)				return true;
			else				return false;
		}else{// si es divisible por 4 y no es divisible por 100 > el a?o es bisiesto
			return true;
		}
	}
}

function ComparaFechasAereos (fecha1, fecha2 ) {

   //Obtiene los datos del formulario
   CadenaFecha1 = fecha1;
   CadenaFecha2 = fecha2;

   //Obtiene dia, mes y a?o
   var fecha1 = new Date( CadenaFecha1 );
   var fecha2 = new Date( CadenaFecha2 );

   //Obtiene objetos Date
   var miFecha1 = new Date( fecha1.anio, fecha1.mes, fecha1.dia );
   var miFecha2 = new Date( fecha2.anio, fecha2.mes, fecha2.dia );

   //Resta fechas y redondea
   var diferencia = miFecha1.getTime() - miFecha2.getTime();
  // var dias = Math.floor(diferencia / (1000 * 60 * 60 * 24))
   var segundos = Math.floor(diferencia / 1000);
   if (segundos<0){// Si la fecha2 es menor que fecha1
    return false;
   }
   else{
	return true;
   }
}

//mejora ivan rozas 04/04/2006 comprueba fechas peta desde combo
function cambiarDiaVuelta(){
  document.formBuscador.dregreso.value = document.formBuscador.dsalida.value
}
function cambiarMesVuelta(){
  document.formBuscador.mregreso.value = document.formBuscador.msalida.value
}
function cambiarAnioVuelta(){
  document.formBuscador.aregreso.value = document.formBuscador.asalida.value
}

function cambiarFechaVuelta(){
  parent.document.formBuscador.dregreso.value = parent.document.formBuscador.dsalida.value;
  parent.document.formBuscador.mregreso.value = parent.document.formBuscador.msalida.value;
  parent.document.formBuscador.aregreso.value = parent.document.formBuscador.asalida.value;
}

function controlFechaVuelta(){
  var fechaIda,fechaVuelta;
//peta desde calenda

  fechaIda = document.formBuscador.dsalida.value+"/"+document.formBuscador.msalida.value+"/"+document.formBuscador.asalida.value
  fechaVuelta = document.formBuscador.dregreso.value+"/"+document.formBuscador.mregreso.value+"/"+document.formBuscador.aregreso.value

  if(ComparaFechasAereos(fechaIda,fechaVuelta)){

    cambiarDiaVuelta();
    cambiarMesVuelta();
    cambiarAnioVuelta();


  }
}

function controlFechaVueltaCalendario(){
  var fechaIda,fechaVuelta;
//peta desde calenda

  fechaIda = parent.document.formBuscador.dsalida.value+"/"+parent.document.formBuscador.msalida.value+"/"+parent.document.formBuscador.asalida.value
  fechaVuelta = parent.document.formBuscador.dregreso.value+"/"+parent.document.formBuscador.mregreso.value+"/"+parent.document.formBuscador.aregreso.value

  if(ComparaFechasAereos(fechaIda,fechaVuelta)){

cambiarFechaVuelta();

  }
}