//<![CDATA[
var map;
var clusterer;
//var allmarkers = [];
var isRunning = false;

function clearmarkers() {
//  console.log('start of clearmarkers');
//  console.log(allmarkers);
//	for (i in allmarkers)
//	{
//		clusterer.RemoveMarker(allmarkers[i]);
//		allmarkers[i] = null;
//	}
//	allmarkers = [];
  clusterer.RemoveAllMarkers();
  //console.log('markers should be cleared...');
}

function getmarkers(tidarray) {
	var point;
	var mkr;
	//var mkr_array = [];
  var locblock = [];
	isRunning = true;
	clusterer.UpdateStatus("show","Loading locations...");
	Drupal.service('map.all',
{materials: tidarray },
		function(status, data) {
			if(status == false) {
				console.log('ERROR - could not retreive map points');
				clusterer.UpdateStatus("hide","");
			}
			else
			{
				//clusterer.UpdateStatus("hide","");
				clearmarkers();
				for(i in data)
				{
					point = new GLatLng(data[i].lat, data[i].lng);
					mkr = new GMarker(point,{title:data[i].title});
          locblock = [];
          if (data[i].accuracy == 3)
          {
            locblock.push(data[i].address);
          }
          else
          {
            if (data[i].thoroughfare != '') locblock.push(data[i].thoroughfare);
            
            var cszitems = [];
            if (data[i].locality != '') cszitems.push(data[i].locality);
            if (data[i].adminarea != '') cszitems.push(data[i].adminarea.replace('.',''));
            //cszline = trim(implode(', ', $cszitems) . ' ' . $node->gcg_node_address['postalcode']);
            cszline = cszitems.join(', ') + ' ' + data[i].postalcode;
            if (cszline != '') locblock.push(cszline);
          }
          var locformat = locblock.join('<br />');
		  var directionsformat = 'http://maps.google.com/maps?daddr='+locblock.join(',').replace(/ /g,"+") + '+(' + data[i].title + ')';
					mkr.bindInfoWindowHtml('<a href="/node/' + data[i].nid + '">' + data[i].title + '</a><br />'+locformat+'<br /><br /><a href="'+directionsformat+'" target="_blank"><img src="/files/kansasrecycle/car.png" width="18" height="16" align="absmiddle" /></a> <a href="'+directionsformat+'" target="_blank">Driving Directions</a>');
					//GEvent.addListener(marker,'click',MakeCaller(PopUp,s));
					//mkr_array.push(mkr);
					clusterer.AddMarker(mkr, data[i].title);
          //map.addOverlay( mkr );
				}
//				allmarkers = mkr_array.slice(0);
//        console.log('mkr_array:');
//        console.log(mkr_array);
//				console.log('setting marker:');
//        console.log(allmarkers);
			}
				
			isRunning = false;
		}
	);
}

function mapload() {
  if (GBrowserIsCompatible()) {
	  
			$(function() {
				$(window).bind('resize', function() {
					var min_width=700;
					var min_height=300;
					
					var map_height=$(window).innerHeight() - $('#matandmap').offset().top-50;
					//var sidebar_left_width = $('#sidebar-left').position().left+$('#sidebar-left').width();
					var map_width=$('#doc').innerWidth()-20; //-sidebar_left_width-40;
					
					map_height=map_height <= min_height ? min_height:map_height;
					map_width=map_width <= min_width ? min_width:map_width;
					$('#matandmap').css('height',map_height+'px');
					$('#matandmap').css('width',map_width+'px');

				}).trigger('resize');
			});	  

			map = new GMap2(document.getElementById("map"));

			var ksXmin = -102.026111;
			var ksXmax = -94.350000;
			var ksYmin = 37.000000;
			var ksYmax = 40.000000;
			var boundsKansas = new GLatLngBounds(
				      new GLatLng(ksYmin,ksXmin),
				      new GLatLng(ksYmax,ksXmax));

	      		zoomLevel = map.getBoundsZoomLevel(boundsKansas);
			map.setCenter(boundsKansas.getCenter(), zoomLevel);
//			map.setCenter(new GLatLng(39.383892,-101.036479), 13);
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl());

			function searchComplete(searcher) {
				//console.log(searcher);
				return(false);
			}
		
			var lsc_options = {
				searchFormHint : "Search by Address, ZIP, or County Name",
				suppressInitialResultSelection: true,
				resultList : google.maps.LocalSearch.RESULT_LIST_SUPPRESS,
				onSearchCompleteCallback : searchComplete
			};
			
			var lsc = new google.maps.LocalSearch(lsc_options); 
			map.addControl(lsc, new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,20)));
      map.addControl(new StatusControl());
		
			clusterer = new Clusterer( map );
			clusterer.maxVisibleMarkers = 75;
			clusterer.gridSize = 8;
			clusterer.minMarkersPerCluster = 5;
			
			//var place;
			//var allchecked = []; //$('.materials-list input:checked');
			//getmarkers(allchecked);
			//map.openInfoWindowHtml(point, '<div style="width: 320px; height: 180px;">Test</div>');
   }
}

//]]>
$(document).ready(mapload)