var _map = null;
function loadMap(lat, lng, zoom, showPoint)
{
	var latlng = new google.maps.LatLng(lat, lng);     
	var myOptions = {
	        zoom: zoom,       
		center: latlng,       
		overviewMapControl: true,
		overviewMapControlOptions: {
			opened: true
			} ,
		mapTypeId: google.maps.MapTypeId.ROADMAP     
		};     

	var map = new google.maps.Map(document.getElementById("map"), myOptions); 

	if (showPoint)
	{
		var marker = new google.maps.Marker({
		      position: latLng
		});    

		marker.setMap(map);  
	}

	_map = map;		
	return map;
}


var _markers = new Array();
function addPoint(map, lat, lng, iconURL, id, name, onclick)
{
	var latLng = new google.maps.LatLng(lat, lng); 


	var image = new google.maps.MarkerImage(
	  iconURL,
	  new google.maps.Size(40,40),
	  new google.maps.Point(0,0),
	  new google.maps.Point(0,40)
	);

	var shadow = new google.maps.MarkerImage(
	  'http://www.dublinmapped.com/markers/shadow.png',
	  new google.maps.Size(64,40),
	  new google.maps.Point(0,0),
	  new google.maps.Point(0,40)
	);


	var marker = new google.maps.Marker({
		position: latLng,
		icon: image,
		shadow: shadow,
		title: name,
		map: map
	});

	if (onclick != null && onclick.length > 0)
	{
		google.maps.event.addListener(marker, 'click', function() { eval(onclick) } );
	}
	
	_markers[id] = marker;
	
	return marker;
}



function addStn(map, lat, lng, iconURL, id, a, b, c, lbl, positioning, css)
{
	var latLng = new google.maps.LatLng(lat, lng); 


	var image = new google.maps.MarkerImage(
	  iconURL,
	  new google.maps.Size(9,9),
	  new google.maps.Point(0,0),
	  new google.maps.Point(5,5)
	);

//	addPoint(map, lat, lng, iconURL, id);


	var marker = new google.maps.Marker({
		position: latLng,
		icon: image,
		title: name,
		map: map
	});


lbl = '<a href="../?search=' + lbl + '&t=' + a + '&v=' + b + '&p=' + c + '">' + lbl + '</a>'
	
	var label = addLabel(map, lat, lng, lbl, positioning, css);

//	return marker;
	return label;
}

function loadLuasMap(line)
{
	document.getElementById('hdnLL').value = line;
	document.getElementById('frmLuas').submit();
}

function addLabel(map, lat, lng, txt, positioning, css)
{
		var latLng = new google.maps.LatLng(lat, lng); 
//		var labelText = txt;

		var div = document.createElement("div");
		div.innerHTML = txt;
		div.className = css;

		var offset = new google.maps.Size(0, 0);

		if (positioning == TOP_LEFT)
		{
			offset = new google.maps.Size(0, 20);
		}	

		var myOptions = {
			 content: div
			,boxStyle: {
			   border: "1px solid black"
			  ,textAlign: "center"
			  ,fontSize: "8pt"
			  ,backgroundColor: "white"
			 }
			,disableAutoPan: true
			,pixelOffset: offset
			,position: latLng
			,closeBoxURL: ""
			,isHidden: false
			,pane: "mapPane"
			,enableEventPropagation: true
			,alignBottom: true
			,zorder: 1
		};

		var ibLabel = new InfoBox(myOptions);
		ibLabel.open(map);

		return ibLabel;
}

function highlightMarker(i, hl)
{
	if (hl)
	{
		var iconURL = _markers[i].getIcon().image;
		_markers[i].setImage(iconURL.replace('_m', '_l'));
	}
	else
	{
		var iconURL = _markers[i].getIcon().image;
		_markers[i].setImage(iconURL.replace('_l', '_m'));
	}
}

function getMap(t, v, p)
{

	document.getElementById('hdnT').value = t;
	document.getElementById('hdnV').value = v;
	document.getElementById('hdnP').value = p;
	document.getElementById('frmSearch').submit();
	
	return false;
}

function getLuasMap(t, v, p)
{
	document.getElementById('hdnT').value = t;
	document.getElementById('hdnV').value = v;
	document.getElementById('hdnP').value = p;
	document.getElementById('frmLuas').submit();
	
	return false;
}

function getMapString(t, s)
{
	document.getElementById('hdnT').value = t;
	document.getElementById('hdnS').value = s;
	document.getElementById('frmSearch').submit();
	
	return false;
}

var _addedToMap = '|';

function addToMap(lat, lng, i, colour, name)
{
	if (_addedToMap.indexOf('|' + colour + i + '|') == -1)
	{

		var latLng = new google.maps.LatLng(lat, lng); 


		var folder = 'http://www.designbyac.co.uk/markers/' + colour + '/'
		var iconURL = folder + 'blank.png';
		
		if (i >= 1 && i <= 99)
		{
			iconURL = folder + 'marker' + i + '.png';
		}
	
		var image = new google.maps.MarkerImage(
		  iconURL,
		  new google.maps.Size(20,34),
		  new google.maps.Point(0,0),
		  new google.maps.Point(10,34)
		);


		var marker = new google.maps.Marker({
	  	  position: latLng,
		  icon: image,
		  title: name,
		  map: _map
		});

		
		_addedToMap += colour + i + '|';
	}
}

function addToMapOld(lat, lng, i, colour, name)
{
	if (_addedToMap.indexOf('|' + colour + i + '|') == -1)
	{
		var point = new GLatLng(lat, lng); 
		var theIcon = new GIcon();
		
		var folder = 'http://www.dublinmapped.com/markers/' + colour + '/'
		
		theIcon.image = folder + 'marker' + i + '.png';
	//	theIcon.shadow = 'http://www.dublinmapped.com/map/markers/shadow.png';
		theIcon.iconSize = new GSize(20, 34);
	//	theIcon.shadowSize = new GSize(40, 40);
		theIcon.iconAnchor = new GPoint(10, 34);
		theIcon.infoWindowAnchor = new GPoint(5, 1);
	
		var marker = new GMarker(point, {icon: theIcon, title: name} );
	
		_map.addOverlay(marker); 
		
		_addedToMap += colour + i + '|';
	}
}

var _markers13 = new Array();
var _markers14 = new Array();

function showHideMarkers()
{
	for(x in _markers13)
	{
		if (_map.getZoom() >= 13)
		{
			_markers13[x].show();
		}
		else
		{
			_markers13[x].hide();
		}
	}

	for(x in _markers14)
	{
		if (_map.getZoom() >= 14)
		{
			_markers14[x].show();
		}
		else
		{
			_markers14[x].hide();
		}
	}
}

function addLine(colour, lat1, lng1, lat2, lng2)
{
	var xy = [
		new google.maps.LatLng(lat1, lng1)
	,	new google.maps.LatLng(lat2, lng2)
	];  

	var line = new google.maps.Polyline({    
		path: xy
	,	strokeColor: colour
	,	strokeOpacity: 1.0    
	,	strokeWeight: 2  
	});  

	line.setMap(_map);
}

function loadLuasLines()
{
	var map = loadMap(53.319289,-6.315219,13,false);  

	google.maps.event.addListener(map, 'zoom_changed', function() 
	{    
		showHideMarkers();
	});

	loadLuasRedLine();
	loadLuasGreenLine();
}

function loadLuasRedLine()
{
	var css = 'stationlabelred';  

	if (_map == null)
	{
		var map = loadMap(53.319289,-6.315219,13,false);  

		google.maps.event.addListener(map, 'zoom_changed', function() 
		{    
			showHideMarkers();
		});

	}

	var iconURL = 'http://www.designbyac.co.uk/markers/stn_r.png';


 	addStn(_map,53.34835,-6.229258,iconURL,22,14,2,5, 'The Point',BOTTOM_LEFT,css);
	_markers13.push(addStn(_map,53.348822,-6.237147,iconURL,22,14,2,5, 'Spencer Dock',TOP_LEFT,css));
 	_markers13.push(addStn(_map,53.349247,-6.243394,iconURL,22,14,2,5, 'Mayor Square - NCI',BOTTOM_LEFT,css));

 	_markers13.push(addStn(_map,53.349528,-6.247575,iconURL,22,14,2,5, 'George\'s Dock',TOP_LEFT,css));
	_markers13.push(addStn(_map,53.350757,-6.250239, iconURL,7,14,23,5, 'Connolly', BOTTOM_LEFT, css));

	_markers13.push(addStn(_map,53.349854,-6.252732, iconURL,6,14,22,5, 'Bus&#225;ras', TOP_LEFT, css));

	_markers13.push(addStn(_map,53.348602,-6.258265, iconURL,5,14,21,5, 'Abbey St', TOP_LEFT, css));
	_markers13.push(addStn(_map,53.347711,-6.264926, iconURL,4,14,20,5, 'Jervis', TOP_LEFT, css));
	_markers13.push(addStn(_map,53.346814,-6.273494, iconURL,3,14,19,5, '4 Courts', TOP_LEFT, css));
	_markers13.push(addStn(_map,53.347201,-6.278494, iconURL,2,14,18,5, 'Smithfield', TOP_RIGHT, css));
	_markers13.push(addStn(_map,53.347903,-6.28785, iconURL,1,14,17,5, 'Museum', BOTTOM_RIGHT, css));
	_markers13.push(addStn(_map,53.346573,-6.291916, iconURL,8,14,16,5, 'Heuston', TOP_RIGHT, css));
	_markers13.push(addStn(_map,53.341845,-6.29365, iconURL,9,14,15,5, 'James&#39;s', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.338422,-6.292746, iconURL,10,14,14,5, 'Fatima', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.337887,-6.297492, iconURL,11,14,13,5, 'Rialto', TOP_LEFT, css));
	_markers13.push(addStn(_map,53.336613,-6.307123, iconURL,12,14,12,5, 'Suir Rd', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.33588,-6.313531, iconURL,13,14,11,5, 'Goldenbridge', TOP_LEFT, css));
	_markers13.push(addStn(_map,53.335342,-6.318124, iconURL,14,14,10,5, 'Drimnagh', TOP_RIGHT, css));
	_markers13.push(addStn(_map,53.334237,-6.327645, iconURL,15,14,9,5, 'Blackhorse', TOP_LEFT, css));
	_markers13.push(addStn(_map,53.329961,-6.332785, iconURL,16,14,8,5, 'Bluebell', TOP_LEFT, css));
	_markers13.push(addStn(_map,53.326545,-6.343816, iconURL,17,14,7,5, 'Kylemore', TOP_LEFT, css));
	_markers13.push(addStn(_map,53.316783,-6.370427, iconURL,18,14,6,5, 'Red Cow', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.303816,-6.364172, iconURL,19,14,5,5, 'Kingswood', BOTTOM_LEFT, css));

	addStn(_map,53.299959,-6.373995, iconURL,20,14,4,5, 'Belgard', TOP_LEFT, css);
	_markers13.push(addStn(_map,53.295486,-6.386199, iconURL,21,14,3,5, 'Cookstown', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.287821,-6.376421, iconURL,22,14,2,5, 'Hospital', TOP_LEFT, css));

	addStn(_map,53.288522,-6.365656, iconURL,23,14,1,5, 'Tallaght', BOTTOM_LEFT, css);

 	_markers13.push(addStn(_map,53.293519,-6.395554, iconURL,22,14,2,5, 'Fettercairn',TOP_LEFT,css));
 	_markers13.push(addStn(_map,53.290982,-6.406849, iconURL,22,14,2,5, 'Cheeverstown',TOP_LEFT,css));
 	_markers13.push(addStn(_map,53.287833,-6.418915, iconURL,22,14,2,5, 'Citywest Campus',TOP_LEFT,css));
 	_markers13.push(addStn(_map,53.284251,-6.424602, iconURL,22,14,2,5, 'Fortunestown',TOP_LEFT,css));
 	addStn(_map,53.284679,-6.43776255, iconURL,22,14,2,5, 'Saggart',BOTTOM_LEFT,css);


	showHideMarkers();

	var colour = '#FF0000';

addLine(colour,53.34835,-6.229258,53.348822,-6.237147);
addLine(colour,53.348822,-6.237147,53.349247,-6.243394);
addLine(colour,53.349528,-6.247575,53.349854,-6.252732);

addLine(colour,53.349247,-6.243394,53.349528,-6.247575);

addLine(colour,53.350757,-6.250239,53.349854,-6.252732);
addLine(colour,53.349854,-6.252732,53.348602,-6.258265);
addLine(colour,53.348602,-6.258265,53.347711,-6.264926);
addLine(colour,53.347711,-6.264926,53.346814,-6.273494);
addLine(colour,53.346814,-6.273494,53.347201,-6.278494);
addLine(colour,53.347201,-6.278494,53.347903,-6.28785);
addLine(colour,53.347903,-6.28785,53.346573,-6.291916);
addLine(colour,53.346573,-6.291916,53.341845,-6.29365);
addLine(colour,53.341845,-6.29365,53.338422,-6.292746);
addLine(colour,53.338422,-6.292746,53.337887,-6.297492);
addLine(colour,53.337887,-6.297492,53.336613,-6.307123);
addLine(colour,53.336613,-6.307123,53.33588,-6.313531);
addLine(colour,53.33588,-6.313531,53.335342,-6.318124);
addLine(colour,53.335342,-6.318124,53.334237,-6.327645);
addLine(colour,53.334237,-6.327645,53.329961,-6.332785);
addLine(colour,53.329961,-6.332785,53.326545,-6.343816);
addLine(colour,53.326545,-6.343816,53.316783,-6.370427);
addLine(colour,53.316783,-6.370427,53.303816,-6.364172);
addLine(colour,53.303816,-6.364172,53.299959,-6.373995);
addLine(colour,53.299959,-6.373995,53.295486,-6.386199);
addLine(colour,53.295486,-6.386199,53.287821,-6.376421);

addLine(colour,53.287821,-6.376421,53.288522,-6.365656);

addLine(colour,53.299959,-6.373995,53.293519,-6.395554);
addLine(colour,53.293519,-6.395554,53.290982,-6.406849);
addLine(colour,53.290982,-6.406849,53.287833,-6.418915);
addLine(colour,53.287833,-6.418915,53.284251,-6.424602);
addLine(colour,53.284251,-6.424602,53.284679,-6.43776255);

}

function loadLuasGreenLine()
{
	var css = 'stationlabelgreen';  

	if (_map == null)
	{
		loadMap(53.308384,-6.2339235,13,false);  

		google.maps.event.addListener(map, 'zoom_changed', function() 
		{    
			showHideMarkers();
		});
	}

	var iconURL = 'http://www.designbyac.co.uk/markers/stn_g.png';

	addStn(_map,53.339199,-6.261439, iconURL,24,14,13,6,'St. Stephen&#39;s', BOTTOM_RIGHT, css);

	_markers13.push(addStn(_map,53.333485,-6.262964, iconURL,25,14,12,6,'Harcourt', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.330719,-6.25896, iconURL,26,14,11,6,'Charlemont', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.326383,-6.256403, iconURL,27,14,10,6,'Ranelagh', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.320787,-6.254855, iconURL,28,14,9,6,'Beechwood', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.316433,-6.253655, iconURL,29,14,8,6,'Cowper', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.310247,-6.251969, iconURL,30,14,7,6,'Milltown', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.301514,-6.250892, iconURL,31,14,6,6,'Windy Arbour', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.292306,-6.2453, iconURL,32,14,5,6,'Dundrum', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.285975,-6.236903, iconURL,33,14,4,6,'Balally', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.28295,-6.223989, iconURL,34,14,3,6,'Kilmacud', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.279264,-6.210122, iconURL,35,14,2,6,'Stillorgan', BOTTOM_LEFT, css));
	_markers13.push(addStn(_map,53.277569,-6.204883, iconURL,36,14,1,6,'Sandyford', BOTTOM_LEFT, css));
 	_markers13.push(addStn(_map,53.27025643,-6.203627586, iconURL,22,14,2,5, 'Central Park',BOTTOM_LEFT,css));
 	_markers13.push(addStn(_map,53.266336,-6.209942, iconURL,22,14,2,5, 'Glencairn',BOTTOM_LEFT,css));
 	_markers13.push(addStn(_map,53.261164,-6.206022, iconURL,22,14,2,5, 'The Gallops',BOTTOM_LEFT,css));
 	_markers13.push(addStn(_map,53.258247,-6.198361, iconURL,22,14,2,5, 'Leopardstown Valley',BOTTOM_LEFT,css));
 	_markers13.push(addStn(_map,53.255047,-6.184475, iconURL,22,14,2,5, 'Ballyogan Wood',BOTTOM_LEFT,css));
 	_markers13.push(addStn(_map,53.254033,-6.169908, iconURL,22,14,2,5, 'Carrickmines',BOTTOM_LEFT,css));
 	_markers13.push(addStn(_map,53.250606,-6.155006, iconURL,22,14,2,5, 'Laughanstown',BOTTOM_LEFT,css));
 	_markers13.push(addStn(_map,53.245333,-6.145853, iconURL,22,14,2,5, 'Cherrywood',BOTTOM_LEFT,css));
 	
	addStn(_map,53.242075,-6.142886, iconURL,22,14,2,5, 'Brides Glen',BOTTOM_LEFT,css);

	showHideMarkers();

	var colour = '#22B14C'

addLine(colour,53.339199,-6.261439,53.333485,-6.262964);
addLine(colour,53.333485,-6.262964,53.330719,-6.25896);
addLine(colour,53.330719,-6.25896,53.326383,-6.256403);
addLine(colour,53.326383,-6.256403,53.320787,-6.254855);
addLine(colour,53.320787,-6.254855,53.316433,-6.253655);
addLine(colour,53.316433,-6.253655,53.310247,-6.251969);
addLine(colour,53.310247,-6.251969,53.301514,-6.250892);
addLine(colour,53.301514,-6.250892,53.292306,-6.2453);
addLine(colour,53.292306,-6.2453,53.285975,-6.236903);
addLine(colour,53.285975,-6.236903,53.28295,-6.223989);
addLine(colour,53.28295,-6.223989,53.279264,-6.210122);
addLine(colour,53.279264,-6.210122,53.277569,-6.204883);
addLine(colour,53.277569,-6.204883,53.27025643,-6.203627586);
addLine(colour,53.27025643,-6.203627586,53.266336,-6.209942);
addLine(colour,53.266336,-6.209942,53.261164,-6.206022);
addLine(colour,53.261164,-6.206022,53.258247,-6.198361);
addLine(colour,53.258247,-6.198361,53.255047,-6.184475);
addLine(colour,53.255047,-6.184475,53.254033,-6.169908);
addLine(colour,53.254033,-6.169908,53.250606,-6.155006);
addLine(colour,53.250606,-6.155006,53.245333,-6.145853);
addLine(colour,53.245333,-6.145853,53.242075,-6.142886);

}






function loadMapOld(lat, lng, zoom, showPoint)
{
	if (GBrowserIsCompatible()) 
	{
		var map = new GMap2(document.getElementById('map')); 
		map.addControl(new GSmallMapControl()); 
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(lat, lng), zoom); 
		
		if (showPoint)
		{
			var point = new GLatLng(lat, lng); 
			map.addOverlay(new GMarker(point)); 
		}
		
		var overview = new GOverviewMapControl(); 
		map.addControl(overview); 
 		ovmap=overview.getOverviewMap(); 

//		GEvent.addListener(ovmap, "zoomend", function() { 
  //      	ovmap.setZoom(10); 
    //  	}); 
		
		_map = map;		
		return map;
	}
	return null;
}

function addPointOld(map, lat, lng, iconURL, id)
{
	var point = new GLatLng(lat, lng); 
	var icon = new GIcon();
	
	icon.image = iconURL;
	icon.shadow = 'http://www.dublinmapped.com/map/markers/shadow.png';
	icon.iconSize = new GSize(40, 40);
	icon.shadowSize = new GSize(40, 40);
	icon.iconAnchor = new GPoint(0, 40);
	icon.infoWindowAnchor = new GPoint(5, 1);

	var marker = new GMarker(point, icon);
	
	map.addOverlay(marker); 
	_markers[id] = marker;
	
	return marker;
}

function addStnOld(map, lat, lng, iconURL, id, a, b, c, lbl, positioning, css)
{

	var point = new GLatLng(lat, lng); 
	var icon = new GIcon();
	
	icon.image = iconURL;
	icon.iconSize = new GSize(9, 9);
	icon.iconAnchor = new GPoint(5, 5);
	icon.infoWindowAnchor = new GPoint(5, 1);

	var marker = new GMarker(point, icon);

//	Removed - link should take care of clicking now	
//	GEvent.addListener(marker, "click", function() { getLuasMap(a,b,c); } ); 
	
	map.addOverlay(marker); 
	_markers[id] = marker;

lbl = '<a href="../?search=' + lbl + '&t=' + a + '&v=' + b + '&p=' + c + '">' + lbl + '</a>'
	
	addLabel(map, lat, lng, lbl, positioning, css);
	return marker;
}

