
var lats;
var longs;
var adds;
var homeLat;
var homeLong;
var currentRegion1;
var lastNumDiv=0;
var isCampaignPage;
var isFindDealerClick;
var startAddressIndex;
var maxPageSize;
var isShowAll;
var pageNumber;

function gInit() {

	if (!lats || !lats.length || lats.length ==0) {
		return ;
	}

	var target = document.getElementById("map_canvas");
    if (target) {
		if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map_canvas"));
	    
		map.setCenter(new GLatLng(37.4419, -122.1419), 13);
		map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl());
		
		// Create a base icon for all of our markers that specifies the
		// shadow, icon dimensions, etc.
		var baseIcon = new GIcon();
		baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
		baseIcon.iconSize = new GSize(20, 34);
		baseIcon.shadowSize = new GSize(37, 34);
		baseIcon.iconAnchor = new GPoint(9, 34);
		baseIcon.infoWindowAnchor = new GPoint(9, 2);
		baseIcon.infoShadowAnchor = new GPoint(18, 25);
	    
		// Creates a marker at the given point
		// Clicking the marker will hide it
		function createMarker(point, number, address) {
			var numberedIcon = new GIcon(baseIcon);
			numberedIcon.image = "/img/maps/markers/iconr" + number + ".png";
	        
			// Set up our GMarkerOptions object
			markerOptions = { icon:numberedIcon };
		
			var marker = new GMarker(point, markerOptions);
			marker.value = number;
			GEvent.addListener(marker,"click", function() {createPopup(number, address, point)} );

			var linkElement = document.getElementById("linkNum"+number);
			if (linkElement)
			linkElement.onclick = function() {createPopupAndScroll(number, address, point) };

			return marker;
		}
		
		function createPopupAndScroll(number, address, point) {
			createPopup(number, address, point);
			window.scrollTo(0,document.getElementById("map_canvas").offsetTop);
			
		}

		function createPopup(number, address, point) {
		    var recordNumber = number;
		    if (pageNumber > 0) {
		        recordNumber = maxPageSize * (pageNumber - 1);
		        recordNumber = recordNumber + number;
		    }

		    var myHtml = "<table><tr><td valign=top><b>" + recordNumber + ".</b></td><td>" + address + "</td></tr></table><br/>";

		    map.openInfoWindowHtml(point, myHtml);
		    showSelectDiv(number);
		    map.setCenter(zoomToBounds.getCenter())
		    var zoomLevel = map.getBoundsZoomLevel(zoomToBounds);
		    if (zoomLevel > 16) {
		        zoomLevel = 16;
		    }

		    map.setZoom(zoomLevel);
		}
			
		function SetActiveTabTab()
		{
		}			
			
		function showSelectDiv(number) {
			var divElement = document.getElementById("divNum"+number);
			if (lastNumDiv != 0)
			{
				$("divNum"+lastNumDiv).removeClassName('selectedDealer');
			}
			if (divElement)
			{
				$("divNum"+number).addClassName('selectedDealer');
				lastNumDiv = number;
			}
		}
		
		// Creates a marker at the given point
		// This is a hidden marker
		function createHomeMarker(point) {
		
			var marker = new GMarker(point);
			return marker;
		}
	    
		var zoomToBounds = new GLatLngBounds();
	    
		if (!(homeLat == 0 && homeLong ==0)) {
			var point = new GLatLng(homeLat,homeLong);
			map.addOverlay(createHomeMarker(point));
			zoomToBounds.extend(point);
		}
	    
	    var addressIndex = startAddressIndex;
	    var displayIndex = 0;	    
		for (var i = startAddressIndex; i < lats.length; i++) {
			if (!(lats[i]==0 && longs[i]==0)) {
			var point = new GLatLng(lats[i],longs[i]);
			map.addOverlay(createMarker(point,displayIndex+1,adds[addressIndex]));
			zoomToBounds.extend(point);
    		}

			if(isShowAll == 'false'){
    	        if (displayIndex == maxPageSize-1)
	                break;
	        }

			addressIndex++;
			displayIndex++
		}
		map.setCenter(zoomToBounds.getCenter());
		var zoomLevel = map.getBoundsZoomLevel(zoomToBounds);
		if (zoomLevel > 16) {
			zoomLevel = 16;
		}
		
		map.setZoom(zoomLevel);
		}
    }
}

function showLocation(toAddress) 
{   
	var fromAddress = document.getElementById("txtLocationID").value;
	$('messageOverlay').popup.hide();
	openPopup(encodeURI('../DrivingDirections/default.html'+'?to='+ trimWhitespace(toAddress)+'&from='+trimWhitespace(fromAddress)));
	return false;
}

function keyPress(toAddress)
{
	if(event.keyCode == 13) 
	{
		return showLocation(toAddress);
	}
	return true;
}

function drivingDirectionClick(address) {
	new Popup('messageOverlay',null,{modal:true},{position:'center'});
	var addressTo = document.getElementById('toAddress');
	addressTo.value = address;
	$('messageOverlay').popup.show(); 

	var divElement = document.getElementById('popup_overlay');
    divElement.onclick = function () { $('messageOverlay').popup.hide() };
    var elements = $$('select'); // implicitly hide select drop downs for browser bug
    for (var i = 0; i < elements.length; i++) {
		 elements[i].hide();
	}	
}