var g_centerPoint = new GLatLng(16.742498,-62.187366);
var g_zoomLevel=13;
var g_map = null;
var g_bounds = null;

var g_venueArray = new Array();

var g_numHexAcross = 20;
var g_numHexUp = 10;
var g_acresPerHex = 60; //context is buyers per hex and changed from 1000 AN
var g_levelStep = 15; //changed from 250 to 15 AN
var g_numTasters = 50000; //not clear that this is needed AN

var g_acreage = 1; //acreage multiplier no longer needed changed from 5 to 1 AN

var g_colors = new Array("#660000", "#663300", "#666600", "#669900", "#66CC00");

var test_Colors = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
				            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
				            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
				            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
				            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
				            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
				            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
				            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
				            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
				            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

//var g_offsetA = 0.0028;
//var g_offsetB = 0.0056;
//var g_offsetC = 0.0078;

var g_offsetA = 0.0064;
var g_offsetB = 0.0122; // X
var g_offsetC = 0.0107; // Y

var g_upOffsetFromSW = 0.10;
var g_acOffsetFromSW = 0.05;

var amiebuy=0;

function MyPolygon(gPoint_, colorIdx)
{
   var point = gPoint_;

   var polySmallRadius = 10;
   var polyNumSides = 6;
   var polySideLength = 360/polyNumSides;

   var mapNormalProj = G_NORMAL_MAP.getProjection();
   var polyPoints = Array();

   var centerPixel = mapNormalProj.fromLatLngToPixel(point, g_zoomLevel);

   for (var a = 0; a<(polyNumSides+1); a++)
   {
	var aRad = polySideLength * a * (Math.PI/180);
	var polyRadius = polySmallRadius;

	var pixelX = centerPixel.x + polyRadius * Math.cos(aRad);
	var pixelY = centerPixel.y + polyRadius * Math.sin(aRad);

	var polyPixel = new GPoint(pixelX,pixelY);
	var polyPoint = mapNormalProj.fromPixelToLatLng(polyPixel,g_zoomLevel);
	polyPoints.push(polyPoint);
	}

	GPolygon.call(this, polyPoints,"#000000",2,.2,g_colors[colorIdx],.5);
}

MyPolygon.prototype = new GPolygon(new Array(new GLatLng(0,0)));


function insertHTML(element, value)
{
    document.getElementById(element).innerHTML = value;
}

function createMarker(point, idx, counter) 
{
	//alert (test_Colors[counter]);
	//var marker = new GMarker(point);
  	var hex = new MyPolygon(point, test_Colors[counter]);
  	GEvent.addListener(hex, "click", function() {
        clearData();
        writeData(idx);
	
  	//	g_map.setCenter(point);
  	});
  	
  	return hex;
}



function showNew() {	
	// Set up 2D array
	var museGrid = new Array(g_numHexAcross);
	
	for(var i = 0; i < g_numHexAcross; i++)	{
		museGrid[i]=new Array(g_numHexUp);
	}
	
	var len = 200;
	var pix=0;
	
	while (amiebuy > 0)	{
		if (amiebuy >= 60) { //changed from 1000 to 60 AN
			test_Colors[pix] = 4;
		}
		else {
			test_Colors[pix] = Math.floor(amiebuy/g_levelStep);
			//test_Colors[pix] = amiebuy%5;
			//alert(amiebuy + "," + Math.ceil(amiebuy/200));
		}
		amiebuy -= 60;		//changed from 1000 to 60 AN
		pix++;
	}
	
	// Decide how to distribute the hexs
	for (var i = 0; i < g_numHexAcross; i++) {
		if (len==0) break;
        for (var j = 0; j < g_numHexUp; j++) {
	    	if (len==0) break;	    	
	    	museGrid[i][j] = 1;
	    	len--;
	    }
	}
	
	g_map.clearOverlays();

	//g_bounds = new GLatLngBounds();
	
	g_map.setCenter(g_centerPoint, g_zoomLevel);
    var bounds = g_map.getBounds();
    var southWest = bounds.getSouthWest();
    var northEast = bounds.getNorthEast();
    var lngSpan = northEast.lng() - southWest.lng();
    var latSpan = northEast.lat() - southWest.lat();

    var geopointi = 0.000;

    var thex = southWest.lng() + g_acOffsetFromSW;
    var they = southWest.lat() + g_upOffsetFromSW;
	
       
    var k=0;
    var counter = 0;
    var debug = new Array();
        
    for (var i = 0; i < g_numHexAcross; i++) {
        var geopointj= 0.000;

        if (i%2==0) {
        	 geopointj = g_offsetA; 
        }

	 	for (var j = 0; j < g_numHexUp; j++) {
	   		if (museGrid[i][j]==1) {
	   			var myY = they + geopointj;
	   			var myX = thex + geopointi;
	   			
	   			var point = new GLatLng(myY, myX);
	   			
	   			debug.push (myY + "," + myX + ":");
	
				var marker = createMarker(point, k, counter);
	
				g_map.addOverlay(marker);
	          	
				k++;
				counter++;
			}
			geopointj = geopointj + g_offsetB;
	    }
        // pixels across
		
		geopointi = geopointi + g_offsetC;	
    }	
}

function load() {
	if (GBrowserIsCompatible()) {
		g_map = new GMap2(document.getElementById("map"));
        g_map.addControl(new GSmallMapControl());
   		g_map.addControl(new GScaleControl()); 
		g_map.setCenter(g_centerPoint, g_zoomLevel);

		g_map.setMapType(G_SATELLITE_MAP);
		g_map.disableDragging();
		window.setTimeout("do_xml(null)", 1);
	}
	setForestStats();
}

function setForestStats() {
	var jTotalAcres = $("#totalAcres"); //this should now be 12,000 buyers AN
	var jNumSupporters = $("#numSupporters");
	var jNumAcresSaved = $("#numAcresSaved"); //no longer needed AN
	
	jTotalAcres.html(g_numHexAcross * g_numHexUp * g_acresPerHex);
	var iNumAcresSaved = parseInt(jNumSupporters.html()) * g_acreage;
	jNumAcresSaved.html(iNumAcresSaved + "");

	amiebuy = iNumAcresSaved;
}

function do_xml() {
	showNew();
	writeClock("artistServicesBox");
}

function writeData(g_venueArrayID) {
    insertHTML("venuepicture", "<img id='venuePicture' src='" + g_venueArray[g_venueArrayID].picture + "' />");
    insertHTML("venuename", g_venueArray[g_venueArrayID].name);
    insertHTML("venueaddress", g_venueArray[g_venueArrayID].address1);
    insertHTML("venuepostcode", g_venueArray[g_venueArrayID].postcode);
    insertHTML("venuelink", "<div class='urlContainer'><a class='url' href='venue_info.php?venueID=" + g_venueArray[g_venueArrayID].id + "'><img class='urlImage' src='img/icon_info.gif' />More Venue info</a></div>");
    // Determine if there is a video. If so, write a "launch player" link
    if (parseInt(g_venueArray[g_venueArrayID].numGigs) > 0) {
        insertHTML("venuegigs", "<div class='urlContainer'><a class='url' href='gigs.php'><img class='urlImage' src='img/icon_info.gif' />More Gig info</a></div>");
    }
    if (g_venueArray[g_venueArrayID].video != "") {
       insertHTML("venuevideo", "<div class='urlContainer'><a class='url' href='#' onclick='writeMiniPlayer(\"artistServicesBox\", \"" + g_venueArray[g_venueArrayID].video + ".flv\", \"play\");'><img class='urlImage' src='img/icon_play.gif' />Play Venue video</a></div>");
    }
    
    
}

function clearData() {
    insertHTML("venuepicture", "&nbsp;");
    insertHTML("venuename", "&nbsp;");
	insertHTML("venueaddress", "&nbsp;");
  	insertHTML("venuepostcode", "&nbsp;");
  	insertHTML("venuelink", "&nbsp;");
    insertHTML("venuevideo", "&nbsp;");
    insertHTML("venuegigs", "&nbsp;");
    writeClock("artistServicesBox");
}
  
  

