//Use English popups by default - check whether the translated versions exist first
if(typeof popup_3 == "undefined") {
var popup_3 = "You have selected a greater number of infants than adults. If you wish to book a greater number of infants than adults please contact our reservation center for possible arrangements.";
var popup_4 = "bmibaby now allows upto 15 passengers\nper online booking . If you wish to book a party larger\nthan this, please call bmibaby reservations on 0905 8 28 28 28.";
var popup_5 = "You are allowed a maximum of 8 children per adult. If you wish to book a greater number of children please contact our reservation center for possible arrangements.";
var popup_6 = "Please select the city you will be departing from.";
var popup_7 = "Please choose your destination";
var popup_8 = "The return date you have selected is before your outward journey. Please modify your travel dates to correct this error.";
var popup_9 = "Your return date is\nthe same as your departure date.\n\nIs such a short trip intentional?";
var popup_10 = "No return date or flight? Okay. Should we switch your settings to 'One Way', then?";
var popup_11 = "The route you have selected is operated by our partner bmi.\nThe number of passengers you have chosen excedes the maximum number of passengers for online bookings.\nTo be taken to the bmi group enquiry form press ok.";
var popup_12 = "Your return date is\nthe same as your departure date.\n\nIs such a short trip intentional?";
}
function Route(outbound,destination,start,end,days,bmiRoute)
{
	var obj;
	var _outbound;
	var _destination;
	var _start;
	var _end;
	var _days=new Array();
	var _bmiRoute;
	var _today=new Date();
	obj=new constructor(outbound,destination,start,end,days);
	return obj;

	function constructor(outbound,destination,start,end,days)
	{
		var today=new Date();
		_outbound=outbound;
		_destination=destination;
		_start=start?start:_getFullDateString(today);
		_end=end?end:_getEndOfSeason(today);
		_bmiRoute=bmiRoute?bmiRoute:'0';
		this.outbound=_outbound;
		this.destination=_destination;
		this.start=_start;
		this.end=_end;
		this.bmiRoute=_bmiRoute;
		if(days){
			_days=days.split(",");
			this.days=_days
		}
	}

function _getEndOfSeason(dte)
{
	var month=dte.getMonth()+1;
	if((month>=3)&&(month<=10)){dte.setDate(31);dte.setMonth(10)}else{dte.setDate(1);dte.setDate(3)}return _getFullDateString(dte)}function _getFullDateString(dte){var year=dte.getFullYear();var month=dte.getMonth()+1;if(month<10){month="0"+month}return year+""+month+""+_getDateString(dte)}function _getDateString(dte){var date=dte.getDate();if(date<10){date="0"+date}return date}}

function Promotion(code,name,mode,startDate,endDate,travelPeriodStart,travelPeriodEnd){
var _code;var _name;var _mode;var _startDate;var _endDate;var _travelPeriodStart;var _travelPeriodEnd;var _routes=new Array();var _exclusionPeriods;var _today;var _priority;
_mode=mode?mode:0;
obj=new constructor(code,name,mode,startDate,endDate,travelPeriodStart,travelPeriodEnd);
return obj;
function constructor(code,name,mode,startDate,endDate,travelPeriodStart,travelPeriodEnd)
	{
	var todayDte=new Date();
	_today=_getFullDateString(todayDte);
	_code=code;
	_name=name;
	_mode=mode;
	_priority = 1;
	_startDate=startDate;
	_endDate=endDate;
	_travelPeriodStart=travelPeriodStart;
	_travelPeriodEnd=travelPeriodEnd;
	_exclusionPeriods=new Array();
	this.code=_code;
	this.name=_name;
	this.priority = _priority;
	this.mode=function(){return _mode};
	this.startDate=_startDate;
	this.endDate=_endDate;
	this.travelPeriodStart=_travelPeriodStart;
	this.travelPeriodEnd=_travelPeriodEnd;
	this.addExclusion=addExclusion;
	this.removeExclusion=removeExclusion;
	this.addRoute=addRoute;
	this.active=active;
	this.setPriority=setPriority;
	this.validate=validate}
	function setPriority(newPriority){this.priority = newPriority;};
	function addExclusion(start,end){_exclusionPeriods.push(start+","+end);}
	function removeExclusion(start,end){_exclusionPeriods.pop(start+","+end)}
	function addRoute(route,mode){
		if(mode){
			route.mode=mode;
		}
		return _routes.push(route)
	}
	
	function active(){
		return _inTimePeriod(_today,_today,_startDate,_endDate)
	}
	function dualActive(origDate,retDate)
	{
		return _inTimePeriodDual(_today,_today,_startDate,_endDate,_travelPeriodStart,_travelPeriodEnd,origDate,retDate)	
	}
	
	function validate(from,to,oDate,rDate){
		if(dualActive(oDate,rDate)){
			if(_routes.length==0){
				if(_inTimePeriod(oDate,rDate,_travelPeriodStart,_travelPeriodEnd)){
					if(!_inExclusionPeriod(oDate, rDate)) return _mode;
				}
				else{
					// fix added 06092006 to resolve one way not displaying the mode issue: when a one way route the rDate is 00000000
					if(rDate==00000000){
						if(_inTimePeriod(oDate,oDate,_travelPeriodStart,_travelPeriodEnd)){
							if(!_inExclusionPeriod(oDate, rDate)) return _mode;
						}
						else{
							return 0;
						}
					}
					else{
						return 0;
					}
					//end of fix
				}
			}
			else{
				for(var routesIdx=0;routesIdx<_routes.length;routesIdx++)
				{
					if((_routes[routesIdx].outbound==from)&&(_routes[routesIdx].destination==to)){
						if(_inTimePeriod(oDate,rDate,_routes[routesIdx].start,_routes[routesIdx].end)&&_operatesOnDay(_routes[routesIdx],oDate)&&_operatesOnDay(_routes[routesIdx],rDate)){
							if(_routes[routesIdx].mode){
								return _routes[routesIdx].mode
							}
							else{
								if(!_inExclusionPeriod(oDate, rDate)) return _mode;
							}
						}
						// fix added 06062007 to resolve one way not displaying the mode issue: when a one way route the rDate is 00000000
						else{
								if(rDate==00000000){
									if(_inTimePeriod(oDate,oDate,_travelPeriodStart,_travelPeriodEnd)){
										if(!_inExclusionPeriod(oDate, rDate)) return _mode;
									}
									else{
										return 0;
									}
								}
								else{
									return 0;
								}
						}
						//end of fix
					}
				}
			}
		}
		return 0
	}
	
	
	// Returns true if either of the dates fall within any exclusion period.
	function _inExclusionPeriod(start,end)
	{
	    for(var i=0; i < _exclusionPeriods.length; i++)
	    {
	        var exStart = _exclusionPeriods[i].substring(0,8);
	        var exEnd = _exclusionPeriods[i].substring(9,17);
	        
	        if((start>=exStart)&&(start<=exEnd)){
			    //alert("exS "+exStart+"exE"+exEnd+"\nperiods "+_exclusionPeriods+"\n"+"check "+start+" "+end+"\n"+"exclusion matched");
			    return true;
		    }
		    if((end>=exStart)&&(end<=exEnd)){
			    //alert("exS "+exStart+"exE"+exEnd+"\nperiods "+_exclusionPeriods+"\n"+"check "+start+" "+end+"\n"+"exclusion matched");
			    return true;
		    }
	    }
	    //alert("exS "+exStart+"exE"+exEnd+"\nperiods "+_exclusionPeriods+"\n"+"check "+start+" "+end+"\n"+"no exclusion matched");
	    return false;
	}
	
	
	function _inTimePeriod(start,end,periodStart,periodEnd){
		var startCheck=false;
		var endCheck=false;
		if((start>=periodStart)&&(start<=periodEnd)){
			startCheck=true
		}
		if((end>=periodStart)&&(end<=periodEnd)){
			endCheck=true
		}
		if(startCheck&&endCheck){return true}
		return false
	}
	
	function _inTimePeriodDual(start,end,periodStart,periodEnd,travelStart,TravelEnd,origDate,retDate){
		var startCheck=false;
		var endCheck=false;
		var travelStartCheck=false;
		var travelEndCheck=false;
				
		if((start>=periodStart)&&(start<=periodEnd)){
			startCheck=true
		}
		if((end>=periodStart)&&(end<=periodEnd)){
			endCheck=true
		}
		if((origDate>=travelStart)&&(origDate<=TravelEnd)){
			travelStartCheck=true
		}
		if (retDate != "00000000")
		{
			if((retDate>=travelStart)&&(retDate<=TravelEnd)){
				travelEndCheck=true
			}		
		}else{
				travelEndCheck=true		
		}
				
		if(startCheck&&endCheck&&travelStartCheck&&travelEndCheck){return true}
		return false
	}
	function _operatesOnDay(route,dte){
		if(route.days){
			var dteObj=new Date(dte.substring(0,4),(+dte.substring(4,6))-1,dte.substring(6,8));
			var day=dteObj.getDay();
			var days=eval(route.days);
			for(var dayCount=0;dayCount<days.length;dayCount++){
				if((days[dayCount]==day)||((days[dayCount]==7)&&(day==0))){return true}
			}
		}
		else{return true}
		return false
	}
	function _getFullDateString(dte){
		var year=dte.getFullYear();
		var month=dte.getMonth()+1;
		if(month<10){
			month="0"+month
		}
		return year+""+month+""+_getDateString(dte)
	}
	function _getDateString(dte){
		var date=dte.getDate();
		if(date<10){date="0"+date}
		return date
	}
}
function bmiTinyRoutesConfig(){

// NEW AIRPORTS ARRAY
var _fromAirports=new Array(21);
var ABZ=['ABZ','Aberdeen',['AMS','20040406','19000101','1'],['BHX','20040406','19000101','1'],['BRU','20040406','19000101','1'],['EBJ','20040406','19000101','1'],['GRQ','20040406','19000101','1'],['LHR','20040406','19000101','1'],['MAN','20040406','19000101','1'],['NWI','20040406','19000101','1']];_fromAirports[0]=ABZ;
var AMS=['AMS','Amsterdam',['ABZ','20040406','19000101','1'],['LHR','20040406','19000101','1']];_fromAirports[1]=AMS;
var BHD=['BHD','Belfast (City)',['LHR','20040406','19000101','1']];_fromAirports[2]=BHD;
var BHX=['BHX','Birmingham',['ABZ','20040406','19000101','1']];_fromAirports[3]=BHX;
var BRU=['BRU','Brussels',['ABZ','20040406','19000101','1'],['EMA','20040406','19000101','1'],['EDI','20040406','19000101','1'],['LBA','20040406','19000101','1'],['LHR','20040406','19000101','1']];_fromAirports[4]=BRU;
var CPH=['CPH','Copenhagen',['EDI','20040406','19000101','1'],['GLA','20040406','19000101','1'],['LBA','20040406','19000101','1']];_fromAirports[5]=CPH;
var DUB=['DUB','Dublin',['LHR','20040406','19000101','1']];_fromAirports[6]=DUB;
var EMA=['EMA','East Midlands',['BRU','20040406','19000101','1']];_fromAirports[7]=EMA;
var EDI=['EDI','Edinburgh',['BRU','20040406','19000101','1'],['CPH','20040406','19000101','1'],['LBA','20040406','19000101','1'],['LHR','20040406','19000101','1'],['MAN','20040406','19000101','1'],['ZRH','20040406','19000101','1']];_fromAirports[8]=EDI;
var EBJ=['EBJ','Esbjerg',['ABZ','20040406','19000101','1']];_fromAirports[9]=EBJ;
var GLA=['GLA','Glasgow',['CPH','20040406','19000101','1'],['LBA','20040406','19000101','1'],['LHR','20040406','19000101','1'],['MAN','20040406','19000101','1']];_fromAirports[10]=GLA;
var GRQ=['GRQ','Groningen',['ABZ','20040406','19000101','1']];_fromAirports[11]=GRQ;
var HAJ=['HAJ','Hanover',['LHR','20040406','19000101','1']];_fromAirports[12]=HAJ;
var LBA=['LBA','Leeds Bradford',['BRU','20040406','19000101','1'],['CPH','20040406','19000101','1'],['EDI','20040406','19000101','1'],['GLA','20040406','19000101','1']];_fromAirports[13]=LBA;
var LHR=['LHR','London Heathrow',['ABZ','20040406','19000101','1'],['AMS','20040406','19000101','1'],['BHD','20040406','19000101','1'],['BRU','20040406','19000101','1'],['DUB','20040406','19000101','1'],['EDI','20040406','19000101','1'],['GLA','20040406','19000101','1'],['HAJ','20040406','19000101','1'],['LYS','20050804','19000101','1'],['MAN','20040406','19000101','1'],['PMI','20040406','19000101','1'],['VCE','20040406','19000101','1']];_fromAirports[14]=LHR;
var LYS=['LYS','Lyon',['LHR','20050804','19000101','1'],['MAN','20050808','19000101','1']];_fromAirports[15]=LYS;
var MAN=['MAN','Manchester',['ABZ','20040406','19000101','1'],['EDI','20040406','19000101','1'],['GLA','20040406','19000101','1'],['LHR','20040406','19000101','1'],['LYS','20050808','19000101','1']];_fromAirports[16]=MAN;
var NWI=['NWI','Norwich',['ABZ','20040406','19000101','1']];_fromAirports[17]=NWI;
var PMI=['PMI','Palma',['LHR','20040406','19000101','1']];_fromAirports[18]=PMI;
var VCE=['VCE','Venice',['LHR','20040406','19000101','1']];_fromAirports[19]=VCE;
var ZRH=['ZRH','Zurich',['EDI','20040406','19000101','1']];_fromAirports[20]=ZRH;
var _missingAirportNames=new Array(0);
var _missingAirportCodes=new Array(0);
obj=new constructor();
return obj;
function constructor()
{
	this.MissingAirportNames=_missingAirportNames;this.MissingAirportCodes=_missingAirportCodes;this.GetAllAirports=GetAllAirportCodes;this.MergeAirportArrays=MergeAirportArrays;this.GetbmiTinyRoutes=GetbmiTinyRoutes;this.GetDestinationAirports=GetDestinationAirports;this.AddbmiDestinations=AddbmiDestinations;this.UpdatebmiDestinations=UpdatebmiDestinations;this.IsTinyRoute=CheckForTinyRoute;this.UpdateAgeLabels=UpdateLabels;this.checkPaxNumbers=CheckPaxNumbers;this.populateReviewDropdowns=populateReviewDropdowns;this.ReOrderByAirportName=ReOrderByAirportName
}
	function ReOrderByAirportName(airportCodeArray){var airports=new Array();
	for(var u=0;u<airportCodeArray.length-1;u++)
		{
			var strAirportCode=airportCodeArray[u];
			var strAirportName=window["s"+strAirportCode];
			airports[u]=new Array(strAirportName,strAirportCode)}airports.sort();
			var airportCodes=new Array();
			for(var u=0;u<airports.length;u++){airportCodes[u]=airports[u][1]}airportCodes.push("0");
			return airportCodes
		}
		function populateReviewDropdowns(outBoundDropDown,arriveDropDown,direction)
		{
			var label;var preValue;var aRef;var sDest;var dropdown;
			if(direction=="depart")
			{
				preValue="a";
				label="from";
				aRef=Dests;
				sDest="XXX";
				dropdown=outBoundDropDown
			}
			else{
				preValue="";
				label="to";
				dropdown=arriveDropDown;
				sDest=outBoundDropDown.value;
				if((sDest=="from")||(sDest==""))
				{
					aRef=Dests
				}
				else
				{
					aRef=eval(""+sDest)}}dropdown.options.length=0;
					dropdown.options[0]=new Option(label);
					dropdown.value="XXX";
					for(var i=0;i<(aRef.length-1);i++)
					{
						var newOption=new Option(eval("s"+aRef[i])+" ("+aRef[i]+")");
						dropdown.options[i+1]=newOption;dropdown.options[i+1].value=aRef[i];
						if(sDest==aRef[i])
						{
						dropdown.options[i+1].selected=true
						}
					}
				}
				
				function CheckPaxNumbers(adult,child)
				{
					var blnResult=true;
					var intAdult=Number(adult.options[adult.selectedIndex].value);
					var intChild=Number(child.options[child.selectedIndex].value);
					if(intAdult+intChild>9)
					{
						var msgBoxGroup=confirm(popup_11);
						if(msgBoxGroup==true)
						{
							var url="http://www.flybmi.com/bmi/en-gb/planandbook/grouptravel.aspx?ppl="+(intAdult+intChild);
							window.open(url)
						}
						blnResult=false
					}
					return blnResult
				}
				function UpdateLabels(bmiRoute)
				{
					if(bmiRoute==true)
					{
						spnAdults.innerHTML="12 +";
						spnChildren.innerHTML="2-11 years";
						spnInfants.innerHTML="0-23 months"
					}
					else
					{
						spnAdults.innerHTML="14 +";
						spnChildren.innerHTML="2-13 years";
						spnInfants.innerHTML="1-23 months"
					}
				}
				function CheckForTinyRoute(Departure,Arrival)
				{
					var depart=Right(Departure.value,3);
					var arrive=Arrival.value;
					var blnResult=false;
					for(var r=0;r<_fromAirports.length;r++)
					{
						if(_fromAirports[r][0]==depart)
						{
							for(var w=2;w<=(_fromAirports[r].length-1);w++)
							{
								if(_fromAirports[r][0]==depart&&_fromAirports[r][w][0]==arrive)
								{
									blnResult=true
								}
							}
						}
					}
					return blnResult
				}
				function Right(str,n)
				{
					if(n<=0)
					{
						return ""
					}
					else if(n>String(str).length)
					{
						return str
					}
					else
					{
						var iLen=String(str).length;
						return String(str).substring(iLen,iLen-n)
					}
				}
				function GetAllAirportCodes()
				{
					var arrayAirportCodes=new Array;
					for(var i=0;i<_fromAirports.length;i++)
					{
						arrayAirportCodes.unshift(_fromAirports[i][0])
					}
					arrayAirportCodes.sort();
					return arrayAirportCodes
				}
				function MergeAirportArrays(bmibabyAirports)
				{
					var needToAddAirport=1;
					for(var i=0;i<_fromAirports.length;i++)
					{
						for(var j=0;j<bmibabyAirports.length;j++)
						{
							if(_fromAirports[i][0]==bmibabyAirports[j]&&needToAddAirport==1)
							{
								needToAddAirport=0
							}
						}
						if(needToAddAirport!=0)
						{
							bmibabyAirports.unshift(_fromAirports[i][0]);
							_missingAirportNames.push(_fromAirports[i][1]);
							_missingAirportCodes.push(_fromAirports[i][0])
						}
						needToAddAirport=1
					}
					bmibabyAirports.sort();
					bmibabyAirports.splice(0,1);
					bmibabyAirports.push("0");
					return bmibabyAirports
				}
				function GetbmiTinyRoutes(bmibmibabyRoutes)
				{
					var bmiRoutes=bmibmibabyRoutes;
					for(var k=0;k<_fromAirports.length;k++)
					{
						for(var t=2;t<=(_fromAirports[k].length-1);t++)
						{
							var dteEndDate=new Date();
							dteEndDate.setDate(dteEndDate.getDate()+361);
							var dteEndYear=dteEndDate.getFullYear();
							var dteEndMonth=dteEndDate.getMonth()+1;
							var dteEndDay=dteEndDate.getDate();
							if(dteEndMonth<10)
								{
									dteEndMonth="0"+dteEndMonth};
									if(dteEndDay<10)
									{
										dteEndDay="0"+dteEndDay
									};
									dteEndDate=dteEndYear+""+dteEndMonth+""+dteEndDay;
									var toDate;
									if(_fromAirports[k][t][2]=="19000101")
									{
										toDate=dteEndDate
									}
									else
									{
										toDate=_fromAirports[k][t][2]}bmiRoutes.unshift(window["r"+_fromAirports[k][0]+_fromAirports[k][t][0]]=new Route(_fromAirports[k][0],_fromAirports[k][t][0],_fromAirports[k][t][1],toDate,"",_fromAirports[k][t][3]))
									}
								}
							return bmiRoutes
						}
						function GetDestinationAirports(DepartingAirportCode)
						{
							var DestinationAirportCodes=new Array();
							for(var s=0;s<_fromAirports.length;s++)
							{
								if(_fromAirports[s][0]==DepartingAirportCode)
								{
									for(var q=2;q<=(_fromAirports[s].length-1);q++)
									{
										DestinationAirportCodes.unshift(_fromAirports[s][q][0])
									}
									DestinationAirportCodes.sort()
								}
							}
							return DestinationAirportCodes
						}
						function AddbmiDestinations(bmibabyArray,AirportCode)
							{
							for(var i=0;i<_fromAirports.length;i++)
							{
								if(_fromAirports[i][0]==AirportCode)
								{
									var bmiArrayToAdd=GetDestinationAirports(_fromAirports[i][0]);
									var needToAddAirport=1;
										for(var j=0;j<bmiArrayToAdd.length;j++)
										{
											for(var y=0;y<bmibabyArray.length;y++)
											{
												if(bmiArrayToAdd[y]==bmibabyArray[j]&&needToAddAirport==1)
												{
													needToAddAirport=0
												}
											}
											if(needToAddAirport!=0)
												{
													bmibabyArray.unshift(bmiArrayToAdd[y-1])
												}
												needToAddAirport=1
											}
										}
									}
									bmibabyArray.sort();
									if(bmibabyArray[0]=="0")
										{
											bmibabyArray.splice(0,1);
											bmibabyArray.push("0")
										}
										return bmibabyArray
									}
									function UpdatebmiDestinations(bmibabyArray,AirportCode)
									{
										var toBeAdded=GetDestinationAirports(AirportCode);
										var intAddAirport=1;
										for(var j=0;j<toBeAdded.length;j++)
											{
												for(var f=0;f<bmibabyArray.length;f++)
												{
													if(bmibabyArray[f]==toBeAdded[j])
													{
														intAddAirport=0
													}
												}
												if(intAddAirport==1)
												{
													bmibabyArray.unshift(toBeAdded[j])
												}
											}
										bmibabyArray.sort();
										if(bmibabyArray[0]=="0")
										{
											bmibabyArray.splice(0,1);
											bmibabyArray.push("0")
										}
										return bmibabyArray
									}
								}
								function Partner(name,url,message,routes)
								{
									var obj;
									var _name;
									var _url;
									var _message;
									var _routes;
									obj=new constructor(name,url,message,routes);
									return obj;
									function constructor(name,url,message,routes)
									{
										_name=name;
										_url=url;
										_message=message?message:"This route is operated by "+_name+". You will now be redirected to our partners site to complete the booking process.";
										_routes=routes;
										this.name=_name;
										this.url=_url;
										this.message=_message;
										this.routes=_routes;
										this.routeStart=routeStart;
										this.routeEnd=routeEnd;
										this.operatesRoute=operatesRoute;
										this.operatesRouteOn=operatesRouteOn;
										this.currentlyOperatingRoute=currentlyOperatingRoute
									}
									function routeStart(from,to)
									{
										_routeDate(from,to,"start")
									}
									function routeEnd(from,to)
									{
										_routeDate(from,to,"end")
									}
									function operatesRoute(from,to)
									{
										if(_hasRoute(from,to)>-1)
										{
											return true
										}
										return false
									}
									function currentlyOperatingRoute(from,to)
									{
										var today=_getDateString(new Date());
										return operatesRouteOn(from,to,today)
									}
									function operatesRouteOn(from,to,date)
									{
										var pos=_hasRoute(from,to);
										if(pos>-1)
										{
											if((_routes[pos].start<=date)&&(_routes[pos].end>=date))
											{
												return true
											}
										}return false
									}
									function _routeDate(from,to,requiredDate)
									{
										var pos=_hasRoute(from,to);
										if(pos>-1)
										{
											return eval("_route[i]."+requiredDate)
										}
										return null
									}
									function _hasRoute(from,to)
									{
										for(var i=0,length=_routes.length;i<length;i++)
										{
											if((_routes[i].outbound==from)&&(_routes[i].destination==to))
											{
												return i
											}
										}
										return-1
									}
									function _getDateString(dte)
									{
										var year=dte.getFullYear();
										var month=dte.getMonth()+1;
										if(month<10)
										{
											month="0"+month
										}
										var date=dte.getDate();
										if(date<10)
										{
											date="0"+date
										}
										return year+""+month+""+date
									}
								}
								function BookingMagnetSettings()
								{
									var obj;
									obj=new constructor();
									return obj;
									function constructor()
									{
									var dte=new Date();
									this.travelType="r";
									this.skylightsUrl="/bmibaby/skylights/cgi-bin/skylights.cgi";
									this.outbound;
									this.destination;
									function BookingPeriod()
									{
										this.start=dte;
										this.end=new Date(dte.getFullYear(),dte.getMonth()+6)
									};
									this.bookingPeriod=new BookingPeriod();
									this.outboundDate=dte;
									this.returnDate=new Date(dte.getFullYear(),dte.getMonth(),dte.getDate()+1);
									function Pax()
									{
										this.adults="01";
										this.children="00";
										this.infants="00"
									};
									this.pax=new Pax();
									this.promotionCode=0
								}
							}
							function BookingMagnet(bookingMagnetSettings)
							{
								var formRef=document.SBform;var obj;
								var bookingMagnetSettings;var departureDateRangeFrom;
								var departureDateRangeTo;var returnDateRangeFrom;
								var returnDateRangeTo;var returnDate="00";
								var returnMonthYear="000000";var departureDay="00";
								var promoCode;var promotions=new Array();
								var partners=new Array();var todaysDate=new Date();
								var currentPartnerIdx=-1;var partnerFlightSector="";var month_names=new Array(12);
								// get the month names for each language
								if (document.SBform.language.value == "PL")
								{month_names[0]="Sty";month_names[1]="Lut";month_names[2]="Mar";month_names[3]="Kwi";month_names[4]="Maj";month_names[5]="Cze";month_names[6]="Lip";month_names[7]="Sie";month_names[8]="Wrz";month_names[9]="Paz";month_names[10]="List";month_names[11]="Gru";}
								else if (document.SBform.language.value == "CA")
								{month_names[0]="Gen";month_names[1]="Febr";month_names[2]="Mar\347";month_names[3]="Abr";month_names[4]="Maig";month_names[5]="Juny";month_names[6]="Jul";month_names[7]="Ag";month_names[8]="Set";month_names[9]="Oct";month_names[10]="Nov";month_names[11]="Des";}
								else if (document.SBform.language.value == "ES")
								{month_names[0]="Ene";month_names[1]="Feb";month_names[2]="Mar";month_names[3]="Abr";month_names[4]="May";month_names[5]="Jun";month_names[6]="Jul";month_names[7]="Ago";month_names[8]="Sep";month_names[9]="Oct";month_names[10]="Nov";month_names[11]="Dic";}
								else if (document.SBform.language.value == "FR")
								{month_names[0]="Janv";month_names[1]="F\351v";month_names[2]="Mars";month_names[3]="Avr";month_names[4]="Mai";month_names[5]="Juin";month_names[6]="Juil";month_names[7]="Ao\373t";month_names[8]="Sept";month_names[9]="Oct";month_names[10]="Nov";month_names[11]="D\351c";}
								else
								{month_names[0]="Jan";month_names[1]="Feb";month_names[2]="Mar";month_names[3]="Apr";month_names[4]="May";month_names[5]="Jun";month_names[6]="Jul";month_names[7]="Aug";month_names[8]="Sept";month_names[9]="Oct";month_names[10]="Nov";month_names[11]="Dec";}
								
								obj=new constructor(bookingMagnetSettings);
								return obj;
								function constructor(bookingMagnetSettings)
								{
									var pc=bookingMagnetSettings.promotionCode?bookingMagnetSettings.promotionCode:0;
									setDepartureDateRange(bookingMagnetSettings.bookingPeriod.start,bookingMagnetSettings.bookingPeriod.end);
									setReturnDateRange(bookingMagnetSettings.bookingPeriod.start,bookingMagnetSettings.bookingPeriod.end);
									updateAirportDropdown("o");
									_setBookingMagnetAction(bookingMagnetSettings.skylightsUrl);
									var loaded=_loadUserSettings();
									if(!loaded)
									{
										setTravelType(bookingMagnetSettings.travelType);
										setSelectedOutbound(bookingMagnetSettings.outbound);
										updateAirportDropdown("d");
										setSelectedDestination(bookingMagnetSettings.destination);
										setDepartureDate(bookingMagnetSettings.outboundDate);
										setReturnDate(bookingMagnetSettings.returnDate);
										setAdults(bookingMagnetSettings.pax.adults);
										setChildren(bookingMagnetSettings.pax.children);
										setInfants(bookingMagnetSettings.pax.infants)
									}
									_attachEvents();
									this.getTravelType=getTravelType;
									this.getBmiTravelType=getBmiTravelType;
									this.getSelectedOutbound=getSelectedOutbound;
									this.getSelectedDestination=getSelectedDestination;
									this.getDepartureDate=getDepartureDate;
									this.getReturnDate=getReturnDate;
									this.getAdults=getAdults;
									this.getChildren=getChildren;
									this.getInfants=getInfants;
									this.setTravelType=setTravelType;
									this.setSelectedOutbound=setSelectedOutbound;
									this.setSelectedDestination=setSelectedDestination;
									this.setDepartureDate=setDepartureDate;
									this.setReturnDate=setReturnDate;
									this.setDepartureDateRange=setDepartureDateRange;
									this.setReturnDateRange=setReturnDateRange;
									this.setAdults=setAdults;
									this.setChildren=setChildren;
									this.setInfants=setInfants;
									this.addPartner=addPartner;
									this.addPromotion=addPromotion;
									this.updateAirportDropdown=updateAirportDropdown;
									this.validateBooking=validateBooking;
									this.postBooking=postBooking;
									this.updateTinyRouteDates=updateTinyRouteDates;
									// start for bm fix
									this.saveUserSettings=_saveUserSettings;
									// end for bm fix
								}
								function addPartner(partner)
								{
									return partners.push(partner)
								}
								function updateTinyRouteDates()
								{
									objbmiTinyRoutes.UpdateAgeLabels(objbmiTinyRoutes.IsTinyRoute(formRef.sector1_o,formRef.sector1_d));
									_updateDateDropdown("departure");
									_updateDateDropdown("return")
								}
								function addPromotion(promotion)
								{
									return promotions.push(promotion)
								}
								function updateAirportDropdown(dropdown)
								{
									var toUpdate;var preValue;var label;var sDest;var aRef;							
									if(typeof dropdown != "string")
									{
										dropdown="d"
									}
									if(dropdown=="o")
									{
										toUpdate="sector1_o";
										preValue="a";
										label="from";
										aRef=Dests;
										sDest="XXX"
									}
									else if (dropdown=="d")
									{
										toUpdate = "sector1_d";
										preValue = "";
										label = "to";
										sDest = _getSelectCurrentValue("sector1_o");
										if((sDest=="XXX") || (sDest=="aXXX"))
										{
											aRef = Dests
										}
										else
										{
											aRef=eval("" + sDest)
										}
									}
									else if(dropdown=="drpDepart")
									{
										toUpdate="dropdown";
										preValue="a";
										label="from";
										aRef=Dests;
										sDest="XXX"
									}
									formRef[toUpdate].options.length=0;
									formRef[toUpdate].options[0]=new Option(label);
									formRef[toUpdate].options[0].value=preValue+"XXX";
									for(var i=0;i<(aRef.length-1);i++)
									{
										var newOption=new Option(eval("s"+aRef[i])+" ("+aRef[i]+")");
										formRef[toUpdate].options[i+1]=newOption;
										formRef[toUpdate].options[i+1].value=preValue+aRef[i];
										if(sDest==aRef[i])
										{
											formRef[toUpdate].options[i+1].selected=true
										}
									}
								}
									function setDepartureDateRange(from,to)
									{
										departureDateRangeFrom=from;
										departureDateRangeTo=to;
										_updateDateDropdown("departure")
									}
									function setReturnDateRange(from,to)
									{
										returnDateRangeFrom=from;
										returnDateRangeTo=to;
										_updateDateDropdown("return")
									}
									function validateBooking()
									{
										if(getSelectedOutbound()=="XXX")
										{
											alert(popup_6);
											return false
										}
										if(getSelectedDestination()=="XXX")
										{
											alert(popup_7);
											return false
										}
										if(!_returnDateAfterDeparture)
										{
											alert(popup_8);
											return false
										}
										if(_shortTrip())
										{
											return confirm(popup_9)
										}
										if(!_paxChange())
										{
											return false
										}
										if(objbmiTinyRoutes.IsTinyRoute(formRef.sector1_o,formRef.sector1_d)==true)
										{
											return objbmiTinyRoutes.checkPaxNumbers(formRef.ADULT,formRef.CHILD)
										}
										//Validate the germanwings pax numbers
										if(gwEnable)
										{
											for(var idx=0,length=partners.length;idx<length;idx++)
											{
												if(partners[idx].name=="germanwings.com")
												{
													if(partners[idx].operatesRoute(getSelectedOutbound(),getSelectedDestination()))
													{
														var totalPaxNum = parseInt(formRef.ADULT.options[formRef.ADULT.selectedIndex].value) + parseInt(formRef.CHILD.options[formRef.CHILD.selectedIndex].value);
														if(totalPaxNum>9)
														{
															alert("The route you have selected is operated by our partner Germanwings. There is a limit of 9 passengers per online booking for the selected flight.");
															return false;
														}
													}
												}
											}
										}
									return true
								}
function postBooking(){var valid=validateBooking();
if(valid){_saveUserSettings();
var outboundAP = getSelectedOutbound();
var returnAP = getSelectedDestination();
var outboundDte = getDepartureDate();
var returnDte = getReturnDate();

///////////////////////////////////////////////////////////
// Check if EMA-CDG route

/*
if((outboundAP == 'BHX' && returnAP == 'ABZ') || (outboundAP == 'ABZ' && returnAP == 'BHX')){
    if((outboundDte > 20090328) && (returnDte > 20090328)){
        if(!_operateRoute()){return false}
    }
}else{
*/
	if(!_operateRoute()){return false}
/*
}
*/

var pMode=promotionOn();
formRef.mode.value=pMode;
_prepareSkylights();
// start
// exclusions list & example
//if(outboundDte > 20081025 || returnDte > 20081025)
//{
//	if((outboundAP != 'GVA' && returnAP != 'GVA')	&& (outboundAP != 'ALC' && returnAP != 'ALC') && (outboundAP != 'AGP' && returnAP != 'AGP') && (outboundAP != 'MJV' && returnAP != 'MJV') && (outboundAP != 'FAO' && returnAP != 'FAO') && (outboundAP != 'PMI' && returnAP != 'PMI') && (outboundAP != 'NCE' && returnAP != 'NCE')){ 
//		if (document.SBform.language.value == "PL")
//		{alert('Przed 10 Luty nie ma pocze na trasie East Midlands - Warszawa');}
//		else
//		{
//		alert('The destination that you have selected is currently available for travel until 25th October 2008.\nPlease try a different travel date.');
//		}
//		return false;
//	}
//}

//if(outboundDte > 20090328 || returnDte > 20090328)
//{
	//if((outboundAP != 'AGP' && returnAP != 'AGP')	&& (outboundAP != 'ALC' && returnAP != 'ALC') && (outboundAP != 'FAO' && returnAP != 'FAO') && (outboundAP != 'MJV' && returnAP != 'MJV') && (outboundAP != 'PMI' && returnAP != 'PMI') && (outboundAP != 'BOD' && returnAP != 'BOD') && (outboundAP != 'PGF' && returnAP != 'PGF') && (outboundAP != 'NCE' && returnAP != 'NCE') && (outboundAP != 'FCO' && returnAP != 'FCO') && (outboundAP != 'AMS' && returnAP != 'AMS') && (outboundAP != 'LIS' && returnAP != 'LIS') && (outboundAP != 'LEI' && returnAP != 'LEI') && (outboundAP != 'TLS' && returnAP != 'TLS'))
	//{ 
		//if (document.SBform.language.value == "PL")
		//{alert('Przed 10 Luty nie ma pocze na trasie East Midlands - Warszawa');}
		//else
		//{
		//alert('The destination that you have selected is currently available for travel until 29th March 2009.\nPlease try a different travel date.');
		//}
		//return false;
	//}
//}

// end exclusions list
formRef.submit()}return false}
// PS (May 09): Switched method of check to use validation rather than active to support multiple active promotions
function promotionOn(){
	var mode = 0;
	var modePriority = 50;
	for(var i=0;i<promotions.length;i++){
		var tempMode = promotions[i].validate(getSelectedOutbound(),getSelectedDestination(),
										getDepartureDate(),getReturnDate());
		if (tempMode != 0)
		{
			if (promotions[i].priority < modePriority)
			{
				mode = tempMode;
			}
		}				
	}
	if (mode == 0 && promotions.length > 1)
	{
		mode = crossMode(promotions);
	}
	
	return mode;
}

function crossMode(promotions)
{

	var origInPromoPeriod = "";
	var origPriority = 1;
	var retInPromoPeriod = "";
	var retPriority = 1;
	var chosenMode = 0;	
	for(var i=0;i<promotions.length;i++){
		var tempModeO = promotions[i].validate(getSelectedOutbound(),getSelectedDestination(),getDepartureDate(),00000000);
										
		if (tempModeO != 0)
		{
			origInPromoPeriod = tempModeO;
			origPriority = promotions[i].priority;
		}
	}
	if (getReturnDate() != 00000000)
	{
		for(var i=0;i<promotions.length;i++){
				var tempModeR = promotions[i].validate(getSelectedOutbound(),getSelectedDestination(),getReturnDate(),00000000);
										
				if (tempModeR != 0)
					{
						retInPromoPeriod = tempModeR;
						retPriority = promotions[i].priority;
					}
		}	
	}
	if (origInPromoPeriod != "" && retInPromoPeriod != "" )
	{
		if (origPriority <= retPriority)
		{
			chosenMode = origInPromoPeriod;
		}else{
			chosenMode = retInPromoPeriod;
		}
	}
	return chosenMode;
}

function switchTravelType(){if(confirm(popup_10)){setTravelType("o");return true}else{return false}}
function _operateRoute()
{
	var from=getSelectedOutbound();var to=getSelectedDestination();var depDte=getDepartureDate();var rtnDte=getReturnDate();var operateOutbound=false;var operateReturn=false;
	for(var idx=0,length=partners.length;idx<length;idx++)
	{
		operateOutbound=partners[idx].operatesRouteOn(from,to,depDte);
		if(objbmiTinyRoutes.IsTinyRoute(formRef.sector1_o,formRef.sector1_d))
		{if (formRef.oneWay.checked){operateReturn=1}else{operateReturn=partners[idx].operatesRouteOn(to, from, rtnDte)}}
		//AM: 02/10/2009 - Added following line in for germanwings - was not working for one way routes without this
		else if ((operateOutbound)&&(partners[idx].name=="germanwings.com")&&(formRef.oneWay.checked)){operateReturn=1}
		else{operateReturn=partners[idx].operatesRouteOn(to, from, rtnDte)}
		if(operateOutbound&&operateReturn){currentPartnerIdx=idx;partnerFlightSector="b";_openPartner(idx);currentPartnerIdx=-1;partnerFlightSector="";return false}
		else{if(operateOutbound){currentPartnerIdx=idx;partnerFlightSector="o";_openPartner(idx);var departure=getSelectedOutbound();var destination=getSelectedDestination();setSelectedOutbound(destination);setSelectedDestination(departure);getDepartureDate(getReturnDate());setTravelType("o");_prepareSkylights();currentPartnerIdx=-1;partnerFlightSector="";return true}if(operateReturn){currentPartnerIdx=idx;partnerFlightSector="r";_openPartner(idx);setTravelType("o");_prepareSkylights();currentPartnerIdx=-1;partnerFlightSector="";return true}}
	}
	return true
}
function _openPartner(partnerIdx)
{
		var url=_parseCodeString(partners[partnerIdx].url);
		var strDepartureDate = getPartnerDepartureDate();
		var strReturnDate = getPartnerReturnDate(); 
		var strDestination = getPartnerDestination();
		var dte = getPartnerDepartureDate();
		var strDate = dte.substring(6,8) + " " + month_names[+dte.substring(4,6) - 1] + " " + dte.substring(0,4);
		var outbound = getPartnerOutboundAirport();
		var destination = getPartnerDestinationAirport();
		
		//Restricted tags so they are not called for germanwings
		if (partners[partnerIdx].name=="flybmi.com")
		{
			// Variable used for Inceptor Markers (AM: 12/08/2008 - for LHR and Regional PHD Tags)
			var dcCat = "";

			// Only if LHR route write marker tag
			if (outbound == "LHR" || destination == "LHR")
			{
				dcCat = "lhrvi153";
			}else
			{	
				dcCat = "regio680";
			}

			// Inceptor Markers Start (AM: 14/04/2008 - for LHR and Regional PHD Tags)
			var flybmiaxel = Math.random()+"";
			var flybmia = flybmiaxel * 10000000000000;
			newDCImg = new Image();
			newDCImg.src = "http://ad.uk.doubleclick.net/activity;src=688321;type=flybmi;cat=" + dcCat + ";ord=1;num=" + flybmia + "?";
			// Inceptor Markers End


			// Metrics tag start  (LS:  07/10/2005)
			metricsDirectImage = new Image();
			metricsDirectImage.src = "http://cts.MetricsDirect.com/Conversion.aspx?cpid=952";
			// Metrics end tag}
		}
		var message=_parseCodeString(partners[partnerIdx].message);
		if (strReturnDate.substring(0,4) == '0000')
		{
			message = '<p>The flight to ' + strDestination +' on ' + strDate + ' that you have selected is operated by bmi and will be processed via flybmi.com. [CUSTOMTEXT]</p>';
		}				
		if ((Number(strDepartureDate.substring(4,6)) < 8) && (Number(strDepartureDate.substring(0,4)) < 2006) && (Number(strReturnDate.substring(4,6)) < 8) && (Number(strReturnDate.substring(0,4)) < 2006))
		{
			message = message.replace('[CUSTOMTEXT]','Please note, bmibaby tiny fares are not available on this route until 1st August 2005. If you would like to progress booking the flight under bmi fare rules, and terms and conditions then click the flybmi button.');
		}
		else if ((Number(strDepartureDate.substring(4,6)) < 8) && (Number(strDepartureDate.substring(0,4)) < 2006))
		{
			message = message.replace('[CUSTOMTEXT]','Please note, bmibaby tiny fares are not available for part of your trip until the 1st August 2005. If you would like to progress booking a flight under bmi fare rules, and terms and conditions then please click the flybmi button.');
		}
		else
		{
			message = message.replace('[CUSTOMTEXT]',' ');
		}
		var partnerAction="self.close(); return false;";var babyAction="self.opener.focus(); return false;";var buttons="";var htmlContent="<!DOCTYPE html PUBLIC \x22-//W3C//DTD XHTML 1.0 Strict//EN\x22 \x22http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\x22>"+"<html xmlns=\x22http://www.w3.org/1999/xhtml\x22 lang=\x22en\x22 xml:lang=\x22en\x22><head><title>www.bmibaby.com - the low cost airline with tiny fares</title><style type=\x22text/css\x22>"+"body{margin: 0; font-weight: normal; color: #004696; font-size: 13px; font-family: Arial, Helvetica, Sans-Serif;} "+"div {width: 597px; height: 250px; padding: 25px; background: url('/bmibaby/images/en/generic/gen_message_bkgd.gif') no-repeat;} "+"html>body div {width: 647; height: 200px}"+"#nav {position: absolute; right: 35px; bottom: 35px;} "+"img {border: 0; margin-right: 10px;}"+"</style></head><body><div><span><p>";
		if(partnerFlightSector!="b"){window.location=url;htmlContent=htmlContent+"<img src=\x22/bmibaby/images/en/generic/gen_logo.gif\x22 style=\x22margin-top: -15px; margin-left: -15px;\x22 /></span>"+message}
		else
		{
		//AM: 13/10/2009 Added the following line for germanwings popup
		if(gwEnable){if(partners[partnerIdx].name=="germanwings.com"){var msgGW=confirm("This route is operated by our partner Germanwings. You will now be redirected to our partners site to complete the booking process.");if(msgGW==false){return false;}}}
		window.location=url;htmlContent=htmlContent+"<img src=\x22/bmibaby/images/en/generic/gen_logo.gif\x22 style=\x22margin-top: -15px; margin-left: -15px;\x22 /></span>"+message
		}
		buttons=buttons+"<a href=\x22\x22 target=\x22_blank\x22 onclick=\x22"+partnerAction+"\x22>"+"<img src=\x22/bmibaby/images/en/generic/gen_bmi_button.gif\x22 />"+"</a></span></div></body></html>";var htmlContent=htmlContent+"<span id=\x22nav\x22>"+buttons+"</span>";var left=(screen.width/2)-323;var top=(screen.height/2)-125;
		/*var messageWin;messageWin=window.open("", "message_win", "width=647,height=250,left="+left+",top="+top);messageWin.document.write(htmlContent)*/}
		function getPartnerFlightSector(){if(partnerFlightSector=="o"){return "outward"}else if(partnerFlightSector=="r"){return "return"}else{return ""}}function getPartnerOutbound(){if(partnerFlightSector=="r"){return eval("s"+getSelectedDestination())}else{return eval("s"+getSelectedOutbound())}}function getPartnerOutboundAirport(){if(partnerFlightSector=="r"){return getSelectedDestination()}else{return getSelectedOutbound()}}function getPartnerDestination(){if(partnerFlightSector=="r"){return eval("s"+getSelectedOutbound())}else{return eval("s"+getSelectedDestination())}}function getPartnerDestinationAirport(){if(partnerFlightSector=="r"){return getSelectedOutbound()}else{return getSelectedDestination()}}
		function getPartnerReturnDate(){
			if(partnerFlightSector=="r"){
				return "00000101"
			}else if(partnerFlightSector=="b" && getReturnDate()=="00000000"){
				return "00000101"
			}else{
				return getReturnDate()
			}
		}
		function getPartnerDepartureDate(){
			if(partnerFlightSector=="r"){
				return getReturnDate()
			}else{
				return getDepartureDate()
			}
		}function getPartnerFlightPurchaseInstructions(){if(partnerFlightSector=="r"){return "<span>To complete your booking:</span><br /><ol><li>purchase your outward journey on the bmibaby website by clicking the bmibaby red button.</li>"+"<li>purchase your return journey on the "+partners[currentPartnerIdx].name+" website by clicking the "+partners[currentPartnerIdx].name+" red button.</li></ol>"}else if(partnerFlightSector=="o"){return "<span>To complete your booking:</span><br /><ol><li>purchase your outward journey on the "+partners[currentPartnerIdx].name+" website by clicking the "+partners[currentPartnerIdx].name+" red button.</li>"+"<li>purchase your return journey on the bmibaby website by clicking the bmibaby red button.</li></ol>"}else{return ""}}"<span>To complete your booking:</span><br /><ol><li>purchase your outward journey on the bmibaby website by clicking the bmibaby red button.</li>"+"<li>purchase your return journey on the flybmi website by clicking the flybmi red button.</li></ol>";function getPartnerFlightDate(){var date;if(partnerFlightSector=="r"){date=getReturnDate();return date.substring(6,8)+" "+month_names[+date.substring(4,6)-1]+" "+date.substring(0,4)}else if(partnerFlightSector=="o"){date=getDepartureDate();return date.substring(6,8)+" "+month_names[+date.substring(4,6)-1]+" "+date.substring(0,4)}else{date=getDepartureDate();var dteString=date.substring(6,8)+" "+month_names[+date.substring(4,6)-1]+" "+date.substring(0,4);dteString=dteString+" to ";date=getReturnDate();dteString=dteString+date.substring(6,8)+" "+month_names[+date.substring(4,6)-1]+" "+date.substring(0,4);return dteString}}
		function getBmiTravelType(){
			if(formRef.returnTrip.checked){return "0"}
			if(formRef.oneWay.checked){return "1"}}
		function getTravelType(){
			if(formRef.returnTrip.checked){return "r"}
			if(formRef.oneWay.checked){return "o"}}
		function getSelectedOutbound(){return _getSelectCurrentValue("sector1_o").substring(1,4)}function getSelectedDestination(){return _getSelectCurrentValue("sector1_d")}function getDepartureDate(){return _getDate("1")}function getReturnDate(){return _getDate("2")}function _getDate(sector){var dStr=_getSelectCurrentValue("sector_"+sector+"_m");return ""+dStr.substring(2,6)+""+dStr.substring(0,2)+""+_getSelectCurrentValue("sector_"+sector+"_d")}function getAdults(){return _getSelectCurrentValue("ADULT")}function getChildren(){return _getSelectCurrentValue("CHILD")}function getInfants(){return _getSelectCurrentValue("INFANT")}
		/* GERMANWINGS FUNCTIONS */
		function getGWDeptDate(){var sector = 1;var dStr=_getSelectCurrentValue("sector_"+sector+"_m");return ""+dStr.substring(2,6)+"-"+dStr.substring(0,2)+"-"+_getSelectCurrentValue("sector_"+sector+"_d");}
		function getGWRtnDate(){if (formRef.returnTrip.checked){var sector = 2;var dStr=_getSelectCurrentValue("sector_"+sector+"_m");return ""+dStr.substring(2,6)+"-"+dStr.substring(0,2)+"-"+_getSelectCurrentValue("sector_"+sector+"_d");}else{return "";}}
		/* END GERMANWINGS FUNCTIONS */
		function setTravelType(type)
		{
			if(type=="r")
			{
				formRef.returnTrip.checked=true
			}
			if(type=="o")
			{
				formRef.oneWay.checked=true
			}
			_tripChange()
		}
		
		function setSelectedOutbound(dest){_setSelectCurrentValue("sector1_o","a"+dest);updateAirportDropdown("d")}function setSelectedDestination(dest){_setSelectCurrentValue("sector1_d",dest)}function setDepartureDate(dte){var dteString=_getFullDateString(todaysDate);if(dte>dteString){_setDate(dte,"sector_1_");departureDay=dte.substring(6,8)}else{_setDate(dteString,"sector_1_");departureDay=dteString.substring(6,8)}_repopulateDateDropdown(1);_updateDateDropdown("return")}
		function setReturnDate(dte)
		{
			
				var dteString=_getFullDateString(todaysDate);
				if(dte>=dteString)
				{
					if(dte>=getDepartureDate())
					{
						_setDate(dte,"sector_2_")
					}
					else
					{
						_setDate(getDepartureDate(),"sector_2_")
					}
				}
				else
				{
					_setDate(dteString,"sector_2_")
				}
				_returnMonthYearChange()

		}
		function setAdults(num){_setSelectCurrentValue("ADULT",num);_paxChange()}function setChildren(num){_setSelectCurrentValue("CHILD",num);_paxChange()}function setInfants(num){_setSelectCurrentValue("INFANT",num);_paxChange()}function _getSelectCurrentValue(select){var s=formRef[select];var value=new String(s.options[s.selectedIndex].value);return value}function _setSelectCurrentValue(select,value){for(var i=0,length=formRef[select].length;i<length;i++){if(formRef[select].options[i].value==value){formRef[select].selectedIndex=i;return true}}return false}function _setDate(dte,select){var monthYear=dte.substring(4,6)+dte.substring(0,4);_setSelectCurrentValue(select+"m",monthYear);_setSelectCurrentValue(select+"d",dte.substring(6,8))}
		function _updateDateDropdown(dropDown){
			var rangeFrom,rangeTo,currentMonthYear,toUpdate;
			if(objbmiTinyRoutes.IsTinyRoute(formRef.sector1_o,formRef.sector1_d)==false){
				departureDateRangeFrom=bookingMagnetSettings.bookingPeriod.start;
				departureDateRangeTo=bookingMagnetSettings.bookingPeriod.end;
				returnDateRangeFrom=bookingMagnetSettings.bookingPeriod.start;
				returnDateRangeTo=bookingMagnetSettings.bookingPeriod.end
			}
			if(dropDown=="departure"){
				rangeFrom=departureDateRangeFrom;
				rangeTo=departureDateRangeTo;
				toUpdate="sector_1_m";
			}
			else{
				rangeFrom=returnDateRangeFrom;
				rangeTo=returnDateRangeTo;
				toUpdate="sector_2_m"
			}
			var todayDte=_getFullDateString(todaysDate);
			if(rangeFrom<todayDte){
				rangeFrom=todayDte
			}
			var endDte=rangeTo.substring(0,6);

			if(objbmiTinyRoutes.IsTinyRoute(formRef.sector1_o,formRef.sector1_d)==true){
				var intLastPossbileDate = new Date();
				intLastPossbileDate.setDate(intLastPossbileDate.getDate() + 361);
				var intLastPossibleMonth=Number(intLastPossbileDate.getMonth()+1);
				var intLastPossibleYear=intLastPossbileDate.getFullYear();
				if (Number(intLastPossibleMonth) < 10){
					endDte=intLastPossibleYear+'0'+''+intLastPossibleMonth
				}
				else{
					endDte=intLastPossibleYear+''+intLastPossibleMonth
				}
			}
			var selIdx=formRef[toUpdate].selectedIndex;
			currentMonthYear=formRef[toUpdate].options[selIdx].value;
			var departureMonthYear=getDepartureDate().substring(4,6)+getDepartureDate().substring(0,4);
			if((getTravelType()=="r")&&(currentMonthYear.substring(2,6)<getDepartureDate().substring(0,4))){
				currentMonthYear=departureMonthYear}var itemCounter=0;formRef[toUpdate].options.length=0;
				var yearCounter=+rangeFrom.substring(0,4);
				var monthCounter=+rangeFrom.substring(4,6);
				var currentDte=rangeFrom.substring(0,6);
				if(dropDown=="return"){
					formRef[toUpdate].options[itemCounter]=new Option("--------");
					formRef[toUpdate].options[itemCounter].value="000000";
					itemCounter++;
					var departureDte=getDepartureDate();
					yearCounter=+departureDte.substring(0,4);
					monthCounter=+departureDte.substring(4,6);
					currentDte=departureDte.substring(0,6)
				}
				while(currentDte<=endDte){
					var label=""+month_names[monthCounter-1]+" "+yearCounter;
					var value;
					if(monthCounter<10){
						value="0"+monthCounter+""+yearCounter
					}
					else{
						value=""+monthCounter+""+yearCounter
					}
					var newOption=new Option(label);
					formRef[toUpdate].options[itemCounter]=newOption;formRef[toUpdate].options[itemCounter].value=value;
					if(currentMonthYear==value){
						formRef[toUpdate].options[itemCounter].selected=true
					}
					if(monthCounter==12){
						yearCounter++;
						monthCounter=1
					}
					else{
						monthCounter++
					}
					if(monthCounter<10){
						currentDte=""+yearCounter+"0"+monthCounter
					}
					else if(monthCounter>=10){
						currentDte=""+yearCounter+""+monthCounter
					}
				itemCounter++
				}
			}
			
			function _getFullDateString(dte)
			{
				var year=dte.getFullYear();
				var month=dte.getMonth()+1;
				if(month<10){month="0"+month}
				return year+""+month+""+_getDateString(dte);
			}
			function _getDateString(dte){
				var date=dte.getDate();
				if(date<10){date="0"+date;}
				return date
			}
function _prepareSkylights()
{var paxTypes="";paxTypes=paxTypes+getChildren()+"CHILD";paxTypes=paxTypes+getAdults()+"ADULT";
formRef.pT.value=paxTypes;formRef.m1.value=""+getDepartureDate()+getSelectedOutbound()+getSelectedDestination();
if(getTravelType()=="r"){formRef.m2.value=""+getReturnDate()+getSelectedDestination()+getSelectedOutbound();formRef.nom.value="2"}
else{formRef.m2.value="";formRef.nom.value="1"}formRef.m1DP.value=formRef.sector_1_range.value.substring(0,2);
formRef.m1DO.value=formRef.sector_1_range.value.substring(2,4);formRef.m2DP.value=formRef.sector_2_range.value.substring(0,2);
formRef.m2DO.value=formRef.sector_2_range.value.substring(2,4)}function _loadUserSettings(){var bmString=_getCookie("bm");if(bmString){var bmData=bmString.split("-");setTravelType(bmData[0]);setSelectedOutbound(bmData[1]);updateAirportDropdown("d");setSelectedDestination(bmData[2]);setDepartureDate(bmData[3]);setReturnDate(bmData[4]);setAdults(bmData[5]);setChildren(bmData[6]);setInfants(bmData[7]);_updateDateDropdown("departure");_updateDateDropdown("return");return true}return false}function _saveUserSettings(){var trip=getTravelType();var outbound=getSelectedOutbound();var destination=getSelectedDestination();var departureDte=getDepartureDate();var returnDte=getReturnDate();var pax=getAdults()+"-"+getChildren()+"-"+getInfants();var expires=new Date();expires.setFullYear(expires.getFullYear()+1);var value=trip+"-"+outbound+"-"+destination+"-"+departureDte+"-"+returnDte+"-"+pax;_setCookie("bm",value,expires)}function _attachEvents(){formRef.returnTrip.onclick=_tripChange;formRef.oneWay.onclick=_tripChange;formRef.sector1_o.onchange=updateAirportDropdown;formRef.sector1_d.onchange=updateTinyRouteDates;formRef.sector_1_d.onchange=function(){departureDay=_getSelectCurrentValue("sector_1_d");_outboundDateChange()};formRef.sector_1_d.onfocus=function(){_setSelectCurrentValue("sector_1_d",departureDay)};formRef.sector_1_m.onchange=_outboundMonthYearChange;formRef.sector_2_d.onchange=_returnDateChange;formRef.sector_2_d.onfocus=function(){if(getTravelType()=="r"){_setSelectCurrentValue("sector_2_d",returnDate)}};formRef.sector_2_m.onchange=_returnMonthYearChange;formRef.ADULT.onchange=_paxChange;formRef.CHILD.onchange=_paxChange;formRef.INFANT.onchange=_paxChange;formRef.onsubmit=postBooking}function _tripChange(){if(getTravelType()=="r"){_setSelectCurrentValue("sector_2_m",returnMonthYear);_setSelectCurrentValue("sector_2_d",returnDate)}else{_setSelectCurrentValue("sector_2_m","000000");_setSelectCurrentValue("sector_2_d","00")}}function _storeReturnDate(){var returnDte=getReturnDate();var dte=returnDte.substring(6,8);var monthYear=returnDte.substring(4,6)+returnDte.substring(0,4);if(dte!="00"){returnDate=dte}if(monthYear!="000000"){returnMonthYear=monthYear}}function _repopulateDateDropdown(sector){var itemCounter=0;var val=1;var toUpdate="sector_"+sector+"_d";var currentDte=formRef[toUpdate].options[formRef[toUpdate].options.selectedIndex].value;var monthStr;if(getTravelType()=="r"){monthStr=formRef["sector_"+sector+"_m"].options[formRef["sector_"+sector+"_m"].options.selectedIndex].value}else{monthStr=formRef["sector_1_m"].options[formRef["sector_1_m"].options.selectedIndex].value}var month=+monthStr.substring(0,2);var year=+monthStr.substring(2,6);var noDays=_getNoDaysInMonth(month,year);var bmiTinyRoute=objbmiTinyRoutes.IsTinyRoute(formRef.sector1_o,formRef.sector1_d);if (bmiTinyRoute == true){var DateTo = new Date();DateTo.setDate(DateTo.getDate()+361);var strYear = DateTo.getFullYear();var strMonth = DateTo.getMonth()+1;var strDay = DateTo.getDate();if (strMonth < 10){strMonth = '0'+strMonth}if (strDay < 10){strDay = '0'+strDay}departureDateRangeTo=strYear+''+strMonth+''+strDay;returnDateRangeTo=departureDateRangeTo}var rangeFrom,rangeTo,endDate;if(sector==1){rangeFrom=departureDateRangeFrom.substring(4,6)+departureDateRangeFrom.substring(0,4);rangeTo=departureDateRangeTo.substring(4,6)+departureDateRangeTo.substring(0,4);endDate=+departureDateRangeTo.substring(6,8)}else{rangeFrom=returnDateRangeFrom.substring(4,6)+returnDateRangeFrom.substring(0,4);rangeTo=returnDateRangeTo.substring(4,6)+returnDateRangeTo.substring(0,4);endDate=+returnDateRangeTo.substring(6,8)}if(monthStr==rangeFrom){val=+rangeFrom.substring(0,2)}if(monthStr==rangeTo){noDays=endDate}if((year==todaysDate.getFullYear())&&(month==todaysDate.getMonth()+1)){val=+_getDateString(todaysDate)}if(currentDte>noDays){currentDte=noDays}formRef[toUpdate].options.length=0;if(sector=="2"){var departureDte=getDepartureDate();if((year==departureDte.substring(0,4))&&(month==departureDte.substring(4,6))){val=+departureDte.substring(6,8)}formRef[toUpdate].options[itemCounter]=new Option("--");formRef[toUpdate].options[itemCounter].value="00";if(getTravelType()=="o"){formRef[toUpdate].options[itemCounter].selected=true;currentDte="00"}else{if(currentDte<val){currentDte=val}}itemCounter++}for(;val<=noDays;val++,itemCounter++){var value="";if(val<10){value=value+"0"}value=value+val;formRef[toUpdate].options[itemCounter]=new Option(value);formRef[toUpdate].options[itemCounter].value=value;if(value==currentDte){formRef[toUpdate].options[itemCounter].selected=true}}}function _returnDateAfterDeparture(){if(getDepartureDate()<=getReturnDate()){return true}else{return false}}function _returnDateChange(){_storeReturnDate();var returnDte=getReturnDate();var dte=returnDte.substring(6,8);var monthYear=returnDte.substring(4,6)+returnDte.substring(0,4);if((getTravelType()=="o")&&((dte!="00")||(monthYear!="000000"))){setTravelType("r")}else if((getTravelType()=="r")&&((dte=="00")||(monthYear=="000000"))){setTravelType("o")}}function _returnMonthYearChange(){_returnDateChange();if(_getSelectCurrentValue("sector_2_m")!="000000"){_repopulateDateDropdown("2");_storeReturnDate()}}function _outboundDateChange(){_storeReturnDate();var oDate=getDepartureDate().substring(6,8);var oYearMonth=getDepartureDate().substring(0,4)+getDepartureDate().substring(4,6);var rDate=getReturnDate().substring(6,8);var rYearMonth=getReturnDate().substring(0,4)+getReturnDate().substring(4,6);if(getTravelType()=="r"){if((oDate>=rDate)&&(oYearMonth>=rYearMonth)){setReturnDate(oYearMonth+oDate)}if((oDate>rDate)&&(oYearMonth>=rYearMonth)){setReturnDate(rYearMonth+oDate)}if((oDate<rDate)&&(oYearMonth>=rYearMonth)){setReturnDate(oYearMonth+rDate)}}else{if(oDate>rDate){returnDate=oDate}if(oYearMonth>rYearMonth){returnMonthYear=oYearMonth.substring(4,6)+oYearMonth.substring(0,4)}}_updateDateDropdown("return");_repopulateDateDropdown(2)}function _outboundMonthYearChange(){_repopulateDateDropdown("1");_outboundDateChange()}function _paxChange(){var adults=new Number(_getSelectCurrentValue("ADULT"));var children=new Number(_getSelectCurrentValue("CHILD"));var infants=new Number(_getSelectCurrentValue("INFANT"));if(infants>adults){alert(popup_3);return false}var total=adults+children;if(objbmiTinyRoutes.IsTinyRoute(formRef.sector1_o,formRef.sector1_d) != true){if (total > 15){alert(popup_4);return false}}var requiredAdults = children/8;if (requiredAdults < 1){requiredAdults = 1;}if ( requiredAdults > adults){alert(popup_5);return false;}return true}function _shortTrip(){if(getDepartureDate()==getReturnDate()){return true}return false}function _setBookingMagnetAction(url){formRef.action=url}function _parseCodeString(unprocessedString){var re=/%{2}\w+\(\)(.\w+\((\d\,\d)?\)(\+\d)?)?%{2}/g;var processedString=unprocessedString.replace(re,function(str,n){return eval(str.substring(2,str.length-2))});return processedString}function _getNoDaysInMonth(month,year){if((month==2)&&!(year%4)&&((year%100)||!(year%400))){return 29}else{var monthNums="312831303130313130313031";var pos=(2*month)-2;return monthNums.substring(pos,pos+2)}}function _getCookie(name){var cookies=document.cookie.split("; ");for(var i=0,length=cookies.length;i<length;i++){var c=cookies[i];var pos=c.indexOf("=");var n=c.substring(0,pos);if(n==name){return unescape(c.substring(pos+1))}}return null}function _setCookie(name,value,expires){if(!expires){expires=new Date()}document.cookie=name+"="+escape(value)+"; expires="+expires.toGMTString()+"; path=/"}}
var bm;

// summer 2007 destinations array
var Dests=new Array("AHO","ALC","LEI","AMS","BCN","BIA","BFS","BHX","BOD","CWL","DBV","ORK","EDI","FAO","FCO","GVA","GLA","JER","MAH","MLA","NOC","LDE","LIS","AGP","MAN","MJV","NQY","NCE","EMA","PMI","CDG","PGF","PRG","TLS","VCE",0);
var babyDests = Dests.slice(0);
/* Affiliate switch */
var affiliateSwitch = (location.search.indexOf("affiliate=") > -1) ? true : false;
var objbmiTinyRoutes = new bmiTinyRoutesConfig();

/* GERMANWINGS SWITCH - either 1 or 0 */
if(document.SBform.language.value == "EN")
{
	var gwEnable = 1;
}

if (affiliateSwitch)
{
//Cookie Set
	document.cookie = "bmibabyaffiliate=true;path=/;";
}else{
//Cookie Check
	var results = document.cookie.match ("bmibabyaffiliate");
	if ( results )
	{
		affiliateSwitch = true;
	}
}

if (!affiliateSwitch)
{
	Dests = objbmiTinyRoutes.MergeAirportArrays(Dests);
	if (objbmiTinyRoutes.MissingAirportNames.length != 0){for (var c=0;c<objbmiTinyRoutes.MissingAirportNames.length;c++){window['s'+objbmiTinyRoutes.MissingAirportCodes[c]] = objbmiTinyRoutes.MissingAirportNames[c];}}
}
// summer 2007 names array
var sALC="Alicante";var sAMS="Amsterdam";var sBCN="Barcelona";var sBFS="Belfast (Intl)";var sBHX="Birmingham";var sBOD="Bordeaux";var sCWL="Cardiff";var sORK="Cork";var sEDI="Edinburgh";var sFAO="Faro";var sGVA="Geneva";var sGLA="Glasgow";var sJER="Jersey";var sNOC="Ireland West Knock";var sLIS="Lisbon";var sMAN="Manchester";var sAGP="Malaga";var sNQY="Newquay";var sNCE="Nice";var sEMA="East Midlands";var sPMI="Palma Mallorca";var sCDG="Paris";var sPGF="Perpignan";var sPRG="Prague";var sMJV="Murcia";
// summer 2009 names array
var sTLS="Toulouse";var sLEI="Almeria";var sMAH="Mahon - Menorca";
// One Off Charters
var sFCO="Rome - Fiumicino";
// summer 2010 names array
var sLDE="Lourdes"; var sAHO="Alghero - Sardinia"; var sBIA="Bastia - Corsica"; var sDBV="Dubrovnik"; var sMLA="Malta"; var sVCE="Venice";

//Replace all the name variations for different languages
if (document.SBform.language.value == "PL")
{sEDI="Edynburg";sGVA="Genewa";sLIS="Lizbona";sMAD="Madryt";sMJV="Murcja";sNCE="Nicea";sCDG="Paryz";sPRG="Praga"}
if (document.SBform.language.value == "ES")
{sBOD="Burdeos";sEDI="Edimburgo";sGVA="G\351nova";sLIS="Lisboa";sAGP="M\341laga";sNCE="Niza";sPGF="Perpi\361\341n";sPRG="Praga";sNOC="West Knock (Irlanda)";}
if (document.SBform.language.value == "CA")
{sALC="Alacant";sBOD="Bordeus";sEDI="Edimburg";sGVA="G\350nova";sLIS="Lisboa";sAGP="M\340laga";sMJV="M\372rcia";sNCE="Ni\347a";sPGF="Perpiny\340";sPRG="Praga";sNOC="West Knock (Irlanda)";}
if (document.SBform.language.value == "FR")
{sBCN="Barcelone";sEDI="Edimbourg";sGVA="Gen\350ve";sLIS="Lisbonne";sNOC="Knock - Ireland West";}

if (gwEnable == 0){Dests = objbmiTinyRoutes.ReOrderByAirportName(Dests);}
// summer 2007 launch route arrays 
var aALC=new Array("BHX","CWL","MAN","EMA",0);var aAMS=new Array("BHX","EMA","MAN",0);var aBCN=new Array("EMA","BHX","CWL","MAN",0);var aBFS=new Array("BHX","CWL","MAN","EMA","PRG",0);var aBHX=new Array("ALC","AMS","BCN","BFS","GVA","EDI","NQY","NOC","AGP","NCE","PMI","PRG","FAO","MJV","GLA",0);var aBOD=new Array("MAN",0);var aCWL=new Array("ALC","BCN","BFS","EDI","DUB","GVA","FAO","GLA","JER","MAH","AGP","PMI","MJV",0);var aDUB=new Array("CWL","EDI",0);var aORK=new Array("EMA","MAN",0);var aEDI=new Array("BHX","CWL","DUB","EMA","FCO",0);var aFAO=new Array("CWL","EMA","BHX","MAN",0);var aFCO=new Array("EDI",0);var aGVA=new Array("BHX","EMA","MAN","CWL",0);var aGLA=new Array("EMA","CWL","BHX",0);var aJER=new Array("CWL","MAN","EMA","BHX",0);var aNOC=new Array("BHX","MAN",0);var aAGP=new Array("BHX","CWL","MAN","EMA",0);var aLIS=new Array("BHX","MAN",0);var aMAN=new Array("ALC","AMS","BFS","BOD","FAO","LIS","ORK","GVA","JER","LDE","NOC","AGP","NQY","PGF","PMI","PRG","BCN","TLS",0);var aNCE=new Array("BHX","EMA",0);var aNQY=new Array("BHX","EMA","MAN",0);var aEMA=new Array("AHO","ALC","LEI","AMS","BCN","BFS","BIA","DBV","EDI","FAO","GVA","GLA","JER","MAH","MLA","AGP","NCE","NQY","ORK","PMI","CDG","PRG","VCE",0);var aPMI=new Array("BHX","CWL","MAN","EMA",0);var aCDG=new Array("EMA",0);var aPGF=new Array("MAN",0);var aPRG=new Array("BFS","BHX","MAN","EMA",0);var aMJV=new Array("BHX","CWL",0);
//Summer 2008 launch route arrays
var aTLS=new Array("MAN",0);var aLEI=new Array("EMA",0);var aMAH=new Array("CWL","EMA",0);
//Summer 2010 launch route arrays
aLDE=new Array("MAN",0);var aAHO=new Array("EMA",0);var aBIA=new Array("EMA",0);var aDBV=new Array("EMA",0);var aMLA=new Array("EMA",0);var aVCE=new Array("EMA",0);


if (!affiliateSwitch)
{
var bmiAirportsCodes = objbmiTinyRoutes.GetAllAirports()
		for (var g=0;g<bmiAirportsCodes.length;g++)
		{
			if (window['a'+bmiAirportsCodes[g]])
			{
				window['a'+bmiAirportsCodes[g]] = objbmiTinyRoutes.UpdatebmiDestinations(window['a'+bmiAirportsCodes[g]],bmiAirportsCodes[g]);
			}
			else
			{
				window['a'+bmiAirportsCodes[g]] = new Array('0');
				window['a'+bmiAirportsCodes[g]] = objbmiTinyRoutes.AddbmiDestinations(window['a'+bmiAirportsCodes[g]],bmiAirportsCodes[g]);
			}
		}
		
		if (gwEnable == 0)
		{
			for (var i = 0;i < Dests.length -1;i++)
			{
				window['a'+Dests[i]] = objbmiTinyRoutes.ReOrderByAirportName(eval('a'+Dests[i]));
			}
		}
	}
function addLoadEvent(func){var oldonload = window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}/*addLoadEvent(setup);*//*window.onload=setup;*/function contentPage(){if(window.location.search.indexOf("cf")>-1){if(window.location.search.indexOf("news")>-1){return false;}else{return true;}}else{return false;}}

//function setup(){
	if(document.getElementById&&contentPage())
	{
		document.getElementById("bm").style.background="#86BCE9 url('/bmibaby/images/en/generic/gen_bm_float_bkgd2.gif') no-repeat top left"
	}
	
	var url="http://www.flybmi.com/livetrack/link.aspx?linkid=339&reqtyp=AIR&officeID=EMABD08ZZ&language=GB&market=UK&country=GB&ibeSource=baby"+"&cityfrominput0=%%getPartnerOutboundAirport()%%"+"&citytoinput0=%%getPartnerDestinationAirport()%%"+"&oneway=%%getBmiTravelType()%%"+"&day0=%%getPartnerDepartureDate().substring(6,8)%%"+"&month0=%%getPartnerDepartureDate().substring(4,6)%%"+"&day1=%%getPartnerReturnDate().substring(6,8)%%"+"&month1=%%getPartnerReturnDate().substring(4,6)%%"+"&fb_numpaxADT=%%getAdults()%%"+"&fb_numpaxCHD=%%getChildren()%%"+"&fb_numpaxINF=%%getInfants()%%";var message="<p>The %%getPartnerFlightSector()%% flights between %%getPartnerOutbound()%% and %%getPartnerDestination()%% on %%getPartnerFlightDate()%% are operated by bmi and will be processed via flybmi.com. [CUSTOMTEXT]</p>%%getPartnerFlightPurchaseInstructions()%%";

	var rBHXABZ=new Route("BHX","ABZ","20090329");
	var rABZBHX=new Route("ABZ","BHX","20090329");
	
	var routes=new Array(rBHXABZ,rABZBHX);
	routes = objbmiTinyRoutes.GetbmiTinyRoutes(routes);
	var bmiRegional=new Partner("flybmi.com",url,message,routes);

	//GERMANWINGS PARTNER ADDITION - AM 01/10/2009
	function PartnerConfig()
	{
		this.partnerRoutes=new Array(0);
		this.addRoute = function(deptCode,deptName,arrvCodeArray)
		{
			checkAirportAndAdd(deptCode,deptName);
			for(var i=0;i<(arrvCodeArray.length);i++){this.partnerRoutes.push(new Route(deptCode,arrvCodeArray[i],'20091001','20101030'));window['a'+deptCode] = addRouteToArray(arrvCodeArray[i],window['a'+deptCode]);}
		}
		this.getRoutes = function(){return this.partnerRoutes;};
		function checkAirportAndAdd(airportCode,airportName)
		{
			var needToAddAirport=1;
			for(var j=0;j<Dests.length;j++){if(airportCode==Dests[j]&&needToAddAirport==1){needToAddAirport=0;}}
			if(needToAddAirport!=0){window['a'+airportCode] = new Array('0');window['s'+airportCode] = airportName;Dests.unshift(airportCode);}
		}
		function addRouteToArray(airportCode,routeArray){routeArray.unshift(airportCode);return routeArray;}
	}
	if (gwEnable == 1)
	{
		var objGW = new PartnerConfig();

		//objGW.addRoute('<DeptCode>','<AirportName>',['<ArrvCode1>','<ArrvCode2>']);
		objGW.addRoute('BBU','Bucharest',['STN']);
		objGW.addRoute('BLQ','Bologna',['MAN','STN']);
		objGW.addRoute('CGN','Cologne - Bonn',['EDI','MAN','STN']);
		objGW.addRoute('DRS','Dresden',['EDI','STN']);
		objGW.addRoute('EDI','Edinburgh',['CGN','DRS','LEJ','MUC','SXF']);
		objGW.addRoute('FCO','Rome',['STN']);
		objGW.addRoute('HAM','Hamburg',['MAN','STN']);
		objGW.addRoute('KBP','Kiev',['STN']);
		objGW.addRoute('KLU','Klagenfurt',['STN']);
		objGW.addRoute('KRK','Krakow',['STN']);
		objGW.addRoute('LEJ','Leipzig - Halle',['EDI','STN']);
		objGW.addRoute('MAN','Manchester',['BLQ','CGN','HAM','MUC','SXF','VIE','ZRH']);
		objGW.addRoute('MUC','Munich',['EDI','MAN','STN']);
		objGW.addRoute('NCE','Nice',['STN']);
		objGW.addRoute('PRG','Prague',['STN']);
		objGW.addRoute('RLG','Rostock',['STN']);
		objGW.addRoute('SAW','Istanbul',['STN']);
		objGW.addRoute('SJJ','Sarajevo',['STN']);
		objGW.addRoute('SOF','Sofia',['STN']);
		objGW.addRoute('SPU','Split',['STN']);
		objGW.addRoute('STN','London - Stansted',['BBU','BLQ','CGN','DRS','FCO','HAM','KBP','KLU','KRK','LEJ','MUC','NCE','PRG','RLG','SAW','SJJ','SOF','SPU','STR','SXF','SZG','VIE','WAW','ZAG','ZRH']);
		objGW.addRoute('STR','Stuttgart',['STN']);
		objGW.addRoute('SXF','Berlin Sch\366nefeld',['EDI','MAN','STN']);
		objGW.addRoute('SZG','Salzburg',['STN']);
		objGW.addRoute('VIE','Vienna',['MAN','STN']);
		objGW.addRoute('WAW','Warsaw',['STN']);
		objGW.addRoute('ZAG','Zagreb',['STN']);
		objGW.addRoute('ZRH','Zurich',['MAN','STN']);

		var urlGW = "https://www.germanwings.com/skysales/Deeplink.aspx?o=%%getPartnerOutboundAirport()%%&d=%%getPartnerDestinationAirport()%%&t=%%getTravelType()%%&od=%%getGWDeptDate()%%&rd=%%getGWRtnDate()%%&adt=%%getAdults()%%&chd=%%getChildren()%%&inf=%%getInfants()%%&lng=en-GB";
		var germanwings=new Partner("germanwings.com",urlGW,message,objGW.getRoutes());

		// Re-order the displayed airports
		Dests = objbmiTinyRoutes.ReOrderByAirportName(Dests);
		for (var i = 0;i < Dests.length -1;i++){window['a'+Dests[i]] = objbmiTinyRoutes.ReOrderByAirportName(eval('a'+Dests[i]));}
	}
	//END GERMANWINGS PARTNER ADDITION

	var bmSettings=new BookingMagnetSettings();
	bmSettings.travelType="r";
	bmSettings.destinations=Dests;
	bmSettings.skylightsUrl="http://www.bmibaby.com/bmibaby/skylights/cgi-bin/skylights.cgi";
	bmSettings.outbound="aXXX";
	bmSettings.destination="XXX";
	bmSettings.outboundDate="20061116";
	bmSettings.returnDate="20061117";
	bmSettings.bookingPeriod.start="20060816";
	bmSettings.bookingPeriod.end="20101030"; //Dont forget to change the germanwings end period in function PartnerConfig()
	bmSettings.promotionCode="0";
	bmSettings.pax.adults="01";
	bmSettings.pax.children="00";
	bmSettings.pax.infants="00";
	bm=new BookingMagnet(bmSettings);

		// TEMPLATE
		// Promotion(code,name,mode,startDate,endDate,travelPeriodStart,travelPeriodEnd)

		//CURRENT LINE
		//var fixPromo2 = new Promotion("prov", "up to 45% off", "PROV", "20090506", "20090521", "20090601","20090630");
		var fixPromo = new Promotion("proy", "up to 40% off", "PROY", "20091118", "20091125", "20091201","20100630");
		
		fixPromo.addExclusion("20091218","20100106");
		fixPromo.addExclusion("20100212","20100222");
		fixPromo.addExclusion("20100325","20100418");
		fixPromo.addExclusion("20100521","20100613");
		
		// TEMPLATE
		//  Route("deptAirport","destAirport","travelStartDate","travelEndDate",false);

		//var BHXAGPRoute = new Route("BHX","AGP","20090620","20091216",false);
		var BHXALCRoute = new Route("BHX","ALC","20091201","20100630",false);
		var BHXAMSRoute = new Route("BHX","AMS","20091201","20100630",false);
		var BHXBCNRoute = new Route("BHX","BCN","20091201","20100630",false);
		var BHXBFSRoute = new Route("BHX","BFS","20091201","20100630",false);
		var BHXEDIRoute = new Route("BHX","EDI","20091201","20100630",false);
		var BHXFAORoute = new Route("BHX","FAO","20091201","20100630",false);
		var BHXGVARoute = new Route("BHX","GVA","20091201","20100630",false);
		var BHXGLARoute = new Route("BHX","GLA","20091201","20100630",false);
		var BHXNOCRoute = new Route("BHX","NOC","20091201","20100630",false);
		var BHXAGPRoute = new Route("BHX","AGP","20091201","20100630",false);
		var BHXMJVRoute = new Route("BHX","MJV","20091201","20100630",false);
		var BHXPMIRoute = new Route("BHX","PMI","20091201","20100630",false);
		var BHXPRGRoute = new Route("BHX","PRG","20091201","20100630",false);

		var CWLALCRoute = new Route("CWL","ALC","20091201","20100630",false);
		var CWLBCNRoute = new Route("CWL","BCN","20091201","20100630",false);
		var CWLBFSRoute = new Route("CWL","BFS","20091201","20100630",false);
		var CWLEDIRoute = new Route("CWL","EDI","20091201","20100630",false);
		var CWLFAORoute = new Route("CWL","FAO","20091201","20100630",false);
		var CWLGVARoute = new Route("CWL","GVA","20091201","20100630",false);
		var CWLJERRoute = new Route("CWL","JER","20091201","20100630",false);
		var CWLMAHRoute = new Route("CWL","MAH","20091201","20100630",false);
		var CWLAGPRoute = new Route("CWL","AGP","20091201","20100630",false);
		var CWLMJVRoute = new Route("CWL","MJV","20091201","20100630",false);
		var CWLPMIRoute = new Route("CWL","PMI","20091201","20100630",false);

		var EMAAHORoute = new Route("EMA","AHO","20091201","20100630",false);
		var EMAALCRoute = new Route("EMA","ALC","20091201","20100630",false);
		var EMALEIRoute = new Route("EMA","LEI","20091201","20100630",false);
		var EMAAMSRoute = new Route("EMA","AMS","20091201","20100630",false);
		var EMABCNRoute = new Route("EMA","BCN","20091201","20100630",false);
		var EMABIARoute = new Route("EMA","BIA","20091201","20100630",false);
		var EMABFSRoute = new Route("EMA","BFS","20091201","20100630",false);
		var EMAORKRoute = new Route("EMA","ORK","20091201","20100630",false);
		var EMADBVRoute = new Route("EMA","DBV","20091201","20100630",false);
		var EMAEDIRoute = new Route("EMA","EDI","20091201","20100630",false);
		var EMAFAORoute = new Route("EMA","FAO","20091201","20100630",false);
		var EMAGVARoute = new Route("EMA","GVA","20091201","20100630",false);
		var EMAGLARoute = new Route("EMA","GLA","20091201","20100630",false);
		var EMAJERRoute = new Route("EMA","JER","20091201","20100630",false);
		var EMAMAHRoute = new Route("EMA","MAH","20091201","20100630",false);
		var EMAAGPRoute = new Route("EMA","AGP","20091201","20100630",false);
		var EMAMLARoute = new Route("EMA","MLA","20091201","20100630",false);
		var EMANQYRoute = new Route("EMA","NQY","20091201","20100630",false);
		var EMANCERoute = new Route("EMA","NCE","20091201","20100630",false);
		var EMAPMIRoute = new Route("EMA","PMI","20091201","20100630",false);
		var EMACDGRoute = new Route("EMA","CDG","20091201","20100630",false);
		var EMAPRGRoute = new Route("EMA","PRG","20091201","20100630",false);
		var EMAVCERoute = new Route("EMA","VCE","20091201","20100630",false);

		var MANAMSRoute = new Route("MAN","AMS","20091201","20100630",false);
		var MANBCNRoute = new Route("MAN","BCN","20091201","20100630",false);
		var MANBFSRoute = new Route("MAN","BFS","20091201","20100630",false);
		var MANBODRoute = new Route("MAN","BOD","20091201","20100630",false);
		var MANORKRoute = new Route("MAN","ORK","20091201","20100630",false);
		var MANFAORoute = new Route("MAN","FAO","20091201","20100630",false);
		var MANGVARoute = new Route("MAN","GVA","20091201","20100630",false);
		var MANNOCRoute = new Route("MAN","NOC","20091201","20100630",false);
		var MANJERRoute = new Route("MAN","JER","20091201","20100630",false);
		var MANLISRoute = new Route("MAN","LIS","20091201","20100630",false);
		var MANNQYRoute = new Route("MAN","NQY","20091201","20100630",false);
		var MANPMIRoute = new Route("MAN","PMI","20091201","20100630",false);
		var MANPGFRoute = new Route("MAN","PGF","20091201","20100630",false);
		var MANPRGRoute = new Route("MAN","PRG","20091201","20100630",false);
		var MANTLSRoute = new Route("MAN","TLS","20091201","20100630",false);

		var BFSBHXRoute = new Route("BFS","BHX","20091201","20100630",false);
		var BFSCWLRoute = new Route("BFS","CWL","20091201","20100630",false);
		var BFSEMARoute = new Route("BFS","EMA","20091201","20100630",false);
		var BFSMANRoute = new Route("BFS","MAN","20091201","20100630",false);
		var BFSPRGRoute = new Route("BFS","PRG","20091201","20100630",false);

		var EDIBHXRoute = new Route("EDI","BHX","20091201","20100630",false);
		var EDICWLRoute = new Route("EDI","CWL","20091201","20100630",false);
		var EDIEMARoute = new Route("EDI","EMA","20091201","20100630",false);

		var GLABHXRoute = new Route("GLA","BHX","20091201","20100630",false);
		var GLAEMARoute = new Route("GLA","EMA","20091201","20100630",false);
		
		//Fix promo
		//fixPromo.addRoute(BHXAGPRoute);
		fixPromo.addRoute(BHXALCRoute);
		fixPromo.addRoute(BHXAMSRoute);
		fixPromo.addRoute(BHXBCNRoute);
		fixPromo.addRoute(BHXBFSRoute);
		fixPromo.addRoute(BHXEDIRoute);
		fixPromo.addRoute(BHXFAORoute);
		fixPromo.addRoute(BHXGVARoute);
		fixPromo.addRoute(BHXGLARoute);
		fixPromo.addRoute(BHXNOCRoute);
		fixPromo.addRoute(BHXAGPRoute);
		fixPromo.addRoute(BHXMJVRoute);
		fixPromo.addRoute(BHXPMIRoute);
		fixPromo.addRoute(BHXPRGRoute);

		fixPromo.addRoute(CWLALCRoute);
		fixPromo.addRoute(CWLBCNRoute);
		fixPromo.addRoute(CWLBFSRoute);
		fixPromo.addRoute(CWLEDIRoute);
		fixPromo.addRoute(CWLFAORoute);
		fixPromo.addRoute(CWLGVARoute);
		fixPromo.addRoute(CWLJERRoute);
		fixPromo.addRoute(CWLMAHRoute);
		fixPromo.addRoute(CWLAGPRoute);
		fixPromo.addRoute(CWLMJVRoute);
		fixPromo.addRoute(CWLPMIRoute);

		fixPromo.addRoute(EMAAHORoute);
		fixPromo.addRoute(EMAALCRoute);
		fixPromo.addRoute(EMALEIRoute);
		fixPromo.addRoute(EMAAMSRoute);
		fixPromo.addRoute(EMABCNRoute);
		fixPromo.addRoute(EMABIARoute);
		fixPromo.addRoute(EMABFSRoute);
		fixPromo.addRoute(EMAORKRoute);
		fixPromo.addRoute(EMADBVRoute);
		fixPromo.addRoute(EMAEDIRoute);
		fixPromo.addRoute(EMAFAORoute);
		fixPromo.addRoute(EMAGVARoute);
		fixPromo.addRoute(EMAGLARoute);
		fixPromo.addRoute(EMAJERRoute);
		fixPromo.addRoute(EMAMAHRoute);
		fixPromo.addRoute(EMAAGPRoute);
		fixPromo.addRoute(EMAMLARoute);
		fixPromo.addRoute(EMANQYRoute);
		fixPromo.addRoute(EMANCERoute);
		fixPromo.addRoute(EMAPMIRoute);
		fixPromo.addRoute(EMACDGRoute);
		fixPromo.addRoute(EMAPRGRoute);
		fixPromo.addRoute(EMAVCERoute);

		fixPromo.addRoute(MANAMSRoute);
		fixPromo.addRoute(MANBCNRoute);
		fixPromo.addRoute(MANBFSRoute);
		fixPromo.addRoute(MANBODRoute);
		fixPromo.addRoute(MANORKRoute);
		fixPromo.addRoute(MANFAORoute);
		fixPromo.addRoute(MANGVARoute);
		fixPromo.addRoute(MANNOCRoute);
		fixPromo.addRoute(MANJERRoute);
		fixPromo.addRoute(MANLISRoute);
		fixPromo.addRoute(MANNQYRoute);
		fixPromo.addRoute(MANPMIRoute);
		fixPromo.addRoute(MANPGFRoute);
		fixPromo.addRoute(MANPRGRoute);
		fixPromo.addRoute(MANTLSRoute);

		fixPromo.addRoute(BFSBHXRoute);
		fixPromo.addRoute(BFSCWLRoute);
		fixPromo.addRoute(BFSEMARoute);
		fixPromo.addRoute(BFSMANRoute);
		fixPromo.addRoute(BFSPRGRoute);

		fixPromo.addRoute(EDIBHXRoute);
		fixPromo.addRoute(EDICWLRoute);
		fixPromo.addRoute(EDIEMARoute);

		fixPromo.addRoute(GLABHXRoute);
		fixPromo.addRoute(GLAEMARoute);
		
		//Add promotion
		bm.addPromotion(fixPromo);
		//bm.addPromotion(fixPromo2);
	
	if (!affiliateSwitch)
	{
		bm.addPartner(bmiRegional);
		if (gwEnable == 1){bm.addPartner(germanwings);};
	}


	

//}