
var dateDept = new Date();
var depMonth = dateDept.getMonth();
var depDay = dateDept.getDate();
var depYear = dateDept.getFullYear() - 2000;

//alert(depMonth +" " + depDay + " "+ depYear);

var depMonthDays = GetDaysInMonth(depMonth,
dateDept.getFullYear());

var dateRet = dateDept;
dateRet.setDate(dateDept.getDate() + 1);
dateDept = new Date();
var retMonth = dateRet.getMonth();
var retDay = dateRet.getDate();
var retYear = dateRet.getFullYear() - 2000;
var retMonthDays = GetDaysInMonth(retMonth,
dateRet.getFullYear());


function citysearch(fldname) 
{
	document.req.txtname.value=fldname;
	var w= window.open('http://explorer.prologicsystems.com/Travel-Network/citylist.html','','width=600,height=450,scrollbars=yes',nomenu=true);
	if (w.opener == null) 
	{
		w.opener = self;
	}
}

function Showthis() 
{
	var w= this.open("http://explorer.prologicsystems.com/Travel-Network/perform.html", "Processing", "scrollbars=no,toolbar=no,height=200,width=550");
	if (w.opener == null) 
	{
		w.opener = self;
	}
}

function validII() 
{
    var sysdate=new Date();
    var d1=sysdate.getDate()+4;
    var m1=sysdate.getMonth()+1;
    var y1=sysdate.getYear();
    if(!document.all)
		y1=y1+1900;
    var SysDateStr=m1+'/'+d1+'/'+y1;
    var date1 = new Date(SysDateStr);
    var dat=(depMonth+1) + "/" + depDay + "/" + "200"+depYear;
    var date2=new Date(dat);
    var date1parse=Date.parse(date1);
    var date2parse=Date.parse(date2);
    var diff=(date2parse-date1parse);
    if (diff<0) 
    {
		alert("Earliest travel date we can accommodate is 4 days from today.");
		document.req.Dept_Day.focus();
		return false;
	} 
	else
	{
		return true;
	}
}

function validnodays() 
{
    var sysdate=new Date();
    var d1=sysdate.getDate()+2;
    var m1=sysdate.getMonth()+1;
    var y1=sysdate.getYear();
    if(!document.all)
		y1=y1+1900;
    var SysDateStr=m1+'/'+d1+'/'+y1;
    var date1 = new Date(SysDateStr);
    var dat=(depMonth+1) + "/" + depDay + "/" + "200"+depYear;
    var date2=new Date(dat);
    var date1parse=Date.parse(date1);
    var date2parse=Date.parse(date2);
    var diff=(date2parse-date1parse)/86400000;
    if (diff>331) 
    {
		alert("Earliest travel date we can book is 331 days from today.");
		document.req.Dept_Day.focus();
		return false;
	}
	else
	{
		return true;
	}
}

function AssignDate(aDay, aMonth, aYear) 
{
	var aDate = new Date();
	aDate.setMonth(0);
	aDate.setFullYear(aYear);
	aDate.setDate(aDay);
	aDate.setMonth(aMonth);
	return aDate;
}

function StartUp() 
{
	var month,depDay1,retDay1,addays,maxdays;
	document.req.Dept_Month.selectedIndex = 0;

	addays =2;
	if (document.req.COMPANY.value  == "INTERVAL")
		addays =4;
	if (document.req.Dept_Month.selectedIndex == 0)
	{
		depMonth = new Date().getMonth();
		if(depMonth == 0 || depMonth == 2 || depMonth == 4 || depMonth == 6 || depMonth == 7 || depMonth == 9 || depMonth == 11)
		{
			maxdays = 31;
			if (depDay+addays>maxdays)
			{
				depDay1=depDay+addays-maxdays;
				month=depMonth+1;
			}
			else
			{
				depDay1=depDay+addays;
				month=depMonth;
			}


			if(depDay+addays+1>maxdays)
			{
				retDay1=depDay+addays+1-maxdays;
				var retmonth=depMonth+1;
			}
			else
			{
				retDay1=depDay1+1;
				retmonth=depMonth;
			}
		}

		if(depMonth == 1)
		{
			if(depYear%4 == 0)
			{
				maxdays=29;
				if(depYear%100 != 0 || depYear%400 == 0)
				{
					if(depDay+addays>maxdays)
					{
						depDay1=depDay+addays-maxdays;

						month=depMonth+1;
		            }
					else
					{
						depDay1=depDay+addays;
						month=depMonth;
					}

					if(depDay+addays+1>maxdays)
					{
						retDay1=depDay+addays+1-maxdays;
						var retmonth=depMonth+1;
					}
					else
					{
						retDay1=depDay1+1;
						retmonth=depMonth;
					}

				}
			} //for leap year( % 100)
			else
			{
				maxdays=28;
				if(depDay+addays>maxdays)
				{
					depDay1=depDay+addays-maxdays;
					month=depMonth+1;
				}
				else
				{
					depDay1=depDay+addays;
					month=depMonth;
				}
				if(depDay+addays+1>maxdays)
				{
					retDay1=depDay+addays+1-maxdays;
					var retmonth=depMonth+1;
				}
				else
				{
					retDay1=depDay1+1;
					var retmonth=depMonth;
				}
		    }

		} //first if

		if(depMonth == 3 || depMonth == 5 || depMonth == 8 || depMonth == 10)
		{
			maxdays=30;
			if (depDay+addays>maxdays)
			{
				depDay1=depDay+addays-maxdays;
				month=depMonth+1;
			}
			else
			{
				depDay1=depDay+addays;
				month=depMonth;

			}


			if(depDay+addays+1>maxdays)
			{
				retDay1=depDay+addays+1-maxdays;
				var retmonth=depMonth+1;

			}
			else
			{

				retDay1=depDay1+1;
				var retmonth=depMonth;
			}
		}

		document.req.toresort[1].checked=true;
		document.req.DEPART.value=""
		document.req.DEST.value=""
		document.req.hourdept.selectedIndex=7;
		document.req.hourretn.selectedIndex=7;
		document.req.Dept_Year.value = depYear;
		document.req.Dept_Month.options[month].selected = true;
		document.req.Dept_Day.options[depDay1-1].selected = true;
		document.req.Ret_Month.options[retmonth].selected = true;
		document.req.Ret_Year.value = retYear;
		document.req.Ret_Day.options[retDay1-1].selected = true;
		document.req.deptdate.value = (depMonth+1) + "/" + depDay + "/" + "0"+depYear;
		document.req.retndate.value = (retMonth+1) + "/" + retDay + "/" + "0"+retYear;
	}
}


function DeptOptions(dateForm) {
  depMonth = dateForm.Dept_Month.selectedIndex;
  depYear = dateForm.Dept_Year.value;
  depDay = dateForm.Dept_Day.selectedIndex + 1;
  depMonthDays = GetDaysInMonth(depMonth, "200"+depYear)
  if(depDay > depMonthDays)
    dateDept = AssignDate(depMonthDays, depMonth, "200"+depYear)
if(depDay > depMonthDays)
    dateDept = AssignDate(depMonthDays, depMonth, "200"+depYear)
  else
    dateDept = AssignDate(depDay, depMonth, "200"+depYear)
  document.req.Dept_Day.options[dateDept.getDate()-1].selected =
true;
}

function RetOptions(dateForm) {
  retMonth = dateForm.Ret_Month.selectedIndex;
  retYear = dateForm.Ret_Year.value;
  retDay = dateForm.Ret_Day.selectedIndex + 1;
  retMonthDays = GetDaysInMonth(retMonth, "200"+retYear)
  if(retDay+1 > retMonthDays)
    dateRet = AssignDate(retMonthDays, retMonth, "200"+retYear)
  else
    dateRet = AssignDate(retDay, retMonth, "200"+retYear)
  document.req.Ret_Day.options[dateRet.getDate()-1].selected =
true;
}

function AdvanceDate(dateForm) {
  if(dateDept.getTime() > dateRet.getTime()) {
    dateRet = dateDept;
    dateRet.setDate(dateDept.getDate() + 1);
    dateDept = AssignDate(depDay, depMonth, "200"+depYear)
    retMonth = dateRet.getMonth();
    retDay = dateRet.getDate();
    retYear = dateRet.getFullYear() - 2000;
    retMonthDays = GetDaysInMonth(retMonth, dateRet.getFullYear());

    document.req.Ret_Month.options[retMonth].selected = true;
    document.req.Ret_Year.value = retYear;
    document.req.Ret_Day.options[retDay-1].selected = true;
  }
}


function FindYear(dateform)
{
	var curDate = new Date();
	var curMonth = curDate.getMonth();
	var curDay = curDate.getDate();
	var curYear = curDate.getFullYear() - 2000;
	var depYear;
	var retYear;
	depYear = 0;
	retYear = 0;
	
	//alert(curMonth + " " + curDay + " " + curYear );
	//alert(depMonth + " " + depDay + " " + depYear );
	//alert(depYear);
	
	depMonth=dateform.Dept_Month.selectedIndex;
	depDay=dateform.Dept_Day.selectedIndex + 1;
	if (depMonth>curMonth)
		depYear=curYear;
	if (depMonth<curMonth)
		depYear=curYear+1;

	//alert(depYear + "depyear" + depMonth + "depmonth" + curMonth  );

	if ((depMonth==curMonth)&&(depDay<curDay))
		depYear=curYear+1;
		//alert(depYear);
	if ((depMonth==curMonth)&&(depDay>=curDay))
		depYear=curYear;
		
	dateform.Dept_Year.value=depYear;
    //alert(depYear+2000);

    retMonth=dateform.Ret_Month.selectedIndex;
    retDay=dateform.Ret_Day.selectedIndex + 1;

    if (retMonth>curMonth)
		retYear=curYear;
    if (retMonth<curMonth)
		retYear=curYear+1;
    if ((retMonth==curMonth)&&(retDay<curDay))
		retYear=curYear+1;
    if ((retMonth==curMonth)&&(retDay>=curDay))
		retYear=curYear;
    dateform.Ret_Year.value=retYear;
	//alert(retYear+2000);

	//alert(depMonth + " " + depDay + " " + depYear );
}

function DateHandler(dateForm) 
{
	document.req.deptdate.value = (document.req.Dept_Month.selectedIndex + 1) + "/" + (document.req.Dept_Day.selectedIndex + 1) + "/0" + document.req.Dept_Year.value;
	document.req.retndate.value = (document.req.Ret_Month.selectedIndex + 1) + "/" + (document.req.Ret_Day.selectedIndex + 1) + "/0" + document.req.Ret_Year.value;
}



function GetDaysInMonth(iMonth, iYear) 
{
	if(iMonth == 0 || iMonth == 2 || iMonth == 4 || iMonth == 6 || iMonth == 7 || iMonth == 9 || iMonth == 11) 
		numDays=31;
	if(iMonth == 1)
	{
		if(iYear%4 == 0) 
		{
			if(iYear%100 != 0 || iYear%400 == 0)
			{
				numDays=29;
			}
			else 
				numDays=28;
		}
		else 
			numDays=28;
	}
	if(iMonth == 3 || iMonth == 5 || iMonth == 8 ||iMonth == 10) 
		numDays=30;
	return numDays;
}


function mOvr(src,id,R) 
{
	if (!src.contains(event.fromElement)) 
	{
		var cellID = id + 'Cell';
		document.all.toolbar.rows(R).cells(cellID).bgColor ='#ffff6b';
	}
}

function mOut(src,id,R) 
{
	if (!src.contains(event.toElement)) 
	{
		var cellID = id + 'Cell';
		document.all.toolbar.rows(R).cells(cellID).bgColor ='#ffffcc';
	}
}


function isLetter (c)
{   
	return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isDigit (c)
{   
	return ((c >= "0") && (c <= "9"))
}

function isCharInString(searchChar, theString)
{
	var i;

	if (!searchChar || !theString)
	return false;

	for (i = 0; i < theString.length; i++ ) 
	{
		var c = theString.charAt(i);
		if (c == searchChar) 
		{
			return true;
		}
	}
	return false;
}


// CheckField : validate content of form field.
// formname = name of form
// attributeName = input field
// attributeLabel = text to use in alert messages that identify the field
// mand = whether field is mandatory
// type = what to check for, 'N' for number, 'C' or character, 'anything' for both, null for none
// addChars = Additional characters - as string without comma - that are okay as field content

function CheckFieldExtra(form, attributeName, attributeLabel, mand, type, addChars) 
{
	var     attribute;

	eval("attribute = form." + attributeName + ";");
	if (!attribute) 
	{
		alert("Attribute " + attributeName + " not found.");
		return false;
	}

	if (mand)
	{
		if(attribute.type.indexOf("SELECT") >=0 || attribute.type.indexOf("select") >=0) 
		{
			if (attribute.selectedIndex < 0) 
			{
				alert(attributeLabel + " is a required field.");
				return false;
			}
		} 
		else
			if (attribute.value.length == 0) 
			{
				alert(attributeLabel + " is a required field.");
				return false;
			}
	}

	if (attribute.type.indexOf("SELECT") >=0 || attribute.type.indexOf("select") >=0) 
	{
		return true;
	}


	if (attribute.value.length > 0 && type) 
	{
		// alphabets
		if (type.toUpperCase() == "C") 
		{
			for ( i = 0; i < attribute.value.length; i++ ) 
			{
				var c = attribute.value.charAt(i);
				if (!isLetter(c) && !isCharInString(c, addChars)) 
				{
					alert(attributeLabel + " can only contain characters (a-z,A-Z).");
					return false;
				}
			}
		}
		// numeric
		if (type.toUpperCase() == "N") 
		{
			for ( i = 0; i < attribute.value.length; i++ ) 
			{
				var c = attribute.value.charAt(i);
				if (!isDigit(c) && !isCharInString(c, addChars)) 
				{
					alert(attributeLabel + " can only contain numbers (0-9).");
					return false;
				}
			}
		}
		// alphanumeric
		else 
		{
			for (i = 0; i < attribute.value.length; i++) 
			{
				var c = attribute.value.charAt(i);
				if (!isDigit(c) && !isLetter(c) && !isCharInString(c, addChars)) 
				{
					alert(attributeLabel + " can only contain alphanumeric character.");
					return false;
				}
			}
		}
	}

	return true;
}


function isValidDate(fieldname, dateStr) 
{
	// Checks for the following valid date formats:
	// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
	// Also separates date into month, day, and year variables

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

	// To require a 4 digit year entry, use this line instead:
	// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null) 
	{
		alert(fieldname + ": " + "Date is not in a valid format.")
		return false;
	}
	month = matchArray[1]; // parse date into variables
	day = matchArray[3];
	year = matchArray[4];
	if (month < 1 || month > 12) 
	{ // check month range
		alert(fieldname + ": " + "Month must be between 1 and 12.");
		return false;
	}
	if (day < 1 || day > 31) 
	{
		alert(fieldname + ": " + "Day must be between 1 and 31.");
		return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) 
	{
		alert(fieldname + ": " + "Month "+month+" doesn't have 31 days!")
		return false
	}
	if (month == 2) 
	{ // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) 
		{
			alert(fieldname + ": " + "February " + year + " doesn't have " + day + " days!");
			return false;
		}
	}
	return true;  // date is valid
}

function ValidateDates (form) 
{
	if (!isValidDate("Departure Date", form.deptdate.value))
		return false
	if (form.rt_ow.value == 'R')
	{
		if (!isValidDate("Return Date", form.retndate.value))
		return false;
	}
	return true;
}

function CF_checkcheck (form) 
{

	if (!CheckFieldExtra(form, "DEPART", "Departure City", true, "C", " ") || !CheckFieldExtra(form, "DEST", "Destination City", true, "C"," "))
		return false;
	else
		return true;
}

function clear_form()  
{
	if ((document.req.DEPART.type=="select") && (document.req.DEST.type!="select"))
	{
		document.req.DEPART.options[0].selected=true;
		document.req.DEST.value="";
	}
	if ((document.req.DEST.type=="select") && (document.req.DEPART.type!="select"))
	{
		document.req.DEPART.value="";
		document.req.DEST.options[0].selected=true;
	}
	if (document.req.DEPART.type=="select")
	{
		document.req.DEPART.options[0].selected=true;
		document.req.DEST.options[0].selected=true;
	}
	else
	{
		document.req.DEPART.value="";
		document.req.DEST.value="";
	}
	document.req.Dept_Month.options[0].selected=true;
	document.req.Dept_Day.options[0].selected=true;
	document.req.hourdept.options[0].selected=true;
	document.req.Ret_Month.options[0].selected=true;
	document.req.Ret_Day.options[0].selected=true;
	document.req.hourretn.options[0].selected=true;
	//document.req.airline.value="";
	//document.req.airline.options[0].selected=true;
	document.req.air_class.options[0].selected=true;
	document.req.air_sort.options[0].selected=true;
	document.forms['req'].elements['rt_ow'][0].checked=true;
	document.forms['req'].elements['hourdept'].selectedIndex=7;
	document.forms['req'].elements['hourretn'].selectedIndex=7;
	document.forms['req'].elements['air_avail'].selectedIndex=0;

	for(var i=0; i<document.req.airline.options.length; i++)
		document.req.airline.options[i].selected=false;

	document.forms['req'].elements['airline'].selectedIndex=0;

	document.req.seniors.value="";
	document.req.senage1.value="";
	document.req.senage2.value="";
	document.req.senage3.value="";
	document.req.senage4.value="";
	document.req.childsf.value="";
	document.req.chdage1.value="";
	document.req.chdage2.value="";
	document.req.chdage3.value="";
	document.req.chdage4.value="";
	document.req.Infantsf.value="";
	depMonth = new Date().getMonth();
	depDay = new Date().getDate();
	retMonth = new Date().getMonth();
	retDay = new Date().getDate() + 1;

}
