var mapstraction; 
var hawaii; 
var alaska; 
var map;
var interval = null;	
var exml ;
var mgr;

function addOnLoad()
{
if (window.addEventListener)window.addEventListener('load', setup, false);
else if (window.attachEvent)window.attachEvent('onload', setup);
}

addOnLoad();
			
function setup()
{

    
loadMaps();
checkData();
//GetCount();
getComments();
setInterval("getComments()", 15000);
//setInterval("checkData()", 15000);
makeHttpRequest("../php/getNationalStats2.php",stats);


getText();
setInterval("getText()",30000);

}			

function getText()
{
	if(document.getElementById('headline').value!="open"){
		makeHttpRequest("../php/getText.php?file=headline", loadText );
	}
}

function loadText(response){
	//var result=response.split(',');
	//var id=result[0];
	//var txt=String(result[1]);
	var txt=response;
	if(txt=="")txt='+';
	//alert(id);
	document.getElementById('headline').innerHTML="<span onclick=change('headline',this);>"+txt+"</span>";
}



function loadMaps(){

	map = new GMap2(document.getElementById('map'));
	hawaii = new GMap2(document.getElementById('hawaii'));
	alaska = new GMap2(document.getElementById('alaska'));

	var usCenter = new GLatLng(37,-95.8);
	var alaskaCenter = new GLatLng(63,-152);
	var hawaiiCenter = new GLatLng(18,-157);

	var copyright = new GCopyright(1,new GLatLngBounds(new GLatLng(-90, -180), new GLatLng(90, 180)), 0,"");
                              
	var copyrightCollection = new GCopyrightCollection('');
	copyrightCollection.addCopyright(copyright);
	var tilelayers = [new GTileLayer(copyrightCollection , 2, 5)];
	tilelayers[0].getTileUrl = CustomGetTileUrl;
	function CustomGetTileUrl(a,b) { var f = "../blank.jpg";return f;}
	var custommap = new GMapType(tilelayers, new GMercatorProjection(12), "Chart", {errorMessage:"No data available"});

	map.addMapType(custommap);
	map.setMapType(custommap);
	map.setCenter(usCenter,4);
	map.disableDragging();
	//map.enableDoubleClickZoom();
	//map.enableScrollWheelZoom();
	//map.enableContinuousZoom();
	
	alaska.addMapType(custommap);
	alaska.setMapType(custommap);
	alaska.setCenter(alaskaCenter,1);
	alaska.disableDragging();
	
	hawaii.addMapType(custommap);
	hawaii.setMapType(custommap);
	hawaii.setCenter(hawaiiCenter,3);
	hawaii.disableDragging();


	//var mgrOptions = { borderPadding: 50, maxZoom: 15, trackMarkers: false };
	//mgr = new MarkerManager(map, mgrOptions);
	
	/*
	map.removeMapType(G_NORMAL_MAP);
	alaska.removeMapType(G_NORMAL_MAP);
	hawaii.removeMapType(G_NORMAL_MAP);
	map.removeMapType(G_SATELLITE_MAP);
	alaska.removeMapType(G_SATELLITE_MAP);
	hawaii.removeMapType(G_SATELLITE_MAP);
	map.removeMapType(G_HYBRID_MAP);
	alaska.removeMapType(G_HYBRID_MAP);
	hawaii.removeMapType(G_HYBRID_MAP);
*/
	 
	//statesOverlay = new GGeoXml("http://thenewvote.com/kml/states.kml");
	map.addOverlay(new GGeoXml(		"http://thenewvote.com/kml/cleanerStates15.kml"));
	alaska.addOverlay(new GGeoXml(	"http://thenewvote.com/kml/alaska.kml"));
	hawaii.addOverlay(new GGeoXml(	"http://thenewvote.com/kml/hawaii.kml"));
    
    //GEvent.removeListener(mapListener);

	//zoom on click events
	/*
	 var myEventListener = GEvent.bind(this.map, "click", this, function(overlay, latlng) {
	 if (latlng) { 
		//var myHtml = "The GPoint value is: " + map.fromLatLngToDivPixel(latlng) + " at zoom level " + map.getZoom();
		//map.openInfoWindow(latlng, myHtml);
		if(zoomed==false)
		{
		map.setCenter(latlng, 7);
		zoomed=true;
		}
		else if(zoomed==true)
		{
		map.setCenter(usCenter, 4);
		zoomed=false;
		}
	  }
	});
	*/
	//map.addControl(new GSmallMapControl());


	//draw phonelocation markers
	//makeHttpRequest('../php/getPhoneData.php',drawPhoneMarkers);

    
    //exml = new GeoXml("exml", map, "../js/uspopulation.js", {iwwidth:250, sidebarid:"the_side_bar",sortbyname:true, polylabeloffset:new GSize(-20,0),polylabelopacity:10 , polylabelclass:"style1", domouseover:false,allfoldersopen:true, messagebox:document.getElementById('messagearea')});
    //exml = new GeoXml("exml", map, "http://thenewvote.com/js/uspopulation.js",{polygonoptions:{clickable:false},sortbyname:true,domouseover:false,allfoldersopen:true} );
    //exml = new GeoXml("exml", map, "http://thenewvote.com/kml/",{polygonoptions:{clickable:false},sortbyname:true,domouseover:false,allfoldersopen:true} );
	//exml.parse();
    /*
    function wheelblock(e) {
    if (!e){ e = window.event }
        if (e.preventDefault){ e.preventDefault() }
        e.returnValue = false;
        }
     */
     //GEvent.addDomListener(map.getContainer(), "DOMMouseScroll", wheelblock);
     //map.getContainer().onmousewheel = wheelblock;
}

function drawPhoneMarkers(response){
	var result = eval('(' + response + ')');	
	for (var i=0; i<result.length; i++)
	{
		//add negative to lng since all database entries are in western hemisphere
		var point = new GLatLng(result[i].lat,-result[i].lng); 
		var info=  result[i].city;
		
		//alert(result[i].state);
		var mapTo;
		if(result[i].state=='HI') mapTo=hawaii;
		else if(result[i].state=='AK') mapTo=alaska;
		else mapTo=map;
		
		mapTo.addOverlay(createMarker(point, info, 'neutral2') );
	}
}


function checkData(){
makeHttpRequest('../php/getData.php',drawMarkers);
}

function returnData(){
makeHttpRequest('../php/getData.php',nada);
}

function nada(){
//alert("");
}

function drawMarkers(response){
	var result = eval('(' + response + ')');
	for (var i=0; i<result.length; i++)
	{
		//add negative to lng since all database entries are in western hemisphere
		var point = new GLatLng(result[i].lat,result[i].lng); 
		//alert(result[i].state);
		var mapTo;
		if(result[i].state=='HI') mapTo=hawaii;
		else if(result[i].state=='AK') mapTo=alaska;
		else mapTo=map;
		var info=  "<city>"+result[i].city+"</city>, "+result[i].state+"" ;

		var voteTense='Voting';
			if(result[i].state!=""){	
			if(result[i].vote=='ob'){
			//var info=  result[i].city+", "+result[i].state+": Obama" ;
				mapTo.addOverlay(createMarker(point, info, 'blue2',result[i].city,result[i].state) );
			}
			else if(result[i].vote=='mc'){
				//var info=  voteTense+" McCain in "+result[i].city+", "+result[i].state ;
				//var info=  result[i].city+", "+result[i].state+": McCain" ;
				mapTo.addOverlay(createMarker(point, info, 'red2',result[i].city,result[i].state) );
			}
			else if(result[i].vote=='in'){
				//var info=  voteTense+" Independent in "+result[i].city+", "+result[i].state ;
				//var info=  result[i].city+", "+result[i].state+": Independent" ;
				mapTo.addOverlay(createMarker(point, info, 'yellow2',result[i].city,result[i].state ) );
			}
		}	
	}
}

zoomedin=false;

function createMarker(point, info, color,city,state){
			var tinyIcon = new GIcon();
			tinyIcon.image = "../markers/"+color+".png";
			//tinyIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
			//tinyIcon.shadowSize = new GSize(22, 20);
			if(color=='neutral2')
			{
				tinyIcon.iconSize = new GSize(6, 6);
				tinyIcon.iconAnchor = new GPoint(3, 3);
			}
			else
			{
				tinyIcon.iconSize = new GSize(12, 12);
				tinyIcon.iconAnchor = new GPoint(6, 6);
			}
			markerOptions = { icon:tinyIcon };
			var marker = new GMarker(point, markerOptions);
			
			//mgr.addMarker(marker,1);
			//mgr.refresh();

			if(color!='neutral2'){
				tinyIcon.infoWindowAnchor = new GPoint(5, 1);
				
				GEvent.addListener(marker, "mouseover", function() 
				{
					//map.setCenter(point,8);
					//marker.openInfoWindowHtml(info);
					document.getElementById('sideinfo').innerHTML=info;
					makeHttpRequest("../php/getStateStats2.php?city="+city+"&state="+state+"",stats);

				});
				
				GEvent.addListener(marker, "click", function() 
				{
					if(zoomedin==false){
						if(point.lng()>-90) map.setCenter(point,7);
						else map.setCenter(point,6);

    					document.getElementById('alaska').style.visibility="hidden";
						document.getElementById('hawaii').style.visibility="hidden";
						document.getElementById('cov').style.visibility="hidden";

						zoomedin=true;
					}
					else{
						var usCenter = new GLatLng(37,-95.8);
						map.setCenter(usCenter,4);
    					document.getElementById('alaska').style.visibility="visible";
						document.getElementById('hawaii').style.visibility="visible";
						document.getElementById('cov').style.visibility="visible";

						zoomedin=false;
					}
				});
				
				GEvent.addListener(marker, "mouseout", function() 
				{
					document.getElementById('sideinfo').innerHTML=" <br>";
					makeHttpRequest("../php/getNationalStats2.php",stats);
				});	
			}
  return marker;
}

function stats(response){
	document.getElementById('sidestats').innerHTML=response;
}

function getComments(){
	makeHttpRequest("../php/getComments2.php",parseComments);
	//makeHttpRequest("../php/getComments.php?vote=mc",parseComments);
	//makeHttpRequest("../php/getComments.php?vote=in",parseComments);

}


function parseComments(response){
	var result = eval('(' + response + ')');
	//alert(result[0].vote);
		
for (var i=result[0].length-1;i>=0;i--){
		var head=result[0][i].city+", "+result[0][i].state+": ";
		if(head==", : ") head="Unknown : ";

		addElement('obComment',"<small>"+head+"</small>"+"<b>"+result[0][i].comments+"</b>", "obc"+result[0][i].id);
	}
for (var i=result[1].length-1;i>=0;i--){
		var head=result[1][i].city+", "+result[1][i].state+": ";
		if(head==", : ") head="Unknown : ";

		addElement('mcComment',"<small>"+head+"</small>"+"<b>"+result[1][i].comments+"</b>", "mcc"+result[1][i].id);
	}	
for (var i=result[2].length-1;i>=0;i--){
		var head=result[2][i].city+", "+result[2][i].state+": ";
		if(head==", : ") head="Unknown : ";
		addElement('inComment',"<small>"+head+"</small>"+"<b>"+result[2][i].comments+"</b>", "inc"+result[2][i].id);
	}
}


function addElement(commentBox, comment, id) {
var ni = document.getElementById(commentBox);
  var newdiv = document.createElement('div');
	if( document.getElementById(id)==undefined )
	{
		newdiv.setAttribute('id', id);
		newdiv.innerHTML =  comment;
		ni.insertBefore(newdiv,ni.firstChild);
	}
}


function removeElement(id) {
  var d = document.getElementById('commentBox');
  var olddiv = document.getElementById(id);
  d.removeChild(olddiv);
}
