
/************	SHOW HIDE CONTROLS	************/
function hideLyr(sLyrName){
	document.getElementById(sLyrName).style.display = "none";
}

function showLyr(sLyrName){
	document.getElementById(sLyrName).style.display = "block";
}

/************	STRIP WHITE SPACES	************/
function stripSpaces(val) 
{    
    while (val.substring(0,1) == ' ') 
    {
    	val = val.substring(1);
    }
    while (val.substring(val.length-1,val.length) == ' ') 
    {
    	val = val.substring(0,val.length-1);
    }
    return val;
}

function eventTrigger (e) 
{
	if (! e)
   		e = event;
	return e.target || e.srcElement;
}

/*****************EMAIL VALIDATION/CHECK *******************/
function emailcheck(str) 
{
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if (str.indexOf(at)==-1)
	{
	   alert("Invalid E-mail ID");
	   return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	{
	   alert("Invalid E-mail ID");
	   return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	{
	    alert("Invalid E-mail ID");
	    return false;
	}

	 if (str.indexOf(at,(lat+1))!=-1)
	 {
	    alert("Invalid E-mail ID");
	    return false;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	 {
	    alert("Invalid E-mail ID");
	    return false;
	 }

	 if (str.indexOf(dot,(lat+2))==-1)
	 {
	    alert("Invalid E-mail ID");
	    return false;
	 }
	
	 if (str.indexOf(" ")!=-1)
	 {
	    alert("Invalid E-mail ID");
	    return false;
	 }
 	 return true;				
}



/************	AGE- DATE RELATED FUNCTIONS	************/

function makeDaysOfMonth()
{
	var i = 0;
  	this[i++] = 0; // dummy
  	this[i++] = 31;
  	this[i++] = 29;
  	this[i++] = 31;
  	this[i++] = 30;
  	this[i++] = 31;
  	this[i++] = 30;
  	this[i++] = 31;
  	this[i++] = 31;
  	this[i++] = 30;
  	this[i++] = 31;
  	this[i++] = 30;
  	this[i  ] = 31;
  	this.length = i;
}


function calcAge(dd1, mm1, yyyy1, dd2,mm2,yyyy2)
{
	var t, mon, day, year, DD, MM, YY, age;
  	var MTB = new makeDaysOfMonth();
  	YY   = parseInt(yyyy1,10);	// year of birth (4 digits)
  	MM   = parseInt(mm1,10);	// month of birth (1-12)
  	DD   = parseInt(dd1,10);	// date of birth (1-31)
  	if (MTB[MM] < DD || DD < 1) 
  	{
  		//alert("Please check the date");
  		return -1; 
  	}
  	year = parseInt(yyyy2,10);	// get year of current
  	mon  = parseInt(mm2,10);	// get month of current
  	day  = parseInt(dd2,10);	// get date of current
  	if (MM == 2 && DD == 29)
  	{	// check leap year
    	if (!(((YY % 4 == 0) && (YY % 100 != 0)) || (YY % 400 == 0)))
    	{
      		//alert("The year " +YY+ " ends at 28th of "+MM+" month\nPlease check the date.");
      		return -1;
    	}
  	}
  	age = year - YY;
  	if ((MM > mon) || (MM == mon && day < DD)) age --;
  	return age;
}

function getMonthIndex(mmm)
{
	if(mmm=="Jan")
	{
		return "00";
	}
  	if(mmm=="Feb")
	{
		return "01";
	}
	if(mmm=="Mar")
	{
		return "02";
	}
	if(mmm=="Apr")
	{
		return "03";
	}
	if(mmm=="May")
	{
		return "04";
	}
	if(mmm=="Jun")
	{
		return "05";
	}
	if(mmm=="Jul")
	{
		return "06";
	}
	if(mmm=="Aug")
	{
		return "07";
	}
	if(mmm=="Sep")
	{
		return "08";
	}
	if(mmm=="Oct")
	{
		return "09";
	}
	if(mmm=="Nov")
	{
		return "10";
	}
	if(mmm=="Dec")
	{
		return "11";
	}
}


var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s)
{
	var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year)
{
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) 
{
	for (var i = 1; i <= n; i++) 
	{
		this[i] = 31;
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30;}
		if (i==2) {this[i] = 29;}
   } 
   return this;
}

function isDate(dtStr)
{
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strDay =dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth);
	day=parseInt(strDay);
	year=parseInt(strYr);
	
	if (pos1==-1 || pos2==-1){
		alert("The date format should be : dd/mm/yyyy");
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month");
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day");
		return false;
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
		return false;
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date");
		return false;
	}
	return true;
}

function days_between(date1, date2) 
{

    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24;

    // Convert both dates to milliseconds
    var date1_ms = date1.getTime();
    var date2_ms = date2.getTime();

    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms);
    
    // Convert back to days and return
    return Math.round(difference_ms/ONE_DAY);
}

/************	FLIGHT SEARCH PAGE FUNCTIONS ************/

function enableDisableReturnDate()
{	
	var elms = document.getElementsByTagName("input");
	var checked = isOneWay();
	for(i=0;i<elms.length;i++)
	{
		if(elms[i].name=='returnDate')
		{
			elms[i].disabled = checked;	
			if(isOneWay())
			{
				elms[i].value = "";
				retDate = new Date();
			}
			break;		
		}
	}
	
	elms = document.getElementsByTagName("select");
	for(i=0;i<elms.length;i++)
	{
		if(elms[i].name=='returnHour')
		{
			elms[i].disabled = checked;
		}
		if(elms[i].name=='returnMin')
		{
			elms[i].disabled = checked;
		}
		if(elms[i].name=='returnMin')
		{
			elms[i].disabled = checked;
		}
	}
	if(checked)
	{
		hideLyr("clickableIcon");
		showLyr("nonClickableIcon");
	}
	else
	{
		hideLyr("nonClickableIcon");
		showLyr("clickableIcon");
	}
}


var today 	= new Date();
var depDate = new Date();
var retDate = new Date();

var dep_dd = "";
var dep_mm = "";
var dep_yyyy = "";
	
var ret_dd = "";
var ret_mm = "";
var ret_yyyy = "";

function splitDepartureDateString(departureDateString)
{
	dep_yyyy = departureDateString.substring(6);				
	dep_mm = departureDateString.substring(3,5);
	dep_dd = departureDateString.substring(0,2);	
}

function splitReturnDateString(returnDateString)
{
	ret_yyyy = returnDateString.substring(6);				
	ret_mm = returnDateString.substring(3,5);
	ret_dd = returnDateString.substring(0,2);	
}

function isValidDepartureDate(departDateField)
{
	if(departDateField.value=="" || departDateField.value==null)
	{
		alert("Please enter a departure date");
		departDateField.focus();
		return false;
	}
	else if(!isDate(departDateField.value))
	{
		departDateField.focus();
		return false;
	}
	return true;
}

function isValidateReturnDate(returnDateField)
{
	if(returnDateField.value=="" || returnDateField.value==null)
	{
		alert("Please enter a return date");
		returnDateField.focus();
		return false;
	}
	else if(!isDate(returnDateField.value))
	{
		returnDateField.focus();
		return false;
	}
	return true;
}

function setDepartDate()
{
	dep_mm = parseInt(dep_mm,10)-1;
	if(dep_dd.toString().length==1)
	{
		dep_dd = "0"+dep_dd;
	}
	if(dep_mm.toString().length==1)
	{
		dep_mm = "0"+dep_mm;
	}
	//reset the date to 1 it get around crazy problem that will happen on 31st
	depDate.setDate(01);
	depDate.setYear(parseInt(dep_yyyy,10));
	depDate.setMonth(parseInt(dep_mm,10));
	depDate.setDate(parseInt(dep_dd,10));
}

function setReturnDate()
{
	ret_mm =  parseInt(ret_mm,10)-1;
	if(ret_dd.toString().length==1)
	{
		ret_dd = "0"+ret_dd;
	}
	if(ret_mm.toString().length==1)
	{
		ret_mm = "0"+ret_mm;
	}
	//reset the date to 1 it get around crazy problem that will happen on 31st
	retDate.setDate(01);
	retDate.setYear(parseInt(ret_yyyy,10));
	retDate.setMonth(parseInt(ret_mm,10));
	retDate.setDate(parseInt(ret_dd,10));	
}

function setDepartDateAndReturnDate()
{
	setDepartDate();
	setReturnDate();	
}

function validateTravelDates()
{
	var elms = document.getElementsByTagName("input");
	for(i=0;i<elms.length;i++)
	{
		if(elms[i].name == 'departDate')
		{
			if(isValidDepartureDate(elms[i]))
			{
				splitDepartureDateString(elms[i].value);
			}
			else
			{
				return false;
			}												
		}		
		else if (elms[i].name=='returnDate' && isOneWay()==false)
		{
			if(isValidateReturnDate(elms[i]))
			{
				splitReturnDateString(elms[i].value);
			}
			else
			{
				return false;
			}									
		}
	}	
	
	setDepartDateAndReturnDate();
	
	if(depDate< today)
	{
		alert("Departure date cannot be before today");
		return false;
	}
	
	if(isOneWay()==false && depDate>retDate)
	{
		alert("Departure date must be before return date");
		return false;
	}
	return true;
}

function validateDates(dateRange)
{
	var res = validateTravelDates();
	if(!res)
	{
		return false;
	}
	if(isOneWay())
	{
		if(days_between(today,depDate)>dateRange)
		{
			alert("Departure date must be within " + dateRange +" days");
			return false;
		}
	}
	else
	{
	 	if(days_between(today,retDate)>dateRange)
		{
			alert("Return date must be within " + dateRange +" days");
			return false;
		}
	}
	return true;
}


function updateReturnDates(increment)
{
	var elms = document.getElementsByTagName("input");
	if(isOneWay())
	{
		for(i=0;i<elms.length;i++)
		{
			if (elms[i].name=='returnDate')
			{
				elms[i].value="";
				retDate = new Date();
				break;
			}
		}
	}
	else
	{
	
		for(i=0;i<elms.length;i++)
		{
			if(elms[i].name == 'departDate' && elms[i].value!="" && elms[i].value!=null)
			{
				splitDepartureDateString(elms[i].value);
				setDepartDate();
				
			}	
			else if (elms[i].name=='returnDate' && elms[i].value!="" && elms[i].value!=null  )
			{
				splitReturnDateString(elms[i].value);
				setReturnDate();		
			}		
		}
		
		//alert(depDate);
		//alert(retDate);
		if(depDate>retDate)
		{
			depDate = new Date(depDate.getTime() + increment*24*60*60*1000);
			
			dep_dd = depDate.getDate();
			dep_mm = depDate.getMonth();
			
			dep_yyyy = depDate.getFullYear();
			dep_mm = parseInt(dep_mm,10)+1;
			
			if(dep_dd.toString().length==1)
			{
				dep_dd = "0"+dep_dd;
			}
			
			if(dep_mm.toString().length==1)
			{
				dep_mm = "0"+dep_mm;
			}
			for(i=0;i<elms.length;i++)
			{
				if (elms[i].name=='returnDate')
				{
					elms[i].value=dep_dd+"/"+dep_mm+"/"+dep_yyyy;
				}
			}
		}
	}
}

function isOneWay()
{
	try
	{	
		return document.getElementById("oneway_type").checked;
	}
	catch(e)
	{
		
		// exception is thrown in the case where One_Way radio elemet is not available
		// ex: Accommodation Only search, Vehicle Hire 
		// in that case we will return false
		return false;
	}	
}

function captureAge()
{
	//document.searchForm.submit();
	if(document.getElementById("numberOfchildren").value == 0)
	{
		hideLyr("lbl_childAge");
		hideLyr("child0container");
		hideLyr("child1container");
		hideLyr("child2container");
		hideLyr("child3container");
		hideLyr("child4container");
		hideLyr("child5container");
		hideLyr("child6container");
		hideLyr("child7container");
		hideLyr("child8container");
		hideLyr("child9container");
		hideLyr("child10container");
	}
	if(document.getElementById("numberOfchildren").value >= 1)
	{
		showLyr("lbl_childAge");
		showLyr("child0container");
		hideLyr("child1container");
		hideLyr("child2container");
		hideLyr("child3container");
		hideLyr("child4container");
		hideLyr("child5container");
		hideLyr("child6container");
		hideLyr("child7container");
		hideLyr("child8container");
		hideLyr("child9container");
		hideLyr("child10container");
	}
	if(document.getElementById("numberOfchildren").value >= 2)
	{
		showLyr("child1container");
		hideLyr("child2container");
		hideLyr("child3container");
		hideLyr("child4container");
		hideLyr("child5container");
		hideLyr("child6container");
		hideLyr("child7container");
		hideLyr("child8container");
		hideLyr("child9container");
		hideLyr("child10container");
	}
	if(document.getElementById("numberOfchildren").value >= 3)
	{
		showLyr("child2container");
		hideLyr("child3container");
		hideLyr("child4container");
		hideLyr("child5container");
		hideLyr("child6container");
		hideLyr("child7container");
		hideLyr("child8container");
		hideLyr("child9container");
		hideLyr("child10container");
	}
	if(document.getElementById("numberOfchildren").value >= 4)
	{
		showLyr("child3container");
		hideLyr("child4container");
		hideLyr("child5container");
		hideLyr("child6container");
		hideLyr("child7container");
		hideLyr("child8container");
		hideLyr("child9container");
		hideLyr("child10container");
	}
	if(document.getElementById("numberOfchildren").value >= 5)
	{
		showLyr("child4container");
		hideLyr("child5container");
		hideLyr("child6container");
		hideLyr("child7container");
		hideLyr("child8container");
		hideLyr("child9container");
		hideLyr("child10container");
	}
	if(document.getElementById("numberOfchildren").value >= 6)
	{
		showLyr("child5container");
		hideLyr("child6container");
		hideLyr("child7container");
		hideLyr("child8container");
		hideLyr("child9container");
		hideLyr("child10container");
	}
	if(document.getElementById("numberOfchildren").value >= 7)
	{
		showLyr("child6container");
		hideLyr("child7container");
		hideLyr("child8container");
		hideLyr("child9container");
		hideLyr("child10container");
	}
	if(document.getElementById("numberOfchildren").value >= 8)
	{
		showLyr("child7container");
		hideLyr("child8container");
		hideLyr("child9container");
		hideLyr("child10container");
	}
	if(document.getElementById("numberOfchildren").value >= 9)
	{
		showLyr("child8container");
		hideLyr("child9container");
		hideLyr("child10container");
	}
	if(document.getElementById("numberOfchildren").value >= 10)
	{
		showLyr("child9container");
		hideLyr("child10container");
	}
}

function flightSearchValidate(dateRange)
{
	if(document.searchForm.departurePoint.value=="" || document.searchForm.departurePoint.value==null)
	{
		alert("Please select a departure airport");
		document.searchForm.departurePoint.focus();
		return false;
	}

	if(document.searchForm.destinationPoint.value=="" || document.searchForm.destinationPoint.value==null)
	{
		alert("Please select a destination airport");
		document.searchForm.destinationPoint.focus();
		return false;
	}
	
	if( document.searchForm.departurePoint.value==document.searchForm.destinationPoint.value)
	{                                                                               
		alert("Departure airport and the Destination airport cannot be same");
		document.searchForm.destinationPoint.focus();
		return false;
	}
	
	if(!validateDates(dateRange))
	{
		return false;
	}
 	
 	numAdults = parseInt(document.getElementById('numberOfAdults').value) + 1; 
 	// adding 1 is a work around and its crappy, because . values is returning the index
 	// ideally we need to add a renderer for that drop down box
 	
 	numChildren =  parseInt(document.searchForm.numberOfchildren.value);
 	numInfants =  parseInt(document.getElementById('numberOfinfants').value);

 	
 	if(numAdults + numChildren +numInfants >9)
 	{
 		alert("Only 9 passengers can travel on a booking");
 		return false;
 	}
 	
 	if(numAdults < numInfants)
	{
	 		alert("Only 1 infant allowed per adult");
	 		return false;
 	}
 	
 	if(2*numAdults < numInfants+numChildren)
	{
 		alert("Maximum number of children (including infant) per adult is 2");
 		return false;
 	}
 	 	
	return true;	
}


function searchButtonHideShow(action)
{
	if(action == "submit")
	{
		restartGif();
		showLyr('searchAnimDiv');		
		hideLyr('searchButDiv');
		restartGif();
	}
	else
	{
		showLyr('searchButDiv');		
		hideLyr('searchAnimDiv');
	}
}

function restartGif()
{
	for(var i=0; i<document.images.length; i++)
	{
		var img = document.images[i];
		var imgName = img.src.toUpperCase();
		if (imgName.substring(imgName.length-3, imgName.length) == "GIF")
		{
			img.src = img.src;
		}
	}
}

/******************* TOGGLE SCREEN FUNCTION *************************/
function toggleScreens(event)
{
	var handle;
	if(document.getElementById) 
	{
		handle = "upLevel";
	}
	else if(document.layers) 
	{
		handle = "ns4";
	}
	else if(document.all) 
	{
		handle = "ie4";
	}
	if(handle == "upLevel") 
	{
		var wait = document.getElementById("waitScreen");
		var main = document.getElementById("mainScreen");
	}
	else if(handle == "ns4") 
	{
		var wait = document.waitScreen;
		var main = document.mainScreen;
	}
	else if(handle == "ie4") 
	{
		var wait = document.all.waitScreen;
		var main = document.all.mainScreen;
	}
	if(event=="load")
	{
		hideLyr('waitScreen');
		//hideObject(wait,handle);
	}
	else
	{
		hideLyr('mainScreen');
		//hideObject(main,handle);
		showLyr('waitScreen');
		//showObject(wait,handle) 
	}
}
var timerId;
var picId="waitPic";
function setPicTimer(){
 clearTimeout(timerId);
 timerId=setTimeout("switchPic()",200);
}
function switchPic(){
 clearTimeout(timerId);
 var el=document.getElementById(picId);
 el.src=el.src;
 //alert("flip");
}	
function showObject(obj,handle) 
{
	if (handle == "ns4") obj.visibility = "show";
	else if (handle == "ie4" || handle== "upLevel") obj.style.visibility = "visible";
	//switchPic();
}
function hideObject(obj,handle) 
{
	if (handle == "ns4") 
	{
		obj.visibility = "hide";
	}
	if (handle == "ie4" || handle == "upLevel") 
	{
		obj.style.visibility = "hidden";
	}
}

/*************************FLIGHT SEARCH RESULT SCRIPTS ***********************/
function checkSelection(e)
{
	var obj = eventTrigger (e);	
	var elms = document.getElementsByTagName("input");
	var isOutSelected = false;
	var isRetSelected = false;
	var outSelectedVal = "";
	var retSelectedVal = "";
	var isReturn = false;
	for(i=0;i<elms.length;i++)
	{
		if(elms[i].name=='outbound')
		{
			if(elms[i].checked)
			{
				isOutSelected = true;
				outSelectedVal = elms[i].value;
				break;
			}
		}
	}
	for(i=0;i<elms.length;i++)
	{
		
		if(elms[i].name=='inbound')
		{
			isReturn = true;
			if(elms[i].checked)
			{
				isRetSelected = true;
				retSelectedVal = elms[i].value;
				break;
			}
		}
	
	}
	if(isOutSelected == false && !isReturn)
	{
		alert("Please select an Outbound journey");
		return false;
	}
	if(isReturn && (isOutSelected == false || isRetSelected==false))
	{
		alert("Please select an Outbound and Return journey");
		return false;
	}
	else if(isReturn)
	{
		if(outSelectedVal.substring(0,outSelectedVal.indexOf('-'))!=
			retSelectedVal.substring(0,retSelectedVal.indexOf('-')))
		{
			//alert(outSelectedVal.substring(0,1));
			//alert(retSelectedVal.substring(0,1));
			alert("Sorry, the Outward and Return Journey selection doesn't match");
			return false;
		}
		
	}
}

function trackRetChoice(e)
{
	var obj = eventTrigger (e);	
	var elms = document.getElementsByTagName("input");
	var outSelectedVal = obj.value;
	var retSelectedVal = "";
	var matchCounter = 0;
	for(i=0;i<elms.length;i++)
	{
		if(elms[i].name=='inbound')
		{
			if(elms[i].checked)
			{
				retSelectedVal = elms[i].value;
				if(outSelectedVal.substring(0,outSelectedVal.indexOf('-'))!=
					retSelectedVal.substring(0,retSelectedVal.indexOf('-')))
				{
					elms[i].checked = false;
				}
				break;
			}
		}
	}
	
	
	// checking the in bound options available 
	for(i=0;i<elms.length;i++)
	{
		if(elms[i].name=='inbound')
		{
			retSelectedVal = elms[i].value;
			//supplier
			if(outSelectedVal.substring(0,outSelectedVal.indexOf('-')) == 
				retSelectedVal.substring(0,retSelectedVal.indexOf('-')))
			{
				matchCounter = matchCounter +1;
			}
		
		}
	}
	
	 //this means there is one only option , so auto select it
	
	if(matchCounter == 1)
	{
		for(i=0;i<elms.length;i++)
		{
			if(elms[i].name=='inbound')
			{
				retSelectedVal = elms[i].value;
				if(outSelectedVal.substring(0,outSelectedVal.indexOf('-'))==
					retSelectedVal.substring(0,retSelectedVal.indexOf('-')))
				{
					elms[i].checked = true;
				}
			}
		}
	}
	
}

function trackOutChoice(e)
{
	var obj = eventTrigger (e);
	var elms = document.getElementsByTagName("input");
	var outSelectedVal = "";
	var retSelectedVal = obj.value;
	var matchCounter = 0;
	for(i=0;i<elms.length;i++)
	{
		if(elms[i].name=='outbound')
		{
			if(elms[i].checked)
			{
				outSelectedVal = elms[i].value;
				if(outSelectedVal.substring(0,outSelectedVal.indexOf('-'))!=
					retSelectedVal.substring(0,retSelectedVal.indexOf('-')))
				{
					elms[i].checked = false;
				}
				break;
			}
		}
	}
	
	
	
	// checking the out bound options available 
	for(i=0;i<elms.length;i++)
	{
		if(elms[i].name=='outbound')
		{
			outSelectedVal = elms[i].value;
			if(outSelectedVal.substring(0,outSelectedVal.indexOf('-'))== 
				retSelectedVal.substring(0,retSelectedVal.indexOf('-')))
			{
				matchCounter = matchCounter +1;
			}
		}
	}
	
	
	 //this means there is only one option , so auto select it
	if(matchCounter == 1)
	{
		for(i=0;i<elms.length;i++)
		{
			if(elms[i].name=='outbound')
			{
				outSelectedVal = elms[i].value;
				if(outSelectedVal.substring(0,outSelectedVal.indexOf('-'))==
					retSelectedVal.substring(0,retSelectedVal.indexOf('-')))
				{
					elms[i].checked = true;
				}
			}
		}
	}
	
	
}

function multisort()
{
	document.flightSearchMultiResForm.submit();
}

function sort()
{
	document.flightSearchResForm.submit();
}

/****************************TRAIN SEARCH SCRIPTS***************************/

function trainSearchvalidate()
{
	if(!validateDates())
 	{
 		return false;
 	}
	return true;	
}

/****************************TRANSFER SEARCH SCRIPTS***************************/

function transferSearchValidate()
{
	if(document.searchForm.destinationPoint.value=="" || document.searchForm.destinationPoint.value==null)
	{
		alert("Please enter the from airport");
		document.searchForm.destinationPoint.focus();
		return false;
	}

	if(document.searchForm.resort.value=="" || document.searchForm.resort.value==null)
	{
		alert("Please enter the to resort");
		document.searchForm.resort.focus();
		return false;
	}
	
	if(document.searchForm.hotel.value=="" || document.searchForm.hotel.value==null)
	{
		alert("Please enter the hotel name");
		document.searchForm.hotel.focus();
		return false;
	}
	
	if(document.searchForm.address1.value=="" || document.searchForm.address1.value==null)
	{
		alert("Please enter the address");
		document.searchForm.address1.focus();
		return false;
	}
	
	if(document.searchForm.departurePoint.value=="" || document.searchForm.departurePoint.value==null)
	{
		alert("Please enter the departure airport");
		document.searchForm.departurePoint.focus();
		return false;
	}
	
	
	if(document.searchForm.outFlightNumber.value=="" || document.searchForm.outFlightNumber.value==null)
	{
		alert("Please enter the outward flight number");
		document.searchForm.outFlightNumber.focus();
		return false;
	}
	
	if(document.searchForm.departDate.value=="" || document.searchForm.departDate.value==null)
	{
		alert("Please enter the outward flight date");
		document.searchForm.departDate.focus();
		return false;
	}
	
	if(document.searchForm.retFlightNumber.value=="" || document.searchForm.retFlightNumber.value==null)
	{
		alert("Please enter the return flight number");
		document.searchForm.retFlightNumber.focus();
		return false;
	}
	
	if(document.searchForm.returnDate.value=="" || document.searchForm.returnDate.value==null)
	{
		alert("Please enter the return flight date");
		document.searchForm.returnDate.focus();
		return false;
	}
}

/****************************OPTIONS SEARCH SCRIPTS***************************/

function optionsSearchValidate()
{
	if(document.searchForm.resort.value=="" || document.searchForm.resort.value==null)
	{
		alert("Please enter the location");
		document.searchForm.resort.focus();
		return false;
	}
	
	if(document.searchForm.departDate.value=="" || document.searchForm.departDate.value==null)
	{
		alert("Please enter the date");
		document.searchForm.departDate.focus();
		return false;
	}
	
	
	numAdults =  parseInt(document.searchForm.numberOfAdults.value); 	
 	numChildren =  parseInt(document.searchForm.numberOfchildren.value);
 	if(numAdults+numChildren==0)
 	{
 		alert("Please specify party size, party needs at least an adult or a chid");
 		document.searchForm.numberOfAdults.focus();
		return false;
 	}
 	
}

function updateOptionalReturnDates()
{
	var elms = document.getElementsByTagName("input");	
	
	for(i=0;i<elms.length;i++)
	{
		if(elms[i].name == 'departDate' && elms[i].value!="" && elms[i].value!=null)
		{
			splitDepartureDateString(elms[i].value);
			setDepartDate();
			
		}
		else if (elms[i].name.indexOf('returnDate')>-1 && elms[i].value!="" && elms[i].value!=null  )
		{
			splitReturnDateString(elms[i].value);
			setReturnDate();		
		}			
	}
	
	//alert(depDate);
	//alert(retDate);
	if(depDate>retDate)
	{
		depDate = new Date(depDate.getTime() + 2*24*60*60*1000);
		
		dep_dd = depDate.getDate();
		dep_mm = depDate.getMonth();
		
		dep_yyyy = depDate.getFullYear();
		dep_mm = parseInt(dep_mm,10)+1;
		
		if(dep_dd.toString().length==1)
		{
			dep_dd = "0"+dep_dd;
		}
		
		if(dep_mm.toString().length==1)
		{
			dep_mm = "0"+dep_mm;
		}
		for(i=0;i<elms.length;i++)
		{
			if (elms[i].name.indexOf('returnDate')>-1)
			{
				elms[i].value=dep_dd+"/"+dep_mm+"/"+dep_yyyy;
			}
		}
	}	
}

/****************************DYNAMIC PACKAGE PAGE SCRIPTS****************************/

function dynamicPackageValidate(dateRange)
{
	if(document.searchForm.departurePoint.value=="" || document.searchForm.departurePoint.value==null)
	{
		//alert("Please select a departure airport");
		document.searchForm.departurePoint.focus();
		return false;
	}

	if(document.searchForm.destinationPoint.value=="" || document.searchForm.destinationPoint.value==null)
	{
		//alert("Please select a destination airport");
		document.searchForm.destinationPoint.focus();
		return false;
	}
	
	if( document.searchForm.departurePoint.value==document.searchForm.destinationPoint.value)
	{                                                                               
		//alert("Departure airport and the Destination airport cannot be same");
		document.getElementById('searchLandingPanel_searchForm_destinationPoint').focus();
		return false;
	}
	
	if(!validateDates(dateRange))
	{
		return false;
	}
 	
	try
	{
		toggleScreens("submit");
	}
	catch(e)
	{
	}
	try
	{
		searchButtonHideShow("submit");
		restartGif();
	}
	catch(e)
	{
		//alert(e);
	}
	
}


/****************************PACKAGE PARTY PAGE SCRIPTS****************************/

function packagesPartyValidate()
{
	toggleScreens("submit");	
}

/****************************PASSENGER PAGE SCRIPTS****************************/
function paxValidate(startDate,endDate,partyBits,requireIDIssueDate)
{
	var bits = partyBits.split("|");
	var numAdults = parseInt(bits[0]);
	var numChildren = parseInt(bits[1]);
	var numInfants = parseInt(bits[2]);
	
	for(i = 0; i < numAdults; i++)
	{
		var type = "adult";
		var index=i-1;
		if(i==0)
		{
			type="lead";
			index=0;
		}
		if(paxValidateAlerts(type,index,requireIDIssueDate)==false)
		{
			return false;
		}
	}
	for(i = 0; i < numChildren; i++)
	{
		if(paxValidateAlerts("child",i,requireIDIssueDate)==false)
		{
			return false;
		}
	}
	for(i = 0; i < numInfants; i++)
	{
		if(paxValidateAlerts("infant",i,requireIDIssueDate)==false)
		{
			return false;
		}
	}
	if(!validatePassengerAge(startDate))
	{
		return false;
	}
	
	try
	{
		if(document.getElementById('checkedSpelling')!=null && document.getElementById('checkedSpelling').checked==false)
		{
			document.getElementById('checkedSpelling').focus();
			alert("Please tick to confirm passenger names are correct");
			return false;
		}
	}
	catch(e)
	{
	}
	
	
	//bit of a hack for flight centre site to open a pop up window
	try
	{
		closing = false;
	}
	catch(e)
	{
	}
	return true;	
}
function paxValidateAlerts(type,index,requireIDIssueDate)
{
	if(document.getElementById(type+'.title.'+index).value=="")
	{
		alert("Please select a title for "+type+" passenger");
		document.getElementById(type+'.title.'+index).focus();
		return false;
	}

	if(document.getElementById(type+'.firstName.'+index).value=="")
	{
		alert("Please enter "+type+" passenger first name");
		document.getElementById(type+'.firstName.'+index).focus();
		return false;
	}
	
	if(document.getElementById(type+'.firstName.'+index).value.length<2)
	{
		alert("Invalid length for the first name");
		document.getElementById(type+'.firstName.'+index).focus();
		return false;
	}
	if(!validateName(document.getElementById(type+'.firstName.'+index).value))
	{
		alert("Please use letters of the alphabet only for first name");
		document.getElementById(type+'.firstName.'+index).focus();
		return false;
	}

	if(document.getElementById(type+'.lastName.'+index).value=="")
	{
		alert("Please enter "+type+" passenger last name");
		document.getElementById(type+'.lastName.'+index).focus();
		return false;
	}
	
	if(document.getElementById(type+'.lastName.'+index).value.length<2)
	{
		alert("Invalid length for the last name");
		document.getElementById(type+'.lastName.'+index).focus();
		return false;
	}
	if(!validateName(document.getElementById(type+'.lastName.'+index).value))
	{
		alert("Please use letters of the alphabet only for last name");
		document.getElementById(type+'.lastName.'+index).focus();
		return false;
	}

	try
	{
		if(document.getElementById(type+'.dobDay.'+index)!=null && document.getElementById(type+'.dobDay.'+index).value=="")
		{
			alert("Please select "+type+" passenger DOB day");
			document.getElementById(type+'.dobDay.'+index).focus();
			return false;
		}

		if(document.getElementById(type+'.dobMonth.'+index)!=null && document.getElementById(type+'.dobMonth.'+index).value=="")
		{
			alert("Please select "+type+" passenger DOB month");
			document.getElementById(type+'.dobMonth.'+index).focus();
			return false;
		}

		if(document.getElementById(type+'.dobYear.'+index)!=null && document.getElementById(type+'.dobYear.'+index).value=="")
		{
			alert("Please select "+type+" passenger DOB year");
			document.getElementById(type+'.dobYear.'+index).focus();
			return false;
		}
	}
	catch(e)
	{}
	try
	{
		if(document.getElementById(type+'.foidval.'+index)!=null && document.getElementById(type+'.foidval.'+index).value!="")
		{
			if(document.getElementById(type+'.foidexpirydate.'+index)!=null && document.getElementById(type+'.foidexpirydate.'+index).value=="")
			{
				alert("Please enter "+type+" passengers ID expiry date");
				document.getElementById(type+'.foidexpirydate.'+index).focus();
				return false;
			}
			if(requireIDIssueDate==true)
			{
				if(document.getElementById(type+'.foidissuedate.'+index)!=null && document.getElementById(type+'.foidissuedate.'+index).value=="")
				{
					alert("Please enter "+type+" passengers ID issue date");
					document.getElementById(type+'.foidissuedate.'+index).focus();
					return false;
				}
			}
		}
	}
	catch(e)
	{}
}

function validateName(name)
{
	name = stripSpaces(name);
	 var validchars ="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- ";
	 var temp;
	 for (var i=0;i<name.length;i++)
	 {
		temp=name.substring(i,i+1);
		if (validchars.indexOf(temp)==-1)
		{
			return false;
		}
	 }
	 return true;
}

function validateDuplicateName()
{
	var fname1 = "";
	var lname1 = "";
	var fname2 = "";
	var lname2 = "";
	for(formCnt = 0;formCnt<document.forms.length;formCnt++)
	{
		for(i=0; i<document.forms[formCnt].elements.length; i++)
		{
			if(document.forms[formCnt].elements[i].value != "" && document.forms[formCnt].elements[i].name.indexOf("optionals")==-1)
			{
				if(document.forms[formCnt].elements[i].name.indexOf("firstName")>-1)
				{
					fname1= document.forms[formCnt].elements[i].value;
				}
				if(document.forms[formCnt].elements[i].name.indexOf("lastName")>-1)
				{
					lname1 = document.forms[formCnt].elements[i].value;
				}
				if(fname1 != "" && lname1 != "")
				{
					for(j=i+1; i<document.forms[formCnt].elements.length; j++)
					{
						if(document.forms[formCnt].elements[j].name.indexOf("firstName")>-1)
						{
							fname2= document.forms[formCnt].elements[j].value;
						}
						if(document.forms[formCnt].elements[j].name.indexOf("lastName")>-1)
						{
							lname2 = document.forms[formCnt].elements[j].value;
						}
						if(fname2 != "" && lname2 != "")
						{
							if(fname2 == fname1 && lname2 == lname1)
							{
								alert("Two passengers cannot have the same name, please check");
								return false;
							}
							lname2 = "";
							fname2 = "";	
						}
										
					}
				}
				lname1 = "";
				fname1 = "";				
			}			
		}
	}	
	return true;
}

function validatePassengerAge(startDate)
{
	start_day = startDate.toString().substring(6);
	start_mon = startDate.toString().substring(4,6);
	start_year = startDate.toString().substring(0,4);
	
	 
	elm = document.getElementById('lead.dobDay.0');
	var dob_day = elm.options[elm.selectedIndex].text;
	elm = document.getElementById('lead.dobMonth.0');
	var _dob_mon;
	dob_mon = parseInt(elm.options[elm.selectedIndex].value,10) + 1;
	if(dob_mon.toString().length==1)
	{
		dob_mon = "0"+dob_mon;
	}
	elm = document.getElementById('lead.dobYear.0');
	var dob_year = elm.options[elm.selectedIndex].text;
	
	var age = calcAge(dob_day,dob_mon,dob_year,start_day,start_mon,start_year);
	if(parseInt(age)==-1)
	{
		alert("Invalid Date.\nPlease check the date.");
		return false;
	}
	if(parseInt(age)<18 && parseInt(age)>-1)
	{
		alert("Lead Passenger must be 18 years or above at commencement of travel");
		return false;
	}
	return true;
}


/*************************PAYMENT PAGE SCRIPTS**********************/

function paymentValidate(home_country, pax)
{
	if(document.getElementById('nameOnCard').value=="")
	{
		alert("Please enter the name as shown on the card");
		document.getElementById('nameOnCard').focus();
		return false;
	}
	
	if(document.getElementById('cardType').value=="")
	{
		alert("Please select a card type");
		document.getElementById('cardType').focus();
		return false;
	}

	if(document.getElementById('cardNumber').value=="")
	{
		alert("Please enter credit card number");
		document.getElementById('cardNumber').focus();
		return false;
	}
	
	if(document.getElementById('securityNumber').value=="")
	{
		alert("Please enter security number");
		document.getElementById('securityNumber').focus();
		return false;
	}
	
	if(document.getElementById('cardType').value=="american_express")
	{
		if(document.getElementById('securityNumber').value.length!=4)
		{
			alert("The security number must be 4 digits, please check");
			document.getElementById('securityNumber').focus();
			return false;
		}
	}
	else
	{
		if(document.getElementById('securityNumber').value.length!=3)
		{
			alert("The security number must be 3 digits, please check");
			document.getElementById('securityNumber').focus();
			return false;
		}	
	}
	
	if(isNaN(document.getElementById('securityNumber').value))
	{
		alert("Please check the credit card security number");
		document.getElementById('securityNumber').focus();
		return false;
	}
	
	if(document.getElementById('expiry_month').value=="")
	{
		alert("Please select a credit card expiry month");
		document.getElementById('expiry_month').focus();
		return false;
	}
	
	if(document.getElementById('expiry_year').value=="")
	{
		alert("Please select a credit card expiry year");
		document.getElementById('expiry_year').focus();
		return false;
	}
	
	 if(!checkCardExpiry())
	 {
	 	return false;
	 }
	 
	if(document.getElementById('cardType').value == "maestro" || document.getElementById('cardType').value == "solo")
	{
		/*
		if(document.getElementById('switch_start_month').value=="")
		{
			alert("Please select a credit card start month");
			document.getElementById('switch_start_month').focus();
			return false;
		}
		
		if(document.getElementById('switch_start_year').value=="")
		{
			alert("Please select a credit card start year");
			document.getElementById('switch_start_year').focus();
			return false;
		}
		*/
		if(document.getElementById('issueNumber').value=="" &&
		   (document.getElementById('switch_start_month').value=="" 
		    ||document.getElementById('switch_start_year').value=="")
		   )
		{
			alert("Please specify card issue number or Start Date");
			document.getElementById('issueNumber').focus();
			return false;
		}
		
		if(isNaN(document.getElementById('issueNumber').value))
		{
			alert("Please check the credit card issue number");
			document.getElementById('issueNumber').focus();
			return false;
		}
	}
	
//	if(document.getElementById('billingTitle').value=="")
//	{
//		alert("Please select a billing title");
//		document.getElementById('billingTitle').focus();
//		return false;
//	}
	
//	if(document.getElementById('firstName').value=="")
//	{
//		alert("Please enter billing first name");
//		document.getElementById('firstName').focus();
//		return false;
//	}

	
//	if(document.getElementById('lastName').value=="")
//	{
//		alert("Please enter billing last name");
//		document.getElementById('lastName').focus();
//		return false;
//	}
	
	if(document.getElementById('street').value=="")
	{
		alert("Please enter House/Street");
		document.getElementById('street').focus();
		return false;
	}
	
	if(document.getElementById('town').value=="")
	{
		alert("Please enter Town/City");
		document.getElementById('town').focus();
		return false;
	}
	
	if(document.getElementById('county').style.display!="none" && document.getElementById('county').value=="")
	{

		alert("Please enter County");
		document.getElementById('county').focus();
		return false;
	}
	
	if(document.getElementById('country').value=="")
	{
		alert("Please select a Country");
		document.getElementById('country').focus();
		return false;
	}
	
	if(document.getElementById('country').value.length!=2)
	{
		alert("Please select a Country");
		document.getElementById('country').focus();
		return false;
	}
		
	if(document.getElementById('postcode').value=="")
	{
		alert("Please enter postcode");
		document.getElementById('postcode').focus();
		return false;
	}
	
	if(document.getElementById('country').value.length==2 && document.getElementById('country').value!=home_country)
	{
		if(document.getElementById('dstreet').value=="")
		{
			alert("Please enter delivery address House/Street");
			document.getElementById('dstreet').focus();
			return false;
		}
		
		if(document.getElementById('dtown').value=="")
		{
			alert("Please enter delivery address Town/City");
			document.getElementById('dtown').focus();
			return false;
		}
		
		if(document.getElementById('dcounty').style.display!="none" && document.getElementById('dcounty').value=="")
		{
			alert("Please enter delivery address County");
			document.getElementById('dcounty').focus();
			return false;
		}		
		
			
		if(document.getElementById('dpostcode').value=="")
		{
			alert("Please enter delivery address postcode");
			document.getElementById('dpostcode').focus();
			return false;
		}
	}
	
	if(document.getElementById('email').value=="")
	{
		alert("Please enter contact email");
		document.getElementById('email').focus();
		return false;
	}
	
	if(document.getElementById('confirmEmail').value=="")
	{
		alert("Please confirm contact email");
		document.getElementById('confirmEmail').focus();
		return false;
	}

	if (!emailcheck(document.getElementById('email').value))
	{
		document.getElementById('email').focus();
		return false;
	}
	
	if (!emailcheck(document.getElementById('confirmEmail').value))
	{
		document.getElementById('confirmEmail').focus();
		return false;
	}
	
	if(document.getElementById('confirmEmail').value != document.getElementById('email').value)
	{
		alert("Emails entered doesn't match. Please recheck");
		document.getElementById('email').focus();
		return false;
	}
	
	if(document.getElementById('dayPhone').value=="")
	{
		alert("Please enter day time phone");
		document.getElementById('dayPhone').focus();
		return false;
	}
	
	if(document.getElementById('eveningPhone').value=="")
	{
		alert("Please enter evening phone");
		document.getElementById('eveningPhone').focus();
		return false;
	}
	
	if(!document.getElementById('termsAndConditions').checked)
	{
		alert("Please accept the terms and conditions");
		document.getElementById('termsAndConditions').focus();
		return false;
	}
	
	if(document.getElementById('cardNamePaxNameCheckYes') && document.getElementById('cardNamePaxNameCheckNo'))
	{
		if(document.getElementById('cardNamePaxNameCheckNo').checked)
		{
			alert("Unfortunately, online bookings are only possible " +
					"if the person paying is travelling as part of the booking." +
					" Please contact one of Travel Consultants on 0844 800 8661 to proceed");
			document.getElementById('cardNamePaxNameCheckYes').focus();
			return false;
		}
		else if(document.getElementById('cardNamePaxNameCheckYes').checked)
		{
			var nameoncard = document.getElementById('nameOnCard').value;
			var names = nameoncard.split(' ');
			var surname = names[names.length -1];
			var matchfound = false;
			for ( var i = 0; i < pax.length; i++)
			{
				if(pax[i].trim() == surname.trim())
				{
					matchfound = true;
					break;
				}
			}
			if(!matchfound)
			{
				alert("Unfortunately, online bookings are only possible " +
						"if the person paying is travelling as part of the booking." +
						" Please contact one of Travel Consultants on 0844 800 8661 to proceed");
				document.getElementById('nameOnCard').focus();
				return false;
			}
			
		}
		else
		{
			alert("Please confirm the cardholder is part of the travelling party");
			document.getElementById('cardNamePaxNameCheckYes').focus();
			return false;
		}
	}
	ConfirmButtonHideShow("submit");
}

function ConfirmButtonHideShow(action)
{
	if(action == "submit")
	{
		showLyr('confirmImgDiv');		
		hideLyr('confirmButDiv');
	}
	else
	{
		showLyr('confirmButDiv');		
		hideLyr('confirmImgDiv');
	}
}


function SwitchHideShow(e)
{
	var obj = eventTrigger (e);	
	if (obj.value == "switch" || obj.value == "maestro" || obj.value == "solo") 
	{
		showLyr('SwitchInfo');
		//alert("show");
	}
	else 
	{
		hideLyr('SwitchInfo');
		//alert("hide");
	}
	if(document.getElementById("redrawItem"))
	{
		var container = document.getElementById("redrawItem");
		container.className = container.className;
	}
	
}

function DeliveryHideShow(e,country)
{
	var obj = eventTrigger (e);	
	if (obj.value != country && obj.value!="" && obj.value.length==2) 
	{
		showLyr('deliveryAddressDiv');
		//alert("show");
	}
	else 
	{
		hideLyr('deliveryAddressDiv');
		//alert("hide");
	}
	
}

function SwitchHideShowOnload()
{
	var val = document.getElementById('cardType').value;
	if (val == "maestro" || val == "solo") 
	{
		showLyr('SwitchInfo');
		//alert("show");
	}
	else 
	{
		hideLyr('SwitchInfo');
		//alert("hide");
	}
	
}

function DeliveryHideShowOnload(selected, home)
{
	if (selected != home) 
	{
		showLyr('deliveryAddressDiv');
		//alert("show");
	}
	else 
	{
		hideLyr('deliveryAddressDiv');
		//alert("hide");
	}
	
}

function hideShowOnload()
{
	SwitchHideShowOnload();
	ConfirmButtonHideShow("load");
}

function updatePriceBasedOnSelectedCard(e,actualPrice)
{
	SwitchHideShow(e);
	var obj = eventTrigger (e);	
	if(obj.options[obj.selectedIndex].text.indexOf("+")>-1 &&
		obj.options[obj.selectedIndex].text.indexOf("(")>-1 &&
		obj.options[obj.selectedIndex].text.indexOf(")")>-1 &&
		obj.options[obj.selectedIndex].text.indexOf("GBP")>-1)
	{
		var pos1 = obj.options[obj.selectedIndex].text.indexOf("(");
		var pos2 = obj.options[obj.selectedIndex].text.indexOf(")");
		var extracharge = obj.options[obj.selectedIndex].text.substring(pos1+1,pos2);
   	 	var finalPrice = parseFloat(actualPrice) + parseFloat(extracharge);
		changePrice("totalPrice",outputMoney(finalPrice));
	}
	else
	{
		changePrice("totalPrice",actualPrice);
	}
}

function addCreditcardSurcharge(e,actualPrice,surcharge)
{
	SwitchHideShow(e);
	var obj = eventTrigger (e);	

	if(obj.options[obj.selectedIndex].text == "Visa Credit"
		|| obj.options[obj.selectedIndex].text == "Mastercard"
		|| obj.options[obj.selectedIndex].text == "American Express"
		|| obj.options[obj.selectedIndex].text == "Diners Club")
	{
		var finalPrice = parseFloat(actualPrice) + parseFloat(actualPrice)*surcharge/100;
		changePrice("totalPrice",outputMoney(finalPrice));
		changePrice("summaryTotalPrice",outputMoney(finalPrice));
		changePrice("amountDue",outputMoney(finalPrice));
		
		showLyr('creditCardFeeContainer');
		showLyr('creditCardFeeBotContainer');
		changePrice("creditCardFee",outputMoney(parseFloat(actualPrice)*surcharge/100));
		changePrice("creditCardBotFee",outputMoney(parseFloat(actualPrice)*surcharge/100));
	}
	else
	{
		changePrice("totalPrice",outputMoney(parseFloat(actualPrice)));
		changePrice("summaryTotalPrice",outputMoney(parseFloat(actualPrice)));
		changePrice("creditCardFee"," ");
		changePrice("creditCardBotFee"," ");
		hideLyr('creditCardFeeContainer');
		hideLyr('creditCardFeeBotContainer');
	}
}

function addCreditcardSurchargeOnload(actualPrice,surcharge)
{
	var obj = document.getElementById('cardType');	

	if(obj.options[obj.selectedIndex].text == "Visa Credit"
		|| obj.options[obj.selectedIndex].text == "Mastercard"
		|| obj.options[obj.selectedIndex].text == "American Express"
		|| obj.options[obj.selectedIndex].text == "Diners Club")
	{
		var finalPrice = parseFloat(actualPrice) + parseFloat(actualPrice)*surcharge/100;
		changePrice("totalPrice",outputMoney(finalPrice));
		changePrice("summaryTotalPrice",outputMoney(finalPrice));
		showLyr('creditCardFeeContainer');
		showLyr('creditCardFeeBotContainer');
		changePrice("creditCardFee",outputMoney(parseFloat(actualPrice)*surcharge/100));
		changePrice("creditCardBotFee",outputMoney(parseFloat(actualPrice)*surcharge/100));
	}
	else
	{
		changePrice("totalPrice",outputMoney(parseFloat(actualPrice)));
		changePrice("summaryTotalPrice",outputMoney(parseFloat(actualPrice)));
		changePrice("creditCardFee"," ");
		changePrice("creditCardBotFee"," ");
		hideLyr('creditCardFeeContainer');
		hideLyr('creditCardFeeBotContainer');
	}
}

function updatePriceBasedOnSelectedCardOnload(actualPrice)
{
	var obj = document.getElementById('cardType');
	if(obj.options[obj.selectedIndex].text.indexOf("+")>-1 &&
		obj.options[obj.selectedIndex].text.indexOf("(")>-1 &&
		obj.options[obj.selectedIndex].text.indexOf(")")>-1 &&
		obj.options[obj.selectedIndex].text.indexOf("GBP")>-1)
	{
		var pos1 = obj.options[obj.selectedIndex].text.indexOf("(");
		var pos2 = obj.options[obj.selectedIndex].text.indexOf(")");
		var extracharge = obj.options[obj.selectedIndex].text.substring(pos1+1,pos2);
   	 	var finalPrice = parseFloat(actualPrice) + parseFloat(extracharge);
		changePrice("totalPrice",outputMoney(finalPrice));
	}
	else
	{
		changePrice("totalPrice",actualPrice);
	}
}

function checkCardExpiry()
{
	var today 	= new Date();
	var expdate = new Date();
	
	var exp_year = document.getElementById('expiry_year').value;
	var exp_mon = document.getElementById('expiry_month').value;
	
	expdate.setMonth(getMonthIndex(exp_mon));
	expdate.setYear(parseInt(exp_year,10));
	
	//alert(expdate);
	//alert(today);
	
	if(expdate < today)
	{
		alert("Please check the credit card expiry date");
		return false;
	}
	return true;
}

function changePrice(label,price)
{
  var node;
  if (document.getElementById)
  { 
	 var node = document.getElementById(label);
	 if (node)
   	 {
   	 	var nextNode = node.firstChild;
   	 	
   	 	
   	 	var currency;
   	 	for(i=0;i<nextNode.data.length;i++)
   	 	{
   	 		if(!isNaN(nextNode.data.charAt(i)))
   	 		{
   	 			currency = nextNode.data.substring(0,i);
   	 			break;
   	 		}			
   	 	}
		if(nextNode)
	   	{  
		 	nextNode.data = currency+price;
	   	}
   	 	
   	 }
	 else
	  { 
		alert("You need to create a span tag with  " +			  
			  "the id of " + label + ".");
		return;
	  }
  }
  else
	{ 
	  alert(" document.getElementByID failed. " +
		"You need to use a newer browser."); 
	  return;
	}  
 }
 
function outputMoney(number) 
{
   //fix for  Bug 10346 starts 
	var dollars = Math.floor(number-0);
    var cents =   Math.round( ( (number) - Math.floor(number) ) *100);
    if(cents>99)
    {
    	dollars++;
    	cents=0;
    	number = dollars;
    }
    //ends 
	return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0);
}

function outputDollars(number) {
    if (number.length <= 3)
        return (number == '' ? '0' : number);
    else {
        var mod = number.length%3;
        var output = (mod == 0 ? '' : (number.substring(0,mod)));
        for (i=0 ; i < Math.floor(number.length/3) ; i++) {
            if ((mod ==0) && (i ==0))
                output+= number.substring(mod+3*i,mod+3*i+3);
            else
                output+= ',' + number.substring(mod+3*i,mod+3*i+3);
        }
        return (output);
    }
}

function outputCents(amount) {
    amount = Math.round( ( (amount) - Math.floor(amount) ) *100);
    return (amount < 10 ? '.0' + amount : '.' + amount);
}

function getLabelText(label)
{
  var node;
  if (document.getElementById)
  { 
	 var node = document.getElementById(label);
	 if (node)
   	 {
   	 	var nextNode = node.firstChild;
		if(nextNode)
	   	{  
		 	return nextNode.data;
	   	}
   	 	
   	 }
	 else
	  { 
		alert("You need to create a span tag with  " +			  
			  "the id of " + label + ".");
		return;
	  }
  }
  else
	{ 
	  alert(" document.getElementByID failed. " +
		"You need to use a newer browser."); 
	  return;
	}  
 }