$(document).ready(function()
{
	if($("div#storeMap").length > 0)
	{
		$("div#storeMap a").css("display","none");
		getData();
	}
});

function getData()
{
	var root = deriveRoot();
	
	$.getJSON(root+"map/",
	function(data)
	{
		//make map
		var map = makeMap(parseFloat(data.initialLat), parseFloat(data.initialLng+0), parseFloat(data.zoom), data);
		
		if(data.listings != undefined)
		{
			$.each(data.listings, function(i,item)
			{
				var point = new GLatLng(parseFloat(item.lat), parseFloat(item.lng));
				map.addOverlay(createMarker(point, item, map));
			});
		}
	});
}

function makeMap(lat, lng, zoom, item)
{
	if($("div#storeMap").googleMap(lat, lng, zoom))
	{
		var root = deriveRoot();
		
		var lat = parseFloat(lat);
		var lng = parseFloat(lng);
		
		//additional map configuration;
		var typeControl = new GMapTypeControl();
		var zoomControl = new GLargeMapControl();
		$.googleMap.maps["storeMap"].setMapType(G_NORMAL_MAP);
		
		return $.googleMap.maps["storeMap"];
	}
	else
	{
		$("div.storeMap a").css("display","block");
	}
}

function createMarker(point, item, map)
{
	var root 	= deriveRoot();
	var marker 	= new GMarker(point);
	
	if(item.online == 'true')
	{
		var data = '<div>';
		data	+= '<h4><a rel="external" href="'+item.url+'" title="'+item.name+'">'+item.name+'</a></h4>';
		data 	+= '<h5>'+item.url+'</h5>';
		if(item.telephone != '' && item.telephone != null)
		{
			data	+= '<h5>Telephone: '+item.telephone+'</h5>';
		}
		data 	+= '<p>'+item.description+'</p><br />';
		data	+= '</div>';
	}
	else
	{
		var data = '<div>';
		data	+= '<h4><a rel="external" href="'+item.url+'" title="'+item.name+'">'+item.name+'</a></h4>';
		data 	+= '<h5>'+item.address_1+', ';
		if(item.address_2 != '')
		{
			data	+= item.address_2+', ';
		}
		if(item.address_3 != '')
		{
			data	+= item.address_3+', ';
		}
		data	+= item.town+', '+item.county+', '+item.post_code+'</h5>';
		if(item.telephone != '' && item.telephone != null)
		{
			data	+= '<h5>Telephone: '+item.telephone+'</h5>';
		}
		data 	+= '<p>'+item.description+'</p><br />';
		data	+= '</div>';
	}
	
	GEvent.addListener(marker, "mouseover", function()
	{
		marker.openInfoWindowHtml(data,
		{
			maxWidth	: 160
		});
	});
	
	return marker;
}

function deriveRoot()
{
  var root = window.location.protocol+'//'+window.location.hostname+'/';
  
  if ( ( pos = window.location.pathname.search('public_html') ) != -1 )
  {
    root += window.location.pathname.substring(1,pos+12)+'dinosolesdealer.com/';
  }
  
  if ( window.location.pathname.search('demo') != -1 )
  {
    root += 'demo/';
  }
  
  return root;
}