//////////////////////////////////////////////////////////
//														 /
//	FormSupport Package 						   V1.0	 /
//														 /
//	Author: George Berdal								 /
//	Copyright APH, 2008									 /
//														 /
//	NOTE: Do not copy this script to your host. 		 /
//														 /
//////////////////////////////////////////////////////////

function getLocations(airport){

		var Airports 	= new Object();
		var Ports 		= new Object();
		
				
			//////////////////////////////////////////////
			//////// AIRPORTS /////////
			
			Airports["ABZ"] 	= "Aberdeen"; 
			Airports["BFS"] 	= "Belfast Int'l";
			Airports["BHX"] 	= "Birmingham";
			//Airports["BLK"] 	= "Blackpool"; 
			Airports["BRS"] 	= "Bristol";
			Airports["CWL"] 	= "Cardiff";
			//Airports["COV"] 	= "Coventry";
			Airports["DSA"] 	= "Doncaster";
			Airports["DOV"]	    = "Dover";			
			Airports["MME"] 	= "Durham Tees Valley";
			Airports["EMA"] 	= "East-Midlands"; 
			Airports["EDI"] 	= "Edinburgh";
			Airports["EXT"] 	= "Exeter";
			//Ports["FOL"] = "Folkestone";
			Airports["LGW"] 	= "Gatwick";
			Airports["GLA"] 	= "Glasgow";
			Airports["LHR"] 	= "Heathrow";
			Airports["INV"] 	= "Inverness";
			Airports["LBA"] 	= "Leeds-Bradford";
			Airports["LCY"] 	= "London City";
			Airports["LPL"] 	= "Liverpool";
			Airports["LTN"] 	= "Luton";
			Airports["MAN"] 	= "Manchester";
			Airports["NCL"] 	= "Newcastle";
			//Airports["NWI"] 	= "Norwich";
			Airports["PIK"] 	= "Prestwick";
			//Airports["SOU"] 	= "Southampton";
			Airports["STN"] 	= "Stansted";
			
			
			//////////////////////////////////////////////
			// DO NOT CHANGE ANYTHING BELOW THIS LINE!
			// MODIFICATIONS COULD LEAD TO SERIOUS MALFUNCTIONS

			if(typeof Initialize == 'function')
			{
				Settings 		= new Initialize;
			
				if (!airport)
				{
					var type 		= Settings.WhichLocations; 
					var selected	= Settings.Preselect;
					var method		= Settings.Sampling;
				}
				else
				{
					var type		= 'all'
					var selected	= airport;
					var method		= 'byname';
				}
			}
			else
			{
				if (!airport)
				{
					
					var type 		= 'all'; 
					var selected	= 'detect';
					var method		= 'byname';
				}
				else
				{
					var type 		= 'all';
					var selected	= airport;
					var method		= 'byname';
				}				
			}
			
			var elem = 1;
			var AirportName; 
			var AirportCode;
			var PortName;
			var PortCode;
			
			
			
			if (!type) var type = 'all'; if (!selected) var selected = ''; if (!method) var method = ''; 
			
			if (selected == 'detect') 
			{
			var requri = window.location;
			selected = requri.toString();
			}
			
			cut = selected.indexOf("?"); 
			if (cut>0) selected = selected.substring(0,cut);
			selected = selected.toLowerCase();
			selected = selected.replace("-", "_");
			
			
			
			document.write("<select id=\"ap\" name=\"ap\">");
			document.write("<option value=\"\">Please select a location</option>");
			
			if (type == "airports" || type == "all")
			{
			for(code in Airports) {  
				AirportName = Airports[code].toLowerCase(); AirportName = AirportName.replace("-", "_");  AirportCode = code.toLowerCase();		
			  	document.write("<option value=\"" + code + "\">" + Airports[code] + "</option>");
			  	if (method == "bycode") { if (in_array(AirportCode, selected)>0) var num = elem; }
			  	if (method == "byname") { if (in_array(AirportName, selected)>0) var num = elem; }
			  	//alert(selected + "-" + AirportName);
			  	elem++;
				}
			}
			
			if (type == "ports" || type == "all")
			for(code in Ports) { 
				PortName = Ports[code].toLowerCase(); PortCode = code.toLowerCase(); 
			  document.write("<option value=\"" + code + "\" style=\"color:blue\">" + Ports[code] + "</option>");
			  if (method == "bycode") { if (selected.indexOf(PortCode)>=0) var num = elem; }
			  if (method == "byname") { if (selected.indexOf(PortName)>=0) var num = elem; }
			  elem++;
				}						
			document.write("</select>");
			if (selected) {			
			document.getElementById('ap').selectedIndex = num;
			}}

function in_array(needle, haystack)
{
	needle = needle.toLowerCase(); haystack.toLowerCase();
	if (needle.indexOf(" ")<0) {if (haystack.indexOf(needle)>=0) return true; else return false;}
	else
	{
		var aArray = new Array();
		aArray = needle.split(" ");
		for(i=0; i<aArray.length; i++)
		{
			if(haystack.indexOf(aArray[i])>=0) return true;
		}
		return false;
	}
}

function CheckAirport() 
{ 
	element = document.getElementById('ap');
	var a1 = element.value; 

	if (a1 == "") 
		{ 
		alert ("Please select an airport."); 
		return false; 
		}
	else 
		{ 
		return true; 
		} 
}


function ReturnDateFadeOut() 
{ 
			if(typeof Initialize == 'function')
			{
			Settings 			= new Initialize;
			var RetYearId 		= Settings.retYid;	
			var RetMonthId		= Settings.retMid;
			var RetDayId		= Settings.retDid;
			}
			else
			{
			var RetYearId 		= 'rdy';	
			var RetMonthId		= 'rdm';
			var RetDayId		= 'rdd';			
			}
			
			if (RetYearId == RetMonthId) { var merged = true; }
			
			element = document.getElementById('zn'); 
			if (element.selectedIndex == 1) 
			{ 
				if (merged){ document.getElementById(RetYearId).disabled = true; document.getElementById(RetYearId).style.textDecorationLineThrough = true; }
				else 
				{
				document.getElementById(RetYearId).disabled = true; document.getElementById(RetYearId).style.textDecorationLineThrough = true;
				document.getElementById(RetMonthId).disabled = true; document.getElementById(RetMonthId).style.textDecorationLineThrough = true;
				document.getElementById(RetDayId).disabled = true; document.getElementById(RetDayId).style.textDecorationLineThrough = true;
				}
			} 
			else 
			{ 
				if (merged){ document.getElementById(RetYearId).disabled = false; document.getElementById(RetYearId).style.textDecorationLineThrough = false; }
				else 
				{
				document.getElementById(RetYearId).disabled = false; document.getElementById(RetYearId).style.textDecorationLineThrough = false;
				document.getElementById(RetMonthId).disabled = false; document.getElementById(RetMonthId).style.textDecorationLineThrough = false;
				document.getElementById(RetDayId).disabled = false; document.getElementById(RetDayId).style.textDecorationLineThrough = false;
				}		
			} 

} 

function SetDays(days, id){
			
			var sel = document.getElementById(id);
			var full = sel.length;
			var diff = full - days;
			if (diff>0)
			{			
				for (i=0; i<=diff; i++)
				{
				sel.options[full-i] = null;
				}
			}
			else
			{
			diff = diff * -1; var max = full + diff; var min = (full+1);
			
			for (i=min; i<=max; i++)
			{
			//alert(id + "/" + i);
			sel.options[i-1] = new Option(i,i);
			}
			}			
			
			return days;}

function UpdateOptions(){

			if(typeof Initialize == 'function')
			{
			Settings 			= new Initialize;
			var DepYearId 		= Settings.depYid;	
			var DepMonthId		= Settings.depMid;
			var DepDayId		= Settings.depDid;
			var RetYearId 		= Settings.retYid;	
			var RetMonthId		= Settings.retMid;
			var RetDayId		= Settings.retDid;	
			}
			else
			{
			var DepYearId 		= 'ddy';	
			var DepMonthId		= 'ddm';
			var DepDayId		= 'ddd';
			var RetYearId 		= 'rdy';	
			var RetMonthId		= 'rdm';
			var RetDayId		= 'rdd';				
			}
			
			var DepYearValue 	= document.getElementById(DepYearId).value;	
			DepYearValue = DelzeroPad(DepYearValue);
			var DepMonthValue 	= document.getElementById(DepMonthId).value - 1;	
			DepMonthValue = DelzeroPad(DepMonthValue);
			
			var DepNumDays		= DaysOfThisMonth(DepYearValue, DepMonthValue);
			SetDays(DepNumDays, DepDayId);
			var RetYearValue 	= document.getElementById(RetYearId).value;	
			RetYearValue = DelzeroPad(RetYearValue);
			var RetMonthValue 	= document.getElementById(RetMonthId).value - 1;	
			RetMonthValue = DelzeroPad(RetMonthValue);
			
			var RetNumDays		= DaysOfThisMonth(RetYearValue, RetMonthValue);
			SetDays(RetNumDays, RetDayId);}

function zeroPad(value){
			var newvalue = value.toString();
			if (newvalue.length == 1) return "0" + newvalue;
			else return newvalue;}

function DelzeroPad(value){
			value = value.toString(); var firstdigit = value.substr(0,1);
			if (value.length > 1 && firstdigit == '0') value = value.substr(1);
			return value;}

function DaysOfThisMonth(year, month){
			daysofmonth		= (32 - new Date(year, month, 32).getDate()); 
			return daysofmonth;}

function Essentials(){
    
			this.Name = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December')} 

function PrintDays(){

			if(typeof Initialize == 'function')
			{
			Settings 		= new Initialize;
			var dZero 		= Settings.DayValueFormat;
			}
			else
			{
			var dZero		= 'N2'
			}
			
			var i 			= 1;
			var dayValue 	= null;
			var thisdate 	= new Date(); //"Mon Feb 28 15:13:24 UTC+0100 2008"
			var thisDay 	= thisdate.getDate();
			var thisMonth	= thisdate.getMonth()+1;
			var thisYear 	= thisdate.getFullYear();
			var offset 		= 1; // one day ahead
			var adjusted	= thisdate.getDate() + offset; 
			var daysThisMonth = DaysOfThisMonth(thisYear, thisMonth);
			var difference  = daysThisMonth - thisDay;
			
			if (adjusted > daysThisMonth) thisDay = offset - difference;
			else thisDay = thisDay + offset;
			
			for(i = 1; i <= 31; i++)
			{
				if (dZero == 'N2') dayValue = zeroPad(i); else dayValue = i;
				document.write('<option value="' + dayValue + '"');
				if (i == thisDay) document.write(' selected');
				document.writeln('>' + i + '</option>');
			} i = null;	}

function PrintMonths(){

			var i 			= null;
			Month 			= new Essentials;
			
			if(typeof Initialize == 'function')
			{
			Settings 		= new Initialize;
			var value 		= Settings.MonthValueFormat;
			}
			else
			{
			var value		= 'N2';
			}
			
			var monthvalue	= null;
			var thisdate 	= new Date(); //"Mon Feb 28 15:13:24 UTC+0100 2008"
			var thisMonth	= thisdate.getMonth();
			var thisYear 	= thisdate.getFullYear();
			var offset 		= 1; // one day ahead
			var adjusted	= thisdate.getDate() + offset; 
			var daysThisMonth = DaysOfThisMonth(thisYear, thisMonth);
			if (adjusted > daysThisMonth) thisMonth = thisMonth + 1;
						
			for(i = 0; i < 12; i++)
			{
				if (value == 'N2') monthvalue = zeroPad(i+1); 
				else if (value == 'S3') monthvalue = Month.Name[i].substr(0,3);
				else monthvalue = i+1;
				document.write('<option value="' + monthvalue + '"');
				if (i == thisMonth) document.write(' selected');
				document.writeln('>' + Month.Name[i] + '</option>');
			} i = null;	}

function PrintYears(){
			var yearvalue 	= null;
			
			if(typeof Initialize == 'function')
			{
			Settings 		= new Initialize;
			var value 		= Settings.YearValueFormat;	
			}
			else
			{
			var value		= 'N2';
			}
			
			var thisdate 	= new Date(); //"Mon Feb 28 15:13:24 UTC+0100 2008"
			var thisMonth	= thisdate.getMonth();
			var thisYear 	= thisdate.getFullYear();
			var offset 		= 1; // one day ahead
			var adjusted	= thisdate.getDate() + offset; 
			var daysThisMonth = DaysOfThisMonth(thisYear, thisMonth);
			if (adjusted > daysThisMonth) thisMonth = thisMonth + 1;
			if (thisMonth > 11) thisYear = thisYear + 1;
			
			var nextYear 	= thisYear + 1; //alert(thisYear+"->"+nextYear);
			for(i = thisYear; i <= nextYear; i++)
			{
				if (value=='N2') {yearvalue = i.toString(); yearvalue = yearvalue.substr(2,4);}
				document.write('<option value="' + yearvalue + '"');
				if (i == thisYear) document.write(' selected');
				document.writeln('>' + i + '</option>');
			} i = null; }

function PrintTime(){

			if(typeof Initialize == 'function')
			{
			Variables 		= new Initialize;
			var depHrs		= Variables.depHrs;
			var depMin		= Variables.depMin;
			var retHrs		= Variables.retHrs;
			var retMin		= Variables.retMin;
			var timeInterval= Variables.timeInterval;
			var selDepHr	= Variables.selDepHr;
			var selRetHr	= Variables.selRetHr;
			var TimeSep		= Variables.TimeSeparator;
			}
			else
			{
			var depHrs		= 'dth';
			var depMin		= 'dtm';
			var retHrs		= 'rth';
			var retMin		= 'rtm';
			var timeInterval= 30;
			var selDepHr	= 6;
			var selRetHr	= 18;
			var TimeSep		= ':';			
			}
			
			if (selDepHr < 1) selDepHr = 1;
			if (selRetHr < 1) selDepHr = 1;
						
			var merged 		= false;
			
			if (depHrs == depMin) { merged = true; }
			
			this.Hours	= function(which){
			var i = 0; var hour = ""; 
			for(i=0; i<24; i++) { 
			hour = zeroPad(i); 
			document.write('<option value="' + hour + '"');
			if (which == 'dep') if (i==selDepHr) document.write(' selected');
			if (which == 'ret') if (i==selRetHr) document.write(' selected');
			document.writeln('>' + hour + '</option>'); }
			}
			this.Mins	= function(){
			var i = 0; var min = "";
			for(i=0; i<60; i = i + timeInterval) { min = zeroPad(i); document.writeln('<option value="' + min + '">' + min + '</option>'); }}
			this.Merged = function(which){
			var i = 0; var hour = ""; var j = 0; var min = ""; var sel_set = false;
			for(i=0; i<24; i++) { 
			hour = zeroPad(i); 
			for(j=0; j<60; j = j + timeInterval){
			min = zeroPad(j); 
			document.write('<option value="' + hour + min + '"');
			if ((which == 'dep') && (!sel_set)) if (i==selDepHr) {document.write(' selected');sel_set = true}
			if ((which == 'ret') && (!sel_set)) if (i==selRetHr) {document.write(' selected');sel_set = true}
			document.writeln('>' + hour + TimeSep + min + '</option>'); 
			}}}}

function GetHours(which)
{
			var GetTimes = new PrintTime; 
			GetTimes.Hours(which);
}

function GetMins()
{
			var GetTimes = new PrintTime; 
			GetTimes.Mins();
}

function GetTimesMerged(which)
{
			var GetTimes = new PrintTime; 
			GetTimes.Merged(which);
}

function CalculateReturnDate(year, month, day)
{
			var mod_dur 	= 7; // modal duration (days)
			var nextyear 	= year + 1;
			var nextmonth	= month + 1;
			var retday 		= 0;
			var DateArray 	= new Object;
			
			// calculating the return date
			daysofmonth		= DaysOfThisMonth(year, month-1); //alert(daysofmonth);
			retday			= day + mod_dur;
			//alert("Return day: " + day + "+" + mod_dur);
			
			if (retday <= daysofmonth) { ReturnYear = year; ReturnMonth = month; ReturnDay = retday; } 
			else
			{
				retday 		= retday - daysofmonth;
				month 		= nextmonth;
				
				if (month <= 12) { ReturnYear = year; ReturnMonth = month; ReturnDay = retday; }
				else
				{
					month = month - 12;
					ReturnYear = nextyear; ReturnMonth = month; ReturnDay = retday;
				}
			}
			DateArray['day'] = ReturnDay; DateArray['month'] = ReturnMonth; DateArray['year'] = ReturnYear; 
			return DateArray;}

function CalculateDate(year, month, day, mod_dur)
{
			var nextyear 	= year + 1;
			var nextmonth	= month + 1;
			var retday 		= 0;
			var DateArray 	= new Object;
			
			// calculating the return date
			daysofmonth		= DaysOfThisMonth(year, month-1); //alert(daysofmonth);
			retday			= day + mod_dur;
			//alert("Return day: " + day + "+" + mod_dur);
			
			if (retday <= daysofmonth) { ReturnYear = year; ReturnMonth = month; ReturnDay = retday; } 
			else
			{
				retday 		= retday - daysofmonth;
				month 		= nextmonth;
				
				if (month <= 12) { ReturnYear = year; ReturnMonth = month; ReturnDay = retday; }
				else
				{
					month = month - 12;
					ReturnYear = nextyear; ReturnMonth = month; ReturnDay = retday;
				}
			}
			DateArray['day'] = ReturnDay; DateArray['month'] = ReturnMonth; DateArray['year'] = ReturnYear; 
			return DateArray;}

function SplitMergedDates(DateField)
{
				if(typeof Initialize == 'function')
				{
				Variables 		= new Initialize;
				
				var format		= Variables.DateFormat;
				var dat_sep 	= Variables.DateSeparator;
				}
				else
				{
				var format		= 'GB';
				var dat_sep		= '/';
				}
				
				var dateArray = DateField.split(dat_sep); 
					
				if (format == "GB") 
				{ 
				var year_part = dateArray[2]; year_part = year_part.toString(); ydigits = year_part.length; 
				day = parseInt(DelzeroPad(dateArray[0])); month = parseInt(DelzeroPad(dateArray[1])); 
				if (ydigits == 2) year = "20" + dateArray[2]; 
				else year = dateArray[2];
				}
				else 
				{ 
				var year_part = dateArray[0]; year_part = year_part.toString(); ydigits = year_part.length; 
				day = parseInt(DelzeroPad(dateArray[2])); month = parseInt(DelzeroPad(dateArray[1])); 
				if (ydigits == 2) year = "20" + dateArray[0]; 
				else year = dateArray[0];		}			
				return dateArray;
}

function SetDates(mode){
			//alert("settings initialized");
			if (!mode)		var mode = null;
			
			if(typeof Initialize == 'function')
			{
			//alert('initialization file has been found');
			Variables 		= new Initialize;
			
			var depYid 		= Variables.depYid;
			var depMid 		= Variables.depMid;
			var depDid 		= Variables.depDid;
			var retYid		= Variables.retYid;
			var retMid		= Variables.retMid;
			var retDid 		= Variables.retDid;
			var yearvalue	= Variables.YearValueFormat;
			var monthvalue	= Variables.MonthValueFormat;
			var dZero		= Variables.DayValueFormat;
			var format		= Variables.DateFormat;
			var dat_sep 	= Variables.DateSeparator;
			}
			else
			{
			//alert('default functions');
			var depYid 		= 'ddy';
			var depMid 		= 'ddm';
			var depDid 		= 'ddd';
			var retYid		= 'rdy';
			var retMid		= 'rdm';
			var retDid 		= 'rdd';
			var yearvalue	= 'N2';
			var monthvalue	= 'N2';
			var dZero		= 'N2';
			var format		= 'GB';
			var dat_sep 	= '/';			
			}
			
			var merged = false;
			var retday;
			var daysofmonth;
			var monthArray = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
			var optionvalue;
			var ydigits;
			var day; var month; var year;
			var ReturnDate; var ReturnYear; var ReturnMonth; var ReturnDay;
			var SelMonth;
			
			var today 		= new Date();  //  "Mon July 30 15:13:24 UTC+0100 2008"
			var SetDay 		= today.getDate();
			var SetMonth 	= today.getMonth() + 1;
			var SetYear 	= today.getFullYear();
			
			var CalculatedDate = CalculateDate(SetYear, SetMonth, SetDay, 1); // 1 means to calculate tomorrow
			var SetDay 		= CalculatedDate['day'];
			var SetMonth	= CalculatedDate['month'];
			var SetYear		= CalculatedDate['year'];
			//alert(SetDay + "/" + SetMonth + "/" + SetYear);	
			if (depYid === depMid && depMid === depDid){	
				
				var dateArray = new Array();
				var DepDateField = document.getElementById(depYid).value; 
				if ((!DepDateField) && (format == "GB")) 
				{
				if (monthvalue == 'N2') SetMonth = zeroPad(SetMonth);
				if (dZero == 'N2') SetDay = zeroPad(SetDay);
				if (yearvalue == 'N2') {SetYear = SetYear.toString(); SetYear = SetYear.substr(2,4); }
				
				DepDateField = SetDay + dat_sep + SetMonth + dat_sep + SetYear;
				document.getElementById(depYid).value = DepDateField;
				}
				datearray = SplitMergedDates(DepDateField);
				var day = parseInt(DelzeroPad(datearray[0])); 
				var month = parseInt(DelzeroPad(datearray[1])); 
				var year = parseInt(DelzeroPad(datearray[2])); 
			}else{
			//alert("separated values");
		/*
			var day_ind		= document.getElementById(depDid).selectedIndex; var day 	= document.getElementById(depDid).options[day_ind].value;
			var month_ind	= document.getElementById(depMid).selectedIndex; var month 	= document.getElementById(depMid).options[month_ind].value;
			var year_ind	= document.getElementById(depYid).selectedIndex; var year 	= document.getElementById(depYid).options[year_ind].value;
			day = parseInt(DelzeroPad(day)); month = parseInt(DelzeroPad(month)); 
			//alert(year_ind);
			if (year.length == 1) { 
			//alert("mozilla detected"); 
			year = parseInt("200" + year);}
			if (year.length == 2) year = parseInt("20" + year); 
			ydigits 		= 2;
			//alert(year);
		*/
			document.getElementById(depDid).selectedIndex = SetDay-1;
			document.getElementById(depMid).selectedIndex = SetMonth-1;
			document.getElementById(depYid).selectedIndex = SetYear - parseInt("20" + document.getElementById(depYid).value);
			}
			
			if (mode != "DepOnly") 
			{
			if (retYid==retMid && retMid == retDid) merged = true;  // dates merged 	
			 
			var RetDateBlock = CalculateReturnDate(year, month, day);
			
			ReturnYear = RetDateBlock['year']; ReturnMonth = RetDateBlock['month']; ReturnDay = RetDateBlock['day']; 
			//alert(ReturnYear);
			// set results
			if (yearvalue == "N2") { ReturnYear = ReturnYear.toString(); ReturnYear = zeroPad(ReturnYear); }
			if (monthvalue == "N2") { ReturnMonth = zeroPad(ReturnMonth); }
			if (dZero = 'N2') ReturnDay = zeroPad(ReturnDay);
			
			if (merged) { // single field dates
			if (format == "GB") ReturnDate = ReturnDay + dat_sep + ReturnMonth + dat_sep + ReturnYear;
			else ReturnDate = ReturnYear + dat_sep + ReturnMonth + dat_sep + ReturnDay;
			var dateField = document.getElementById(retYid);
			dateField.value = ReturnDate; //alert(ReturnDate);
			}
			else // separated fields
			{
			//alert("separated values");

				var RetDateBlock = CalculateReturnDate(SetYear, SetMonth, SetDay);

				ReturnYear = RetDateBlock['year']; ReturnMonth = RetDateBlock['month']; ReturnDay = RetDateBlock['day'];
				//alert(ReturnDay);
				document.getElementById(retDid).selectedIndex = ReturnDay-1;
				document.getElementById(retMid).selectedIndex = ReturnMonth-1;
				document.getElementById(retYid).selectedIndex = ReturnYear - parseInt("20" + document.getElementById(retYid).value);
/*
				var num_options = document.getElementById(retMid).options.length;
				
				if ( monthvalue == "S3" ) {
					
					SelMonth = monthArray[ReturnMonth-1]; 
					SelMonth = SelMonth.substr(0,3);
		
					for (i=0; i<num_options; i++)
					{
					optionvalue = document.getElementById(retMid).options[i].value; optionvalue = optionvalue.toLowerCase();
					SelMonth = SelMonth.toLowerCase();
					if (optionvalue == SelMonth) document.getElementById(retMid).selectedIndex = i;	}}
				
				else if ( monthvalue == "N2" || monthvalue == "N" ){	
						
						SelMonth = ReturnMonth;
						for (i=0; i<num_options; i++)
						{
						optionvalue = document.getElementById(retMid).options[i].value;
						if (optionvalue == SelMonth) document.getElementById(retMid).selectedIndex = i;	}}
				
				else { alert("ERROR: Wrong monthvalue parameter"); }
				
				var num_options = document.getElementById(retYid).options.length;
				
				if ( yearvalue == "N4" ) {
					
					SelMonth = monthArray[ReturnMonth-1]; 
					SelMonth = SelMonth.substr(0,3);
		
					for (i=0; i<num_options; i++)
					{
					optionvalue = document.getElementById(retMid).options[i].value; optionvalue = optionvalue.toLowerCase();
					SelMonth = SelMonth.toLowerCase();
					if (optionvalue == SelMonth) document.getElementById(retMid).selectedIndex = i;	}
					
					}
				
				else if ( yearvalue == "N2" ){	
						//alert(ReturnYear);
						SelYear = ReturnYear.substr(2,4);
						for (i=0; i<num_options; i++)
						{
						optionvalue = document.getElementById(retYid).options[i].value;
						//alert(optionvalue +"->"+ SelYear);
						if (optionvalue == SelYear) document.getElementById(retYid).selectedIndex = i;	}}
				
				else { alert("ERROR: Wrong yearvalue parameter"); }
				
				document.getElementById(retDid).selectedIndex = ReturnDay - 1;	
*/				


				}
				}}

function UpdateReturnDate(){

			var dat_sep = "/";
			
			if(typeof Initialize == 'function')
			{
			Variables 		= new Initialize;
			
			var depYid 		= Variables.depYid;
			var depMid 		= Variables.depMid;
			var depDid 		= Variables.depDid;
			var retYid		= Variables.retYid;
			var retMid		= Variables.retMid;
			var retDid 		= Variables.retDid;
			var yearvalue	= Variables.YearValueFormat;			
			var monthvalue	= Variables.MonthValueFormat;
			var dZero		= Variables.DayValueFormat;
			var format		= Variables.DateFormat;
			}
			else
			{
			var depYid 		= 'ddy';
			var depMid 		= 'ddm';
			var depDid 		= 'ddd';
			var retYid		= 'rdy';
			var retMid		= 'rdm';
			var retDid 		= 'rdd';
			var yearvalue	= 'N2';			
			var monthvalue	= 'N2';
			var dZero		= 'N2';
			var format		= 'GB';			
			}
			
			if (retYid==retMid && retMid == retDid) var merged = true;  // dates merged 
			
			if (!merged){
			var day_ind		= document.getElementById(depDid).selectedIndex; var day 	= document.getElementById(depDid).options[day_ind].value;
			var month_ind	= document.getElementById(depMid).selectedIndex; var month 	= document.getElementById(depMid).options[month_ind].value;
			var year_ind	= document.getElementById(depYid).selectedIndex; var year 	= document.getElementById(depYid).options[year_ind].value;}
			else
			{
			var DepDateField = document.getElementById(depYid).value; 
			datearray = SplitMergedDates(DepDateField);
			var day = parseInt(DelzeroPad(datearray[0])); 
			var month = parseInt(DelzeroPad(datearray[1])); 
			var year = parseInt(DelzeroPad(datearray[2])); 			
			}
			day = parseInt(DelzeroPad(day)); month 	= parseInt(DelzeroPad(month));
			if (year.length == 2) year 	= parseInt("20" + year);
			ydigits 					= year.length;
		
				
			
			var RetDateBlock = CalculateReturnDate(year, month, day);
			
			ReturnYear = RetDateBlock['year']; ReturnMonth = RetDateBlock['month']; ReturnDay = RetDateBlock['day']; 
		
			// set results
			if (yearvalue == "N2") { ReturnYear = ReturnYear.toString(); ReturnYear = zeroPad(ReturnYear); }
			if (monthvalue == "N2") { ReturnMonth = zeroPad(ReturnMonth); }
			if (dZero=='N2') ReturnDay = zeroPad(ReturnDay);
			
			if (merged) { // single field dates
			if (format == "GB") ReturnDate = ReturnDay + dat_sep + ReturnMonth + dat_sep + ReturnYear;
			else ReturnDate = ReturnYear + dat_sep + ReturnMonth + dat_sep + ReturnDay;
			//alert(ReturnDate);
			var dateField = document.getElementById(retYid);
			dateField.value = ReturnDate; }
			else // separated fields
			{
				var year_options = document.getElementById(retYid).options.length;
		
					for (i=0; i<year_options; i++)
					{
					optionvalue = document.getElementById(retYid).options[i].value; optionvalue = "20" + optionvalue.toLowerCase();
					if (optionvalue == ReturnYear) document.getElementById(retYid).selectedIndex = i;
					}
					//alert(optionvalue + " -> " + ReturnYear);
		
				var num_options = document.getElementById(retMid).options.length;
				
				if ( monthvalue == "S3" ) {
					
					SelMonth = monthArray[ReturnMonth-1]; 
					SelMonth = SelMonth.substr(0,3);
		
					for (i=0; i<num_options; i++)
					{
					optionvalue = document.getElementById(retMid).options[i].value; optionvalue = optionvalue.toLowerCase();
					SelMonth = SelMonth.toLowerCase();
					if (optionvalue == SelMonth) document.getElementById(retMid).selectedIndex = i;}}
				
				else if ( monthvalue == "N2" || monthvalue == "N" ){	
						
						SelMonth = ReturnMonth;
						for (i=0; i<num_options; i++)
						{
						optionvalue = document.getElementById(retMid).options[i].value;
						if (optionvalue == SelMonth) document.getElementById(retMid).selectedIndex = i;	}}
				
				else { alert("ERROR: Wrong monthvalue parameter"); }
				document.getElementById(retDid).selectedIndex = ReturnDay - 1;	}}
