//--- Uitility and Function-------------------------------
function setTo2Digits( s ) { 
	return ((s.toString().length==1) ? '0'+s : s); 
}

function getLastDayOfMonth( month, year) {
	var arr  = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	return arr[month] + ((month==1 && (year%4)==0) ? 1 : 0) ;
}

function getCheckedValue( pRadio ) {
	for(var i=0; i<pRadio.length; i++) {
		if(pRadio[i].checked) {
			return pRadio[i].value;
		}
	}
	return "";
}

function clearDropDown( pObj ) {
	for (var i=(pObj.options.length-1); i>=0; i--) { 
		pObj.options[i]=null; 
	} 
}

function clearCityDropDown( pObj ) {
	for (var i=(pObj.options.length-1); i>=1; i--) {
		pObj.options[i]=null; 
	} 
}


function setCityDropDown( pObj, arrCity) {	
	for(var i=0; i<arrCity.length; i+=2) {
		pObj.options[pObj.length] = new Option(arrCity[i+1], arrCity[i]);
	}	
	pObj.selectedIndex = 0;
}

function setCabinDropDown( pObj, arrCity) {	
	for(var i=0; i<arrCity.length; i+=2) {
		pObj.options[pObj.length] = new Option(arrCity[i+1], arrCity[i]);
	}	
	pObj.selectedIndex = 1;
}

function setTimeDropDown( pObj) {
	for(var i=0; i<=23; i++) {
		//var value = setTo2Digits((i==0)?24:i) + "00";
		var value = setTo2Digits(i) + "00";
		var text  = setTo2Digits(i) + ":00";
		pObj.options[pObj.length] = new Option(text, value);
	}
	pObj.selectedIndex = 7;	
}

function isMatchArray( strVal, arrObj ) {
	for(var i=0; i<arrObj.length; i++) {
		if(arrObj[i] == strVal) { return true; }
	}
	return false;
}


function setTravellerDropDown( mode ) {
	var pAdults   = document.form1.lstTravellerAdults;
	var pChildren = document.form1.lstTravellerChildren;
	var maxAdults   = 0;
	var maxChildren = 0;
	var indexAdults = 0;
	var indexChildren = 0;
	//-------------------------	
	switch(mode) {
		case 'adults' :		
		case 'children' :	
			maxAdults     = g_maxTraveller-pChildren.options[pChildren.selectedIndex].value;
			maxChildren   = g_maxTraveller-pAdults.options[pAdults.selectedIndex].value;
			indexAdults   = pAdults.selectedIndex;
			indexChildren = pChildren.selectedIndex;		
			break;	
		default : 
			maxAdults     = g_maxTraveller;
			maxChildren   = g_maxTraveller-1;		
			indexAdults   = 0;
			indexChildren = 0;
	}	
	//-------------------------
	clearDropDown(pAdults);
	clearDropDown(pChildren);
	for(var i=1; i<=maxAdults; i++) {
		pAdults.options[pAdults.length] = new Option(i,i);
	}
	for(var i=0; i<=maxChildren; i++) {
		pChildren.options[pChildren.length] = new Option(i,i);
	}	
	pAdults.selectedIndex   = indexAdults;
	pChildren.selectedIndex = indexChildren;
	//-------------------------		
}

function setDateMonthDropDown(plstDay, plstMonth) {
	var dt = new Date();
	var date  = dt.getDate();
	var month = dt.getMonth();
	var year  = dt.getFullYear();
	for(var i=1; i<=getLastDayOfMonth(month, year); i++) {
		plstDay.options[plstDay.length] = new Option(i, setTo2Digits(i));
		if(i==date) { plstDay.options[plstDay.length-1].selected = 1; }		
	}
	
	for(var i=0;i<12;i++) {	
		var yyyy  = year + ((i<month) ? 1 : 0);
		var op_text  = g_arrMonthName[i] + " " +(yyyy + g_addYearDisplay);		
		var op_value = yyyy + g_arrMonthNum[i];
		plstMonth.options[plstMonth.length] = new Option(op_text, op_value );
		if(i==month) { plstMonth.options[plstMonth.length-1].selected = 1; }
	}
	
	return true;
}


function changeMonthDropDown(plstDay, plstMonth) {
	var date  = parseInt(plstDay.value,10);
	var month = parseInt(plstMonth.value.substring(4),10)-1;
	var year  = parseInt(plstMonth.value.substring(4,0),10);
		
	clearDropDown(plstDay);	
	for(var i=1; i<=getLastDayOfMonth(month, year); i++) {
		plstDay.options[plstDay.length] = new Option(i, setTo2Digits(i));
		if(i==date) { plstDay.options[plstDay.length-1].selected = 1; }		
	}
	return true;
}


var g_newwindow = '';
function openNewWindow(url) {
	if (!g_newwindow.closed && g_newwindow.location) {
		g_newwindow.location.href = url;
	}else{		
		if ((screen.width>=1024) && (screen.height>=768)) {
			g_newwindow = window.open( url, "_blank", "width=210,height=210,status=no,resizable=no,top=290,left=330" );
		}else{
			g_newwindow = window.open( url, "_blank", "width=210,height=210,status=no,resizable=no,top=260,left=220" );
		}	
		if (!g_newwindow.opener) g_newwindow.opener = self;
	}
	if (window.focus) {g_newwindow.focus()}
	return false;
}

function formatDate( date ) {
	// format: yyyymmdd
	var month = date.getMonth() + 1;		
	var day = date.getDate();
	return date.getFullYear() +""+( month < 10 ? "0" + month : month ) +""+ ( day < 10 ? "0" + day : day );
}
		
function getEndDate( date ) {
	return new Date( date.getFullYear() + 1, date.getMonth(), date.getDate() );
}


function OpenCalendarDate( plstDay, plstMonth) {
	var DepMonth = plstMonth.value;
	var selectedMonthYear = g_arrMonthName[parseInt(DepMonth.substr(4,2),10)-1] + DepMonth.substr(0,4); 
	var D_DayName   = "form1."+plstDay.name;
	var D_MonthName = "form1."+plstMonth.name;
	var A_DayName   = "";
	var A_MonthName = "";
	var dateType    = "Date";

	var fromDateString = formatDate( new Date() ); // format: yyyymmdd
	var toDateString = formatDate( getEndDate( new Date() ) ); // format: yyyymmdd
			
	var url = "calendar.html?dateType=" + dateType + "&fromDate=" + fromDateString + "&toDate=" + toDateString + "&selectedMonthYear=" + selectedMonthYear + "&fromDateDayElement=" + D_DayName + "&fromDateMonthYearElement=" + D_MonthName + "&toDateDayElement=" + A_DayName + "&toDateMonthYearElement=" + A_MonthName;

	openNewWindow(url);
	
}

function OpenCalendar( dateType ) {
	var selectedMonthYear, D_DayName, D_MonthName, A_DayName, A_MonthName, DepMonth, ArrMonth;	
	switch ( dateType )	{
		case "DepartureDate":
			DepMonth = document.form1.lstDepMonth.value;
			selectedMonthYear = g_arrMonthName[parseInt(DepMonth.substr(4,2),10)-1] + DepMonth.substr(0,4); 
			D_DayName = "form1.lstDepDay";
			D_MonthName = "form1.lstDepMonth";
			A_DayName = "form1.lstArrDay";
			A_MonthName = "form1.lstArrMonth";
			break;
		
		case "ArrivalDate":
			ArrMonth = document.form1.lstArrMonth.value;
			selectedMonthYear = g_arrMonthName[parseInt(ArrMonth.substr(4,2),10)-1] + ArrMonth.substr(0,4);
			D_DayName = "form1.lstDepDay";
			D_MonthName = "form1.lstDepMonth";
			A_DayName = "form1.lstArrDay";
			A_MonthName = "form1.lstArrMonth";
			break;

		case "Date":
			selectedMonthYear = document.form1.lstDepMonth.value;
			D_DayName = "form1.lstDepDay";
			D_MonthName = "form1.lstDepMonth";
			A_DayName = "";
			A_MonthName = "";
			break;
	}
	
	var fromDateString = formatDate( new Date() ); // format: yyyymmdd
	var toDateString = formatDate( getEndDate( new Date() ) ); // format: yyyymmdd
			
	var url = "calendar.html?dateType=" + dateType + "&fromDate=" + fromDateString + "&toDate=" + toDateString + "&selectedMonthYear=" + selectedMonthYear + "&fromDateDayElement=" + D_DayName + "&fromDateMonthYearElement=" + D_MonthName + "&toDateDayElement=" + A_DayName + "&toDateMonthYearElement=" + A_MonthName;

	openNewWindow(url);
}
