function showRadar() {if (radaroverlay.isHidden()) { radaroverlay.show(); }}
function hideRadar() {if (! radaroverlay.isHidden()) { radaroverlay.hide(); }}
function refreshRadar() {if (radarShown) {storm_map.removeOverlay(radaroverlay);storm_map.addOverlay(radaroverlay);}}

function showWarnings() {if (warningoverlay.isHidden()) { warningoverlay.show(); }}
function hideWarnings() {if (! warningoverlay.isHidden()) { warningoverlay.hide(); }}
function refreshWarnings() {if (warningsShown) {map.removeOverlay(warningoverlay);map.addOverlay(warningoverlay);}}



function getQueryString () {
	var querystring = new Array;

	// parse current url into an array with the keys/values
	var q = String (document.location).split ('?')[1];
	if (!q) return false;
	q = q. split ('&');
	
	for (var i = 0 ; i < q.length; i++) {
		// for each key/value, split them at the '='
		// and add them to the qerystring array
		var o = q[i].split('=');
		querystring[o[0]] = o[1];
	}

	// return the querystring
	return querystring;
}

var webURL = "";
function getWebURL()
{
	var url = window.location + "";
	var urlparts = url.split("/");
	for(i=0;i < urlparts.length - 2; i++)
	{
		webURL += urlparts[i] + "/";		
	}
}
getWebURL();
var hm = [];
var tm = [];
var wm = [];
var gd;

function rpttornado()
{
	//alert('inside rptTornado');
	//document.getElementById('wd').src = "http://webdev.srcc.lsu.edu/javascript/storm_report.html?weatherDate="+gd+"&rpt=tornado";
	document.getElementById('wd').src = webURL+"/javascript/storm_report.html?weatherDate="+gd+"&rpt=tornado";
}
function rptwind()
{
	//alert('inside rptWind');
	//document.getElementById('wd').src = "http://webdev.srcc.lsu.edu/javascript/storm_report.html?weatherDate="+gd+"&rpt=wind";
	document.getElementById('wd').src = webURL+"/javascript/storm_report.html?weatherDate="+gd+"&rpt=wind";
}
function ShowReports1(reportdate)
{
	function sortNumber(a,b)
	{
		return a - b;
	}
	
	reset_iframe(reportdate);

	/*	
	if(reportdate.length > 0)
		hideRadar();
	*/
		
	//var DownloadURL = "http://webdev.srcc.lsu.edu/getSevereWeatherData.php?weatherDate="+reportdate+"&token=a";
	var DownloadURL = "http://webdev.srcc.lsu.edu/php/test.php?weatherDate="+reportdate+"&token=a";
	
	GDownloadUrl(DownloadURL, function(data) 
	{
		var xml = GXml.parse(data);
		var itmcnt = new Array(3);
		var items  = new Hashtable();
		var markers = xml.documentElement.getElementsByTagName("tornado");
		var windmarkers = xml.documentElement.getElementsByTagName("wind");
		var hailmarkers = xml.documentElement.getElementsByTagName("hail");
		items.put(markers.length,"markers");
		items.put(windmarkers.length,"windmarkers");
		items.put(hailmarkers.length,"hailmarkers");
		itmcnt[0] = markers.length;
		itmcnt[1] = windmarkers.length;
		itmcnt[2] = hailmarkers.length;
		itmcnt.sort(sortNumber);
		/* 
		items.moveFirst();
		while (items.next())
		{ 
			alert (items.getKey() + " = " + items.getValue());
		}
		*/

		//alert(items.get(itmcnt[0]));
		for(var i = 0; i < 3; i++)
		{
			switch(items.get(itmcnt[2 - i]))
			{
				case "markers" :
					//alert("plot tornadoes");
					plotMarkers(markers,"markers");
					break;
				case "windmarkers" :
					//alert("plot windmarkers");
					plotMarkers(windmarkers,"windmarkers");
					break;
				case "hailmarkers" :
					//alert("plot hailmarkers");
					plotMarkers(hailmarkers,"hailmarkers");
					break;
			}
		}
		/*
		if(markers.length > 0)
		{
			var markericon;
			var msg;
			var locstr;
			var locstn;
			var loc;
			var icon;
			for (var i = 0; i < markers.length; i++) 
			{
				points[i] = new GPoint(parseFloat(markers[i].getAttribute("lng")), parseFloat(markers[i].getAttribute("lat")));   
				markericon = markers[i].getAttribute("icon");
				msg        = markers[i].getAttribute("msg");
				locstr     = markers[i].getAttribute("locstr");
				loc        = markers[i].getAttribute("location");
				timestamp  = markers[i].getAttribute("timestamp");
				point = points[i];	
				var marker = createMarker1(point, markericon,msg,locstr,loc,timestamp);
				markersArray[i] = marker;
				map.addOverlay(marker);	
			}

		}
		*/
		/*
		if(windmarkers.length > 0)
		{
			var windmarkericon;
			var windpoints = [];
			var windmsg;
			var windlocstr;
			var windlocstn;
			var windloc;
			var windicon;
			var windtimestamp;
			for (var i = 0; i < windmarkers.length; i++) 
			//for (var i = 0; i < 3; i++) 
			{
				windpoints[i] = new GPoint(parseFloat(windmarkers[i].getAttribute("lng")), parseFloat(windmarkers[i].getAttribute("lat")));   
				windmarkericon = windmarkers[i].getAttribute("icon");
				windmsg        = windmarkers[i].getAttribute("msg");
				windlocstr     = windmarkers[i].getAttribute("locstr");
				windloc        = windmarkers[i].getAttribute("location");
				windtimestamp  = windmarkers[i].getAttribute("timestamp");
				var windpoint  = windpoints[i];	
				//var windmarker = new GMarker(windpoint);
				//var windmarker = createWindMarker(windpoint,windmarkericon,windmsg);
				var windmarker = createWindMarker(windpoint, windmarkericon,windmsg,windlocstr,windloc,windtimestamp);
				map.addOverlay(windmarker);	
			}

		}
		*/
		/*
		if(hailmarkers.length > 0)
		{
			var hailmarkericon;
			var hailpoints = [];
			var hailmsg;
			var haillocstr;
			var haillocstn;
			var hailloc;
			var windicon;
			var hailtimestamp;
			for (var i = 0; i < hailmarkers.length; i++) 
			//for (var i = 0; i < 3; i++) 
			{
				hailpoints[i] = new GPoint(parseFloat(hailmarkers[i].getAttribute("lng")), parseFloat(hailmarkers[i].getAttribute("lat")));   
				hailmarkericon = hailmarkers[i].getAttribute("icon");
				hailmsg        = hailmarkers[i].getAttribute("msg");
				haillocstr     = hailmarkers[i].getAttribute("locstr");
				hailloc        = hailmarkers[i].getAttribute("location");
				hailtimestamp  = hailmarkers[i].getAttribute("timestamp");
				var hailpoint  = hailpoints[i];	
				var hailmarker = createHailMarker(hailpoint, hailmarkericon,hailmsg,haillocstr,hailloc,hailtimestamp);
				map.addOverlay(hailmarker);	
			}

		}
		*/
	});
	
}

function ShowPolylines(polylineDate, polylineTime) {
	
	document.getElementById('loadingMessage').innerHTML  = "Loading Polylines... ";
	var DownloadURL = "polylines.php?date="+polylineDate+"&time="+polylineTime;
	//alert(DownloadURL);
	GDownloadUrl(DownloadURL, function(data) {
		var xml = GXml.parse(data);
		var polylines = xml.documentElement.getElementsByTagName("polyline");
		for (var i = 0; i < polylines.length; i++) {
			OutlookType = polylines[i].getAttribute("OutlookType");
			OutlookCategory = polylines[i].getAttribute("OutlookCategory");
			OutlookPercent = polylines[i].getAttribute("OutlookPercent");
			LatandLong = polylines[i].getAttribute("LatandLong");
			Levels = polylines[i].getAttribute("Levels");
	
			PolylineLevels = LevelsCalc("B", Levels);
			if (OutlookType == "CATEGORICAL") { 
				if (OutlookCategory == "TSTM") {
					TSTMencodedPolyline_Array[TSTMPolylineCount] = new GPolyline.fromEncoded({
						color: "#B47F00",
					    	weight: 8,
						points: LatandLong,
						levels: PolylineLevels,
						zoomFactor: 32,
						numLevels: 4
					});
					map.addOverlay(TSTMencodedPolyline_Array[TSTMPolylineCount]);
					TSTMPolylineCount++;
				}
				else if (OutlookCategory == "SLGT") {
					SLGTencodedPolyline_Array[SLGTPolylineCount] = new GPolyline.fromEncoded({
						color: "#008b00",
					    	weight: 8,
						points: LatandLong,
						levels: PolylineLevels,
						zoomFactor: 32,
						numLevels: 4
					});
					map.addOverlay(SLGTencodedPolyline_Array[SLGTPolylineCount]);
					SLGTPolylineCount++;
				}
				else if (OutlookCategory == "MDT") {
					MDTencodedPolyline_Array[MDTPolylineCount] = new GPolyline.fromEncoded({
						color: "#FF0000",
					    	weight: 6,
						points: LatandLong,
						levels: PolylineLevels,
						zoomFactor: 32,
						numLevels: 4
					});
					map.addOverlay(MDTencodedPolyline_Array[MDTPolylineCount]);
					MDTPolylineCount++;
				}
					
				else if (OutlookCategory == "HIGH") {
					HIGHencodedPolyline_Array[HIGHPolylineCount] = new GPolyline.fromEncoded({
						color: "#ff17ff",
					    	weight: 4,
						points: LatandLong,
						levels: PolylineLevels,
						zoomFactor: 32,
						numLevels: 4
					});
					map.addOverlay(HIGHencodedPolyline_Array[HIGHPolylineCount]);
					HIGHPolylineCount++;
				}
				else { }
			}
		}
	});
}


function ShowWarnings() {
	var warning_layer= new GTileLayer(new GCopyrightCollection(""),1,17);
	warning_layer.getTileUrl=function(tile,zoom) {
		var llp = new GPoint(tile.x*256,(tile.y+1)*256);
		var urp = new GPoint((tile.x+1)*256,tile.y*256);
		var ll = G_NORMAL_MAP.getProjection().fromPixelToLatLng(llp,zoom);
		var ur = G_NORMAL_MAP.getProjection().fromPixelToLatLng(urp,zoom);
		var dt = new Date();
		var nowtime = dt.getTime();
		var tileurl = "http://mesonet.agron.iastate.edu/cgi-bin/wms/us/wwa.cgi?";
		tileurl+="&request=GetMap&service=WMS&version=1.1.1&layers=warnings_p&styles=";
		tileurl+="&format=image/gif&bgcolor=0x333333&transparent=true&srs=EPSG:4326";
		tileurl+="&bbox="+ll.x+","+ll.y+","+ur.x+","+ur.y;
		tileurl+="&width=256&height=256";
		return tileurl;
	};
	warning_layer.getOpacity = function() {return 0.5;}
	warning_layer.isPng = function() {return false;}
	warningoverlay = new GTileLayerOverlay(warning_layer); 
	storm_map.addOverlay( warningoverlay ); 
	warningsShown = true;                              
}

function ShowRadar() 
{
	
		var radar_layer= new GTileLayer(new GCopyrightCollection(""),1,17);
		radar_layer.getTileUrl=function(tile,zoom) {
			var llp = new GPoint(tile.x*256,(tile.y+1)*256);
			var urp = new GPoint((tile.x+1)*256,tile.y*256);
			var ll = G_NORMAL_MAP.getProjection().fromPixelToLatLng(llp,zoom);
			var ur = G_NORMAL_MAP.getProjection().fromPixelToLatLng(urp,zoom);
			var dt = new Date();
			var nowtime = dt.getTime();
			var tileurl = "http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi?";
			tileurl+="&request=GetMap&service=WMS&version=1.1.1&layers=nexrad-n0r&styles=";
			tileurl+="&format=image/gif&bgcolor=0x333333&transparent=true&srs=EPSG:4326";
			tileurl+="&bbox="+ll.x+","+ll.y+","+ur.x+","+ur.y;
			tileurl+="&width=400&height=400&reaspect=false&cachetime="+nowtime;
			bbox = ll.x+" "+ll.y+" "+ur.x+" "+ur.y;
			return tileurl;
		};
		radar_layer.getOpacity = function() {return 0.5;}
		radar_layer.isPng = function() {return false;}
		map.setCenter(new GLatLng(37.062500,-95.677068),4,G_PHYSICAL_MAP);
		map.clearOverlays();	
		radaroverlay = new GTileLayerOverlay(radar_layer); 
		map.addOverlay( radaroverlay ); 
		radarShown = true;   
}

function showConvectiveOutlook() {
	for (var i = 0; i < TSTMPolylineCount; i++) {map.addOverlay(TSTMencodedPolyline_Array[i]);}
	for (var i = 0; i < SLGTPolylineCount; i++) {map.addOverlay(SLGTencodedPolyline_Array[i]);}
	for (var i = 0; i < MDTPolylineCount; i++)  {map.addOverlay(MDTencodedPolyline_Array[i]);}
	for (var i = 0; i < HIGHPolylineCount; i++) {map.addOverlay(HIGHencodedPolyline_Array[i]);}
}

function hideConvectiveOutlook() {
	for (var ii = 0; ii < TSTMPolylineCount; ii++) {map.removeOverlay(TSTMencodedPolyline_Array[ii]);}
	for (var jj = 0; jj < SLGTPolylineCount; jj++) {map.removeOverlay(SLGTencodedPolyline_Array[jj]);}
	for (var kk = 0; kk < MDTPolylineCount; kk++)  {map.removeOverlay(MDTencodedPolyline_Array[kk]);}
	for (var ll = 0; ll < HIGHPolylineCount; ll++) {map.removeOverlay(HIGHencodedPolyline_Array[ll]);}
}

function refreshMap() {	initialize(); }

function LevelsCalc (str, num) {
	var acc = [];
	for (var i = 0; (1 << i) <= num; i++) {
		if ((1 << i) & num)
			acc.push(str);
		str += str;
	}
	return acc.join("");
}
function _createWindMarker(point,icontype,windmsg,windlocstr,windloc,windtimestamp)
{
	var icon;
	var marker;

	icon = new GIcon();

	icon.image = "wind02_small.png";
        icon.iconAnchor = new GPoint(0,0);
        icon.infoWindowAnchor = new GPoint(9, 2);
        icon.iconSize = new GSize(12, 12);
	var data = "WIND";
	var bgcolor = "#0000e6";
	var html = "<table style=\"width:200px;background-color:#FFFFFF;font-family:Calibri,Verdana;\"><tr><td colspan=2 style=\"background-color:"+bgcolor+";color:#FFFFFF;text-align:center\"><span style=\"font-size:12pt;font-weight:bold\">"+data+"</span></td></tr><tr><td style=\"vertical-align:top;font-size:9pt;font-family:Arial;display:block;\">Message:</td><td style=\"font-size:9pt;font-weight:bold\">"+windmsg+"</td></tr><tr><td style=\"vertical-align:top;font-size:9pt;font-family:Arial;display:block;\">Loc String:</td><td style=\"font-size:9pt;font-weight:bold\">"+windlocstr+"</td></tr><tr><td style=\"font-size:9pt;font-family:Arial;display:block;\">&nbsp;</td><td style=\"font-size:9pt;font-weight:bold\">"+windloc+"</td></tr><tr><td style=\"font-size:9pt;font-family:Arial;display:block;\">Reported: </td><td style=\"font-size:9pt;font-weight:bold\">"+windtimestamp+"</td></tr><tr><td style=\"font-size:9pt;font-family:Arial;display:block;\">Loc: </td><td style=\"font-size:9pt;font-weight:bold\">"+point+"</td></tr></table>";


	marker = new GMarker(point,icon);
	GEvent.addListener(marker,'click',
	function()
	{
		marker.openInfoWindowHtml(html);
		map.setCenter(new GLatLng(point.y,point.x));
		map.setZoom(10);
	});
	return marker;
}
function createHailMarker(point,icontype,windmsg,windlocstr,windloc,windtimestamp)
{
	var icon;
	var marker;

	icon = new GIcon();

	icon.image = "hail.png";
        icon.iconAnchor = new GPoint(0,0);
        icon.infoWindowAnchor = new GPoint(9, 2);
        icon.iconSize = new GSize(12, 12);
	var data = "HAIL";
	var bgcolor = "#00e600";
	var html = "<table style=\"width:200px;background-color:#FFFFFF;font-family:Calibri,Verdana;\"><tr><td colspan=2 style=\"background-color:"+bgcolor+";color:#FFFFFF;text-align:center\"><span style=\"font-size:12pt;font-weight:bold\">"+data+"</span></td></tr><tr><td style=\"vertical-align:top;font-size:9pt;font-family:Arial;display:block;\">Message:</td><td style=\"font-size:9pt;font-weight:bold\">"+windmsg+"</td></tr><tr><td style=\"vertical-align:top;font-size:9pt;font-family:Arial;display:block;\">Loc String:</td><td style=\"font-size:9pt;font-weight:bold\">"+windlocstr+"</td></tr><tr><td style=\"font-size:9pt;font-family:Arial;display:block;\">&nbsp;</td><td style=\"font-size:9pt;font-weight:bold\">"+windloc+"</td></tr><tr><td style=\"font-size:9pt;font-family:Arial;display:block;\">Reported: </td><td style=\"font-size:9pt;font-weight:bold\">"+windtimestamp+"</td></tr><tr><td style=\"font-size:9pt;font-family:Arial;display:block;\">Loc: </td><td style=\"font-size:9pt;font-weight:bold\">"+point+"</td></tr></table>";


	marker = new GMarker(point,icon);
	GEvent.addListener(marker,'click',
	function()
	{
		marker.openInfoWindowHtml(html);
		map.setCenter(new GLatLng(point.y,point.x));
		map.setZoom(10);
	});
	return marker;
}
function _createMarker1(point,icontype,msg,locstr,loc,timestamp)
{
	/*
	alert("point = " + point);
	alert("icon =  " + icon);
	alert("msg  =  " + msg);
	alert("locstr = " + locstr);
	alert("loc = " + loc);
	alert("timestamp = " + timestamp);
	*/
	var icon;
	var marker;
	if(icontype == "TORNADO")
	{
		icon = new GIcon();
		var bgcolor = "#e60000";
		var data = "Tornado";
		icon.image = "tornado.png";
	        icon.iconAnchor = new GPoint(6,6);
	        icon.infoWindowAnchor = new GPoint(9, 2);
	        icon.iconSize = new GSize(14, 14);
	        //icon.shadowSize = new GSize(52, 35);
	}
	marker = new GMarker(point,icon);

	var html = "<table style=\"width:200px;background-color:#FFFFFF;font-family:Calibri,Verdana;\"><tr><td colspan=2 style=\"background-color:"+bgcolor+";color:#FFFFFF;text-align:center\"><span style=\"font-size:12pt;font-weight:bold\">"+data+"</span></td></tr><tr><td style=\"vertical-align:top;font-size:9pt;font-family:Arial;display:block;\">Message:</td><td style=\"font-size:9pt;font-weight:bold\">"+msg+"</td></tr><tr><td style=\"vertical-align:top;font-size:9pt;font-family:Arial;display:block;\">Loc String:</td><td style=\"font-size:9pt;font-weight:bold\">"+locstr+"</td></tr><tr><td style=\"font-size:9pt;font-family:Arial;display:block;\">&nbsp;</td><td style=\"font-size:9pt;font-weight:bold\">"+loc+"</td></tr><tr><td style=\"font-size:9pt;font-family:Arial;display:block;\">Reported: </td><td style=\"font-size:9pt;font-weight:bold\">"+timestamp+"</td></tr><tr><td style=\"font-size:9pt;font-family:Arial;display:block;\">Loc: </td><td style=\"font-size:9pt;font-weight:bold\">"+point+"</td></tr></table>";


	/*
	marker = new PdMarker(point,icon);
	marker.setDetailWinHTML(html);
	*/
	GEvent.addListener(marker,'click',
	function()
	{
		marker.openInfoWindowHtml(html);
		//alert(point.x + " , " + point.y);
		map.setCenter(new GLatLng(point.y,point.x));
		map.setZoom(10);
	});
	//alert("*" + document.getElementById('reportslist').innerHTML + "*");
	return marker;
}
function createMarker(point, icon, address, county, state, data, comments, eventdate, eventtime) {
	
		if (icon == "WIND") {	
			var icon = new GIcon();
			var bgcolor = "#7add7a";
			wind = data.substring(0, 3);
			wind = wind.replace(/^\s+|\s+$/g, '') ;
			icon.image = "mapicons/wind/"+wind+".png";
			if (wind == "UNK") { icon.image = "mapicons/wind/UNK.png"; }
			else if (wind < 100) { icon.image = "mapicons/wind/"+wind+".png"; }
			else { icon.image = "mapicons/wind/100plus.png";}
 		        icon.iconAnchor = new GPoint(40, 40);
		        icon.infoWindowAnchor = new GPoint(9, 2);
		        icon.iconSize = new GSize(40, 40);
		        icon.shadow = "mapicons/wind/windshadow.png";
		        icon.shadowSize = new GSize(59, 32);
		}	
		else if (icon == "TORNADO") {
			var icon = new GIcon();
			var bgcolor = "#e60000";
			data = "Tornado";
		        icon.image = "mapicons/tornado/tornado.png";
		        icon.iconAnchor = new GPoint(35,35);
		        icon.infoWindowAnchor = new GPoint(9, 2);
		        icon.iconSize = new GSize(35, 35);
		        icon.shadow = "mapicons/tornado/tornadoshadow.png";
		        icon.shadowSize = new GSize(52, 35);
		
		}
		else { 
			var icon = new GIcon();
			var bgcolor = "#344edb";
			icondata = Math.round(data);
			icondata = data*100;
			if (icondata < 500) { icon.image = "mapicons/hail/"+icondata+".png";}
			else { icon.image = "mapicons/hail/500plus.png";}
		        icon.iconAnchor = new GPoint(35, 35);
		        icon.infoWindowAnchor = new GPoint(9, 2);
		        icon.iconSize = new GSize(35, 35);
		        icon.shadow = "mapicons/hail/hailshadow.png";
		        icon.shadowSize = new GSize(52, 35);
		        data = data+"\"";
		
		}
	
			var html = "<table style=\"width:200px;background-color:#FFFFFF;font-family:Calibri,Verdana;\"><tr><td colspan=2 style=\"background-color:"+bgcolor+";color:#FFFFFF;text-align:center\"><span style=\"font-size:12pt;font-weight:bold\">"+data+"</span></td></tr><tr><td style=\"vertical-align:top;font-size:9pt;font-family:Arial;display:block;\">Comments:</td><td style=\"font-size:9pt;font-weight:bold\">"+comments+"</td></tr><tr><td style=\"vertical-align:top;font-size:9pt;font-family:Arial;display:block;\">Address:</td><td style=\"font-size:9pt;font-weight:bold\">"+address+"</td></tr><tr><td style=\"font-size:9pt;font-family:Arial;display:block;\">&nbsp;</td><td style=\"font-size:9pt;font-weight:bold\">"+county+", "+state+"</td></tr><tr><td style=\"font-size:9pt;font-family:Arial;display:block;\">Reported: </td><td style=\"font-size:9pt;font-weight:bold\">"+eventdate+" "+eventtime+"</td></tr><tr><td style=\"font-size:9pt;font-family:Arial;display:block;\">Location: </td><td style=\"font-size:9pt;font-weight:bold\">"+point+"</td></tr></table>";
			marker = new PdMarker(point, icon);	
			marker.setDetailWinHTML(html);
			return marker;
	}


	

