//---------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------
//------------------------ FUNCIONES PARA EL CALENDARIO ---------------------------------------
//---------------------------------------------------------------------------------------------


/**
 * Calcula las coordenadas para sacar el calendario
 */
function CalcularCoordenadas(tipoFecha,mes,ano,color,directorioImagenes,Evento)
{
	if(document.all)
	{
	PosX = window.event.clientX + document.documentElement.scrollLeft;
	PosY = window.event.clientY + document.documentElement.scrollTop;
	}
	else
	{
	PosX = Evento.pageX;
	PosY = Evento.pageY;
	}

	PosX = PosX - 30;
	PosY = PosY - 25;

	mostrarCalendario(tipoFecha, mes, ano, PosX, PosY, color, directorioImagenes);
}



//---------------------------------------------------------------------------------------------
//Funciones para ver si existe una variable
//---------------------------------------------------------------------------------------------
function isset(variable_name) {
    try {
         if (typeof(eval(variable_name)) != 'undefined')
         if (eval(variable_name) != null)
         return true;
     } catch(e) { }
    return false;
}

//---------------------------------------------------------------------------------------------
//Funciones para unir y separar cadenas
//---------------------------------------------------------------------------------------------
function explode(elSeparador,laCadena)
{
	var elArray = new Array();
	var cadenita = "";
	for (var a=0,indice=0;a<laCadena.length;a++)
	{
	    if (laCadena.charAt(a)==elSeparador)
		{
	        elArray[indice] = cadenita;
	        indice++;
	        cadenita = "";
	    }
		else   cadenita+=laCadena.charAt(a);
	}//for a
	elArray[indice] = cadenita;
	return elArray;
}//explode

function implode(elSeparador,elArray)
{
	var cadena = elArray[0];
	for (var a=1;a<elArray.length;a++)	cadena = cadena + elSeparador + elArray[a];
	return cadena;
}//implode

//---------------------------------------------------------------------------------------------
//  Funcion que simula la funcion de php str_replace
//---------------------------------------------------------------------------------------------
function str_replace(cadena, caracter, nuevoCaracter)
{
	result = "";
	for (i=0; i<cadena.length; i++)  result += cadena.charAt(i).replace(caracter, nuevoCaracter);
	return (result);
}


var NS7=(document.getElementById && !document.all)?1:0;

var losMeses = new Array ("Enero","Febrero","Marzo","Abril","Mayo","Junio",
											"Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
var losMesesEn = new Array ("January","February","March","April","May","June",
											"July","August","September","October","November","Dicember");

var losDias = new Array (31,28,31,30,31,30,31,31,30,31,30,31);

var losDiasDeLaSemana = new Array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sabado");
var losDiasDeLaSemanaEn = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");

var diasSemana  = new Array ('L','M','X','J','V','S','D');
var diasSemanaEn  = new Array ('Su','Mo','Tu','We','Th','Fr','Sa');
//---------------------------------------------------------------------------------------------
function ReconoceCapas(capitas)
{
	var cadena="";
    if (NS7)
	{
    	cadena=capitas+"=document.getElementById('"+capitas+"')";
		eval (cadena);
    }
}
//---------------------------------------------------------------------------------------------
function ReconoceCapasArray(capitas)
{
	var cadena="";
    if (NS7)
	{
    	for(var i=0;i<capitas.length;i++)
		{
        	cadena=capitas[i]+"=document.getElementById('"+capitas[i]+"')";
	  		eval (cadena);
	 	}
    }
}
//---------------------------------------------------------------------------------------------
var hoy = new Date();
var diaHoy = hoy.getDate();
var mesHoy = hoy.getMonth()+1;
var anoHoy = hoy.getYear();
if (anoHoy<1900) anoHoy+=1900;
var elDia = diaHoy;
var elMes = mesHoy;
var elAno = anoHoy;
//---------------------------------------------------------------------------------------------
function siguienteMes(mes,ano)
{
	if (mes==12)
	{
	    mes = 1;
	    ano++;
	}
	else   mes++;

	return mes+"-"+ano;
}
//---------------------------------------------------------------------------------------------
function anteriorMes(mes,ano)
{
	if (mes==1)
	{
	    mes = 12;
	    ano--;
	}
	else  mes--;

	return mes+"-"+ano;
}
//---------------------------------------------------------------------------------------------
function colorear(dia,mes,ano,esDomingo,tratando)
{
	var hoy = new Date();

	if (tratando == 'fechaInicio')
	{
   		var diaHoy = hoy.getDate();
 	  	var mesHoy = hoy.getMonth()+1;
	  	var anoHoy = hoy.getYear();
    }
    else
	{
    	diasol = explode("-",document.formularioBusqueda.fechaInicio.value);
        var diaHoy = diasol[0];
        var mesHoy = diasol[1];
        var anoHoy = diasol[2];
    }

	if (anoHoy<1900) anoHoy+=1900;
	var celdaDia;

	//HOY O FECHAS PSOTERIORES AL DIA DE HOY
	if ((ano>anoHoy) || ((ano==anoHoy) && (mes>mesHoy)) || ((ano==anoHoy) && (mes==mesHoy) && (dia>=diaHoy)))
	{
		if ((dia+"-"+mes+"-"+ano)==(diaHoy+"-"+mesHoy+"-"+anoHoy))
		{
		  	//SI ES EL DIA DE HOY --> FONDO AZUL LETRA BLANCA
		    celdaDia = "<td id=\"celda"+dia+"\" style=\"background-color:#000066;color:#FFFFFF;font-weight:bold;cursor:pointer;font-family: Verdana, Arial, Helvetica; font-size: 9px;\" onClick=\"marcar("+dia+","+mes+","+ano+");\" width:\"12px\" height:\"12px\">"+dia+"</td>";
		}
		else
		{
		    if (esDomingo)	//SI NO ES HOY Y ES DOMINGO --> FONDO BLANCO LETRA ROJA
		        celdaDia = "<td id=\"celda"+dia+"\" style=\"background-color:#FFFFFF;color:#CC0000;cursor:pointer;font-family: Verdana, Arial, Helvetica; font-size: 9px;\" onClick=\"marcar("+dia+","+mes+","+ano+");\" width:\"12px\" height:\"12px\">"+dia+"</td>";
			else	//SI NO ES HOY Y NO ES DOMINGO --> FONDO BLANCO LETRA NEGRA
				celdaDia = "<td id=\"celda"+dia+"\" style=\"background-color:#FFFFFF;color:#000000;cursor:pointer;font-family: Verdana, Arial, Helvetica; font-size: 9px;\" onClick=\"marcar("+dia+","+mes+","+ano+");\" width:\"12px\" height:\"12px\">"+dia+"</td>";
		}
	}
	else	//FECHAS PASADAS --> FONDO GRIS OSCURO LETRAS GRISES NO PERMETIR SELECCION
	{
		celdaDia = "<td id=\"celda"+dia+"\" style=\"background-color:#aaaaaa;color:#888888;cursor:default;font-family: Verdana, Arial, Helvetica; font-size: 9px;\" width:\"12px\" height:\"12px\">"+dia+"</td>";
	}
	return celdaDia;
}//colorear


//---------------------------------------------------------------------------------------------
function generarCalendario(mes,ano,tratando,color,directorioImagenes)
{
	var hoy = new Date();
	if (tratando == 'fechaInicio')
	{
		var diaHoy = hoy.getDate();
		var mesHoy = hoy.getMonth()+1;
		var anoHoy = hoy.getYear();
	}
	else
	{
		var valorCampo = eval("document.formularioBusqueda.fechaInicio.value");
		diasol = explode("-",valorCampo);
		var diaHoy = diasol[0];
		var mesHoy = diasol[1];
		var anoHoy = diasol[2];
	}
	if (anoHoy<1900) anoHoy+=1900;

	var dias=losDias[mes-1];
  	var i,j;

  	diaUno=calcularDia(1,mes,ano);

  	var calendarioMes="";

	calendarioMes=calendarioMes+"<table border='0' cellpadding='0' cellspacing='0' style='border:1px solid #000000;text-align:center;width: 160px; font-family: Verdana, Arial, Helvetica; font-size: 10px;'><tr valign='middle'>";
	var mesAnt = anteriorMes(mes,ano);
	mesAnt = explode("-",mesAnt);
	var mesSig = siguienteMes(mes,ano);
	mesSig = explode("-",mesSig);
	if ((mes==mesHoy) && (ano==anoHoy)) mesAnt="";
	else mesAnt = "onClick=\"mostrarCalendario('', "+mesAnt[0]+", "+mesAnt[1]+", '', '', '"+color+"', '"+directorioImagenes+"')\"";
	calendarioMes+="<td style='width:20px; height:20px; background:"+color+";  text-align:center;cursor:pointer;'><img src='"+directorioImagenes+"/prev.jpg' alt='Mes Anterior' "+mesAnt+" width='15' height='15'/></td>";
	if (idioma=="es")
		calendarioMes= calendarioMes + "<td colspan='4' height='20' class='tfecha' style='cursor:default; background:"+color+"; color:#FFFFFF; font-family: Verdana, Arial, Helvetica; font-size: 10px;'>"+losMeses[mes-1]+" "+ano+"</td>";
	else
		calendarioMes= calendarioMes + "<td colspan='4' height='20' class='tfecha' style='cursor:default; background:"+color+"; color:#FFFFFF;'>"+losMesesEn[mes-1]+" "+ano+"</td>";
		calendarioMes+="<td style='width:20px; height:20px; text-align:center; background:"+color+"; cursor:pointer;'><img src='"+directorioImagenes+"/next.jpg' alt='Mes Siguiente' width='15px' height='15px' onClick=\"mostrarCalendario('', "+mesSig[0]+", "+mesSig[1]+", '', '', '"+color+"', '"+directorioImagenes+"')\"/></td>";
		calendarioMes+="<td style='text-align:center; cursor:pointer; width:20px; height:20px; background:"+color+";'><img src=\""+directorioImagenes+"/close.jpg\" border='0' width='15px' height='15px' onclick=\"cerrarCapa('calendario');\" title=\"Cerrar calendario\"></td></tr></table>";
		//rellenamos la segunda fila con las primeras letras de cada dia L M X J V S D
		calendarioMes+="<table border='0' style='width:160px; border:1px solid #000000;text-align:center; font-family: Verdana, Arial, Helvetica; font-size: 10px;'><tr style='font-weight:bold;'>";
	for (i=0;i<7;i++)
		if (idioma=="es")
			calendarioMes=calendarioMes+ "<td class='semana'  width=\"12\" height=\"12\" style=\"cursor:default;\">"+diasSemana[i]+"</td>";
		else
			calendarioMes=calendarioMes+ "<td class='semana'  width=\"12\" height=\"12\" style=\"cursor:default;\">"+diasSemanaEn[i]+"</td>";
			calendarioMes=calendarioMes+"</tr>";
			calendarioMes+="<tr>";

	//rellenamos hasta el primer dia de Mes a guiones
	for (i=0;diasSemana[i]!=diaUno;i++)
		calendarioMes=calendarioMes+"<td style=\"background-color:#aaaaaa;color:#666666;\"  width=\"12\" height=\"12\" style=\"cursor:default;\">-</td>";

	dias_del_mes = losDias[mes-1];
	if ((mes==2) && (ano % 4==0)) dias_del_mes++;  //es bisiesto
		for (j=i,i=1;i<=dias_del_mes;){
			for (;j<7 && i<=dias_del_mes;j++,i++)
				if (j==6){
					calendarioMes+=colorear(i,mes,ano,1,tratando);
				}
				else
					calendarioMes+=colorear(i,mes,ano,0,tratando);
				if (j==7){
					calendarioMes+=("</tr><tr>");
					j=0;
				}//if (j==7)
		}//1º for
	if (j>0)
		for (;j<7;j++)
			calendarioMes+="<td style=\"background-color:#aaaaaa;color:#666666;\" width=\"12\" height=\"12\" style=\"cursor:default;\">-</td>";
			calendarioMes+= "</tr></table>"

	return calendarioMes;
}//dameCalendario
//---------------------------------------------------------------------------------------------
function calcularDia (dia, mes, ano)
{
	var dias=365*(ano-1);
	var i;
	var deSemana;
    for (i=0;i<(mes-1);i++)
		dias+=losDias[i];
  	dias+=dia-1;
  	dias+=(Math.floor((ano-1)/4));
  	if ((mes>2) && (((ano%4)==0)))	dias++;
  	deSemana=dias % 7;
    if (idioma=="es")
	{
	  	if (deSemana==0) deSemana=6;
	  	else deSemana--;
  	}
   	return diasSemana[deSemana];
}//calcularDia
//---------------------------------------------------------------------------------------------
function mostrarCalendario (tipoFecha, mes, ano, posIz, posTop, color, directorioImagenes)
{
	if (tipoFecha!="")	tratando = tipoFecha;

	if(posIz!=""){
		calendario.style.left=posIz+"px";
	}
	if(posTop!=""){
		calendario.style.top=posTop+"px";
	}

	if (tipoFecha=='fechaFin')
	{
		diasol = explode("-",document.formularioBusqueda.fechaInicio.value);
        mes = diasol[1];
        ano = diasol[2];
	}


	eval("document.formularioBusqueda.regimen.style.visibility = 'hidden'");
	eval("document.formularioBusqueda.categoria.style.visibility = 'hidden'");


	var tablaCalendario = "<table>";
	tablaCalendario+= "<tr><td >" + generarCalendario(mes, ano, tratando, color, directorioImagenes) + "</td></tr></table>";
	var celda;

	calendario.innerHTML = tablaCalendario;
	abrirCalendario('calendario');

}//mostrarCalendario
//---------------------------------------------------------------------------------------------
function marcar (dia, mes, ano)
{
	if ((elDia<10) && (elDia.toString().length)>1)    elDia = elDia.toString().substr(1,1);

	elDia = dia;
	elMes = mes;
	elAno = ano;

	devolverFecha(dia, mes, ano);
}//marcar
//---------------------------------------------------------------------------------------------
function devolverFecha (elDia, elMes, elAno)
{
	if (elDia<10) elDia = "0"+elDia;
	if (elMes<10) elMes = "0"+elMes;

	if (tratando=='fechaInicio')
	{
	    document.formularioBusqueda.fechaInicio.value=elDia+"-"+elMes+"-"+elAno;
	   	//si hay una fecha de fin copiar la fecha de inicio, sino nada
	    if (isset(eval('document.formularioBusqueda.fechaFin')))
	    	document.formularioBusqueda.fechaFin.value=elDia+"-"+elMes+"-"+elAno;
	}
	else document.formularioBusqueda.fechaFin.value=elDia+"-"+elMes+"-"+elAno;

	//recalcular fecha de salida
	sumarNoches();

	cerrarCapa('calendario');
}
//---------------------------------------------------------------------------------------------
function asignarFecha()
{
}//asignarFecha
//---------------------------------------------------------------------------------------------
var tratando = 'fechaInicio';
//---------------------------------------------------------------------------------------------
function abrirCalendario(laCapa)
{
	eval(laCapa+".style.visibility='visible'");
}//abrirCapa
//---------------------------------------------------------------------------------------------
function abrirCapa(laCapa)
{
	eval(laCapa+".style.visibility='visible'");
}//abrirCapa
//---------------------------------------------------------------------------------------------
function cerrarCapa(laCapa)
{
	calendario.innerHTML = "";
	eval(laCapa+".style.visibility='hidden'");

	eval("document.formularioBusqueda.regimen.style.visibility = 'visible'");
	eval("document.formularioBusqueda.categoria.style.visibility = 'visible'");

}
//---------------------------------------------------------------------------------------------
function cerrar(laCapa)
{
    cerrarCapa('calendario');
}
//---------------------------------------------------------------------------------------------


//---------------------------------------------------------------------------------------------
//Inhabilitacion del boton derecho
//---------------------------------------------------------------------------------------------
if(document.layers)
{
	document.captureEvents(Event.MOUSEDOWN);
}
//document.onmousedown=click;






//---------------------------------------------------------------------------------------------
//Cambiar fecha de salida segun las noches seleccionadas
//---------------------------------------------------------------------------------------------
var aFinMes = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

function finMes(nMes, nAno)
{
	return aFinMes[nMes - 1] + (((nMes == 2) && (nAno % 4) == 0)? 1: 0);
}

function padNmb(nStr, nLen, sChr)
{
	var sRes = String(nStr);
	for (var i = 0; i < nLen - String(nStr).length; i++)
		sRes = sChr + sRes;
	return sRes;
}

function makeDateFormat(nDay, nMonth, nYear)
{
	var sRes;
	sRes = padNmb(nDay, 2, "0") + "-" + padNmb(nMonth, 2, "0") + "-" + padNmb(nYear, 4, "0");
	return sRes;
}


function incDate(sFec0)
{
	var nDia = parseInt(sFec0.substr(0, 2), 10);
	var nMes = parseInt(sFec0.substr(3, 2), 10);
	var nAno = parseInt(sFec0.substr(6, 4), 10);
	nDia += 1;
	if (nDia > finMes(nMes, nAno)){
		nDia = 1;
		nMes += 1;
		if (nMes == 13){
	 		nMes = 1;
	 		nAno += 1;
		}
	}
	return makeDateFormat(nDia, nMes, nAno);
}

function decDate(sFec0)
{
	var nDia = Number(sFec0.substr(0, 2));
	var nMes = Number(sFec0.substr(3, 2));
	var nAno = Number(sFec0.substr(6, 4));
	nDia -= 1;
	if (nDia == 0){
		nMes -= 1;
		if (nMes == 0){
		 	nMes = 12;
		 	nAno -= 1;
		}
		nDia = finMes(nMes, nAno);
	}
	return makeDateFormat(nDia, nMes, nAno);
}

function addToDate(sFec0, sInc)
{
	var nInc = Math.abs(parseInt(sInc));
	var sRes = sFec0;
	if (parseInt(sInc) >= 0)
		for (var i = 0; i < nInc; i++) sRes = incDate(sRes);
	else
		for (var i = 0; i < nInc; i++) sRes = decDate(sRes);
	return sRes;
}

function sumarNoches()
{
	document.getElementById('fechaFin').value = addToDate(document.getElementById('fechaInicio').value, document.getElementById('noches').value);

}