var map;
var geocoder;

var iconBlue = new GIcon(); 
iconBlue.image = '/indieretail/dot.png';
// iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
iconBlue.iconSize = new GSize(20,20);
iconBlue.shadowSize = new GSize(22, 20);
iconBlue.iconAnchor = new GPoint(6, 20);
iconBlue.infoWindowAnchor = new GPoint(5, 1);

var iconRed = new GIcon(); 
iconRed.image = '/indieretail/dot.png';
//iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
iconRed.iconSize = new GSize(20,20);
iconRed.shadowSize = new GSize(22, 20);
iconRed.iconAnchor = new GPoint(6, 20);
iconRed.infoWindowAnchor = new GPoint(5, 1);

var customIcons = [];
customIcons["restaurant"] = iconBlue;
customIcons["bar"] = iconRed;

function load() {
	if (GBrowserIsCompatible()) {
	geocoder = new GClientGeocoder();
	map = new GMap2(document.getElementById("map"));
	
	var customUI = map.getDefaultUI();
	customUI.controls.scalecontrol = false;
	map.setUI(customUI);

	if (google.loader.ClientLocation){
		var center = new google.maps.LatLng(
			google.loader.ClientLocation.latitude,
			google.loader.ClientLocation.longitude
		);
		// map.setCenter(center);
		map.setCenter(new GLatLng(40, -50), 2);
		//map.setZoom(2);
		//$('#mapCaption').html(google.loader.ClientLocation.latitude+'  '+google.loader.ClientLocation.longitude);
	}else{
		map.setCenter(new GLatLng(38, -90), 3);
	}

	GDownloadUrl("googleMapFeeder.php", function(data) {
	  var xml = GXml.parse(data);
	  var markers = xml.getElementsByTagName("marker");
	  for (var i = 0; i < markers.length; i++) {
		var name = markers[i].getAttribute("name");
		var address = markers[i].getAttribute("address");
		var city = markers[i].getAttribute("city");
		var state = markers[i].getAttribute("state");
		var zip = markers[i].getAttribute("zip");
		var country = markers[i].getAttribute("country");
		var url = markers[i].getAttribute("url");
		var image_path = markers[i].getAttribute("image_path");
		var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
								parseFloat(markers[i].getAttribute("lng")));
		var marker = createMarker(point, name, address,city,state,zip,country,image_path,url);
		map.addOverlay(marker);
	  }
	});
  }
}

	function createMarker(point, name, address,city,state,zip,country,image_path,url) {
		if(url!=''){
			var nameDisplay='<a href="'+url+'" target="_blank">'+name+'</a>';	
		}else{
			var nameDisplay=name;
		}
		var marker = new GMarker(point, customIcons['bar']);
		var image_var='';
		if(image_path!=''){
		image_var="<div style='height:50px;width:auto;float:left;margin-right:10px;'>"
		image_var+="<img alt='"+name+"' src='/phpThumb/phpThumb.php?src=../retail_images/"+image_path+"&amp;q=80&amp;w=75&amp;h=50' /></div>";
		}else image_var='';
		var html = "<div style='font-family:\"Arial\";'>";
		html+="<strong>" + nameDisplay + "</strong> <span style='font-size:10px;'><br/>" + address+"<br/>"+city+" "+state+" "+zip+'</small>'+'</span></div>';
		GEvent.addListener(marker, 'click', function() {
		marker.openInfoWindowHtml(html);
		});
		return marker;
	}
/*



*/
function searchLocations() {
	var address = document.getElementById('addressInput').value;
	geocoder.getLatLng(address, function(latlng) {
		if (!latlng) {
			alert(address + ' not found');
		} else {
			searchLocationsNear(latlng);
		}
	});
}
/*




*/
function searchLocationsNear(center) {
  var radius = document.getElementById('radiusSelect').value;
  var searchUrl = 'googleMapSearch.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius;
  GDownloadUrl(searchUrl, function(data) {
    var sidebar = document.getElementById('sidebar');
    var xml = GXml.parse(data);
	var div2 = document.createElement('div');
	/*
	var description = xml.documentElement.getElementsByTagName('extraMessage')[0];
	//alert(description.childNodes[0].nodeValue);
	if(description!=''){
	
	div2.innerHTML = description.childNodes[0].nodeValue+"<br /><br />";
	
	
	}
	*/
    var markers = xml.documentElement.getElementsByTagName('marker');
    map.clearOverlays();

   
    sidebar.innerHTML = '';
	sidebar.appendChild(div2);
    if (markers.length == 0) {
      sidebar.innerHTML = 'No results found.';
      map.setCenter(new GLatLng(40, -100), 4);
      return;
    }

    var bounds = new GLatLngBounds();
	for (var i = 0; i < markers.length; i++) {
		var name = markers[i].getAttribute('name');
		var address = markers[i].getAttribute('address');
		var distance = parseFloat(markers[i].getAttribute('distance'));
		var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),parseFloat(markers[i].getAttribute('lng')));
		var city = markers[i].getAttribute("city");
		var state = markers[i].getAttribute("state");
		var zip = markers[i].getAttribute("zip");
		var country = markers[i].getAttribute("country");
		var url = markers[i].getAttribute("url");
		var image_path = markers[i].getAttribute("image_path");
		
		var marker = createMarker(point, name, address,city,state,zip,country,image_path,url);
		map.addOverlay(marker);
		var sidebarEntry = createSidebarEntry(marker, name, address,city,state,distance,image_path,url);
		sidebar.appendChild(sidebarEntry);
		bounds.extend(point);
	}
    map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
  });
}
/*




*/
function createSidebarEntry(marker, name, address,city,state,distance,image_path,url) {
  var div = document.createElement('div');
 
	if(url!=''){
		var siteName='<a href="'+url+'" target="_blank">'+name+'</a>';	
	}else{
		var siteName=name;
	}
  var html ='';
  //(' + distance.toFixed(1) + ')
  html+='<div><strong>'+ siteName + '</strong><br/>'+city+' '+state+'</div>';
  
  div.innerHTML = html;
  div.style.cursor = 'pointer';
  div.style.marginBottom = '0px';
  div.style.padding = '2px';
  div.style.marginTop = '0px';
  div.style.marginRight = '5px';
  div.style.display = 'block';
  div.style.clear = 'both';
  div.style.height = '45px';
   
  div.style.borderBottom = '1px solid #CCCCCC';
  div.style.backgroundColor = '#FFFFFF';
  GEvent.addDomListener(div, 'click', function() {
    GEvent.trigger(marker, 'click');
  });
  GEvent.addDomListener(div, 'mouseover', function() {
    div.style.backgroundColor = '#eee';
  });
  GEvent.addDomListener(div, 'mouseout', function() {
    div.style.backgroundColor = '#fff';
  });
  return div;
}

function resetMap(){

	map.setCenter(new GLatLng(40, -50), 2);
	
}

$(function(){
	load();
	
	$('#addressInput').click(function(){
	
		if($(this).val()=='Enter a city or zip/postal code'){
			$(this).val('');  
		}
	
	});
	
	$('li.us').click(function(){
		map.setCenter(new GLatLng(40, -90), 3);		  
	});
	$('li.uk').click(function(){
		map.setCenter(new GLatLng(55, 0), 5);		  
	});
	$('li.au').click(function(){
		map.setCenter(new GLatLng(-25, 130), 4);		  
	});
	$('li.reset').click(function(){
		resetMap();		  
	});
	
});
//$('body').unload(GUnload());