var roomType = new Array(
	'Queen Suite',
	'Princess Suite',
	'Britannia Club',
	'Britannia State Rooms'
);

var stateRooms = new Array(
	['Q1','Queen Suite','Q1 Grand Duplex'],
	['Q2','Queen Suite','Q2 Duplex Apartments'],
	['Q3','Queen Suite','Q3 Royal Suites'],
	['Q4','Queen Suite','Q4 Penthouse'],
	['Q5','Queen Suite','Q5 Queens Suites'],
	['Q6','Queen Suite','Q6 Queens Suites'],
	['Q7','Queen Suite','Q7 Queens Suites'],
	['P1','Princess Suite','P1 Princess Suites'],
	['P2','Princess Suite','P2 Princess Suites'],
	['P3','Princess Suite','P3 Princess Suites'],
	['AA','Britannia Club','AA Britannia Club Balcony'],
	['A1','Britannia State Rooms','A1 Deluxe Balcony'],
	['A2','Britannia State Rooms','A2 Deluxe Balcony'],
	['A3','Britannia State Rooms','A3 Deluxe Balcony'],
	['B1','Britannia State Rooms','B1 Premium Balcony (Sheltered)'],
	['B2','Britannia State Rooms','B2 Premium Balcony (Sheltered)'],
	['B3','Britannia State Rooms','B3 Premium Balcony (Sheltered)'],
	['B4','Britannia State Rooms','B4 Premium Balcony (Sheltered)'],
	['B5','Britannia State Rooms','B5 Premium Balcony (Obstructed view)'],
	['B6','Britannia State Rooms','B6 Premium Balcony (Obstructed view)'],
	['C1','Britannia State Rooms','C1 Standard Oceanview'],
	['C2','Britannia State Rooms','C2 Standard Oceanview'],
	['C3','Britannia State Rooms','C3 Standard Oceanview'],
	['C4','Britannia State Rooms','C4 Standard Oceanview'],
	['D1','Britannia State Rooms','D1 Atrium View'],
	['D2','Britannia State Rooms','D2 Standard Inside'],
	['D3','Britannia State Rooms','D3 Standard Inside'],
	['D4','Britannia State Rooms','D4 Standard Inside'],
	['D5','Britannia State Rooms','D5 Standard Inside'],
	['D6','Britannia State Rooms','D6 Standard Inside'],
	['D7','Britannia State Rooms','D7 Standard Inside'],
	['D8','Britannia State Rooms','D8 Standard Inside']
);


var roomPrices = new Array(
	[1,'eastbound','Q1','23395'],
	[2,'eastbound','Q2','19195'],
	[3,'eastbound','Q3','12195'],
	[4,'eastbound','Q4','9195'],
	[5,'eastbound','Q5','5885'],
	[6,'eastbound','Q6','4935'],
	[7,'eastbound','Q7','5195'],
	[8,'eastbound','P1','3795'],
	[9,'eastbound','P2','3700'],
	[10,'eastbound','P3','3895'],
	[11,'eastbound','AA','2755'],
	[12,'eastbound','A1','2275'],
	[13,'eastbound','A2','2180'],
	[14,'eastbound','A3','2195'],
	[15,'eastbound','B1','1848'],
	[16,'eastbound','B2','1800'],
	[17,'eastbound','B3','1753'],
	[18,'eastbound','B4','1795'],
	[19,'eastbound','B5','1610'],
	[20,'eastbound','B6','1695'],
	[21,'eastbound','C1','1610'],
	[22,'eastbound','C2','1515'],
	[23,'eastbound','C3','1545'],
	[24,'eastbound','C4','1545'],
	[25,'eastbound','D1','1475'],
	[26,'eastbound','D2','1382'],
	[27,'eastbound','D3','1363'],
	[28,'eastbound','D4','1344'],
	[29,'eastbound','D5','1325'],
	[30,'eastbound','D6','1375'],
	[31,'eastbound','D7','1345'],
	[32,'eastbound','D8','1345'],
	[33,'westbound','Q1','24595'],
	[34,'westbound','Q2','20395'],
	[35,'westbound','Q3','13395'],
	[36,'westbound','Q4','10395'],
	[37,'westbound','Q5','7025'],
	[38,'westbound','Q6','6075'],
	[39,'westbound','Q7','6395'],
	[40,'westbound','P1','4650'],
	[41,'westbound','P2','4460'],
	[42,'westbound','P3','4695'],
	[43,'westbound','AA','3180'],
	[44,'westbound','A1','2627'],
	[45,'westbound','A2','2532'],
	[46,'westbound','A3','2565'],
	[47,'westbound','B1','2104'],
	[48,'westbound','B2','2038'],
	[49,'westbound','B3','1971'],
	[50,'westbound','B4','1995'],
	[51,'westbound','B5','1800'],
	[52,'westbound','B6','1895'],
	[53,'westbound','C1','1800'],
	[54,'westbound','C2','1753'],
	[55,'westbound','C3','1795'],
	[56,'westbound','C4','1795'],
	[57,'westbound','D1','1745'],
	[58,'westbound','D2','1610'],
	[59,'westbound','D3','1563'],
	[60,'westbound','D4','1515'],
	[61,'westbound','D5','1468'],
	[62,'westbound','D6','1495'],
	[63,'westbound','D7','1445'],
	[64,'westbound','D8','1445'],
	[65,'vikings','Q1','24395'],
	[66,'vikings','Q2','20195'],
	[67,'vikings','Q3','13195'],
	[68,'vikings','Q4','10195'],
	[69,'vikings','Q5','6835'],
	[70,'vikings','Q6','5885'],
	[71,'vikings','Q7','6195'],
	[72,'vikings','P1','4745'],
	[73,'vikings','P2','4270'],
	[74,'vikings','P3','4495'],
	[75,'vikings','AA','3350'],
	[76,'vikings','A1','2769'],
	[77,'vikings','A2','2627'],
	[78,'vikings','A3','2615'],
	[79,'vikings','B1','2370'],
	[80,'vikings','B2','2299'],
	[81,'vikings','B3','2228'],
	[82,'vikings','B4','2270'],
	[83,'vikings','B5','2085'],
	[84,'vikings','B6','2195'],
	[85,'vikings','C1','2085'],
	[86,'vikings','C2','2038'],
	[87,'vikings','C3','2095'],
	[88,'vikings','C4','2095'],
	[89,'vikings','D1','1995'],
	[90,'vikings','D2','1848'],
	[91,'vikings','D3','1800'],
	[92,'vikings','D4','1753'],
	[93,'vikings','D5','1705'],
	[94,'vikings','D6','1745'],
	[95,'vikings','D7','1695'],
	[96,'vikings','D8','1695'],
	[97,'roundtrip','Q1','45591'],
	[98,'roundtrip','Q2','37611'],
	[99,'roundtrip','Q3','24311'],
	[100,'roundtrip','Q4','18611'],
	[101,'roundtrip','Q5','12265'],
	[102,'roundtrip','Q6','10460'],
	[103,'roundtrip','Q7','11011'],
	[104,'roundtrip','P1','8023'],
	[105,'roundtrip','P2','7752'],
	[106,'roundtrip','P3','8161'],
	[107,'roundtrip','AA','5638'],
	[108,'roundtrip','A1','4657'],
	[109,'roundtrip','A2','4476'],
	[110,'roundtrip','A3','4522'],
	[111,'roundtrip','B1','3754'],
	[112,'roundtrip','B2','3646'],
	[113,'roundtrip','B3','3538'],
	[114,'roundtrip','B4','3601'],
	[115,'roundtrip','B5','3240'],
	[116,'roundtrip','B6','3411'],
	[117,'roundtrip','C1','3240'],
	[118,'roundtrip','C2','3105'],
	[119,'roundtrip','C3','3173'],
	[120,'roundtrip','C4','3173'],
	[121,'roundtrip','D1','3059'],
	[122,'roundtrip','D2','2842'],
	[123,'roundtrip','D3','2780'],
	[124,'roundtrip','D4','2716'],
	[125,'roundtrip','D5','2653'],
	[126,'roundtrip','D6','2727'],
	[127,'roundtrip','D7','2651'],
	[128,'roundtrip','D8','2651']
);


function fill_dropdowns(form)
{
	//fill_roomtype_dropdown();
	var dest = form.destination;
	for(var i=0; i < dest.length; i++)
	{
		if(dest[i].checked)
		{
			if(form.accommodation_type.length == 1)
			{
				fill_roomtype_dropdown();
			}
			form.accommodation_type.disabled = false;
			break;
		}
		else if((dest[i] == dest[dest.length - 1]) && !dest[i].checked)
		{
			form.accommodation_type.disabled = true;
			form.stateroom_category.disabled = true;
			form.fares.disabled = true;
			return;
		}
	}
	
	if(fill_stateroom_dropdown(form))
	{
		fill_roomprices_dropdown(form);
	}
}

function fill_roomtype_dropdown()
{
	var select_element = document.getElementById('room_type');
	
	for(var i=0; i < roomType.length; i++)
	{
		select_element.options[i+1] = new Option(roomType[i], roomType[i]);	
	}
}

function fill_stateroom_dropdown(form)
{
	var acc_type = form.accommodation_type.value
	var select_element = form.stateroom_category;
	
	if(acc_type == "")
	{
		select_element.disabled = true;
		form.fares.disabled = true;
		return false;
	}
	else
	{
		fill_roomprices_dropdown(form);
	}
	
	select_element.length = 1;
	var oc = 0;
	for(var i=0; i < stateRooms.length; i++)
	{
		if(acc_type == stateRooms[i][1])
		{
			oc++;
			select_element.options[oc] = new Option(stateRooms[i][2], stateRooms[i][0]);
		}
	}
	
	if(oc > 0)
	{
		select_element.disabled = false;
		return true;
	}
	else
	{
		select_element.disabled = true;
		return false;
	}
}

function fill_roomprices_dropdown(form)
{
	var stateroom = form.stateroom_category.value
	var destinations = form.destination;
	var dest = new Array();
	for(var i=0; i < destinations.length; i++)
	{
		if(destinations[i].checked == true)
		{
			dest.push(destinations[i].value); 
		}
	}
	
	var select_element = form.fares;
	if(stateroom == "" && dest.length != 0)
	{
		select_element.disabled = true;
		return false;
	}
	else if(form.fares.disabled)
	{
		form.fares.disabled = false;
	}
	
	
	select_element.length = 1;
	var oc = 0;
	for(var i=0; i < roomPrices.length; i++)
	{
		if(stateroom == roomPrices[i][2])
		{
			for(var d=0; d < dest.length; d++)
			{
				if(dest[d] == roomPrices[i][1])
				{
					oc++;
					select_element.options[oc] = new Option("$" + roomPrices[i][3] + " - " + roomPrices[i][1].toUpperCase(), roomPrices[i][3]);
				}
			}
		}
	}

	if(oc > 0)
	{
		if (oc == 1)
		{
			select_element.disabled = true;
			select_element.selectedIndex = 1;
			form.fare.value = select_element.options[1].value;
		}
		else
		{
			select_element.disabled = false;
		}
		return true;
	}
	else
	{
		select_element.disabled = true;
		return false;
	}
}
function set_fare(form)
{
	form.fare.value = form.fares.options[form.fares.selectedIndex].value;
}

function frm_fill_dropdown(dropdownid, options)
{
	var select_element = document.getElementById(dropdownid)
	
	for (var i=0; i < roomPrices.length; i++)
	{
		select_element.options[i] = new Option(options[i][3], options[i][3]);
	}
}

//Call before submitting
//TODO: Form validation, maybe save values to cookie.
function process_form(form)
{
	form.destinations.value = "";
	form.street.value = "";
	
	save_values(form);
	
	for(var i=0; i < form.destination.length; i++)
	{
		if(form.destination[i].checked)
		{
			form.destinations.value += form.destination[i].value + ",";
		}
	}
	
	if(form.addr1.value != "")
	{
		form.street.value += form.addr1.value; 
	}
	else
	{
		return true;
	}

	if(form.addr2)
	{
		form.street.value += ',' + form.addr2.value; 
	}
	return true;
}


//Saves values to cookie
function save_values(form)
{
	// load previously stored values, if any
	//var cookies = decodeURIComponent(document.cookie);
	//var indexSearch = 'FormValues=';
	
	var destinations = "";
	for(var i=0; i < form.destination.length; i++)
	{
		if(form.destination[i].checked)
		{
			destinations += i + ",";
		}
	}
	
	var accommodation_type = form.accommodation_type.value;
	
	var stateroom_category = form.stateroom_category.value;
	var fares = form.fares.value;
	
	/*var flights = 0;
	if(form.flights[0].checked)
	{
		var flights = 1;
	}
	else
	{
		var flights = 0;
	}
	
	var preferred_airport = form.preferred_airport.value;
	var cabin_class = form.cabin_class.value;*/
	
	var title = form.title.value;
	var firstname = form.firstname.value;
	var lastname = form.lastname.value;
	
	var addr1 = form.addr1.value;
	var addr2 = form.addr2.value;
	var town = form.town.value;
	var county = form.county.value;
	var postcode = form.postcode.value;
	var day_tel = form.day_tel.value;
	var cel_tel = form.cel_tel.value;
	var nop = form.nop.value;
	
	var email = form.email.value;
	var confirmemail = form.confirmemail.value;
	
	
	var cunard_before = 0;
	if(form.cunard_before[0].checked)
	{
		var cunard_before = 1;
	}
	else
	{
		var cunard_before = 0;
	}
	var world_club_mem_num = form.world_club_mem_num.value;
	
	var special_req = form.special_req.value;
	
	var cookieString = encodeURIComponent(''
		+destinations + ':'
		+accommodation_type + ':'
		+stateroom_category + ':'
		+fares + ':'
		/*+flights + ':'
		+preferred_airport + ':'
		+cabin_class + ':'*/
		+title + ':'
		+firstname + ':'
		+lastname + ':'
		+addr1 + ':'
		+addr2 + ':'
		+town + ':'
		+county + ':'
		+postcode + ':'
		+day_tel + ':'
		+cel_tel + ':'
		+nop + ':'
		+email + ':'
		+confirmemail + ':'
		+cunard_before + ':'
		+world_club_mem_num + ':'
		+special_req
	);
	document.cookie = 'SearchFormValues=' + cookieString;
	return true;
}

function process_cookie()
{
	var form = document.forms[0];
	var cookies = decodeURIComponent(document.cookie);
	var indexSearch = 'FormValues=';
	
	var pos = cookies.indexOf(indexSearch);
	if (pos != -1)
	{
		 var start = pos + 11; // 11 is the length of the string 'FormValues='
		 var end = cookies.indexOf(';', start);
	if (end == -1)
	{
		 end = cookies.length;
	}
		 var cookie = decodeURIComponent(cookies.substring(start, end));
		 var parts = cookie.split(':');
	}
	else
	{
		 return;
	}
	if(parts[0] != "")
	{
		var dest = parts[0].split(',');
		for(var i=0; i < dest.length - 1; i++)
		{
			if(form.destination[Number(dest[i])])
			{
				form.destination[Number(dest[i])].checked = "true";
			}
		}
		fill_dropdowns(form);
	}
	if(parts[1] != "")
	{	
		for(var i=0; i < form.accommodation_type.length; i++)
		{
			if(form.accommodation_type[i].value == parts[1])
			{
				form.accommodation_type[i].selected = "true";
			}
		}
		fill_dropdowns(form);
	}
	
	if(parts[2] != "")
	{
		if(form.stateroom_category.length == 1)
		{
			fill_stateroom_dropdown(form);
		}
		
		for(var i=0; i < form.stateroom_category.length; i++)
		{
			if(form.stateroom_category[i].value == parts[2])
			{
				form.stateroom_category[i].selected = "true";
			}
		}
	}
	
	if(parts[3] != "")
	{
		if(form.fares.length == 1)
		{
			fill_roomprices_dropdown(form);
		}
		for(var i=0; i < form.fares.length; i++)
		{
			if(form.fares[i].value == parts[3])
			{
				form.fares[i].selected = "true";
			}
		}
	}
	
/*	if(parts[4] != "")
	{
		if(Number(parts[4]) == 1)
		{
			form.flights[0].checked = "true";
		}
		else
		{
			form.flights[1].checked = "true";
		}
	}
	
	if(parts[4] != "")
	{
		form.preferred_airport.value = parts[5];
	}
	
	if(parts[5] != "")
	{
		for(var i=0; i < form.cabin_class.length; i++)
		{
			if(form.cabin_class[i].value == parts[6])
			{
				form.cabin_class[i].selected = "true";
			}
		}
	}*/
	
	if(parts[4] != "")
	{
		form.title.value = parts[4];
	}
	
	if(parts[5] != "")
	{
		form.firstname.value = parts[5];
	}
	
	if(parts[6] != "")
	{
		form.lastname.value = parts[6];
	}
	
	if(parts[7] != "")
	{
		form.addr1.value = parts[7];
	}
	
	if(parts[8] != "")
	{
		form.addr2.value = parts[8];
	}
	
	if(parts[9] != "")
	{
		form.town.value = parts[9];
	}
	
	if(parts[10] != "")
	{
		form.county.value = parts[10];
	}
	
	if(parts[11] != "")
	{
		form.postcode.value = parts[11];
	}
	
	if(parts[12] != "")
	{
		form.day_tel.value = parts[12];
	}
	
	if(parts[13] != "")
	{
		form.cel_tel.value = parts[13];
	}
	
	if(parts[14] != "")
	{
		form.nop.value = parts[14];
	}
	
	if(parts[15] != "")
	{
		form.email.value = parts[15];
	}
	
	if(parts[16] != "")
	{
		form.confirmemail.value = parts[16];
	}
	if(parts[17] != "")
	{
		if(Number(parts[17]) == 1)
		{
			form.cunard_before[0].checked = true;
		}
		else
		{
			form.cunard_before[1].checked = true;
		}
	}
	
	
	if(parts[18] != "")
	{
		form.world_club_mem_num.value = parts[18];
	}
		
	if(parts[19] != "")
	{
		form.special_req.value = parts[19];
	}
	
	return true;
}

