function get_countries_select_box(id) {

    str = "<select name='" + id + "_country' id='" + id + "_country' class='fld'  tabindex='6'>";
    str = str + "<option label='Please select' value=''>Please select</option>";
    str = str + "<option label='Andorra' value='Andorra'>Andorra</option>";
    str = str + "<option label='Australia' value='Australia'>Australia</option>";
	str = str + "<option label='Austria' value='Austria'>Austria</option>";
    str = str + "<option label='Belgium' value='Belgium'>Belgium</option>";
    str = str + "<option label='Bulgaria' value='Bulgaria'>Bulgaria</option>";
    str = str + "<option label='Canada' value='Canada'>Canada</option>";
	str = str + "<option label='Croatia' value='Croatia'>Croatia</option>";
    str = str + "<option label='Czech Republic' value='Czech Republic'>Czech Republic</option>";
    str = str + "<option label='Denmark' value='Denmark'>Denmark</option>";
    str = str + "<option label='Finland' value='Finland'>Finland</option>";
    str = str + "<option label='France' value='France'>France</option>";
    str = str + "<option label='Germany' value='Germany'>Germany</option>";
    str = str + "<option label='Gibraltar' value='Gibraltar'>Gibraltar</option>";
    str = str + "<option label='Greece' value='Greece'>Greece</option>";
    str = str + "<option label='Hungary' value='Hungary'>Hungary</option>";
    str = str + "<option label='Iceland' value='Iceland'>Iceland</option>";
    str = str + "<option label='Ireland' value='Ireland'>Ireland</option>";
	str = str + "<option label='Latvia' value='Latvia'>Latvia</option>";
    str = str + "<option label='Liechtenstein' value='Liechtenstein'>Liechtenstein</option>";
    str = str + "<option label='Lithuania' value='Lithuania'>Lithuania</option>";
    str = str + "<option label='Luxembourg' value='Luxembourg'>Luxembourg</option>";
    str = str + "<option label='Macedonia' value='Macedonia'>Macedonia</option>";
    str = str + "<option label='Moldova' value='Moldova'>Moldova</option>";
    str = str + "<option label='Monaco' value='Monaco'>Monaco</option>";
    str = str + "<option label='Netherlands, The' value='Netherlands, The'>Netherlands, The</option>";
    str = str + "<option label='New Zealand' value='New Zealand'>New Zealand</option>";
	str = str + "<option label='Norway' value='Norway'>Norway</option>";
    str = str + "<option label='Poland' value='Poland'>Poland</option>";
    str = str + "<option label='Portugal' value='Portugal'>Portugal</option>";
    str = str + "<option label='Slovakia' value='Slovakia'>Slovakia</option>";
    str = str + "<option label='Slovenia' value='Slovenia'>Slovenia</option>";
    str = str + "<option label='South Africa' value='South Africa'>South Africa</option>";
	str = str + "<option label='Spain' value='Spain'>Spain</option>";
    str = str + "<option label='Sweden' value='Sweden'>Sweden</option>";
    str = str + "<option label='Switzerland' value='Switzerland'>Switzerland</option>";
    str = str + "<option label='United Kingdom' value='UK' selected='selected'>United Kingdom</option>";
    str = str + "<option label='United States' value='US'>United States</option>";
    str = str + "</select>";

    return str;
}

function displayFields (obj) {

	var id = obj.id;
	var separator = '_';

	arrayOfStrings = id.split(separator);
	len = arrayOfStrings.length;

	var newID = arrayOfStrings[0] + separator + arrayOfStrings[2];
	var idToReplace = arrayOfStrings[0];
	var searchType = arrayOfStrings[2];

	if(len > 3) {
	    searchType = searchType + separator + arrayOfStrings[3];
		newID = newID + separator + arrayOfStrings[3];
	}

	t = getTabIndexStart(arrayOfStrings[0]);

	switch(searchType) {

	case 'location' :
	    str = "<input type='text' name='" + newID + "' id='" + newID + "' value='' size='30' class='fld' tabindex='" + t + "'/>&nbsp;";
		str = str + get_countries_select_box(idToReplace);
		str = str + "<span class='clear'></span><span class='locationHint'>e.g. A town/village/airport</span>";
		break;
	case 'post_code' :
	    str = "<input type='text' name='" + newID + "' id='" + newID + "' value='' size='25' max_length='8'  class='fld' tabindex='" + t + "'/>";
		str = str + "<span class='clear'></span><span class='hint'>e.g. OX1</span>";
		break;
	case 'gps_coordinates' :
	    str = "<label for='latitude' class='lbl' id='lat'>Latitude:&nbsp;</label><div class='gpsWrap'><input type='text' name='" + idToReplace + "_latitude' id='" + idToReplace + "_latitude' value='' size='20' id='lat' class='fld' tabindex='" + t + "'/><span class='clear'></span><span class='hint'>e.g. 53 32 34N</span></div>";
        str = str + "<label for='longitude' class='lbl' id='long'>Longitude:&nbsp;</label><div class='gpsWrap'><input type='text' name='" + idToReplace + "_longitude' id='" + idToReplace + "_longitude' value='' size='20' id='lng' class='fld' tabindex='" + (t + 1) + "'/><span class='clear'></span><span class='hint'>e.g. 002 32 34W</span></div>";
		break;
	case 'grid_reference' :
	    str = "<input type='text' name='" + newID + "' id='" + newID + "' value='' size='25' max_length='10' class='fld' tabindex='" + t + "'/>";
		str = str + "<span class='clear'></span><span class='hint'>e.g. SP123456</span>";
		break;
	default :


	}
	
	document.getElementById(idToReplace).innerHTML = str;

	if(searchType != 'gps_coordinates') setTimeout("document.getElementById('" + newID + "').focus();", 100);
	else setTimeout("document.getElementById('" + idToReplace + '_latitude' + "').focus();", 100);
}

function setFocus(newID) {

}

function reloadButtons(departure_type_value, destination_type_value) {
   document.getElementById('departure_type_' + departure_type_value).checked = 'checked';
   document.getElementById('destination_type_' + destination_type_value).checked = 'checked';
   displayFields(document.getElementById('destination_type_' + destination_type_value));
   displayFields(document.getElementById('departure_type_' + departure_type_value));
   populateFields('destination', destination_type_value);
   populateFields('departure', departure_type_value);

}

function populateFields(route_point, route_point_type) {

	var p = route_point;//i.e. 'destination' or 'departure'
	var v = route_point_type;//e.g. 'post_code', 'gps_coordinates'

	switch(v) {

	case 'gps_coordinates' :
	    document.getElementById(p + '_latitude').value = eval(p + '_latitude');
		document.getElementById(p + '_longitude').value = eval(p + '_longitude');
		break;

	case 'location' :
	    document.getElementById(p + '_' + v).value = eval(p + '_' + v);
		document.getElementById(p + '_country').selectedIndex = eval(p + '_country');
		selectedCountry = eval(p + '_country');
		boxID = p + '_country';
		var index;
		for(i=0; i < document.getElementById(boxID).length; i++) {

			if(document.getElementById(boxID).options[i].value == selectedCountry) {
			    index = i;
				break;
			}
		}
		if(index) document.getElementById(boxID).options[index].selected = true;

    default://post_code, grid_reference & location

		document.getElementById(p + '_' + v).value = eval(p + '_' + v);

	}
}

function getTabIndexStart(route_point) {
    if(route_point == 'departure') return 5;
	else if(route_point == 'destination')  return 10;

	return 5;
}


function getZoom(distance) {

	distance = distance * 2.5;

	zooms = Array(16);
	zooms[1] = 10000;
	zooms[2] = 5000;
	zooms[3] = 2500;
	zooms[4] = 1200;
	zooms[5] = 600;
	zooms[6] = 300;
	zooms[7] = 150;
	zooms[8] = 75;
	zooms[9] = 37.5;
	zooms[10] = 18.885;
	zooms[11] = 10;
	zooms[12] = 5;
	zooms[13] = 2.5;
	zooms[14] = 1.25;
	zooms[15] = 0.625;
	zooms[16] = 0;

	for(i=15; i>0; i--) {
		j=i-1;
		if((distance > zooms[i]) && distance < (zooms[j])) return i;
	}
	return 1;
}

function loadJourneyMap(depLat, depLng, destLat, destLng, distance) {
      if (GBrowserIsCompatible()) {

		var map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng((depLat + destLat)/2, (depLng + destLng)/2), getZoom(distance));

		var baseIcon = new GIcon();
		baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
		baseIcon.iconSize = new GSize(20, 34);
		baseIcon.shadowSize = new GSize(37, 34);
		baseIcon.iconAnchor = new GPoint(9, 34);
		baseIcon.infoWindowAnchor = new GPoint(9, 2);
		baseIcon.infoShadowAnchor = new GPoint(18, 25);


		var icon = new GIcon();
		var letter = String.fromCharCode("A".charCodeAt(0));
  		var icon = new GIcon(baseIcon);
  		icon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";

		var opts = new Object();
		opts.icon = icon;
		var depMarker = new GMarker(new GLatLng(depLat, depLng), opts);
		map.addOverlay(depMarker);

		var icon = new GIcon();
		var letter = String.fromCharCode("B".charCodeAt(0));
  		var icon = new GIcon(baseIcon);
  		icon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
		var opts = new Object();
		opts.icon = icon;

		var destMarker = new GMarker(new GLatLng(destLat, destLng), opts);
		map.addOverlay(destMarker);
		var polyline = new GPolyline([
        new GLatLng(depLat, depLng),
        new GLatLng(destLat, destLng)
        ], "#003366", 4);
        map.addOverlay(polyline);
	  }

}

function loadStartingPointsMap(journeys) {

	  if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(54, -2), getZoom(500));
		for(i=0; i<journeys.length; i++) {

			var depMarker = new GMarker(new GLatLng(journeys[i][0], journeys[i][1]));
		    map.addOverlay(depMarker);
		    var destMarker = new GMarker(new GLatLng(journeys[i][2], journeys[i][3]));
		    map.addOverlay(destMarker);
		    var polyline = new GPolyline([
            new GLatLng(journeys[i][0], journeys[i][1]),
            new GLatLng(journeys[i][2], journeys[i][3])
            ], "#003366", 4);
            map.addOverlay(polyline);

		}

	  }

}

function openWin (domain, target) {
    window.open(domain, target,'scrollbars=no,menubar=no,left=260,top=234,height=300,width=500,resizable=no,toolbar=no,location=no,status=no,titlebar=no');
}

function loadLocationMap(lat, lng) {

    if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(lat, lng), 4);
		var Marker = new GMarker(new GLatLng(lat, lng));
		map.addOverlay(Marker);
    }

}
