// JavaScript Document
var opcodes = new Array();
opcodes[0] = new Array();
opcodes[0][0] = new Array();
opcodes[0][0][0] = "POF";
opcodes[0][0][1] = "P&O Ferries";
opcodes[0][1] = new Array();
opcodes[0][1][0] = "Dover - Calais";
opcodes[0][1][1] = "POF_DOCA";
opcodes[0][2] = new Array();
opcodes[0][2][0] = "Calais - Dover";
opcodes[0][2][1] = "POF_CADO";
opcodes[0][3] = new Array();
opcodes[0][3][0] = "Hull - Europoort";
opcodes[0][3][1] = "POF_HUEU";
opcodes[0][4] = new Array();
opcodes[0][4][0] = "Europoort - Hull";
opcodes[0][4][1] = "POF_EUHU";
opcodes[0][5] = new Array();
opcodes[0][5][0] = "Hull - Zeebrugge";
opcodes[0][5][1] = "POF_HUZE";
opcodes[0][6] = new Array();
opcodes[0][6][0] = "Zeebrugge - Hull";
opcodes[0][6][1] = "POF_ZEHU";
opcodes[0][7] = new Array();
opcodes[0][7][0] = "Portsmouth - Bilbao";
opcodes[0][7][1] = "POF_POBI";
opcodes[0][8] = new Array();
opcodes[0][8][0] = "Bilbao - Portsmouth";
opcodes[0][8][1] = "POF_BIPO";
opcodes[1] = new Array();
opcodes[1][0] = new Array();
opcodes[1][0][0] = "SFR";
opcodes[1][0][1] = "SeaFrance";
opcodes[1][1] = new Array();
opcodes[1][1][0] = "Dover - Calais";
opcodes[1][1][1] = "SFR_DOCA";
opcodes[1][2] = new Array();
opcodes[1][2][0] = "Calais - Dover";
opcodes[1][2][1] = "SFR_CADO";
opcodes[2] = new Array();
opcodes[2][0] = new Array();
opcodes[2][0][0] = "NFL";
opcodes[2][0][1] = "Norfolkline";
opcodes[2][1] = new Array();
opcodes[2][1][0] = "Dover - Dunkerque";
opcodes[2][1][1] = "NFL_DODU";
opcodes[2][2] = new Array();
opcodes[2][2][0] = "Dunkerque - Dover";
opcodes[2][2][1] = "NFL_DUDO";
opcodes[3] = new Array();
opcodes[3][0] = new Array();
opcodes[3][0][0] = "STL";
opcodes[3][0][1] = "Stena Line";
opcodes[3][1] = new Array();
opcodes[3][1][0] = "Fishguard - Rosslare";
opcodes[3][1][1] = "STL_FGRL";
opcodes[3][2] = new Array();
opcodes[3][2][0] = "Rosslare - Fishguard";
opcodes[3][2][1] = "STL_RLFG";
opcodes[3][3] = new Array();
opcodes[3][3][0] = "Fleetwood - Larne";
opcodes[3][3][1] = "STL_FLLA";
opcodes[3][4] = new Array();
opcodes[3][4][0] = "Larne - Fleetwood";
opcodes[3][4][1] = "STL_LAFL";
opcodes[3][5] = new Array();
opcodes[3][5][0] = "Harwich - Hook of Holland";
opcodes[3][5][1] = "STL_HAHK";
opcodes[3][6] = new Array();
opcodes[3][6][0] = "Hook of Holland - Harwich";
opcodes[3][6][1] = "STL_HKHA";
opcodes[3][7] = new Array();
opcodes[3][7][0] = "Holyhead - Dun Laoghaire";
opcodes[3][7][1] = "STL_HHDL";
opcodes[3][8] = new Array();
opcodes[3][8][0] = "Dun Laoghaire - Holyhead";
opcodes[3][8][1] = "STL_DLHH";
opcodes[3][9] = new Array();
opcodes[3][9][0] = "Holyhead - Dublin";
opcodes[3][9][1] = "STL_HODB";
opcodes[3][10] = new Array();
opcodes[3][10][0] = "Dublin - Holyhead";
opcodes[3][10][1] = "STL_DBHO";
opcodes[3][11] = new Array();
opcodes[3][11][0] = "Stranraer - Belfast";
opcodes[3][11][1] = "STL_SHBF";
opcodes[3][12] = new Array();
opcodes[3][12][0] = "Belfast - Stranraer";
opcodes[3][12][1] = "STL_BFSH";
opcodes[4] = new Array();
opcodes[4][0] = new Array();
opcodes[4][0][0] = "ETL";
opcodes[4][0][1] = "Eurotunnel";
opcodes[4][1] = new Array();
opcodes[4][1][0] = "Folkestone - Calais";
opcodes[4][1][1] = "ETL_FTCT";
opcodes[4][2] = new Array();
opcodes[4][2][0] = "Calais - Folkestone";
opcodes[4][2][1] = "ETL_CTFT";
opcodes[5] = new Array();
opcodes[5][0] = new Array();
opcodes[5][0][0] = "BRI";
opcodes[5][0][1] = "Brittany Ferries";
opcodes[5][1] = new Array();
opcodes[5][1][0] = "Plymouth - Santander";
opcodes[5][1][1] = "BRI_PYSA";
opcodes[5][2] = new Array();
opcodes[5][2][0] = "Santander - Plymouth";
opcodes[5][2][1] = "BRI_SAPY";
opcodes[5][3] = new Array();
opcodes[5][3][0] = "Plymouth - Roscoff";
opcodes[5][3][1] = "BRI_PYRS";
opcodes[5][4] = new Array();
opcodes[5][4][0] = "Roscoff - Plymouth";
opcodes[5][4][1] = "BRI_RSPY";
opcodes[5][5] = new Array();
opcodes[5][5][0] = "Poole - Cherbourg";
opcodes[5][5][1] = "BRI_PLCH";
opcodes[5][6] = new Array();
opcodes[5][6][0] = "Cherbourg - Poole";
opcodes[5][6][1] = "BRI_CHPL";
opcodes[5][7] = new Array();
opcodes[5][7][0] = "Portsmouth - Caen";
opcodes[5][7][1] = "BRI_POCE";
opcodes[5][8] = new Array();
opcodes[5][8][0] = "Caen - Portsmouth";
opcodes[5][8][1] = "BRI_CEPO";
opcodes[5][9] = new Array();
opcodes[5][9][0] = "Portsmouth - Cherbourg";
opcodes[5][9][1] = "BRI_POCH";
opcodes[5][10] = new Array();
opcodes[5][10][0] = "Cherbourg - Portsmouth";
opcodes[5][10][1] = "BRI_CHPO";
opcodes[5][11] = new Array();
opcodes[5][11][0] = "Portsmouth - St Malo";
opcodes[5][11][1] = "BRI_POSM";
opcodes[5][12] = new Array();
opcodes[5][12][0] = "St Malo - Portsmouth";
opcodes[5][12][1] = "BRI_SMPO";
opcodes[6] = new Array();
opcodes[6][0] = new Array();
opcodes[6][0][0] = "DFD";
opcodes[6][0][1] = "DFDS Seaways";
opcodes[6][1] = new Array();
opcodes[6][1][0] = "Amsterdam - Newcastle";
opcodes[6][1][1] = "DFD_AMNE";
opcodes[6][2] = new Array();
opcodes[6][2][0] = "Newcastle - Amsterdam";
opcodes[6][2][1] = "DFD_NEAM";
opcodes[6][3] = new Array();
opcodes[6][3][0] = "Copenhagen - Oslo";
opcodes[6][3][1] = "DFD_KOOS";
opcodes[6][4] = new Array();
opcodes[6][4][0] = "Oslo - Copenhagen";
opcodes[6][4][1] = "DFD_OSKO";
opcodes[6][5] = new Array();
opcodes[6][5][0] = "Esbjerg - Harwich";
opcodes[6][5][1] = "DFD_ESHR";
opcodes[6][6] = new Array();
opcodes[6][6][0] = "Harwich - Esbjerg";
opcodes[6][6][1] = "DFD_HRES";
opcodes[6][7] = new Array();
opcodes[6][7][0] = "Newcastle - Bergen";
opcodes[6][7][1] = "DFD_NEBG";
opcodes[6][8] = new Array();
opcodes[6][8][0] = "Bergen - Newcastle";
opcodes[6][8][1] = "DFD_BGNE";
opcodes[6][9] = new Array();
opcodes[6][9][0] = "Newcastle - Haugesund";
opcodes[6][9][1] = "DFD_NEHG";
opcodes[6][10] = new Array();
opcodes[6][10][0] = "Haugesund - Newcastle";
opcodes[6][10][1] = "DFD_HGNE";
opcodes[6][11] = new Array();
opcodes[6][11][0] = "Newcastle - Stavanger";
opcodes[6][11][1] = "DFD_NESV";
opcodes[6][12] = new Array();
opcodes[6][12][0] = "Stavanger - Newcastle";
opcodes[6][12][1] = "DFD_SVNE";
opcodes[7] = new Array();
opcodes[7][0] = new Array();
opcodes[7][0][0] = "SPF";
opcodes[7][0][1] = "SpeedFerries";
opcodes[7][1] = new Array();
opcodes[7][1][0] = "Dover - Boulogne";
opcodes[7][1][1] = "SPF_DOBO";
opcodes[7][2] = new Array();
opcodes[7][2][0] = "Boulogne - Dover";
opcodes[7][2][1] = "SPF_BODO";
opcodes[8] = new Array();
opcodes[8][0] = new Array();
opcodes[8][0][0] = "POI";
opcodes[8][0][1] = "P&O Irish Ferries";
opcodes[8][1] = new Array();
opcodes[8][1][0] = "Cairnryan - Larne";
opcodes[8][1][1] = "POI_CRLA";
opcodes[8][2] = new Array();
opcodes[8][2][0] = "Larne - Cairnryan";
opcodes[8][2][1] = "POI_LACR";
opcodes[8][3] = new Array();
opcodes[8][3][0] = "Dublin - Liverpool";
opcodes[8][3][1] = "POI_DBLI";
opcodes[8][4] = new Array();
opcodes[8][4][0] = "Liverpool - Dublin";
opcodes[8][4][1] = "POI_LIDB";
opcodes[8][5] = new Array();
opcodes[8][5][0] = "Larne - Troon";
opcodes[8][5][1] = "POI_LATR";
opcodes[8][6] = new Array();
opcodes[8][6][0] = "Troon - Larne";
opcodes[8][6][1] = "POI_TRLA";
opcodes[9] = new Array();
opcodes[9][0] = new Array();
opcodes[9][0][0] = "CNR";
opcodes[9][0][1] = "Condor Ferries";
opcodes[9][1] = new Array();
opcodes[9][1][0] = "Cherbourg - Portsmouth";
opcodes[9][1][1] = "CNR_CHPM";
opcodes[9][2] = new Array();
opcodes[9][2][0] = "Portsmouth - Cherbourg";
opcodes[9][2][1] = "CNR_PMCH";
opcodes[9][3] = new Array();
opcodes[9][3][0] = "Guernsey - Poole";
opcodes[9][3][1] = "CNR_GUPA";
opcodes[9][4] = new Array();
opcodes[9][4][0] = "Poole - Guernsey";
opcodes[9][4][1] = "CNR_PAGU";
opcodes[9][5] = new Array();
opcodes[9][5][0] = "Guernsey - Portsmouth";
opcodes[9][5][1] = "CNR_GUPM";
opcodes[9][6] = new Array();
opcodes[9][6][0] = "Portsmouth - Guernsey";
opcodes[9][6][1] = "CNR_PMGU";
opcodes[9][7] = new Array();
opcodes[9][7][0] = "Guernsey - Weymouth";
opcodes[9][7][1] = "CNR_GUWE";
opcodes[9][8] = new Array();
opcodes[9][8][0] = "Weymouth - Guernsey";
opcodes[9][8][1] = "CNR_WEGU";
opcodes[9][9] = new Array();
opcodes[9][9][0] = "Jersey - Portsmouth";
opcodes[9][9][1] = "CNR_JSPM";
opcodes[9][10] = new Array();
opcodes[9][10][0] = "Portsmouth - Jersey";
opcodes[9][10][1] = "CNR_PMJS";
opcodes[9][11] = new Array();
opcodes[9][11][0] = "St Malo - Weymouth";
opcodes[9][11][1] = "CNR_SMWE";
opcodes[9][12] = new Array();
opcodes[9][12][0] = "Weymouth - St Malo";
opcodes[9][12][1] = "CNR_WESM";
opcodes[9][13] = new Array();
opcodes[9][13][0] = "Poole - St Malo";
opcodes[9][13][1] = "CNR_PASM";
opcodes[9][14] = new Array();
opcodes[9][14][0] = "St Malo - Poole";
opcodes[9][14][1] = "CNR_SMPA";
opcodes[9][15] = new Array();
opcodes[9][15][0] = "Jersey - St Malo";
opcodes[9][15][1] = "CNR_JSSM";
opcodes[9][16] = new Array();
opcodes[9][16][0] = "St Malo - Jersey";
opcodes[9][16][1] = "CNR_SMJS";
opcodes[9][17] = new Array();
opcodes[9][17][0] = "Guernsey - St Malo";
opcodes[9][17][1] = "CNR_GUSM";
opcodes[9][18] = new Array();
opcodes[9][18][0] = "St Malo - Guernsey";
opcodes[9][18][1] = "CNR_SMGU";
opcodes[9][19] = new Array();
opcodes[9][19][0] = "Jersey - Guernsey";
opcodes[9][19][1] = "CNR_JSGU";
opcodes[9][20] = new Array();
opcodes[9][20][0] = "Guernsey - Jersey";
opcodes[9][20][1] = "CNR_GUJS";
opcodes[9][21] = new Array();
opcodes[9][21][0] = "Weymouth - Jersey";
opcodes[9][21][1] = "CNR_WEJS";
opcodes[9][22] = new Array();
opcodes[9][22][0] = "Jersey - Weymouth";
opcodes[9][22][1] = "CNR_JSWE";
opcodes[9][23] = new Array();
opcodes[9][23][0] = "Poole - Jersey";
opcodes[9][23][1] = "CNR_PAJS";
opcodes[9][24] = new Array();
opcodes[9][24][0] = "Jersey - Poole";
opcodes[9][24][1] = "CNR_JSPA";

var opPrices = new Array();
opPrices[0] = new Array();
opPrices[0][0] = "POF";
opPrices[0][1] = "28";
opPrices[0][2] = "36";
opPrices[0][3] = "110";
opPrices[1] = new Array();
opPrices[1][0] = "SFR";
opPrices[1][1] = "29";
opPrices[1][2] = "31";
opPrices[1][3] = "70";
opPrices[2] = new Array();
opPrices[2][0] = "NFL";
opPrices[2][1] = "";
opPrices[2][2] = "32";
opPrices[2][3] = "64";
opPrices[3] = new Array();
opPrices[3][0] = "STL";
opPrices[3][1] = "";
opPrices[3][2] = "113";
opPrices[3][3] = "211";
opPrices[4] = new Array();
opPrices[4][0] = "ETL";
opPrices[4][1] = "54";
opPrices[4][2] = "52";
opPrices[4][3] = "136";
opPrices[5] = new Array();
opPrices[5][0] = "BRI";
opPrices[5][1] = "";
opPrices[5][2] = "142";
opPrices[5][3] = "317";
opPrices[6] = new Array();
opPrices[6][0] = "DFD";
opPrices[6][1] = "";
opPrices[6][2] = "140";
opPrices[6][3] = "340";
opPrices[7] = new Array();
opPrices[7][0] = "SPF";
opPrices[7][1] = "";
opPrices[7][2] = "37";
opPrices[7][3] = "75";
opPrices[8] = new Array();
opPrices[8][0] = "POI";
opPrices[8][1] = "";
opPrices[8][2] = "82";
opPrices[8][3] = "172";
opPrices[9] = new Array();
opPrices[9][0] = "CNR";
opPrices[9][1] = "";
opPrices[9][2] = "132";
opPrices[9][3] = "255";
var leadIn = new Array();





var killer = true;
var loadThis = "";
function loader(){
	if(loadThis != "" && (loadThis == "POF" || loadThis == "STL" || loadThis == "BRI" || loadThis == "SFR" || loadThis == "ETL" || loadThis == "NFL" || loadThis == "POI" || loadThis == "DFD" || loadThis == "SPF" || loadThis == "CNR")){
		if(loadThis == "CNR" && killer == true){
		}else{selecter(document.getElementById(loadThis));}
	}
}
function highlight(that){
	if(that.className != 'op_sel'){
		that.className = 'op_ovr';
	}
}
function lowlight(that){
	if(that.className != 'op_sel'){
		that.className = 'op_out';
	}
}
function selecter(that){
var others = getElementsByClassName(document,'op_sel');
for (var i=0; i<others.length; i++){
	others[i].className = "op_out";
	}
	that.className = 'op_sel';
	var IDER = that.id;
	document.getElementById("selectedop").innerHTML = that.innerHTML;
	displayRoutes(opcodes, IDER);
	//displayPrices(opPrices, IDER);
	//Plus prefill routes and hidden form fields
}
function displayRoutes(opcodes, operator){
var x;
var y;
var z;
document.forms['frm_operator_selection'].outwardOperatorRoute.options.length = 0;
document.forms['frm_operator_selection'].returnOperatorRoute.options.length = 0;
document.forms['frm_operator_selection'].Submit.disabled = false;
document.forms['frm_operator_selection'].returnOperatorRoute.disabled = false;
document.forms['frm_operator_selection'].outwardOperatorRoute.disabled = false;
document.forms['frm_operator_selection'].journeyType.disabled = false;
document.forms['frm_operator_selection'].journeyType.disabled = false;
document.getElementById("frm_operator").value = operator;
	for(x=0; x<opcodes.length; x++){
		for(y=1; y<opcodes[x].length; y++){
			if(opcodes[x][0][0] == operator){
				document.forms['frm_operator_selection'].outwardOperatorRoute.options[y-1] = new Option(opcodes[x][y][0],opcodes[x][y][1]);
				document.forms['frm_operator_selection'].returnOperatorRoute.options[y-1] = new Option(opcodes[x][y][0], opcodes[x][y][1]);
			}
		}
	}
killReturn();
document.forms['frm_operator_selection'].returnOperatorRoute.options[1].selected = true;
// SET DEFAULT ROUTES BELOW
if(operator == "POI"){
	document.forms['frm_operator_selection'].outwardOperatorRoute.options[1].selected = true;
	document.forms['frm_operator_selection'].returnOperatorRoute.options[0].selected = true;
}
if(operator == "BRI"){
	document.forms['frm_operator_selection'].outwardOperatorRoute.options[6].selected = true;
	document.forms['frm_operator_selection'].returnOperatorRoute.options[7].selected = true;
}
if(operator == "DFD"){
	document.forms['frm_operator_selection'].outwardOperatorRoute.options[1].selected = true;
	document.forms['frm_operator_selection'].returnOperatorRoute.options[0].selected = true;
}
if(operator == "CNR"){
	document.forms['frm_operator_selection'].outwardOperatorRoute.options[1].selected = true;
	document.forms['frm_operator_selection'].returnOperatorRoute.options[0].selected = true;
}
}


function getElementsByClassName(node, classname){
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}
function killReturn(){
	if(document.forms['frm_operator_selection'].journeyType.options[1].selected == true){
		document.forms['frm_operator_selection'].returnOperatorRoute.disabled = true;
	}else{
		document.forms['frm_operator_selection'].returnOperatorRoute.disabled = false;
	}
}
function modReturn(){
var w;
w = 0;
var x;
var y;
var z;
var routeOut = document.getElementById("outwardOperatorRoute").value;
var opOut = routeOut.substr(0, 3);
	if(document.getElementById("frm_operator").value == "CDC"){
		if(opOut == "CDC"){
			document.forms['frm_operator_selection'].returnOperatorRoute.options.length = 0;
			for(x=0; x<opcodes.length; x++){
				for(y=1; y<opcodes[x].length; y++){
					if(opcodes[x][0][0] == "CDC"){
						if(opcodes[x][y][1].substr(0, 3) == "CDC"){
							document.forms['frm_operator_selection'].returnOperatorRoute.options[w] = new Option(opcodes[x][y][0], opcodes[x][y][1]);
							w = w + 1;
						}
					}
				}
			}
		}
		if(opOut == "CDI"){
			document.forms['frm_operator_selection'].returnOperatorRoute.options.length = 0;
			for(x=0; x<opcodes.length; x++){
				for(y=1; y<opcodes[x].length; y++){
					if(opcodes[x][0][0] == "CDC"){
						if(opcodes[x][y][1].substr(0, 3) == "CDI"){
							document.forms['frm_operator_selection'].returnOperatorRoute.options[w] = new Option(opcodes[x][y][0], opcodes[x][y][1]);
							w = w + 1;
						}
					}
				}
			}
		}
		if(opOut == "CDR"){
			document.forms['frm_operator_selection'].returnOperatorRoute.options.length = 0;
			for(x=0; x<opcodes.length; x++){
				for(y=1; y<opcodes[x].length; y++){
					if(opcodes[x][0][0] == "CDC"){
						if(opcodes[x][y][1].substr(0, 3) == "CDR"){
							document.forms['frm_operator_selection'].returnOperatorRoute.options[w] = new Option(opcodes[x][y][0], opcodes[x][y][1]);
							w = w + 1;
						}
					}
				}
			}
		}
	}
	if(routeOut == "CDR_WESL" || routeOut == "CDC_PMCH"){
		document.forms['frm_operator_selection'].returnOperatorRoute.options[0].selected = true;
	}else{
		document.forms['frm_operator_selection'].returnOperatorRoute.options[1].selected = true;
	}
}
function validate_selection(){
	var routeIn = document.getElementById("returnOperatorRoute").value;
	var routeOut = document.getElementById("outwardOperatorRoute").value;
	var type = document.forms['frm_operator_selection'].journeyType.value;
	if (routeOut == routeIn && type != "S"){
		alert("THERE HAS BEEN AN ERROR...\n"+
		"---------------------------------------------------------------------------\n\n"+
		"Outward route cannot match your return route .\n\n"+
		"---------------------------------------------------------------------------");
		return false;
	}
	return true;
}