//---Global Variables
			/**
			*	The following variables are 
			*	the configuration of the parameters
			*	in case some the form elements are not present
			*/
			var siteId = "1014"; //<---PRIMARY ID OF THE AFFIILIATE SITE
			var varFromCountryDefault = "";
			var varToCountryDefault = "";
			var varAirlineDefault = 0;
			var varCabinClassDefault = 2;
			var varAdultNoDefault = 1;
			var varChildNoDefault = 0;
			//-Setting Ends
			
			var optWayType = "return";//oneway/return
			
			//to enable the return date selection fields
			function EnableReturn(){
				document.getElementById("cmbarrdate").disabled = false;
				document.getElementById("cmbarrmonth").disabled = false;
				optWayType = "return";
			}
			
			//to disable the return date selection fields
			function DisableReturn(){
				document.getElementById("cmbarrdate").disabled = true;
				document.getElementById("cmbarrmonth").disabled = true;
				optWayType="Oneway";
			}
			
			//set the list value to current day
			/**@para	
			*	increasement (to increase current day value)
			*	@return
			*		incMonth (resulted increasement count for month)
			*/
			function SelectCurrentDay(objId,increasement){
				var d = new Date();
				var targetDay = d.getDate() + parseInt(increasement);
				var targetMonth = d.getMonth();
				var targetYear = d.getFullYear();
				var incMonth = 0;
				if (targetMonth  == 3 || targetMonth == 5 || targetMonth == 8 || targetMonth == 10 ){
					if (targetDay > 30){ //if more than a month
						targetDay = targetDay - 30;// go to next month
						incMonth++;
					}
				}else if (targetMonth == 1){
					if (targetYear % 4 == 0){
						if (targetDay > 29){ //if more than a month
							targetDay = targetDay - 29;// go to next month
							incMonth++;
						}
					}else{
						if (targetDay > 28){ //if more than a month
						targetDay = targetDay - 28;// go to next month
						incMonth++;
						}
					}
				}else{
					if (targetDay > 31){ //if more than a month
						targetDay = targetDay - 31;// go to next month
						incMonth++;
					}
				}
				
				//if (targetDay.toString().length == 1){
					//targetDay = "0" + targetDay.toString();
				//}
				document.getElementById(objId).value = targetDay;
				return incMonth++;
			}
			
			//set the list value to current month
			function SelectCurrentMonth(objId, increasement){
				var  d = new Date();
				var targetMonth = d.getMonth() + increasement;
				var targetYear = d.getFullYear();
				
				if (targetMonth > 11){//if more than december
					targetMonth = targetMonth - 12;//go to next year
					//increase the year
					targetYear++;
				}
				
				var obj = document.getElementById(objId);
				
				//---Set the Month and Years
				switch (targetMonth.toString()) {
					case "0":
						obj.value = "Jan " + targetYear.toString();
						break;
					case "1":
						obj.value = "Feb " + targetYear.toString();
						break;
					case "2":
						obj.value = "Mar " + targetYear.toString();
						break;
					case "3":
						obj.value = "Apr " + targetYear.toString();
						break;
					case "4":
						obj.value = "May " + targetYear.toString();
						break;
					case "5":
						obj.value = "Jun " + targetYear.toString();
						break;
					case "6":
						obj.value = "Jul " + targetYear.toString();
						break;
					case "7":
						obj.value = "Aug " + targetYear.toString();
						break;
					case "8":
						obj.value = "Sep " + targetYear.toString();
						break;
					case "9":
						obj.value = "Oct " + targetYear.toString();
						break;
					case "10":
						obj.value = "Nov " + targetYear.toString();
						break;
					case "11":
						obj.value = "Dec " + targetYear.toString();
						break;
					default:
					obj.value = "Jan " + targetYear.toString();	
				}
			}
			
			/**
			*	@name GenerateRoundMonths
			*	@author ktt
			*	@desc	Add the list of the months, 12 months 
			*			starting from current month (including current month)
			*	@last update	17052005
			*	@para
			*		objId (The Id of the SELECT Element)
			*/
			function GenerateRoundMonths(objId){
				var obj = document.getElementById(objId);
				var d = new Date();
				var opt; //option node
				var curMonth = d.getMonth();
				var curYear = d.getFullYear();
				var aryM = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
				
				if (obj.nodeName == "SELECT"){
					
					var c;
					var itemCount = obj.childNodes.length;//number of item in the combobox
					
					/**	@note	insert the month from current month
					*			till end of the year.
					*/
					for (c = curMonth; c < 12; c++){
						opt = new Option(aryM[c] + " " + curYear);
						opt.value =  aryM[c] + " " + curYear;
						obj.options[itemCount] = opt;
						itemCount++;
					}
					
					/** @note	insert months starting from jan of next year
					*			till the 1 month later of current month.
					*/
					var limit;//previous month
					limit = curMonth;
					if (curMonth == 0) limit = 11;
					for (c = 0; c < limit; c++){
						opt = new Option(aryM[c] + " " + (parseInt(curYear)+1));
						opt.value =  aryM[c] + " " + (parseInt(curYear)+1);
						obj.options[itemCount] = opt;
						itemCount++;
					}
				}
			}
			
			/**
*	@name	isValidDate
*	@author	ktt
*	@desc	the method check if provided para are valid date
*	@last update	26052005
*/
function isValidDate(d, m, y){
	//all must be in number form
	d = parseInt(d);
	m = parseInt(m);
	y = parseInt(y);
	
	//if february
	if (m == 1){
		if (d > 29) 
			return false;
			
		if (y%4 != 0 && d >= 29)
			return false;
	}
	
	if (m == 3 || m == 5 || m == 8 || m == 10){
		if (d > 30)
			return false;
	}
	
	return true;
}

			/**
*	@name	getMonthNumber
*	@author	ktt
*	@desc	to convert Month name to it's sequence number
*	@para
*			month	(name of the month Jan/January)
*			longFormat [0=false,1=true](is to get the month in long format)
*	@return 
*			<month number:number>
*/
function getMonthNumber(month,longFormat){
	var optxAry
	var aryM = ['jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'];
	var aryML = ['january','february','march','april','may','june','july','august','september','october','november','december'];
	if (longFormat == 1){
		optxAry = aryML;
	}else  if (longFormat == 0){
		optxAry = aryM;
	}else{
		return -1;
	}
	for (var c = 0; c < optxAry.length; c++){
		if (month.toLowerCase() ==  optxAry[c].toLowerCase())
			return c;
	}
	return -1;//not found at all;
}

			//---Submit Form Handler
			function submitform()
			{
				if (infoValid()){
					window.open(buildGetString());
				}
			}//--end submitform();
			
			/**
			*	@name	infoValid
			*	@author	ktt
			*	@desc	the method check if \selected information are valid
			*	@last update	17052005
			*/
			function infoValid(){
			
				//Selected Date Variables
				var arrDay,depDay, arrMonth, depMonth, arrYear, depYear, splitString;
				arrDay = parseInt(document.getElementById("cmbarrdate").value);
				splitString = (document.getElementById("cmbarrmonth").value).split(" ");
				arrMonth = splitString[0];
				arrYear = parseInt(splitString[1]);
				depDay = parseInt(document.getElementById("cmbdepdate").value);
				splitString = (document.getElementById("cmbdepmonth").value).split(" ");
				depMonth = splitString[0];
				depYear = parseInt(splitString[1]);
					
				//Destination Check
				if (document.getElementById("cmbToCountry").value == "Select Destination City"){
					alert("Please select a Destination City!");
					document.getElementById("cmbToCountry").focus();
					return false;
				}
				
				//Return Date Check
				//	if the return date is selected
				if (optWayType == "return"){
					if (document.getElementById("cmbarrdate").value == "Day"){
						alert("Please choose the Return Day!");
						document.getElementById("cmbarrdate").focus();
						return false;
					}
					if ( document.getElementById("cmbarrmonth").value == "Month"){
						alert("Please choose the Return Month!");
						document.getElementById("cmbarrmonth").focus();
						return false;
					}
				}
				
				//check departure date if it is less than later 3 days
				var selectedDate = parseInt(document.getElementById("cmbdepdate").value);
				var selectedMonth = parseInt(document.getElementById("cmbdepdate").value);
				var limitDate = (new Date()).getDate() + 3;
				if (selectedDate < limitDate){
					var currentMonth = getLitralMonth((new Date()).getMonth());
					if (depMonth >= currentMonth){ 
						alert("Selected departure date must be at least 3 days later from today!");
						document.getElementById("cmbdepdate").focus();
						return false;
					}
				}
				
				
				//Date Comaprison Check
				if (optWayType == "return"){
					
					if (isValidDate(arrDay, getMonthNumber(arrMonth,0), arrYear) == false){
						alert("Please select valid Return Date!");
						document.getElementById("cmbarrdate").focus();
						return false;
					}
						
					if (isValidDate(depDay, getMonthNumber(depMonth,0), depYear) == false){
						alert("Please select valid Departure Date!");
						document.getElementById("cmbdepdate").focus();
						return false;
					}
	
					//return year earlier and departure year
					if (arrYear < depYear){
						alert("Please select valid Departure Date!");
						document.getElementById("cmbdepmonth").focus();
						return false;
					}
					
					if (arrYear == depYear){//on same year
						//return month earlier then departure month
							var check = false;
							check = getMonthNumber(arrMonth,0) < getMonthNumber(depMonth,0);
						if (check){
							alert("Please select valid Departure Date!");
							document.getElementById("cmbdepmonth").focus();
							return false;
						}
					}
					
					if ((arrYear == depYear) && (getMonthNumber(arrMonth,0) == getMonthNumber(depMonth,0))){//on same year same month
						//return day is earlier than departure day
						if (depDay >= arrDay){
							alert("Please select valid Departure/Arrival Date!");
							document.getElementById("cmbarrdate").focus();
							return false;
						}
					}
				}
				return true;
			}//--end infoValid();
			
			/**
			*	@name	buildGetString
			*	@author	ktt
			*	@desc	the method create the url string to submit booking form.
			*	@last update	17052005
			*/
			function buildGetString(){
				var getString;
				
				getString = "http://www.p2ptravel.com/flight/FaresDisplay.asp?";
				//getString = "http://www.yahoo.com?"
				getString += "optWay=" + optWayType + "&";
				getString += "siteId=" + siteId + "&";
				if (document.getElementById("cmbFromCountry"))
					getString += "cmbFromCountry=" + document.getElementById("cmbFromCountry").value + "&";
				else
					getString += "cmbFromCountry=" + varFromCountryDefault + "&";
										
				if (document.getElementById("cmbToCountry"))
					getString += "cmbToCountry=" + document.getElementById("cmbToCountry").value + "&";
				else
					getString += "cmbToCountry=" + varToCountryDefault + "&";
				
				if (document.getElementById("cmbAirlines"))
					getString += "CmbAirlines=" + document.getElementById("cmbAirlines").value + "&";
				else
					getString += "CmbAirlines=" + varAirlineDefault + "&";
				
				if (document.getElementById("cmbCabinclass"))
					getString += "cmbCabinclass=" + document.getElementById("cmbCabinclass").value + "&";
				else
					getString += "cmbCabinclass=" + varCabinClassDefault + "&";
				
				
				//ammended
				if (document.getElementById("cmbdepdate").value.length == 1){
					getString += "cmbdepdate=0" + document.getElementById("cmbdepdate").value + "&";
				}else{
					getString += "cmbdepdate=" + document.getElementById("cmbdepdate").value + "&";
				}
				getString += "cmbdepmonth=" + document.getElementById("cmbdepmonth").value + "&";
				
				if (document.getElementById("cmbarrdate").value.length == 1){
					getString += "cmbarrdate=0" + document.getElementById("cmbarrdate").value + "&";
				}else{
					getString += "cmbarrdate=" + document.getElementById("cmbarrdate").value + "&";
				}
				getString += "cmbarrmonth=" + document.getElementById("cmbarrmonth").value + "&";
				
				if (document.getElementById("cmbAdultno"))
					getString += "cmbAdultno=" + document.getElementById("cmbAdultno").value + "&";
				else
					getString += "cmbAdultno=" + varAdultNoDefault + "&";
				
				if (document.getElementById("cmbChildno"))
					getString += "cmbChildno=" + document.getElementById("cmbChildno").value;
				else
					getString += "cmbChildno=" + varChildNoDefault + "&";

				return getString; 
			}//--end buildGetString();
			
			function getLitralMonth(num){
				var aryM = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
				return aryM[num];
			}
			
			function p2pDestSelect(key){
			document.getElementById("cmbToCountry").value = key;
			}
			
			