var zz, zv, d, fTSR;
var gBF=false;
var g_MINY = 1601;
var g_MAXY = 4500;
var g_month = 0;
var g_day = 0;
var g_year = 0;
var g_yLow = 1990;
var g_eC=null;
var g_eCV="";
var offsetLeftImg = 24;
var offsetTopImg = 21;


var rgMC = Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
d = new Date();
fTSR=0;
zv = d.getTime();
zz = "&zz="+zv;

function cal(i,caller) {
	calToClose = i;
	var f = document.forms[0];
	var dfecha = new Date();
	var dMin=(dfecha.getMonth()+1)+'/'+dfecha.getDate()+'/'+dfecha.getFullYear();
	var month=dfecha.getMonth()+10;
	if (month>11) {
		month=month-12;
		dfecha.setYear(dfecha.getFullYear()+1);
	}
	dfecha.setMonth(month);
	var dMax=(dfecha.getMonth()+1)+'/'+dfecha.getDate()+'/'+dfecha.getFullYear();
	if (i==1) {
		if (GetInputDate(f.D_Date.value)) {
			dMin=(g_month<10?"0":"")+g_month+'/'+(g_day<10?"0":"")+g_day+'/'+g_year;

		}
	}

	ShowCalendar((i==0?f.cal0:f.cal1), (i==0?f.D_Date:f.R_Date),dMin,dMax,caller);

}

function GetDowStart() {return 1;}

function GetInputDate(t) {
	var l = t.length;
	if(0 == l) return false;
	var cSp = '\0';
	var sSp1 = "";
	var sSp2 = "";
	for(var i=0; i<t.length; i++){
		var c=t.charAt(i);
		if(c==' ' || isdigit(c)) continue;
		else if(cSp == '\0' && (c == '/' || c == '-' || c == '.')) {
			cSp = c;
			sSp1 = t.substring(i+1,l);
		} else if(c==cSp) sSp2 = t.substring(i+1,l);
		else if(c != cSp) return false;
	}
	if(0 == sSp1.length) return false;
	var m=atoi(sSp1);
	var d=atoi(t);
	var y; 
	if(0 != sSp2.length) y = atoi(sSp2);
	else y = DefYr(m,d);
	if(y < 100){
		y = 1900+y;
		while(y < g_yLow) y = y+100;
	}
	if(y < g_MINY || y > g_MAXY || m < 1 || m > 12) return false;
	if(d < 1 || d > GetMonthCount(m,y)) return false;
	g_month = m;
	g_day = d;
	g_year = y;
	return true;
}

function DefYr(m,d){
	var dt = new Date();
	var yCur = (dt.getYear() < 1000) ? 1900+dt.getYear() : dt.getYear();
	if(m-1 < dt.getMonth() || (m-1 == dt.getMonth() && d < dt.getDate())) return 1+yCur;
	else return yCur;
}

function atoi(s){
	var t=0;
	for(var i=0; i<s.length; i++){
		var c=s.charAt(i);
		if(!isdigit(c)) return t;
		else t = t*10 + (c-'0');
	}
	return t;
}

function isdigit(c) {
	return(c >= '0' && c <= '9');
}

function GetMonthCount(m,y){
	var c = rgMC[m-1];
	if((2 == m) && IsLeapYear(y)) c++;
	return c;
}
function IsLeapYear(y){
	if(0 == y % 4 && ((y % 100 != 0) || (y % 400 == 0))) return true;
	else return false;
}

function ShowCalendar(eP,eD,dmin,dmax,caller){
	var dF=document.getElementById("CalFrame");
	var wF=window.frames.CalFrame;
	//var wF=window.frames[1];
	if(null==wF.g_fCalLoaded || false==wF.g_fCalLoaded){
		alert("No se puede mostrar el calendario.\nPor favor, actualiza la página.");
		return;
	}
	wF.SetMinMax(new Date(dmin),new Date(dmax));


	if(eD==g_eC && "block"==dF.style.display){
		if(g_eCV != eD.value && GetInputDate(eD.value)){
			wF.SetInputDate(g_day,g_month,g_year);
			wF.SetDate(g_day,g_month,g_year);
			g_eCV=eD.value;
		} else
			dF.style.display="none";
	} else {
		if(GetInputDate(eD.value)){
			wF.SetInputDate(g_day,g_month,g_year);
			wF.SetDate(g_day,g_month,g_year);
		} else{
			var dt=new Date(dmin);
			wF.SetInputDate(-1,-1,-1);
			wF.SetDate(dt.getDate(),dt.getMonth()+1,dt.getFullYear());
		}
		
		var eL=0;var eT=0;
		
	
		for(var p=eP; p && p.tagName!='BODY'; p=p.offsetParent)	{
			
			eL += p.offsetLeft;
			eT += p.offsetTop;
		
		}

		dF.style.left=eL+"px";
		dF.style.top=(eT+offsetTopImg)+"px";

		if("none"==dF.style.display)
			dF.style.display="block";
		g_eC=eD;
		g_eCV=eD.value;
		
	}

}

function SetDate(d,m,y){
	var f = document.forms[0];
	var dateType = (g_eC.name == "D_Date"?"D":"R");
	m = (m<10?"0"+m:""+m);
	var cmbMonth = eval("f." + dateType + "_YearMonth");
	var cmbDay = eval("f." + dateType + "_Day");
	for (var i=0;i<cmbMonth.length;i++) {
		if (cmbMonth.options[i].value == (y+m)) {
			cmbMonth.selectedIndex = i;
			setDateCalendar(d,m,dateType,true);
			weekDay('D');
			weekDay('R');
			if (f.hoteles.value == "1") {
				setNights();
			}
		}
	}

	g_eC.value=d+"/"+m+"/"+y;
	g_eCV=g_eC.value;
}

function ShowCalendarSelect(eP,eD,_days,_months,_years){
	len=_years.length-1;
	desde=""+_days[0]+"/"+_months[0]+"/"+_years[0]
	hasta=""+_days[len]+"/"+_months[len]+"/"+_years[len]
	ShowCalendarSelectMinMax(eP,eD,_days,_months,_years, desde, hasta)
}

function ShowCalendarSelectMinMax(eP,eD,_days,_months,_years, desde, hasta) {
	
	var dF=document.getElementById("CalFrame");
	var wF=window.frames.CalFrame;
	//var wF=window.frames[1];
	if(null==wF.g_fCalLoaded || false==wF.g_fCalLoaded){
		alert("No se puede mostrar el calendario.\nPor favor, actualiza la página.");
		return;
	}
	dmin=new Date(atoi(desde.substring(desde.lastIndexOf("/")+1, desde.length)), atoi(desde.substring(desde.indexOf("/")+1, desde.lastIndexOf("/")))-1, atoi(desde.substring(0, desde.indexOf("/"))));
	dmax=new Date(atoi(hasta.substring(hasta.lastIndexOf("/")+1, hasta.length)), atoi(hasta.substring(hasta.indexOf("/")+1, hasta.lastIndexOf("/")))-1, atoi(hasta.substring(0, hasta.indexOf("/"))));
	len=_years.length-1;
	_validMonths=new Array(len+1);
	_validDays=new Array(len+1);
	_validYears=new Array(len+1);
	for (j=0;j<=len; j++) {
		_validYears[j]=atoi(_years[j]);
		_validMonths[j]=atoi(_months[j]);
		_validDays[j]=atoi(_days[j]);
	}
	wF.SetMinMax(dmin, dmax);
	wF.SetValidDates(_validYears, _validMonths, _validDays);

	if(eD==g_eC && "block"==dF.style.display){
		if(g_eCV != eD.value && GetInputDate(eD.value)){
			wF.SetInputDate(g_day,g_month,g_year);
			wF.SetDate(g_day,g_month,g_year);
			g_eCV=eD.value;
		} else
			dF.style.display="none";
	} else {
		if(GetInputDate(eD.value)){
			wF.SetInputDate(g_day,g_month,g_year);
			wF.SetDate(g_day,g_month,g_year);
		} else{
			var dt=dmin;
			wF.SetInputDate(-1,-1,-1);
			wF.SetDate(dt.getDate(),dt.getMonth()+1,dt.getFullYear());
		}
		var eL=0;var eT=0;
		for(var p=eP; p&&p.tagName!='BODY'; p=p.offsetParent){
			eL+=p.offsetLeft;
			eT+=p.offsetTop;
		}
		
		dF.style.left=(eL+offsetLeftImg)+"px";
		dF.style.top=(eT+offsetTopImg)+"px";
		
		if("none"==dF.style.display)
			dF.style.display="block";
		g_eC=eD;
		g_eCV=eD.value;
	}
}