
function emailCheck (emailStr) {
var checkTLD=1;
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
alert("Email address seems incorrect (check @ and .'s)");
return false;
}
var user=matchArray[1];
var domain=matchArray[2];
for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("Ths username contains invalid characters.");
return false;
   }
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("Ths domain name contains invalid characters.");
return false;
   }
}
if (user.match(userPat)==null) {
alert("The username doesn't seem to be valid.");
return false;
}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert("Destination IP address is invalid!");
return false;
   }
}
return true;
}
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
alert("The domain name does not seem to be valid.");
return false;
   }
}
if (checkTLD && domArr[domArr.length-1].length!=2 && 
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("The address must end in a well-known domain or two letter " + "country.");
return false;
}
if (len<2) {
alert("This address is missing a hostname!");
return false;
}
return true;
}
//----------------validation ends for htlPaxinfo.js-----------------











function fDateValidation()
{
var CurrDateTemp=document.getElementById("CurrDate").value;
var DeptDateTemp=document.getElementById("FDptMMYear").value;


var CurrDate= new Date(parseInt(CurrDateTemp.substring(4,8),10),parseInt(parseInt(CurrDateTemp.substring(2,4),10)-1,10) , parseInt(parseInt(CurrDateTemp.substring(0,2),10)+1));
var Dptdate= new Date(parseInt(DeptDateTemp.substring(2,6),10),parseInt(parseInt(DeptDateTemp.substring(0,2),10)-1,10) , parseInt(document.getElementById("FDptDate").value,10));
if(Dptdate<=CurrDate)
	{
	alert("IF DEPARTURE IS WITHIN 48 HOURS, PLEASE CONTACT OUR RESERVATIONS DEPARTMENT ON 020 8518 9708");
	document.getElementById("FDptMMYear").focus();
	return false;
	}
if(document.getElementById("FJrnType").value=="")
	{
	DeptDateTemp=document.getElementById("FRetMMYear").value;
	var RetDate= new Date(parseInt(DeptDateTemp.substring(2,6),10),parseInt(parseInt(DeptDateTemp.substring(0,2),10)-1,10) , parseInt(document.getElementById("FRetDate").value,10));
	if(document.getElementById("FareOnly").value=="1")
		{
		var one_day=1000*60*60*24;
		var strdiff=Math.ceil((RetDate.getTime()-Dptdate.getTime())/(one_day))
	      if(strdiff<6) 
			  {
			  alert("The minimum diffenrence between the dates should be 6 days.If you want to search less than 6 days,please uncheck the 'My dates are flexible'")
			  return false;
			  } 
		}
		else
		{
		if(RetDate<=Dptdate)
			{
			alert("Return Date Must be greater than Depart date");
			document.getElementById("FRetMMYear").focus();
			return false;
			}
		}
	}

}

function fValidateSearch() //for flight page fHValidateSearch
{
	var Adult,child,Infant,total
	Adult=new Number(document.getElementById("FAdult").value);
	child=new Number(document.getElementById("FChild").value);
	Infant=new Number(document.getElementById("FInfant").value);
	total=(Adult+child+Infant);
	if(document.getElementById("FDestFrom").value=="" || document.getElementById("FDestFrom").value.length<3 || document.getElementById("FDestFrom").value.toUpperCase()=="ENTER DEPARTURE AIRPORT")
		{
		alert("Please select or enter departure airportname.");
		document.getElementById("FDestFrom").focus();
		return false;
		}
	if(document.getElementById("FDestTo").value=="" || document.getElementById("FDestTo").value.length<3  || document.getElementById("FDestTo").value.toUpperCase()=="ENTER DESTINATION")
		{
		alert("Please select or enter destination airportname.");
		document.getElementById("FDestTo").focus();
		return false;
		}
	if(document.getElementById("FDestFrom").value==document.getElementById("FDestTo").value)
		{
		alert(" Departure Airport and Destination Airport can't be same");
		document.getElementById("FDestTo").focus();
		return false;
		}
	if (Infant > Adult) 
		{
		alert("Number of infants should be equal to or less then number of adults");
		return false;
		}
	
	if(total>9)
		{
		alert("Total no of person should not be more than 9");
		return false;
		}
	if(fDateValidation()==false)
		{
		return false;
		}	
	if(FDptValidDaysInOut()==false)
		{
		var ww=document.getElementById("FDayMonth").value;
		ww=ww.toUpperCase();
		alert("Departure Flight not available on:"+ww);
		document.FlightSearch.FDptDate.focus();
		return false;
		}

	if(document.getElementById("FJrnType").value=="")
		{
		if(FRetValidDaysInOut()==false)
			{
			var ww=document.getElementById("FDayMonthRet").value;
			ww=ww.toUpperCase();
			alert("Return Flight not available on:"+ww)
			document.FlightSearch.FRetDate.focus();
			return false;
			}
		}
return true;
}

function FDptValidDaysInOut()
{
	var flag=0;
	var DOutDay=document.getElementById("DaysInRow").innerHTML;
	var day=document.FlightSearch.FDayMonth.value;
	
	var dayOut=DOutDay.split(",");
	if(DOutDay.toUpperCase()=="DAILY" || DOutDay.toUpperCase()=="--")
	{
		return true;
	}
	else
	{
		
	for(var i=0;i<dayOut.length;i++)
		{
			var dd=day.toUpperCase();
			var ddd="";
			if(i==0)
			{
			ddd=dayOut[i].toUpperCase();
			}
			else
			{
				dayOut[i]=dayOut[i].substr(1);
				ddd=dayOut[i].toUpperCase();
				
			}
		dd="\""+dd.substr(1)+"\"";
		ddd="\""+ddd+"\"";
	
		if(dd==ddd)
				{
					
					flag=1;
					break;
				}
		}
		if(flag==1)
		{
			return true;
		}
		else
		{
			return false;
		}
	
	} 
}

function FRetValidDaysInOut()
{
	var flag=0;
	//var DOutDay=document.getElementById("dIn").innerHTML;
	var DOutDay=document.getElementById("DaysOutRow").innerHTML;
	var day=document.FlightSearch.FDayMonthRet.value;
	var dayOut=DOutDay.split(",");
	if(DOutDay.toUpperCase()=="DAILY" || DOutDay.toUpperCase()=="--")
	{
	return true;
	}
	else
	{
		for(var i=0;i<dayOut.length;i++)
		{
		      var dd
		        if(day.substring(0,1) == ' ')
			        {
			         dd = day.substring(1, day.length).toUpperCase();
			        }
			        else
			        {
			        dd=day.toUpperCase();
			        }
		
		//var dd=day.toUpperCase();
		var ddd="";
		//if(i==0)
			//{
			        if(dayOut[i].substring(0,1) == ' ')
			        {
			         ddd = dayOut[i].substring(1, dayOut[i].length).toUpperCase();
			        }
			        else
			        {
			        ddd=dayOut[i].toUpperCase();
			        }
			//ddd=dayOut[i].toUpperCase();
			//}
			//else
			//{
				//dayOut[i]=dayOut[i].substr(1);
				//ddd=dayOut[i].toUpperCase();
				
				
				
			//}
		//dd="\""+dd.substr(1)+"\"";
		//ddd="\""+ddd+"\"";
		
		if(dd==ddd)
				{
					flag=1;
					break;
				}
		}
		if(flag==1)
		{
			return true;
		}
		else
		{
			return false;
		}
	
	} 
}

function setDMY(num)
{

		if(num=='F')
		{
			
			setDatMonYear(document.FlightSearch.FDptDateDDMMYY,document.FlightSearch.FDptYr,document.FlightSearch.FDptMon,document.FlightSearch.FDptDate,document.FlightSearch.FDptMonYr,document.FlightSearch.FRetDateDDMMYY,document.FlightSearch.FRetYr,document.FlightSearch.FRetMon,document.FlightSearch.FRetDate,document.FlightSearch.FRetMonYr,document.FlightSearch.FDptMonthName,document.FlightSearch.FRetMonthName);
					
		}
}

function setDatMonYear(DptDateDDMMYY,DptYr,DptMon,DptDate,DptMonYr,RetDateDDMMYY,RetYr,RetMon,RetDate,RetMonYr,DptMonName,RetMonName)
{
	
	var DepMMYY="";
	var RetMMYY="";
	var Dep=document.getElementById(DptDateDDMMYY.id).value;
	var Depdate=Dep.split("/");
	var year=Depdate[2];
	var mon=Depdate[1];
	var day=Depdate[0];
	
	monn=parseInt(mon);
	var monName=getMonthNameString(monn);
	document.getElementById(DptMonName.id).value=monName;
	
	var Ret=document.getElementById(RetDateDDMMYY.id).value;
	var Repdate=Ret.split("/");
	var year1=Repdate[2];
	var mon1=Repdate[1];
	var day1=Repdate[0];
	
	monnn=parseInt(mon1);
	var monName1=getMonthNameString(monnn);
	document.getElementById(RetMonName.id).value=monName1;
	
	
	if(mon<=10)
		{
		DepMMYY="0"+(mon-1)+year;
		
		document.getElementById(DptDate.id).value=day;
		document.getElementById(DptMonYr.id).value=DepMMYY;
		}
		else
		{
		DepMMYY=(mon-1)+year;
		document.getElementById(DptDate.id).value=day;
		document.getElementById(DptMonYr.id).value=DepMMYY;
		}
		document.getElementById(DptYr.id).value=year;
		document.getElementById(DptMon.id).value=mon;
	
	if(mon1<=10)
		{
		RetMMYY="0"+(mon1-1)+year1;
		document.getElementById(RetDate.id).value=day1
		document.getElementById(RetMonYr.id).value=RetMMYY;
		}
		else
		{
		RetMMYY=(mon1-1)+year1
		document.getElementById(RetDate.id).value=day1
		document.getElementById(RetMonYr.id).value=RetMMYY;
		}
		document.getElementById(RetYr.id).value=year1;
		document.getElementById(RetMon.id).value=mon1;
		
	
}
function getMonthNameString(num)
{
	var ll=num;
	if(ll==1)
	return "Jan"
	if(ll==2)
	return "Feb"
	if(ll==3)
	return "Mar"
	if(ll==4)
	return "Apr"
	if(ll==5)
	return "May"
	if(ll==6)
	return "Jun"
	if(ll==7)
	return "Jul"
	if(ll==8)
	return "Aug"
	if(ll==9)
	return "Sep"
	if(ll==10)
	return "Oct"
	if(ll==11)
	return "Nov"
	if(ll==12)
	return "Dec"
}


//Trade made Form

function ValidateSearchBook(formid)
{
//	if(formid.elements["SpecReq"].value.length<5)
//		{
//			alert("Please add any comments and special request")
//			formid.elements["SpecReq"].focus()
//			return false;
//		}
//	
	
	
	//Date validation
	
	
	
	
	
var CurrDateTemp=formid.elements["CurrDate"].value;
var DeptDateTemp=formid.elements["FDptMMYear"].value;
var CurrDate= new Date(parseInt(CurrDateTemp.substring(4,8),10),parseInt(parseInt(CurrDateTemp.substring(2,4),10)-1,10) , parseInt(parseInt(CurrDateTemp.substring(0,2),10)));
var Dptdate= new Date(parseInt(DeptDateTemp.substring(2,6),10),parseInt(parseInt(DeptDateTemp.substring(0,2),10)-1,10) , parseInt(formid.elements["FDptDate"].value,10));
if(Dptdate<=CurrDate)
	{
	alert("IF DEPARTURE IS WITHIN 24 HOURS, PLEASE CONTACT OUR RESERVATIONS DEPARTMENT ON 020 8518 9708");
	document.getElementById("FDptMMYear").focus();
	return false;
	}
	DeptDateTemp=formid.elements["FRetMMYear"].value;
	var RetDate= new Date(parseInt(DeptDateTemp.substring(2,6),10),parseInt(parseInt(DeptDateTemp.substring(0,2),10)-1,10) , parseInt(formid.elements["FRetDate"].value,10));
	if(RetDate<=Dptdate)
			{
			alert("Return Date Must be greater than Depart date");
			formid.elements["FRetMMYear"].focus();
			return false;
			}
	
//end Date
	
	
	
	
	
	
	
	if(formid.elements["requiredFname"].value.length<3)
		{
			alert("Please Enter First Name (Minimun 3 Characters) ")
			formid.elements["requiredFname"].focus()
			return false;
		}
		if(formid.elements["requiredLname"].value.length<3)
		{
			alert("Please Enter Last Name (Minimum 3 Characters)")
			formid.elements["requiredLname"].focus()
			return false;
		}

if(formid.elements["requiredHomeTel"].value.length<1 && formid.elements["workTel"].value.length<1 && formid.elements["mobileno"].value.length<1)
		{
			alert("Please Enter Contact Number")
			formid.elements["requiredHomeTel"].focus()
			return false;
		}
		
if(emailCheck(formid.elements["requiredEMail"].value)!=true)
    {
         formid.elements["requiredEMail"].focus();
        return false;
	}
		
}