

function getObj(objID)
{
    if (document.getElementById) {return document.getElementById(objID);}
    else if (document.all) {return document.all[objID];}
    else if (document.layers) {return document.layers[objID];}
}

function checkClick(e) {

	
	e?evt=e:evt=event;
	CSE=evt.target?evt.target:evt.srcElement;
	
	var displayModeC1;
	var displayModeC2;
	
	if (getObj('fc'))
	{
		if (!isChild(CSE,getObj('fc')))
		{
			displayModeC1 = 'none';
		}
	}	
	
	if (getObj('fc2'))
	{
		if (!isChild(CSE,getObj('fc2')))
		{
			displayModeC2 = 'none';
		}
	}
	
	if (displayModeC1 == displayModeC2 || CSE.id=="imgCloseCalendar" )
	{
		getObj('divCalendar').style.display = displayModeC1;
	}
}

function isChild(s,d) {
	while(s) {
		if (s==d) 
			return true;
		s=s.parentNode;
	}
	return false;
}

function LeftF(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
			// Las paginas estructuradas en div deben contener un campo oculto con 
			// id = divStructure para que funcione
			if ((document.getElementById("hdDivStructure")!= null) &&
				curleft > 0)
			{
				break;
			}
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function Top(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

document.write('<table id="divCalendar" style="position:absolute;z-index:200;border-collapse:collapse;background:#FFFFFF;border:1px solid #ABABAB;display:none;">');
document.write('<tr><td colspan=2 align=right><img id="imgCloseCalendar" src= ' + rutaImagenCerrar + '  style="cursor:pointer" ></td></tr>');
document.write('<tr><td>');
document.write('<table id="fc" cellpadding=1 style="border-collapse:collapse;background:#FFFFFF;border:1px solid #ABABAB">');
document.write('<tr height=15px class="ColorRowMes"><td style="cursor:pointer"><img src=' + rutaImagenAnterior + ' id="imgLeftArrow" onclick="csubm()"></td><td colspan=6 id="mns" align="center" class="TextoCalendarioMeses"></td></tr>');

//Días de la semana
document.write('<tr class="ColorRowDiasSemana">');

for(var dd=0;dd<=6;dd++)
{
	document.write('<td align=center style="font:8px Arial" class="TextoCalendarioSemana">' + wd[dd] + '</td>');
}

document.write('</tr>');
				
for(var kk=1;kk<=6;kk++) {
	document.write('<tr>');

	for(var tt=1;tt<=7;tt++) {
		num=7 * (kk-1) - (-tt);
		document.write('<td align=center id="v' + num + '" style="width:18px;height:18px">&nbsp;</td>');
	}
	document.write('</tr>');
}
document.write('</table>');
document.write('</td><td>');
//------------------------------------------------------------------------------------------//
document.write('<table id="fc2" style="border-collapse:collapse;background:#FFFFFF;border:1px solid #ABABAB" cellpadding=1>');
document.write('<tr height=15px class="ColorRowMes"><td colspan=6 id="mns2" align="center" class="TextoCalendarioMeses"></td><td align="right" style="cursor:pointer"><img id="imgRightArrow" src=' + rutaImagenPosterior + '  onclick="caddm()"></td></tr>');

//Días de la semana
document.write('<tr class ="ColorRowDiasSemana">');

for(var dd=0;dd<=6;dd++)
{
	document.write('<td align=center style="font:8px Arial;" class="TextoCalendarioSemana">' + wd[dd] + '</td>');
}

document.write('</tr>');
				
for(var kk=1;kk<=6;kk++) {
	document.write('<tr>');
	
	for(var tt=1;tt<=7;tt++) {
		num=7 * (kk-1) - (-tt);
		document.write('<td align=center id="vv' + num + '" style="width:18px;height:18px">&nbsp;</td>');
	}

	document.write('</tr>');
}
document.write('</table>');

document.write('</td></tr></table>');
//-----------------------------------------------------------------------------------------//

document.all?document.attachEvent('onclick',checkClick):document.addEventListener('click',checkClick,false);

// Calendar script
var now = new Date(ServerTime[2], ServerTime[1] - 1, ServerTime[0]);
var sccm=now.getMonth();
var sccy=now.getFullYear();
var ccm=now.getMonth();
var ccy=now.getFullYear();

var updobj;

function checkDate( value )
{
	if (value.indexOf(dateSeparator) < 0)
		return false;
	
	var _date = value.split(dateSeparator);

	var day = _date[posicionDia];
	var month = _date[posicionMes];
	var year = _date[2];
	
	//Debe tener 3 elementos
	if (_date.length != 3)
		return false;
	
	var marr=((year%4)==0)?mnl:mnn;
	
	//El mes, entre 1 y 12
	if ( month < 0 || month > 12)
		return false;
	
	
	//El dia, entre 1 y MaximoDia Para el mes
	if (day < 0 || day > marr[month-1])
		return false;
		
	//El año, de 4 digitos
	if (year.length != 4)
		return false;
		
	//La fecha no puede ser menor a la fecha actual;
	var FechaActual = new Date(ServerTime[2], ServerTime[1] - 1, ServerTime[0]);
	
	NewDate = new Date(year, month - 1, day);
	if (NewDate < FechaActual)
		return false;
	
	
	return true;
}

function lcs(ielem) {
	updobj=ielem;

	var diva = getObj('divCalendar');
	getObj('divCalendar').style.left = LeftF(ielem); 
	getObj('divCalendar').style.top = Top(ielem)+ielem.offsetHeight;
	getObj('divCalendar').style.display='';

	// First check date is valid
	curdt=ielem.value;
	
	isdt = checkDate(curdt);
	//curdtarr=curdt.split('/');
	curdtarr=curdt.split(dateSeparator);
	
	if (isdt) {
		ccm = curdtarr[posicionMes]-1;
		ccy = curdtarr[2];
		prepcalendar( curdtarr[posicionDia], curdtarr[posicionMes]-1,  ccy);
	}
	else
	{
		ielem.value = "";
		

		
		if (esOferta()) 
		{
			var FechaActual = new Date(ServerTime[2], ServerTime[1] - 1, ServerTime[0]);

			var intFecha = parseInt(FormatoFechaYYYYMMDD(FechaActual));
			var intFechaIni = parseInt(ini);
			
			var iyear = parseInt(yearinicio);
			var imes = parseInt(mesinicio);
		
			
			if (intFechaIni < intFecha)
				prepcalendar('',ccm,ccy);
			else
			{
				ccm = imes-1;
				ccy = iyear;
				prepcalendar('',imes-1,iyear);
			}
		}
		else
			prepcalendar('',ccm,ccy);
	}
}

function esOferta()
{
	try
	{
		var fini = parseInt(ini);
		return true;
	}
	catch(e)
	{
		return false;
	}
}

function checkLenght(value, iLenght)
{
	if (value.lenght == iLenght)
		return true;
	else
		return false;
}

function evtTgt(e)
{
	var el;
	if(e.target)el=e.target;
	else if(e.srcElement)el=e.srcElement;
	if(el.nodeType==3)el=el.parentNode; // defeat Safari bug
	return el;
}

function EvtObj(e){if(!e)e=window.event;return e;}

function cs_over(e) {
	
	if (evtTgt(EvtObj(e)).className != "TextoDiaSeleccionadoCalendario" )
	{
		evtTgt(EvtObj(e)).style.background='#FFCC66';
	}
}

function cs_out(e) {
	if (evtTgt(EvtObj(e)).className != "TextoDiaSeleccionadoCalendario" )
	{
		evtTgt(EvtObj(e)).style.background='#C4D3EA';
		evtTgt(EvtObj(e)).style.background='#FFFFFF';
	}
}

function convertDate(date)
{
	if (date == '')
	{
		return "";
	}
	var arrDate  =  date.split(dateSeparator);
	
	//Formato 10-sep-2008
	//return arrDate[0] + "-" + shortMonthName[arrDate[1]-1] + "-" + arrDate[2];
	
	//Formato 10/09/08

	if (arrDate[0].length == 1)
	{
		arrDate[0] = "0" + arrDate[0];
	}
	
	if (arrDate[1].length == 1)
	{
		arrDate[1] = "0" + arrDate[1];
	}
	
	//var controlHiddenID = updobj.id.split('_')[0] + "_" + updobj.id.split('_')[1] + "_hdDate";
	//alert(controlHiddenID);	
	//getObj(controlHiddenID).value = arrDate[2] + arrDate[1] + arrDate[0];
	
	//alert("return " + arrDate[0] + dateSeparator + arrDate[1] + dateSeparator + arrDate[2]);
	return arrDate[0] + dateSeparator + arrDate[1] + dateSeparator + arrDate[2];
	
	
	//return arrDate[0] + "/" + arrDate[1] + "/" + arrDate[2].substring(2);
}

function cs_click(e) {
	
	if ( evtTgt(EvtObj(e)).id.substring (0, 2) == "vv" )
	{
		updobj.value=convertDate(calvalarr2[evtTgt(EvtObj(e)).id.substring(2,evtTgt(EvtObj(e)).id.length)]);
		GestionFechas(updobj.id);
	}
	else
	{
		updobj.value=convertDate(calvalarr[evtTgt(EvtObj(e)).id.substring(1,evtTgt(EvtObj(e)).id.length)]);
		GestionFechas(updobj.id);
	}
	
	if ( updobj.value != "")
	{
		getObj('divCalendar').style.display='none';
	}
}

var mnn=new Array('31','28','31','30','31','30','31','31','30','31','30','31');
var mnl=new Array('31','29','31','30','31','30','31','31','30','31','30','31');

var calvalarr=new Array(42);
var calvalarr2=new Array(42);

//Dias
function f_cps(obj) {
	obj.style.backgroundColor = "#FAFBFC";
	obj.className = "TextoDiasCalendario";
}
//Dias "Disabled"
function f_cpps(obj) {
	obj.style.backgroundColor = "#FAFBFC";
	obj.className = "TextoDiasDisabledCalendario";
}

//Dia Seleccionado
function f_hds(obj) {
	
	obj.style.backgroundColor = "#CDD7DE";
	obj.className = "TextoDiaSeleccionadoCalendario";
}


function prepcalendar(hd,cm,cy) {
	now=new Date(ServerTime[2], ServerTime[1] - 1, ServerTime[0]);
	sd=now.getDate(); 
	
	td=new Date(ServerTime[2], ServerTime[1] - 1, ServerTime[0]);
	td.setDate(1);
	td.setFullYear(cy);
	td.setMonth(cm);
	
	cd=td.getDay();	// Devuelve el domingo como primer día de la semana
	if ( firstDayOfWeek > 0 )
		cd = cd == 0 ? 6 : cd-1; // Convierte el lunes como primer día de la semana
	

	//Si el calendario muestra el mes en curso, ocultamos el botón de "ir a mes anterior"
	if (esOferta())
	{
		var iyear = parseInt(yearinicio);
		var imes = parseInt(mesinicio) -1;
		
		//Si el calendario muestra el mes inicio
		if (cm == imes && cy == iyear)
		{
			getObj("imgLeftArrow").style.visibility = "hidden";
		}
		else
		{
			getObj("imgLeftArrow").style.visibility = "visible";
		}
	}
	else
	{
		if (cm == sccm && cy == sccy)
		{
			getObj("imgLeftArrow").style.visibility = "hidden";
		}
		else
		{
			getObj("imgLeftArrow").style.visibility = "visible";
		}
	}
	
	//si el calendario muestra 2 años despues ocultamos boton de ir a m
	
	var syear = sccy + 2;
	
	if (esOferta())
	{
		var iyear = parseInt(yearfin);
		var imes = parseInt(mesfin) -1;
		
		//Si el calendario muestra el mes final
		if (cm == imes && cy == iyear)
		{
			getObj("imgRightArrow").style.visibility = "hidden";
		}
		else
		{
			getObj("imgRightArrow").style.visibility = "visible";
		}
	}
	else
	{
		if ( cm == sccm && syear == cy)
		{
			getObj("imgRightArrow").style.visibility = "hidden";
		}
		else
		{
			getObj("imgRightArrow").style.visibility = "visible";
		}
	}
	
	
	getObj('mns').innerHTML=mn[cm]+ ' ' + cy;
	marr=((cy%4)==0)?mnl:mnn;

	
	for(var d=1;d<=42;d++) {
	
		f_cps(getObj('v'+ parseInt(d)));
		
		if ((d >= (cd -(-1))) && (d<=cd-(-marr[cm]))) {
		
			dip=((d-cd < sd)&&(cm==sccm)&&(cy==sccy));
			
			htd=((hd!='')&&(d-cd==hd)&&(cm==ccm)&&(cy==ccy));
		
			if (dip)
			{
				f_cpps(getObj('v'+parseInt(d)));
			}
			else if (htd)
			{
				f_hds(getObj('v'+parseInt(d)));
			}
			else
			{
				f_cps(getObj('v'+parseInt(d)));
			}
			
			var year = cy;
			var mes = (cm-(-1));
			var dia = (d-cd);

			if (!ShowDay(year, mes, dia))
			{
				f_cpps(getObj('v'+parseInt(d)));
				dip = true;
			}
			

			getObj('v'+parseInt(d)).onmouseover=(dip)?null:cs_over;
			getObj('v'+parseInt(d)).onmouseout=(dip)?null:cs_out;
			getObj('v'+parseInt(d)).onclick=(dip)?null:cs_click;
			getObj('v'+parseInt(d)).style.cursor=(dip)?'default':'pointer';

			
			getObj('v'+parseInt(d)).innerHTML=d-cd;	

			
			if (posicionDia == 0)
			{
				calvalarr[d]=''+(d-cd)+ dateSeparator +(cm-(-1))+ dateSeparator +cy;
			}
			else
			{
				calvalarr[d]=''+ (cm-(-1)) + dateSeparator + (d-cd) + dateSeparator +cy; 
			}
			
		}
		else {
			getObj('v'+d).innerHTML='';
			getObj('v'+parseInt(d)).onmouseover=null;
			getObj('v'+parseInt(d)).onmouseout=null;
			getObj('v'+parseInt(d)).style.cursor='default';
			calvalarr[d]='';
			getObj('v'+parseInt(d)).onclick=null;
		}
	}
	
	
	//---------------------- CALENDARIO 2 -----------------------------------------//
	if (cm == 11)
	{
		cm = -1;
		cy++;
	}
	
	cm++;
		
	td=new Date(); 
	td.setDate(1);
	td.setFullYear(cy);
	td.setMonth(cm);
	
	cd=td.getDay();	// Devuelve el domingo como primer día de la semana

	if ( firstDayOfWeek > 0 )
		cd = cd == 0 ? 6 : cd-1; // Convierte el lunes como primer día de la semana
	
	getObj('mns2').innerHTML=mn[cm]+ ' ' + cy;
	
	marr=((cy%4)==0)?mnl:mnn;
	for(var d=1;d<=42;d++) {
		f_cps(getObj('vv'+ parseInt(d)));
		
		if ((d >= (cd -(-1))) && (d<=cd-(-marr[cm]))) {
		
			dip=((d-cd < sd)&&(cm==sccm)&&(cy==sccy));
			htd=((hd!='')&&(d-cd==hd)&&(cm==ccm)&&(cy==ccy));
			
			if (dip)
				f_cpps(getObj('vv'+parseInt(d)));
			else if (htd)
				f_hds(getObj('vv'+parseInt(d)));
			else
				f_cps(getObj('vv'+parseInt(d)));
				
			
			var year = cy.toString();
			var mes = (cm-(-1)).toString();
			var dia = (d-cd).toString();
		
			if (!ShowDay(year, mes, dia))
			{
				f_cpps(getObj('vv'+parseInt(d)));
				dip = true;
			}

			getObj('vv'+parseInt(d)).onmouseover=(dip)?null:cs_over;
			getObj('vv'+parseInt(d)).onmouseout=(dip)?null:cs_out;
			getObj('vv'+parseInt(d)).onclick=(dip)?null:cs_click;
			getObj('vv'+parseInt(d)).style.cursor=(dip)?'default':'pointer';
				
			getObj('vv'+parseInt(d)).innerHTML=d-cd;	
			//getObj('vv'+parseInt(d)).style.textDecoration = 'underline';
			
			if (posicionDia == 0)
			{
				calvalarr2[d]=''+(d-cd)+ dateSeparator +(cm-(-1))+ dateSeparator +cy;
			}
			else
			{
				calvalarr2[d]=''+ (cm-(-1)) + dateSeparator + (d-cd) + dateSeparator +cy; 
			}
		}
		else {
			getObj('vv'+d).innerHTML='';
			getObj('vv'+parseInt(d)).onmouseover=null;
			getObj('vv'+parseInt(d)).onmouseout=null;
			getObj('vv'+parseInt(d)).style.cursor='default';
			calvalarr2[d] = '';
			getObj('vv'+parseInt(d)).onclick=null;
		}
	}
	//-------------------FIN CALENDARIO 2------------------------------------------//
	
	

}

function ShowDay(year, mes, dia)
{

	try
	{
		var fini = parseInt(ini);
	}
	catch(e)
	{
		return true;
	}
		
	
	var esFechaEntrada = false;
	
	if (updobj.id.search("Entrada") > -1)
		esFechaEntrada = true;
	
			
	var fechadiasemana = year + "|" + mes + "|" + dia;
	
	var diasemana = getDiaSemana(fechadiasemana);
	
	if (mes.toString().length == 1)mes = "0" + mes;
	if (dia.toString().length == 1)dia = "0" + dia;
	
	var fecha = year.toString() + mes.toString() + dia.toString();
	
	var intFecha = parseInt(fecha);
	
	var intFechaIni = parseInt(ini);
	var intFechaFin = parseInt(fin);
	
	var intEntradaIni;
	var intEntradaFin;
		
	var intSalidaIni;
	var intSalidaFin;
		
	try
	{
		intEntradaIni = parseInt(entradadesde);
		intEntradaFin = parseInt(entradahasta);
		intSalidaIni = parseInt(salidadesde);
		intSalidaFin = parseInt(salidahasta);
		
	}catch(e)
	{}
	
	if (esFechaEntrada)
	{
		if (entradadesde != "")
			if (intFecha<intEntradaIni)
				return false;
				
		if (entradahasta != "")
			if (intFecha>intEntradaFin)
				return false;
	}
	else
	{
		//Es fecha salida
		if (salidadesde != "")
			if (intFecha<intSalidaIni)
				return false;
				
		if (salidahasta != "")
			if (intFecha>intSalidaFin)
				return false;
	}
	
	//document.all.caca.value = "a";
	
	if (estancias.search(diasemana.toString())== -1)
	{
		return false;
	}
	
	if (intFecha < intFechaIni)
	{
		return false;
	}
	
	if (intFecha > intFechaFin)
	{
		return false;
	}
	if (blackouts.search(fecha) > -1)
	{
		return false;
	}
	
	return true;
}

function caddm() {

	marr=((ccy%4)==0)?mnl:mnn;
	
	ccm+=1;
	if (ccm>=12) {
		ccm=0;
		ccy++;
	}
	cdayf();
	prepcalendar('',ccm,ccy);
}

function csubm() {

	marr=((ccy%4)==0)?mnl:mnn;
	
	ccm-=1;
	if (ccm<0) {
		ccm=11;
		ccy--;
	}
	cdayf();
	prepcalendar('',ccm,ccy);
}

function cdayf() {
if ((ccy>sccy)|((ccy==sccy)&&(ccm>=sccm)))
	return;
else {
	ccy=sccy;
	ccm=sccm;
	cfd=scfd;
	}
}

function validateInput(e){
	if(e){
	e = e 
	} else {
	e = window.event
	} 

	if(e.which){ 
	var keycode = e.which
	} else {
	var keycode = e.keyCode 
	}

	//Pulsan la tecla Return
	if(keycode == 13) {
		checkClick(e);
		CSE=evt.target?evt.target:evt.srcElement;
		if (!checkDate(CSE.value)) {
			CSE.value = "";
		};
	}
}

function CalcularNoches(_FechaEntrada, _FechaSalida)
{
	var mseg_dia=1000*60*60*24;
	var diferencia_horaria = _FechaSalida.getTimezoneOffset() - _FechaEntrada.getTimezoneOffset();

	diferencia_horaria = diferencia_horaria * 1000 * 60; //la función retorna valor en min y queremos mseg
	
	var Noches = Math.ceil((_FechaSalida.getTime()-_FechaEntrada.getTime()-diferencia_horaria)/(mseg_dia));

	if (Noches > 99)
	{
		Noches = 99;
	}

	return Noches;
}

function Noches_onChange(_controlFB)
{

	var IDctrlEntrada = _controlFB + "_dtpFechaEntrada";
	var IDctrlSalida = _controlFB + "_dtpFechaSalida";
	
	var controlFechaEntrada = getObj(IDctrlEntrada + "_txtDate");
	var controlFechaSalida = getObj(IDctrlSalida + "_txtDate");	
	var controlNoches = getObj(_controlFB + "_txtNoches");
	
	if (controlNoches.value == "")
	{
		controlNoches.value = "1";
	}
	
	if ((isNaN(controlNoches.value)) || parseInt(controlNoches.value) <=0 )
	{
		if (controlFechaEntrada.value != "" && controlFechaSalida.value != "")
		{
			controlNoches.value = CalcularNoches(toDate(controlFechaEntrada.value), toDate(controlFechaSalida.value));
		}
		else
		{
			controlNoches.value = "";
		}
		return;
	}
	
	//Validar que es menor o igual q 99
	if (parseInt(controlNoches.value) > 99)
	{
		controlNoches.value = "99";
	}
	
	//Si la fecha entrada esta informada, recalculamos.
	if (controlFechaEntrada.value != "")
	{
		controlFechaSalida.value = FormatoFechaCultura(AddDays(toDate(controlFechaEntrada.value), parseInt(controlNoches.value)));
	}
	else
	{
		if (controlFechaSalida.value != "")
		{
			controlFechaEntrada.value = FormatoFechaCultura(AddDays(toDate(controlFechaSalida.value), (parseInt(controlNoches.value) * -1) ));
			if (!checkDate(controlFechaEntrada.value))
			{
				alert(getObj(_controlFB + "_hdErrorMsg").value);
				controlFechaEntrada.value = "";
				controlNoches.value = "";
			}
		}
		else
		{
			controlNoches.value = "";
		}
	}
}

function GestionFechas(controlModificado)
{
	//Si han modificado fecha de entrada: 
	//	-	Mirar si fecha salida informada:
	//			- Si?
	//				- Controlar Logica
    //					- Si la Fecha Salida es mayor a la entrada: Recalcular Noches
	//					- Si la Fecha Salida es menor o igual a la entrada: FechaSalida = FechaEntada + 1 dia
	//			- No?
	//				-  Fecha Salida = Fecha Entrada + 1 dia + calcular noches						
	//
	//Si han modificado fecha de salida:
	//  -	Mirar si fecha entrada informada:
	//		   - Si?
	//				- Controlar Logica
	//					- Si Fecha Entrada es menor a la F.Salida: RecalcularNoches
	//					- Si Fecha Entrada es mayor o igual a la F.Salida: Fecha Entrada= Fecha Salida - 1 dia
	//		   - No?
	//				- Fecha Entrada = FehaEntrada - 1 dia + noches
	
	
	if (!checkDate(getObj(controlModificado).value))
	{
		getObj('divCalendar').style.display='none';

		return;
	}
	
	if (getObj(controlModificado).value == "") 
	{
		getObj('divCalendar').style.display='none';

		return;
	}	
	
	//Esto es pq en la Home, el control se inserta dinamicamente y le pone un id que empieza por "_"
	if (controlModificado.indexOf('_') == 0)
	{
		controlFB = "_" + controlModificado.split('_')[1];
	}
	else
	{
		controlFB = controlModificado.split('_')[0];
	}
	
	
	//Obtenemos los controles para trabajar con ellos
	var HiddenFechaEntrada = getObj(controlFB + "_dtpFechaEntrada_hdDate");
	var HiddenFechaSalida = getObj(controlFB + "_dtpFechaSalida_hdDate");
	var TextFechaEntrada = getObj(controlFB + "_dtpFechaEntrada_txtDate");
	var TextFechaSalida = getObj(controlFB + "_dtpFechaSalida_txtDate");
	var TextNoches = getObj(controlFB + "_txtNoches");
	
	

	var FechaEntradaModificada;
	
	if (controlModificado.indexOf('Salida')>-1)
	{
		FechaEntradaModificada = false;
	}
	else
	{
		FechaEntradaModificada = true;
	}
	
	if (FechaEntradaModificada)
	{
		//Se ha modificado la fecha de entrada
		if (TextFechaSalida.value != "") 
		{
			//la salida ya estaba informada...
			//Si FechaSalida es mayor que la FechaEntrada
			if ( toDate(TextFechaSalida.value) > toDate(TextFechaEntrada.value) )
			{
				TextNoches.value = CalcularNoches(toDate(TextFechaEntrada.value), toDate(TextFechaSalida.value));
			}
			else
			{
				//La FechaSalida es = o menor que la FechaEntrada
				//Fecha Salida = FechaEntrada + 1 dia
				TextFechaSalida.value = FormatoFechaCultura(AddDays(toDate(TextFechaEntrada.value), 1));
				TextNoches.value = CalcularNoches(toDate(TextFechaEntrada.value), toDate(TextFechaSalida.value));
			}
		}
		else
		{
				//La FechaSalida NO está informada ...
				//Fecha Salida = FechaEntrada + 1 dia
				
				TextFechaSalida.value = FormatoFechaCultura(AddDays(toDate(TextFechaEntrada.value), 1));
				TextNoches.value = CalcularNoches(toDate(TextFechaEntrada.value), toDate(TextFechaSalida.value));
		}
	}
	else
	{
		//Se ha modificado la fecha de salida
		
		//La Fecha Salida debe ser MAYOR que HOY.
		var FechaActual = new Date(ServerTime[2], ServerTime[1] - 1, ServerTime[0]);
	
		if ( toDate(TextFechaSalida.value) <= FechaActual )
		{
			alert(getObj(_controlFB + "_hdErrorMsg").value);
			TextFechaSalida.value = "";
			TextNoches.value = "";
			return;
		}
		
		
		if (TextFechaEntrada.value != "") 
		{
			//Fecha entrada ya informada...
			if ( toDate(TextFechaEntrada.value) < toDate(TextFechaSalida.value) )
			{
				//Calculamos las noches
				TextNoches.value = CalcularNoches(toDate(TextFechaEntrada.value), toDate(TextFechaSalida.value));
			}
			else
			{
				//FechaEntrada es Mayor o = que la Salida...
				//FechaEntrada = FechaSalida - 1, si procede...
				TextFechaEntrada.value = FormatoFechaCultura(AddDays(toDate(TextFechaSalida.value), -1));
				TextNoches.value = CalcularNoches(toDate(TextFechaEntrada.value), toDate(TextFechaSalida.value));
			}	
		}
		else
		{
			//Fecha entrada NO informada
			//FechaEntrada = FechaSalida - 1, si procede...
			TextFechaEntrada.value = FormatoFechaCultura(AddDays(toDate(TextFechaSalida.value), -1));
			TextNoches.value = CalcularNoches(toDate(TextFechaEntrada.value), toDate(TextFechaSalida.value));
		}
	}
	
	HiddenFechaEntrada.value = FormatoFechaYYYYMMDD(toDate(TextFechaEntrada.value));
	HiddenFechaSalida.value = FormatoFechaYYYYMMDD(toDate(TextFechaSalida.value));
	
	getObj('divCalendar').style.display='none';
}


function AddDays(_Fecha, _Noches)
{
	var returnFecha;

	returnFecha = _Fecha;
	returnFecha.setDate(_Fecha.getDate()+ parseInt(_Noches));

	return returnFecha;	
}

function FormatoFechaCultura(_Fecha)
{
	var objFecha = new Date();
	
	objFecha = _Fecha;
	
	var intAnyo = objFecha.getFullYear();
    var intMes= objFecha.getMonth();
  
    intMes= intMes +1;
 
	var strAuxFecha = objFecha.toDateString();
	
	var index = 2;
	
	if (window.opera)
		index = 1;
	
	strDia = strAuxFecha.split(' ')[index];
	
	var strMes = intMes.toString();
	
	var strYear = intAnyo.toString();
	
	if (strDia.length == 1)
	{
		strDia = "0" + strDia; 
	}
	if (strMes.length == 1)
	{
		strMes = "0" + strMes;
	}
	
	//Tenemos dia, mes y año
	var strFechaOut;

	if ( posicionDia < posicionMes )
	{
		strFechaOut = strDia + dateSeparator + strMes + dateSeparator + strYear;
	}
	else
	{
		strFechaOut = strMes + dateSeparator + strDia + dateSeparator + strYear;
	}
	
	return strFechaOut;
}

function FormatoFechaYYYYMMDD(_Fecha)
{
	var objFecha = new Date();
	
	objFecha = _Fecha;
	
	var intAnyo = objFecha.getFullYear();
    var intMes= objFecha.getMonth();
  
    intMes= intMes +1;
 
	var strAuxFecha = objFecha.toDateString();
	
	var index = 2;
	
	if (window.opera)
		index = 1;
		
	strDia = strAuxFecha.split(' ')[index];
	
	var strMes = intMes.toString();
	
	var strYear = intAnyo.toString();
	
	if (strDia.length == 1)
	{
		strDia = "0" + strDia; 
	}
	if (strMes.length == 1)
	{
		strMes = "0" + strMes;
	}
	
	
	strFechaOut = strYear +  strMes + strDia ;
	
	return strFechaOut;
}

function toDate(_strFecha)
{
	var date = _strFecha.split(dateSeparator);

	var day = date[posicionDia];
	var month = date[posicionMes];
	var year = date[2];
	
	returnDate = new Date(year, month - 1, day);
	
	return returnDate;
}

function getDiaSemana(_date)
{
	var arrdate = _date.split("|");
	
	var day = arrdate[2];
	var month = arrdate[1];
	var year = arrdate[0];

	var date = new Date(year, month - 1, day);
	
	var diasemana = date.getDay();
	
	if (diasemana == 0)
		diasemana = 7;
	
	return diasemana;
}
