function textFocus(el, val) {
	if (val) {
		el.defaultValue = val;
		if (el.value == val) el.value = "";
	}
	else if (el.value != "") {
		el.defaultValue = el.value;
		el.value = "";
	}
}
function textBlur(el,val) {
	if (val) el.defaultValue = val;
	if (el.value == "") {
		el.value = el.defaultValue;
	}
}

var phase = "";
var leavedatestr = "mm/dd/yy";
var targetmonth = 0;
var targetday = 0;
var targetyear = 0;
var leavedate = new Date();
var returndate = new Date();
var now = new Date();
function leapYear(year) {
	if (year % 4 == 0) return true
	else return false
}
function getDays(month, year) {
	dys = 31;
	if ( (month == 3) || (month == 5) || (month == 8) || (month == 10) ) dys = 30;
	else if (month == 1) {
		if (leapYear(year)) dys = 29;
		else dys = 28;
	}
	return(dys);
}
function getMonthName(month) {
	var mns = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	return(mns[month]);
}
function getrealyear(year) {
	if (year < 1000) year = year + 1900;
	return(year);
}
function setcal(datestr, p) {
	targetmonth = getcalmonth(datestr);
	targetday = getcalday(datestr);
	targetyear = getcalyear(datestr);
	phase = p;
	if ( (p == "return") && (datestr == "mm/dd/yy") ) datestr = leavedatestr;
	calon(datestr);
}
function getcalmonth(datestr) {
	var r = 0;
	if (datestr.indexOf("/") != -1) {
		r = parseInt(datestr, 10);
		if (r > 12) r = 0;
	}
	return(r);
}
function getcalday(datestr) {
	var r = 0;
	if (datestr.indexOf("/") != -1) {
		z = datestr.substring(datestr.indexOf("/") + 1);
		r = parseInt(z, 10);
	}
	return(r);
}
function getcalyear(datestr) {
	var r = 0;
	if (datestr.indexOf("/") != -1) {
		z = datestr.substring(datestr.indexOf("/") + 1);
		if (z.indexOf("/") != -1) {
			z = z.substring(z.indexOf("/") + 1);
			r = parseInt(z, 10);
			if ( (r > 0) && (r < 1000) ) r = r + 2000;
		}
	}
	return(r);
}
function leapYear(year) {
	if (year % 4 == 0) return true;
	else return false;
}
function calon(datestr) {
	var calmonth = getcalmonth(datestr);
	var calday = getcalday(datestr);
	var calyear = getcalyear(datestr);
	if (calyear < getrealyear(now.getYear())) calyear = 0;
	if ( (calyear == getrealyear(now.getYear())) && ((calmonth - 1) < now.getMonth()) ) calyear = 0;
	ty = getrealyear(now.getYear());
	tm = now.getMonth() + 12;
	if (tm > 12) {
		tm = tm - 12;
		ty++;
	}
	if (new Date(calyear, calmonth, 1) > new Date(ty, tm, 1)) calyear = 0;
	if ( !((calmonth > 0) && (calday > 0) && (calyear > 0)) ) {
		calmonth = now.getMonth() + 1;
		calday = now.getDate();
		calyear = getrealyear(now.getYear());
	}
	var divhtml = "<a href=javascript:caloff()><img src=http://www.orbitz.com/Marketing/Images/0511_cal_close.gif border=0></a><br>";
	divhtml = divhtml + calhtml(calmonth, calday, calyear);
	divhtml = divhtml + "<table border=0 cellpadding=0 cellspacing=0><tr><td width=2 bgcolor=#3366ff><img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif width=1 height=14><br></td><td width=136 valign=top bgcolor=#ffffff><img src=http://www.orbitz.com/Marketing/Images/lilcceeff.gif width=136 height=1><br></td><td width=2 bgcolor=#3366ff><img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif><br></td></tr></table>";
	divhtml = divhtml + "<img src=http://www.orbitz.com/Marketing/Images/lil3366ff.gif width=140 height=2><br>";
	if (document.getElementById) {
		dref = document.getElementById('cal');
		dref.innerHTML = divhtml;
		dref.style.visibility = "visible";
	}
}
function calhtml(calmonth, calday, calyear) {
	var html = "<table border=0 cellpadding=0 cellspacing=0><tr><td width=2 bgcolor=#3366ff><img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif width=2 height=22><br></td><td width=17 bgcolor=#3366ff>";
	if (new Date(calyear, calmonth - 1, 1) > now) {
		prmonth = calmonth - 1;
		pryear = calyear
		if (prmonth == 0) {
			prmonth = 12;
			pryear = pryear - 1;
		}
		html = html + "<a href=javascript:calon('" + prmonth + "/" + calday + "/" + pryear + "')><img src=http://www.orbitz.com/Marketing/Images/0511_cal_arrow_back.gif border=0></a><br>";
	}
	else html = html + "<img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif><br>";
	html = html + "</td><td width=102 align=center bgcolor=#3366ff><span class=cal_header>";
	html = html + getMonthName(calmonth - 1) + " " + calyear + "</span><br></td><td width=19 bgcolor=#3366ff>";
	if (new Date(calyear, calmonth, 1) < new Date(getrealyear(now.getYear()) + 1, now.getMonth(), 1)) {
		nxmonth = calmonth + 1;
		nxyear = calyear;
		if (nxmonth == 13) {
			nxmonth = 1;
			nxyear++;
		}
		html = html + "<a href=javascript:calon('" + nxmonth + "/" + calday + "/" + nxyear + "')><img src=http://www.orbitz.com/Marketing/Images/0511_cal_arrow_next.gif border=0></a><br>";
	}
	else html = html + "<img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif><br>";
	html = html + "</td></tr></table>";
	html = html + "<table border=0 cellpadding=0 cellspacing=0><tr><td width=2 bgcolor=#3366ff><img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif width=2 height=14><br></td><td width=18 align=center bgcolor=#3366ff><span class=cal_days>S</span><br></td><td width=20 align=center bgcolor=#3366ff><span class=cal_days>M</span><br></td><td width=20 align=center bgcolor=#3366ff><span class=cal_days>T</span><br></td><td width=20 align=center bgcolor=#3366ff><span class=cal_days>W</span><br></td><td width=20 align=center bgcolor=#3366ff><span class=cal_days>T</span><br></td><td width=20 align=center bgcolor=#3366ff><span class=cal_days>F</span><br></td><td width=18 align=center bgcolor=#3366ff><span class=cal_days>S</span><br></td><td width=2 bgcolor=#3366ff><img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif width=1 height=14><br></td></tr></table>";
	html = html + "<table border=0 cellpadding=0 cellspacing=0 class=cal_day>";
	var firstday = new Date(calyear, calmonth - 1, 1).getDay() + 1;
	var daysthismonth = getDays(calmonth - 1, calyear);
	var digit = 1;
	var curcell = 1;
	for (row = 1; row <= Math.ceil((daysthismonth + firstday - 1) / 7); row++) {
		html = html + "<tr><td width=2 bgcolor=#3366ff><img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif width=2><br></td>";
		for (col = 1; col <= 7; col++) {
			colw = 20;
			if ( (col == 1) || (col == 7) ) colw = 18;
			if (curcell < firstday) {
				lastmonth = calmonth - 1;
				if (lastmonth == 0) lastmonth = 12;
				lastmonthlength = getDays(lastmonth - 1);
				html = html + "<td width=" + colw + " bgcolor=#ffffff><img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif><br></td>";
				curcell++;
			}
			else {
				if ( (digit == now.getDate()) && ((calmonth - 1) == now.getMonth()) && (calyear == getrealyear(now.getYear())) ) {
					html = html + "<td width=" + colw + " align=center bgcolor=#ffffff><div style='width: " + colw + "px; height: 15px; border: solid 1px #3366ff;'><a href=javascript:selectdate(" + calmonth + "," + digit + "," + calyear + ")>" + digit + "</a><br></div></td>";
				}
				else if ( (digit == targetday) && (calmonth == targetmonth) && (calyear == targetyear) ) {
					html = html + "<td width=" + colw + " align=center bgcolor=#3366ff><a href=javascript:selectdate(" + calmonth + "," + digit + "," + calyear + ")><font color=#ffffff>" + digit + "</font></a><br></td>";
				}
				else if ( (digit < now.getDate()) && ((calmonth - 1) == now.getMonth()) && (calyear == getrealyear(now.getYear())) ) {
					html = html + "<td width=" + colw + " align=center bgcolor=#ffffff>" + digit + "<br></td>";
				}
				else if (digit > daysthismonth) {
					html = html + "<td width=" + colw + " bgcolor=#ffffff><img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif><br></td>";
				}
				else if ( (phase == "leave") && (digit == returndate.getDate()) && ((calmonth - 1) == returndate.getMonth()) && (calyear == getrealyear(returndate.getYear())) ) {
					html = html + "<td width=" + colw + " align=center bgcolor=#3366ff><a href=javascript:selectdate(" + calmonth + "," + digit + "," + calyear + ")><font color=#ffffff>" + digit + "</font><br></td>";
				}
				else if ( (phase == "return") && (digit == leavedate.getDate()) && ((calmonth - 1) == leavedate.getMonth()) && (calyear == getrealyear(leavedate.getYear())) ) {
					html = html + "<td width=" + colw + " align=center bgcolor=#3366ff><a href=javascript:selectdate(" + calmonth + "," + digit + "," + calyear + ")><font color=#ffffff>" + digit + "</font><br></td>";
				}
				else if ( (new Date(calyear, calmonth - 1, digit) > leavedate) && (new Date(calyear, calmonth - 1, digit) < returndate) ) {
					html = html + "<td width=" + colw + " align=center bgcolor=#cceeff><a href=javascript:selectdate(" + calmonth + "," + digit + "," + calyear + ")>" + digit + "<br></td>";
				}
				else if ( (phase == "return") && (leavedate > new Date(calyear, calmonth - 1, digit)) ) {
					html = html + "<td width=" + colw + " align=center bgcolor=#ffffff>" + digit + "<br></td>";
				}
				else {
					html = html + "<td width=" + colw + " align=center bgcolor=#ffffff id=c" + calmonth + "_" + digit + "><a href=javascript:selectdate(" + calmonth + "," + digit + "," + calyear + ") onMouseover=cell_on('c" + calmonth + "_" + digit + "') onMouseout=cell_off('c" + calmonth + "_" + digit + "')>" + digit + "</a><br></td>";
				}
				digit++;
			}
		}
		html = html + "<td width=2 bgcolor=#3366ff><img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif width=2><br></td></tr>";
		if (row < Math.ceil((daysthismonth + firstday - 1) / 7)) html = html + "<tr><td width=2 bgcolor=#3366ff><img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif><br></td><td width=136 colspan=7 bgcolor=#cceeff><img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif><br></td><td width=2 bgcolor=#3366ff><img src=http://www.orbitz.com/Marketing/Images/lilshimmy.gif><br></td></tr>";
	}
	html = html + "</table>";
	return(html);
}
function selectdate(pm, pd, py) {
	datestr = pm + "/" + pd + "/";
	zy = "" + py;
	datestr = datestr + zy.substring(2);
	if (phase == "leave") {
		leavedate = new Date(py, pm - 1, pd);
		leavedatestr = datestr;
		document.travel_planner_form.elements['data[airfare][date1]'].value = datestr;
		document.travel_planner_form.elements['data[car][date1]'].value = datestr;
		document.travel_planner_form.elements['data[hotel][date1]'].value = datestr;
	}
	else {
		returndate = new Date(py, pm - 1, pd);
		document.travel_planner_form.elements['data[airfare][date2]'].value = datestr;
		document.travel_planner_form.elements['data[car][date2]'].value = datestr;
		document.travel_planner_form.elements['data[hotel][date2]'].value = datestr;
	}
	caloff();
}
function caloff() {
	if (document.getElementById) document.getElementById('cal').style.visibility = "hidden";
}
function cell_off(v) {
	document.getElementById(v).style.backgroundColor = "ffffff";
}
function cell_on(v) {
	document.getElementById(v).style.backgroundColor = "ffffdd";
}

function getMonthName(month) {
	var mns = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
	return(mns[month]);
}
function getrealyear(year) {
	if (year < 1000) year = year + 1900;
	return(year);
}

