/*

################################################################################
# Application: Seigereyes - CMD Engine
# Developed By: Seigereyes.com
# Copyright (C) Seigereyes.com 2008
# 'All Rights Reserved'
# License: See license-seigereyes
################################################################################

*/

function addslashes(str) {
str=str.replace(/\'/g,'\\\'');
str=str.replace(/\"/g,'\\"');
str=str.replace(/\\/g,'\\\\');
str=str.replace(/\0/g,'\\0');
return str;
}

function stripslashes(str) {
str=str.replace(/\\'/g,'\'');
str=str.replace(/\\"/g,'"');
str=str.replace(/\\\\/g,'\\');
str=str.replace(/\\0/g,'\0');
return str;
}

var map;

if ( ISMAP == 1 )
{
	if ( SELECTEDSTATE == 'NSW' )
	{
		var centerLatitude = -33.891;
		var centerLongitude = 151.197;
		var startZoom = 13;
	}
	else if ( SELECTEDSTATE == 'VIC' )
	{
		var centerLatitude = -37.81656469809118;
		var centerLongitude = 144.94571685791016;
		var startZoom = 13;
	}
	else if ( SELECTEDSTATE == 'QLD' )
	{
		var centerLatitude = -27.47172437423023;
		var centerLongitude = 153.02753448486328;
		var startZoom = 11;
	}
	else if ( SELECTEDSTATE == 'NT' )
	{
		var centerLatitude = -12.43054166798565;
		var centerLongitude = 130.89454650878906;
		var startZoom = 11;
	}
	else if ( SELECTEDSTATE == 'SA' )
	{
		var centerLatitude = -34.93829649628439;
		var centerLongitude = 138.62892150878906;
		var startZoom = 11;
	}
	else if ( SELECTEDSTATE == 'TAS' )
	{
		var centerLatitude = -42.87344808444722;
		var centerLongitude = 147.34794616699220;
		var startZoom = 11;
	}
	else if ( SELECTEDSTATE == 'ACT' )
	{
		var centerLatitude = -35.28430323585091;
		var centerLongitude = 149.16137695312500;
		var startZoom = 11;
	}
	else if ( SELECTEDSTATE == 'WA' )
	{
		var centerLatitude = -31.96789141545785;
		var centerLongitude = 115.90232849121094;
		var startZoom = 11;
	}
	else if ( SELECTEDSTATE == 'GC' )
	{
		var centerLatitude = -28.06257949249428;
		var centerLongitude = 153.43710780143738;
		var startZoom = 11;
	}
	else if ( SELECTEDSTATE == 'NQ' )
	{ 
		var centerLatitude = -16.92413613731966;
		var centerLongitude = 145.76831817626953;
		var startZoom = 11;
	}
	else
	{
		var centerLatitude = -33.891;
		var centerLongitude = 151.197;
		var startZoom = 13;
	}
}

if ( ISPARK == 1 )
{
	var centerLatitude = centerLatitude;
	var centerLongitude = centerLongitude;
	var startZoom = startZoom;
}

var deselectCurrent = function() {};

function initializePoint(pointData)
{
	var iconBlue = new GIcon();
	iconBlue.image = pointData.MARKER_ICON;
	iconBlue.iconSize = new GSize(20, 34);
	iconBlue.iconAnchor = new GPoint(9, 34);
	iconBlue.infoWindowAnchor = new GPoint(9, 2);

	var customIcons = [];
	customIcons["0"] = iconBlue;

	bubble = new EBubble(map, "",new GSize(0,0), new GSize(250,250), new GPoint(15,-15), new GPoint(0,0));
	var point = new GLatLng(pointData.latitude, pointData.longitude);
	var marker = new GMarker(point,customIcons[0]);
	var listItem = document.createElement('li');
	var listItemLink = listItem.appendChild(document.createElement('a'));
	var visible = false;

	if (( pointData.is_parking == 1 ) && ( pointData.company_status_id == 6 ))
	{
		var html = "<table border=0 width=85% style='text-align:left;color: black;font-size: 12px;background-color: white;margin: 0;padding: 2px 4px;border: 1px solid black;'><tr valign=top><td>" + stripslashes(pointData.rollover_address) + ", " + stripslashes(pointData.rollover_suburb) +"<br/>" + pointData.rollover_parking_spaces +" spaces<br/><font color=blue>" + stripslashes(pointData.rollover_info) +"</font><br/><font color=red>" + stripslashes(pointData.rollover_company_name) +"</td></tr></table>";
		listItemLink.href = "#";
		listItemLink.innerHTML = "<span>" + stripslashes(pointData.rollover_address) + " </span><span><font color='red' size='1'>" + stripslashes(pointData.rollover_company_name) + "</font></span>";
	}
	else
	{
		if ( ! pointData.rollover_tollfree )
		{
			pointDataPhone = pointData.rollover_phone;
		}
		else
		{
			pointDataPhone = pointData.rollover_tollfree;
		}

		if ( ! pointData.rollover_image )
		{
			var html = "<table border=0 width=85% style='text-align:left;color: black;font-size: 12px;background-color: white;margin: 0;padding: 2px 4px;border: 1px solid black;'><tr valign=top><td align=left nowrap><font color=red>" + stripslashes(pointData.rollover_company_name) +"</font><br/>" + stripslashes(pointData.rollover_address) + "<br/>" + stripslashes(pointData.rollover_suburb) + "<br/>" + pointDataPhone + "<br/></td><td width=5>&nbsp;</td><td align=right><img src='http://" + SERVER_NAME + "/jemaps/logos/misc/default_rollover.gif' border='0'></td></tr><tr valign=top><td align=left colspan=3><font color=blue>" + stripslashes(pointData.rollover_info) +"</font></td></tr></table>";
		}
		else
		{
			var html = "<table border=0 width=85% style='text-align:left;color: black;font-size: 12px;background-color: white;margin: 0;padding: 2px 4px;border: 1px solid black;'><tr valign=top><td align=left nowrap><font color=red>" + stripslashes(pointData.rollover_company_name) +"</font><br/>" + stripslashes(pointData.rollover_address) + "<br/>" + stripslashes(pointData.rollover_suburb) + "<br/>" + pointDataPhone + "<br/></td><td width=5>&nbsp;</td><td align=right><img src='http://" + SERVER_NAME + "/jemaps/" + pointData.rollover_image + "' border='0'></td></tr><tr valign=top><td align=left colspan=3><font color=blue>" + stripslashes(pointData.rollover_info) +"</font></td></tr></table>";
		}

		//listItemLink.href = "#";
		//listItemLink.innerHTML = "<span>"+stripslashes(pointData.rollover_company_name)+"</span>";
		//listItemLink.setAttribute("onclick", "window.open('http://" + SERVER_NAME + "/popup.php?POPID="+pointData.accn_id+"','newwindow','height=800px,width=800px,toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no,directories=no,status=no');");

		listItemLink.href = "#";
		listItemLink.innerHTML = "<span>"+stripslashes(pointData.rollover_company_name)+"</span>";
		listItemLink.onclick = function() {window.open('http://' + SERVER_NAME + '/popup.php?POPID=' + pointData.accn_id + '','newwindow','height=800px,width=800px,toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no,directories=no,status=no');return false;}
	}

	var focusPoint = function()
	{
		deselectCurrent();
		listItem.className = 'current';
		deselectCurrent = function() { listItem.className = ''; }
		bubble.openOnMarker(marker,html);
		//map.panTo(point);
		return false;
	}

	GEvent.addListener(marker, 'mouseover', focusPoint);
	listItemLink.onmouseover = focusPoint;

	pointData.show = function()
	{
		if (!visible)
		{
			if ( doPOPUP == 0 )
			{
				document.getElementById('sidebar-list').appendChild(listItem);
			}
			map.addOverlay(marker);
			visible = true;
		}
	}
	pointData.hide = function()
	{
		if (visible)
		{
			if ( doPOPUP == 0 )
			{
				document.getElementById('sidebar-list').removeChild(listItem);
			}
			map.removeOverlay(marker);
			visible = false;
		}
	}

	// Enable the popup event
	if ( pointData.rollover_map_onclick == 1 )
	{
		GEvent.addListener(marker, "click", function()
		{
			window.open("http://" + SERVER_NAME + "/popup.php?POPID="+pointData.accn_id+"", 'newwindow', config='height=800px, width=800px, toolbar=no, menubar=no, scrollbars=yes, resizable=no, location=no, directories=no, status=no');
		});
	}

	pointData.show();
}

function initializeSortTab(type,markers,firstRun)
{
	var listItem = document.createElement('li');
	var listItemLink = listItem.appendChild(document.createElement('a'));
	listItemLink.href = "#";
	listItemLink.innerHTML = type;

	if ( firstRun == 1 )
	{
		for(id in markers)
		{
			if (markers[id].type == firstRun)
				markers[id].show();
			else
				markers[id].hide();
		}
	}

	listItemLink.onclick = function()
	{
		for(id in markers)
		{
			if (markers[id].type == type)
				markers[id].show();
			else
				markers[id].hide();
		}
		return false;
	}
	document.getElementById('filters').appendChild(listItem);
}

function updateMarkers(firstRun)
{
	//remove the existing points
	map.clearOverlays();

	if ( doPOPUP == 0 )
	{
		// Remove the old li members
		length_sidebar_list = document.getElementById("sidebar-list").getElementsByTagName("li").length
		for(i=0;i<length_sidebar_list;i++)
		{
			var remove_sidebar_list = document.getElementById("sidebar-list");
			remove_sidebar_list.removeChild(remove_sidebar_list.lastChild);
		}

		length_filters = document.getElementById("filters").getElementsByTagName("li").length
		for(i=0;i<length_filters;i++)
		{
			var remove_filters = document.getElementById("filters");
			remove_filters.removeChild(remove_filters.lastChild);
		}
	}

	var type;
	var allTypes = [];

	//create the boundary for the data
	var bounds = map.getBounds();
	var southWest = bounds.getSouthWest();
	var northEast = bounds.getNorthEast();
	var getVars = 'ne=' + northEast.toUrlValue() + '&sw=' + southWest.toUrlValue();
	//GLog.write("SERVER_NAME: " + SERVER_NAME + "");
	//GLog.writeUrl('http://'+SERVER_NAME+'/jemaps/jemaps_map_data.php?doPOPUP='+doPOPUP+'&POPID='+POPID+'&ISPARK='+ISPARK+'&ISMAP='+ISMAP+'&ISPROD='+ISPROD+'&PTYPE='+PTYPE+'&ID='+ID+'&'+getVars);
	var request = GXmlHttp.create();
	request.open('GET', 'http://'+SERVER_NAME+'/jemaps/jemaps_map_data.php?doPOPUP='+doPOPUP+'&POPID='+POPID+'&ISPARK='+ISPARK+'&ISMAP='+ISMAP+'&ISPROD='+ISPROD+'&PTYPE='+PTYPE+'&ID='+ID+'&'+getVars, true);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4)
		{
			var jscript = request.responseText;
			var markers;
			eval(jscript);

			//create each point from the list
			for (id in markers)
			{
				initializePoint(markers[id]);
				allTypes[markers[id].type] = true;
			}

			if ( doPOPUP == 0 )
			{
				for (type in allTypes)
				{
					initializeSortTab(type,markers,firstRun);
				}
			}
		}
	}

	request.send(null);
}

function init()
{
	map = new GMap2(document.getElementById("map"));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GOverviewMapControl());
	map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);

	var firstRun = 1;

	updateMarkers(firstRun);

	// Collect Lat Lng Move
	var lastPoint;
	GEvent.addListener(map, 'mousemove', function(point)
	{
		var latLngStrF = point.lat().toFixed(14) + ', ' + point.lng().toFixed(14) ;
		document.getElementById("latlng_precision").innerHTML = latLngStrF.toString();
		lastPoint = point;
		var mapCenter = map.getCenter();
		document.getElementById("latlng_move_center").innerHTML = mapCenter;
	});

	// Collect Lat Lng Click
	GEvent.addListener(map, 'click', function()
	{
		var latLngStrF = lastPoint.lat().toFixed(14) + ', ' + lastPoint.lng().toFixed(14) ;
		document.getElementById("latlng_click").innerHTML = latLngStrF.toString();
		//var mapCenter = map.getCenter();
		//document.getElementById("latlng_click_center").innerHTML = mapCenter;
	});

	GEvent.addListener(map,'moveend',function() {
		updateMarkers(firstRun);
	});

	if ( doPOPUP == 1 )
	{
		var myPano;

		var setCoordinatesLatLng = new GLatLng(centerLatitude,centerLongitude);

		myPOV = {yaw:stv_yaw,pitch:stv_pitch};
		svOpts = {latlng:setCoordinatesLatLng, pov:myPOV};

		var myPano = new GStreetviewPanorama(document.getElementById("pano"), svOpts);
		GEvent.addListener(myPano, "error", handleNoFlash);

		function handleNoFlash(errorCode)
		{
			if (errorCode == FLASH_UNAVAILABLE)
			{
				alert("Error: Flash doesn't appear to be supported by your browser");
				return;
			}
		}
	}
}

window.onload = init;
window.onunload = GUnload;

