var Meses = new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
var fecha_real = new Date();
var diaPrimero ="02";
var mesPrimero ="03";
var annioPrimero ="2006";

var primerDiaSeleccionable = new Date(fecha_real.getYear(),fecha_real.getMonth(),parseInt(fecha_real.getDate()));
var DiasPorMes=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var DiasSemana=["L","M","X","J","V","S","D"];

function inicializarVariablesControl(primerDia,primerMes,primerAnnio){
	diaPrimero = primerDia;
	mesPrimero = primerMes;
	annioPrimero = primerAnnio;	
	primerDiaSeleccionable = new Date(annioPrimero,mesPrimero-1,diaPrimero);		
	return true;
}

function Calendario(tipoFecha,pais,xCalendario,yCalendario){

	try{cerrarCalendario();}catch(err){}
	fecha_real = new Date(annioPrimero,mesPrimero-1,diaPrimero);
	anio_real = fecha_real.getFullYear();
  	mes_real = fecha_real.getMonth();
  	dia_real = fecha_real.getDate();
  	ano = "" +primerDiaSeleccionable.getYear();
  	mes = (primerDiaSeleccionable.getMonth()+1);
  	mes = (mes<10?"0":"")+mes;
  	fechaSeleccionada="/"+mes+"/"+ano.substring(2,4);
	var Anyo=primerDiaSeleccionable.getYear();
  	var EsteDia=primerDiaSeleccionable.getDate();
  	// Comprobamos que febrero sea bisiesto o no.
  	if (((Anyo % 4 == 0) && (Anyo % 100 != 0)) || (Anyo % 400 == 0)){
    	DiasPorMes[1] = 29;
    }
  	// 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;
  	var text_cal="";
	text_cal="<div id='calendario' style='position:absolute; VISIBILITY: hidden;z-index=28;left:"+xCalendario+";top:"+yCalendario+"'>"
	//aqui empezamos a pintar el calendario.
	text_cal=text_cal+"<CENTER>"
    text_cal=text_cal+"<TABLE BORDER=0 cellspacing=0 cellpadding=1 bgcolor=000000>"
    text_cal=text_cal+"<tr><td>"
    text_cal=text_cal+"<TABLE BORDER=0 cellspacing=0 cellpadding=0 bgcolor=FFFFFF>"
    text_cal=text_cal+"<TR bgcolor=9AC3DB class=B>"
	//miramos si podemos paginar hacia adelante.
	if (primerDiaSeleccionable.getMonth() == mes_real && primerDiaSeleccionable.getFullYear() == anio_real ){
    	text_cal=text_cal+"<TD align=left width=20>&nbsp;</TD>"
    }
    else{
    	text_cal=text_cal+"<TD align=center width='20'><a href='Javascript:void(0);' onMouseOut='MM_SIR();' onMouseOver='MM_SI(\"atras\",\"\",\"/pictures/"+pais+"/pic012.gif\",1);' onClick='mesAtras(\""+tipoFecha+"\",\""+pais+"\",\""+xCalendario+"\",\""+yCalendario+"\");MM_SIR();'><img name='atras' src='/pictures/"+pais+"/pic012.gif' border=0 ></a></TD>";
   	}
	// Escribo en nombre del mes en la cabecera de la tabla
	text_cal=text_cal+'<td COLSPAN=5 align=center>'+Meses[primerDiaSeleccionable.getMonth()*1]	
   	text_cal=text_cal+" "
   	text_cal=text_cal+Anyo
   	//comprobamos que podamos paginar hacia adelante.
   	if(isAdelante(primerDiaSeleccionable.getMonth()*1,primerDiaSeleccionable.getFullYear())){
    	text_cal=text_cal+"<TD align=center width='20'><a href='Javascript:void(0)'  onMouseOut='MM_SIR();' onMouseOver='MM_SI(\"atras2\",\"\",\"/pictures/"+pais+"/pic013.gif\",1);' onClick='mesAdelante(\""+tipoFecha+"\",\""+pais+"\",\""+xCalendario+"\",\""+yCalendario+"\");'  ><img name='atras2' src='/pictures/"+pais+"/pic013.gif' border=0 ></a>";  
    }
    else{
    	text_cal=text_cal+"<TD align=center width='20'>";
    }
	text_cal=text_cal+"</TD></TR>"
	//pintamos los dias de la semana
	text_cal=text_cal+"<tr><td colspan=7 bgcolor=000000><img src='/pictures/rmbes/t.gif' height=1 border=0></td></tr>"
    if (typeof(DiasSemana)!='undefined')   {
		text_cal=text_cal+"<TR class=B bgcolor=FFFFFF><td align=center>"+DiasSemana[0]+"<td align=center>"+DiasSemana[1]+"<td align=center>"+DiasSemana[2]+"<td align=center>"+DiasSemana[3]+"<td align=center>"+DiasSemana[4]+"<td align=center>"+DiasSemana[5]+"<td align=center>"+DiasSemana[6]+"</TR>"
	}
	else {
		text_cal=text_cal+"<TR class=B bgcolor=FFFFFF><td align=center>L<td align=center>M<td align=center>X<td align=center>J<td align=center>V<td align=center>S<td align=center>D</TR>"
	}
   	text_cal=text_cal+"<tr><td colspan=7 bgcolor=000000><img src='/pictures/rmbes/t.gif' height=1 border=0></td></tr>"
	// Escritura de los espacios en blanco de la tabla
	text_cal=text_cal+"<TR>"
   	columna=0;
   	for (i=0; i<Comienzo; i++){
    	text_cal=text_cal+"<TD>"
        columna++;
        text_cal=text_cal+"</TD>"
    }
	// Empezamos a pintar los dias del mes mirando si se puede seleccionar o no
	for (i=1; i<=NDias; i++){
		var dia = i;
		var mes = (parseInt(primerDiaSeleccionable.getMonth())*1)+1;
		var anno = primerDiaSeleccionable.getFullYear();
		if (columna == 6)
             estilo="class='rojo'";
        else 
             estilo="class='normal'";
             
		text_cal=text_cal+"<TD class=B width='20'>"
		if (!compruebaFechaActiva(dia,mes,anno)){		
	   		//este dia no esta para ser seleccionado
			text_cal=text_cal+"<center><font color='#CCCCCC'>"+i+"</font></center>";
		}
   		else {
			var mesSeleccionado = ((parseInt(primerDiaSeleccionable.getMonth())*1)+1)
			if(mesSeleccionado<10)mesSeleccionado = "0"+mesSeleccionado;
			var diaSel = i;
			if(diaSel<10)diaSel = "0"+diaSel;
			var seleccionado =diaSel+"/"+mesSeleccionado+"/"+primerDiaSeleccionable.getFullYear()+"";
			//este dia se puede seleccionar
	  		text_cal=text_cal+"<center><div id="+i+" style='cursor:hand' onclick='javascript:verDiaSeleccionado(\""+tipoFecha+"\",\""+seleccionado+"\",\"CAL\")'><a href='Javascript:void(null)' "+estilo+">"+i+"</a></div></center>";
   		}
        if (i == EsteDia || columna == 6)
             text_cal=text_cal
        else if (columna == 0)
             text_cal=text_cal
        
        text_cal=text_cal+"</TD>"
		columna++;
        if (columna == 7){
        	text_cal=text_cal+"</TR><TR>"; // Comienza una nueva fila
            columna=0;
        }
	}			
	text_cal=text_cal+"</TR>"
  	text_cal=text_cal+"<TR>"
  	text_cal=text_cal+"<TD colspan=5></td><td colspan=2 align=right><a href='Javascript:void(null)' onClick='cerrarCalendario()'><img src='/pictures/"+pais+"/pic014.gif' border=0 ></a>"
  	text_cal=text_cal+"</TD>"
  	text_cal=text_cal+"</TR>"
	text_cal=text_cal+"</TABLE>"
  	text_cal=text_cal+"</TD>"
  	text_cal=text_cal+"</TR>"
	text_cal=text_cal+"</TABLE>"
	text_cal=text_cal+"</CENTER>"
  	text_cal=text_cal+"</div>"
	text_cal=text_cal+"</div>"
	text_cal=text_cal+"<iframe id='DivShim' src='javascript:false;' scrolling='no' frameborder='0' style='position:absolute; top:0px; left:0px; display:none;'></iframe>";
	//mostramos el calendario
	calendario.outerHTML = text_cal;
	calendario.style.visibility = "visible";
	var IfrRef = document.getElementById('DivShim');
    IfrRef.style.width 		= calendario.offsetWidth;
    IfrRef.style.height 	= calendario.offsetHeight;
    IfrRef.style.top 		= calendario.style.top;
    IfrRef.style.left 		= calendario.style.left;
    IfrRef.style.zIndex 	= calendario.style.zIndex - 1;
    IfrRef.style.display 	= "block";
	
}

function cerrarCalendario(){
     calendario.style.visibility="hidden";
     var IfrRef = document.getElementById('DivShim');
     IfrRef.style.display 	= "none";
}


function isAdelante(mes,annio){		
	mes = (mes<10?"0":"")+mes;
	var retorno=true;	
	var ultimoMesOk = (eval(ultimoMes)-eval(1));
	ultimoMesOk = (ultimoMesOk<10?"0":"")+ultimoMesOk;		
	if(ultimoMesOk=='' || ultimoMesOk==mes)
	{		
		if(ultimoAnnio==annio)
		{
			retorno=false;	
	    }
	}
	return retorno;
}

function compruebaFechaActiva(dia,mes,annio){
	var dias = diasDisponibles;
	var retorno = false;
	dia = (dia<10?"0":"")+dia;
	mes = (mes<10?"0":"")+mes;
	var seleccionado = dia+"/"+mes+"/"+annio;	
	if(dias.indexOf(seleccionado)!=-1)retorno=true;
	return retorno;
}

function mesAtras(tipoFecha,pais,xCalendario,yCalendario){
	if (primerDiaSeleccionable.getMonth()==0){
  		mesActual=11;
  		anoActual=primerDiaSeleccionable.getYear()-1;
  	}
  	else{
  		mesActual=primerDiaSeleccionable.getMonth()-1;
  		anoActual=primerDiaSeleccionable.getYear();
  	}
    primerDiaSeleccionable=new Date(anoActual,mesActual,1); //aņo,mes,dia
    Calendario(tipoFecha,pais,xCalendario,yCalendario)
}//fin mesAtras

function mesAdelante(tipoFecha,pais,xCalendario,yCalendario){
	if (primerDiaSeleccionable.getMonth()==11){
  		mesActual=0;
  		anoActual=primerDiaSeleccionable.getYear()+1;
  	}
  	else{
  		mesActual=primerDiaSeleccionable.getMonth()+1;
  		anoActual=primerDiaSeleccionable.getYear();
  	}  	
    primerDiaSeleccionable=new Date(anoActual,mesActual,1); //aņo,mes,dia
	Calendario(tipoFecha,pais,xCalendario,yCalendario)
}//fin mesAdelante

function verDiaSeleccionado(tipoFecha,fechaSeleccionada,tipo){	
	if(tipoFecha=="I"){
		document.flightForm.fe_diasIda.value = fechaSeleccionada;
		document.flightForm.fe_dia.value = fechaSeleccionada.split("/")[0];
		document.flightForm.fe_mesanyo.value = fechaSeleccionada.split("/")[2]+fechaSeleccionada.split("/")[1];
	}
	if(tipoFecha=="V"){
		document.flightForm.fs_diasVuelta.value = fechaSeleccionada;
		document.flightForm.fs_dia.value = fechaSeleccionada.split("/")[0];
		document.flightForm.fs_mesanyo.value = fechaSeleccionada.split("/")[2]+fechaSeleccionada.split("/")[1];
	}
	//si quien llama a esta funcion es el calendario lo cerramos
	if(tipo=="CAL")	cerrarCalendario();
}
