var months = [			
	['Jan','January'],
	['Feb','February'],
	['Mar','March'],
	['Apr','April'],
	['May','May'],
	['Jun','June'],
	['Jul','July'],
	['Aug','August'],
	['Sep','September'],
	['Oct','October'],
	['Nov','November'],
	['Dec','December']];
	
var type = '';
var days = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];

function fill_ebt()
{
	if (document.getElementById('dep_month')) {
		fillDataSelector('dep_month', 0, 7);
		fillDataSelector('ret_month', 0, 14);
		fillDataSelector('calendarmonth', 1, 0);

		fillDaySelector('dep_day', 7);
		setDay('dep_day', 7);
		fillDaySelector('ret_day', 14);
		setDay('ret_day', 14);

//		fillFromXml("/travel/xfd/ebt/origins/ae_en/origins.xml", "from", "", false);
		addEventHandler(document.getElementById('dep_day'), "change", function() {checkDepDate('dep_day', 'dep_month', 'ret_day', 'ret_month');});
		addEventHandler(document.getElementById('dep_month'), "change", function() {checkDepDate('dep_day', 'dep_month', 'ret_day', 'ret_month');});
		addEventHandler(document.getElementById('ret_day'), "change", function() {checkArrDate('dep_day', 'dep_month', 'ret_day', 'ret_month');});
		addEventHandler(document.getElementById('ret_month'), "change", function() {checkArrDate('dep_day', 'dep_month', 'ret_day', 'ret_month');});
	}
}
function addEventHandler(o, eventName, handler) {
	if (o.addEventListener) {
		o.addEventListener(eventName, handler, true);
	} else if (o.attachEvent) {
		o.attachEvent("on"+eventName, handler);
	}
}
function removeEventHandler(o, eventName, handler) {
	if (o.removeEventListener) {
		o.removeEventListener(eventName, handler, true);
	} else {
		o.detachEvent("on"+eventName, handler);
	}
}
function fillDaySelector(idDay, addDays)
{
	var daySelector = document.getElementById(idDay);
	var index = 0;
	for (var c = 1; c <= 31; c++)
	{
		var value = String(c<=9 ? "0" : "") + String(c);
		daySelector.options[index++] = new Option(c, value);
	}	
}
function setDay(idDay, addDays)
{
	var start = new Date(new Date().getTime() + addDays * 3600 * 24 * 1000);
	document.getElementById(idDay).selectedIndex = start.getDate() - 1;
}
function checkDepDate(dep_date, dep_month, ret_date, ret_month)
{
	var dds = document.getElementById(dep_date);
	var rds = document.getElementById(ret_date);
	var dms = document.getElementById(dep_month);
	var rms = document.getElementById(ret_month);
	if (dms.selectedIndex > rms.selectedIndex ||
		(dms.selectedIndex == rms.selectedIndex && dds.selectedIndex > rds.selectedIndex))
		{
			rms.selectedIndex = dms.selectedIndex;
			rds.selectedIndex = dds.selectedIndex;
		}
	getTotalDays();
}
function checkArrDate(dep_date, dep_month, ret_date, ret_month)
{
	var dds = document.getElementById(dep_date);
	var rds = document.getElementById(ret_date);
	var dms = document.getElementById(dep_month);
	var rms = document.getElementById(ret_month);
	if (dms.selectedIndex > rms.selectedIndex ||
		(dms.selectedIndex == rms.selectedIndex && dds.selectedIndex > rds.selectedIndex))
		{
			dms.selectedIndex = rms.selectedIndex;
			dds.selectedIndex = rds.selectedIndex;
		}
	getTotalDays();
}
function fillDataSelector(id, fullMonthNames, addDays)
{
	var now = new Date();
	var start = new Date(now.getTime() + addDays * 3600 * 24 * 1000);
	var year = now.getFullYear();
	var month = now.getMonth();
	var selector = document.getElementById(id);
	for (c = 0; c < 12; c++) {
		var value = String(year) + String(month<9 ? "0" : "") + String(month + 1);
		var name = months[month][fullMonthNames ? 1:0] + " " + year;
		selector[c] = new Option(name, value);
		if (++month >= 12) {
			month = 0;
			year++;
		}
	}
	selector.selectedIndex = start.getYear() > now.getYear() ? 1 : (start.getMonth() > now.getMonth() ? 1 : 0);
}
function showCalendar(depret, txt) {
	top.type = depret;
	var container = document.getElementById('calendarcontainer');
	var header = document.getElementById('calendartop');
	header.innerHTML = txt; 
	if (document.all) {
		var entries = document.getElementsByTagName('select');
		for (var i = 0; i < entries.length; i++) {
			if (entries[i].className == 'cal_hide') {
				entries[i].style.display = 'none';
			}
		}
	}
	var index = document.getElementById(depret + '_month').options.selectedIndex;
	document.getElementById('calendarmonth').options.selectedIndex = index;
	updateMonth(document.getElementById(depret + '_month').options[index].value, index);
	container.style.display = 'block';
}
function updateMonth(monthyear, selection) {
	var month = monthyear.substr(4,2);
	var year = monthyear.substr(0,4);
	var noOfDays = getNumberOfDays(month, year);
	var firstDay = getFirstDay(month, year);
	fillMonth(month, firstDay, noOfDays, selection);
}
function getNumberOfDays(m, y) {
	var days = 31;
	switch (parseInt(m, 10)) {
		case 4: case 6: case 9: case 11:
			days = 30;
			break;
		case 2:
		  if ((y % 4 == 0) ^ (y % 100 == 0) ^ (y % 400 == 0))
			days = 29;
		  else
			days = 28;
		  break;
	}
	return days;
}
function getFirstDay(m, y) {
	d = new Date(y, m-1, 1);
	d.setHours(12);
	return (d.getDay() - 1 >= 0 ? d.getDay() - 1 : d.getDay() + 6);
}
function fillMonth(month, firstDay, noOfDays, monthIndex) {
	var firstSet = false;
	var dayCounter = 1;
	var today = new Date();
	dateToday = today.getDate();
	monthToday = today.getMonth() + 1;
	var sHTML = '<table cellspacing="0"><tr class="head">'
	for (var i = 0; i < days.length; i ++) {
		sHTML += '<td>' + days[i] + '</td>\n';
	}
	sHTML += '</tr>';
	while (dayCounter <= noOfDays) {
		sHTML += '<tr>';
		for (i = 0; i < 7; i++) {
			if (!firstSet && i < firstDay) {
				sHTML += '<td>&nbsp;</td>\n';
			} else {
				firstSet = true;
				if (dayCounter <= noOfDays) {
					if ((monthToday == month) && (dayCounter < dateToday)) {
						sHTML += '<td>' + dayCounter + '</td>\n';
					} else {
						sHTML += '<td><a href="javascript:fill(top.type, ' + (dayCounter-1) + ' , ' + monthIndex + ');">' + dayCounter + '</a></td>\n';
					}

				} else {
					sHTML += '<td>&nbsp;</td>\n';
				}
				dayCounter++;
			}
		}
		sHTML += '</tr>'
	}
	sHTML += '</table>';
	document.getElementById('monthtable').innerHTML = sHTML;
}
function fill(type, day, month) {
	closeCalendar();
	document.getElementById(type + '_month').options.selectedIndex = month;
	fillDaySelector(type + '_day', type + '_month');
	document.getElementById(type + '_day').options.selectedIndex = day;
	if (type == 'dep'){
		checkDepDate('dep_day', 'dep_month', 'ret_day', 'ret_month');
	}
	else{
		checkArrDate('dep_day', 'dep_month', 'ret_day', 'ret_month');
	}
	getTotalDays();
}
function closeCalendar () {
	var container = document.getElementById('calendarcontainer');
	if (document.all) {
		var entries = document.getElementsByTagName('select');
		for (var i = 0; i < entries.length; i++) {
			if (entries[i].className == 'cal_hide') {
				entries[i].style.display = 'block';
			}
		}
	}
	container.style.display = 'none';
}
function getTotalDays (){
	var s_year = document.getElementById('dep_month').options.value.substr(0,4);
	var s_month = document.getElementById('dep_month').options.value.substr(4,2);
	var s_day = document.getElementById('dep_day').options.value;
	var s_dt = new Date(s_year,s_month-1,s_day);
	
	var e_year = document.getElementById('ret_month').options.value.substr(0,4);
	var e_month = document.getElementById('ret_month').options.value.substr(4,2);
	var e_day = document.getElementById('ret_day').options.value;
	var e_dt = new Date(e_year,e_month-1,e_day);
	
	var totalDays=(e_dt.getTime()-s_dt.getTime())/86400000;

	if(totalDays==0){
		document.getElementById('totalDays').innerHTML = 1;
		document.getElementById('NumDays').value = 1;
	}
	else{
		document.getElementById('totalDays').innerHTML = totalDays;
		document.getElementById('NumDays').value = totalDays;
	}
}