var map;
var highlightCircle;
var currentMarker;
var points = [];

var deselectCurrent = function() {};
 
var baseIcon = new GIcon();
    baseIcon.image = "images/marker.png";
	baseIcon.shadow = "images/shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.iconAnchor = new GPoint(10, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);

var eventIcon = new GIcon();
    eventIcon.image = "http://maps.google.com/mapfiles/kml/paddle/blu-circle.png";
	eventIcon.shadow = "images/shadow50.png";
	eventIcon.iconSize = new GSize(30, 34);
	eventIcon.iconAnchor = new GPoint(10, 34);
	eventIcon.infoWindowAnchor = new GPoint(9, 2);
	eventIcon.infoShadowAnchor = new GPoint(18, 25);


var circleIcon = new GIcon();
    circleIcon.image = 'images/greencirclemarker.png';
    circleIcon.iconSize = new GSize(16, 16);
    circleIcon.iconAnchor = new GPoint(8, 8);
    circleIcon.infoWindowAnchor = new GPoint(12, 6);

function createMarker(point,html,icon) {
        var marker = new GMarker(point,icon);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
}




function addmarker(x,y,title,state,county,time,date) {
    var point = new GPoint(parseFloat(x),parseFloat(y));
    points.push(point);
    var marker = new GMarker(point);
    map.addOverlay(marker);
	var listItem = document.createElement('li');
	var listItemLink = listItem.appendChild(document.createElement('a'));
	listItemLink.href = "#";
	listItemLink.innerHTML = "<strong>" + pointData.T_State + ": " + pointData.T_County + " County</strong><span>" + pointData.T_Time + " CST, on " + pointData.T_Date + "</span>";
    index++;
} 

function highlightCurrentMarker(){
      var markerPoint = currentMarker.getPoint();

      var polyPoints = Array();

      if (highlightCircle) {
        map.removeOverlay(highlightCircle);
      }

      var mapNormalProj = G_NORMAL_MAP.getProjection();
      var mapZoom = map.getZoom();
      var clickedPixel = mapNormalProj.fromLatLngToPixel(markerPoint, mapZoom);

      var polySmallRadius = 14;

      var polyNumSides = 20;
      var polySideLength = 18;

      for (var a = 0; a<(polyNumSides+1); a++) {
	    var aRad = polySideLength*a*(Math.PI/180);
	    var polyRadius = polySmallRadius; 
       	    var pixelX = clickedPixel.x + polyRadius * Math.cos(aRad);
	    var pixelY = clickedPixel.y + polyRadius * Math.sin(aRad);
	    var polyPixel = new GPoint(pixelX,pixelY);
	    var polyPoint = mapNormalProj.fromPixelToLatLng(polyPixel,mapZoom);
	    polyPoints.push(polyPoint);
      }
      // Using GPolygon(points,  strokeColor?,  strokeWeight?,  strokeOpacity?,  fillColor?,  fillOpacity?)
      highlightCircle = new GPolygon(polyPoints,"#000000",2,0.0,"#FF0000",.5);
      map.addOverlay(highlightCircle);
}
   
function windowHeight() {
	// Standard browsers (Mozilla, Safari, etc.)
	if (self.innerHeight)
		return self.innerHeight;
	// IE 6
	if (document.documentElement && document.documentElement.clientHeight)
		return document.documentElement.clientHeight;
	// IE 5
	if (document.body)
		return document.body.clientHeight;
	// Just in case.
	return 0;
}

function handleResize() {
	var height = windowHeight() - document.getElementById('toolbar').offsetHeight - 30;
	document.getElementById('map').style.height = height + 'px';
	document.getElementById('sidebar').style.height = height + 'px';
}

function changeBodyClass(from, to) {
     document.body.className = document.body.className.replace(from, to);
     return false;
}

function recenterandzoom(points) {
    var latpoints = [];
    var lngpoints = [];

    var idealzoom = 3; 

    if (points.length == 0) {
		return;
    }

    if (points.length == 1) {
		map.centerAndZoom(points[0],idealzoom);
		return;
    }

    for(var i=0;i<points.length;i++) {
    	latpoints.push(points[i].y);
		lngpoints.push(points[i].x);
    }

    latpoints.sort(function(x,y) { return x-y });
    lngpoints.sort(function(x,y) { return x-y });

    var newlat = latpoints[0] + ((latpoints[latpoints.length-1] - latpoints[0])/2);
    var newlng = lngpoints[0] + ((lngpoints[lngpoints.length-1] - lngpoints[0])/2);

    var newpoint = new GPoint(parseFloat(newlng),parseFloat(newlat));

	var margin = 0;
    var idealspan = new GSize(parseFloat((Math.abs(lngpoints[lngpoints.length-1]-lngpoints[0]))*(1+margin)),
			      parseFloat((Math.abs(latpoints[latpoints.length-1]-latpoints[0]))*(1+margin)));

    map.zoomTo(idealzoom);

    for(var i=1;i<16;i++) {
		var currentsize = map.getSpanLatLng();
			if ((currentsize.width < idealspan.width) ||
			(currentsize.height < idealspan.height)) {
				map.zoomTo(i);
				idealzoom = i;
			}		
		else {
			break;
		}
    }

    map.centerAndZoom(newpoint,idealzoom);
}

//window.onresize = handleResize;
//window.onload = init;

