﻿  <!-- Hide

	//var map;
	var METARmarkers = new Array();
	var Lat = 38.6;
	var Lon = -98;
	var dist = 200;
	$cM = new Array("N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW");
	$Compass = new Array("N/A","N","NbE","NNE","NEbN","NE","NEbE","ENE","EbN","E","EbS","ESE","SEbE","SE","SEbS","SSE","SbE","S","SbW","SSW","SWbS","SW","SWbW","WSW","WbS","W","WbN","WNW","NWbW","NW","NWbN","NNW","NbW","N");
	var Sec2Update = 300;	//update events every 5 minutes

	
	function GetXML(){
    	document.getElementById("ajaxBusy").style.display = "block";
    	dist = document.getElementById('tbDist').value;
    	if (isNaN(dist)) dist = 200;
    	var request = GXmlHttp.create();
		request.open("GET", "http://weather.stormctr.com/BocaFalls/METAR/GetMETAR.php?d=" + dist + "&lat=" + Lat + "&lon=" + Lon + "&rand="+(new Date()).valueOf(),true);
    	request.onreadystatechange = function() {
      		if (request.readyState == 4) {
   				var resp = request.responseText;
				if (window.DOMParser){
  					parser=new DOMParser();
  					xmlDoc=parser.parseFromString(resp,"text/xml");
  				}else{ // Internet Explorer
  					xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  					xmlDoc.async="false";
  					xmlDoc.loadXML(resp); 
  				}
    			document.getElementById("ajaxBusy").style.display = "none";
  				if (xmlDoc.documentElement){
        			XMLitems = xmlDoc.documentElement.getElementsByTagName("metar");
					if (XMLitems.length > 0) {
    					UpdateMap(xmlDoc);
    				}
  				} else {
  					alert(resp);
  					alert("Error retrieving data... try again.");
  				}
      		}
    	}
    	request.send(null);
	}
	function RemoveMETARmarkers(){
	    for (var i = 0; i < METARmarkers.length; i++) {
	    	METARmarkers[i].remove();
	    }
		METARmarkers.length = 0;
	}
	function UpdateMap(xDoc){
		metars = xDoc.documentElement.getElementsByTagName("metar");
		//metars = xmlDoc.documentElement.getElementsByTagName("metar");
		if (document.getElementById("chkKeepOldMETAR").checked == false){
			RemoveMETARmarkers();
		}
		//map.clearOverlays();
	    for (var i = 0; i < metars.length; i++) {
	    	var lat = parseFloat(metars[i].getElementsByTagName('latitude')[0].text);
	    	var lon = parseFloat(metars[i].getElementsByTagName('longitude')[0].text);
	    	var ccImage = metars[i].getElementsByTagName('ccFileName')[0].text;
	    	var ccW = metars[i].getElementsByTagName('ccFileName')[0].getAttribute('width');
	    	var ccH = metars[i].getElementsByTagName('ccFileName')[0].getAttribute('height');
	    	var wbImage = metars[i].getElementsByTagName('wbFileNum')[0].text;
	    	var wbW = metars[i].getElementsByTagName('wbFileNum')[0].getAttribute('width');
	    	var wbH = metars[i].getElementsByTagName('wbFileNum')[0].getAttribute('height');
	    	var wxImage = metars[i].getElementsByTagName('wxFileNum')[0].text;
	    	var wxW = metars[i].getElementsByTagName('wxFileNum')[0].getAttribute('width');
	    	var wxH = metars[i].getElementsByTagName('wxFileNum')[0].getAttribute('height');
	    	//createMarker(lat,lon,wxImage,wxW,wxH,wxW,Math.floor(wxH/2),false,metars[i]);
	    	createMarker(lat,lon,wbImage,wbW,wbH,Math.floor(wbW/2),Math.floor(wbH/2),false,metars[i],'wb');
	    	createMarker(lat,lon,ccImage,ccW,ccH,Math.floor(ccW/2),Math.floor(ccH/2),true,metars[i],'cc');
	    	
	    }
	}
	
	function createMarker(lat,lon,ImageName, Width, Height, hotX, hotY, createListner, metar,idExtension){
     		var baseIcon = new GIcon();
          	baseIcon.iconSize=new GSize(Width,Height);
          	baseIcon.iconAnchor=new GPoint(hotX,hotY);
          	baseIcon.infoWindowAnchor=new GPoint(hotX,0);
          	var tIcon = new GIcon(baseIcon);
			tIcon.image = ImageName;
			var point = new GLatLng(lat,lon);
			var marker = new GMarker(point, tIcon);
        	marker.id = metar.getElementsByTagName('station_id')[0].text + '_' + idExtension;
        	if (createListner){
        		var popHTML = GetInfoWinContent(metar);
        		var callbk = GEvent.callbackArgs(this, onClick, marker, popHTML);
        		var lstnr = GEvent.addListener(marker, "click", callbk);
        	}
        	RemoveMarker(marker.id);
    		METARmarkers.push(marker);
			map.addOverlay(marker);
	}
	
	function RemoveMarker(id){
	    for (var i = 0; i < METARmarkers.length; i++) {
	    	if (METARmarkers[i].id == id) {
	    		map.removeOverlay(METARmarkers[i]);
	    		METARmarkers[i].remove();
	    		METARmarkers.splice(i,1)
	    		break;
	    	}
	    }
	}
	
	function GetInfoWinContent(metar){
		var html = "";
		html += '<div id="infow">';
		html += '<table>';
		html += '  <tr>';
		html += '    <td>Station:</td>';
		html += '    <td>' + metar.getElementsByTagName('station_id')[0].text + '</td>';
		html += '  </tr>';
		html += '  <tr>';
		html += '    <td>Elevation:</td>';
		html += '    <td>' + metar.getElementsByTagName('elevation_m')[0].text + ' m (' + Math.round(metar.getElementsByTagName('elevation_m')[0].text * 3.2808399) + ' ft)</td>';
		html += '  </tr>';
		html += '  <tr>';
		html += '    <td>Location:</td>';
		html += '    <td>Lat: ' + metar.getElementsByTagName('latitude')[0].text + '  Lon: ' + metar.getElementsByTagName('longitude')[0].text + '</td>';
		html += '  </tr>';
		html += '  <tr>';
		html += '    <td>METAR:</td>';
		html += '    <td>' + metar.getElementsByTagName('raw_text')[0].text + '</td>';
		html += '  </tr>';
		html += '  <tr>';
		html += '    <td>Observation Time:</td>';
		html += '    <td>' + metar.getElementsByTagName('observation_time')[0].text + '</td>';
		html += '  </tr>';
		html += '  <tr>';
		html += '    <td>Temp:</td>';
		html += '    <td>' + metar.getElementsByTagName('temp_c')[0].text + " \u00B0C   " + (metar.getElementsByTagName('temp_c')[0].text * 9 / 5 + 32) + " \u00B0F</td>";
		html += '  </tr>';
		html += '  <tr>';
		html += '    <td>Dew Point:</td>';
		html += '    <td>' + metar.getElementsByTagName('dewpoint_c')[0].text + " \u00B0C   " + (metar.getElementsByTagName('dewpoint_c')[0].text * 9 / 5 + 32) + " \u00B0F</td>";
		html += '  </tr>';
		html += '  <tr>';
		
		//A heading of 75°, divided by 11.25 gives 6.67, added to 1.5 gives 8.17, truncated to give 8. 8 in the table below corresponds to east by north.
		$CH = $Compass[Math.floor((metar.getElementsByTagName('wind_dir_degrees')[0].text / 11.25) + 1.5)];
		html += '    <td>Wind:</td>';
		html += '    <td>' + metar.getElementsByTagName('wind_speed_kt')[0].text + ' kts (' + (Math.round(10*metar.getElementsByTagName('wind_speed_kt')[0].text/ 1.15077945)/10) + 'mph) @ ' + $CH + ":" + metar.getElementsByTagName('wind_dir_degrees')[0].text + "\u00B0</td>";
		html += '  </tr>';
		html += '  <tr>';
		html += '    <td>Gusts:</td>';
		html += '    <td>' + metar.getElementsByTagName('wind_gust_kt')[0].text + ' kts</td>';
		html += '  </tr>';
		html += '  <tr>';
		html += '    <td>Visibility:</td>';
		html += '    <td>' + metar.getElementsByTagName('visibility_statute_mi')[0].text + ' mi</td>';
		html += '  </tr>';
		html += '  <tr>';
		html += '    <td>Altimeter:</td>';
		html += '    <td>' + metar.getElementsByTagName('altim_in_hg')[0].text + ' in mg</td>';
		html += '  </tr>';
		html += '  <tr>';
		html += '    <td>Seal Level Press:</td>';
		html += '    <td>' + metar.getElementsByTagName('sea_level_pressure_mb')[0].text + ' mb</td>';
		html += '  </tr>';
		html += '  <tr>';
		html += '    <td>Vertical Visibility:</td>';
		html += '    <td>' + metar.getElementsByTagName('vert_vis_ft')[0].text + ' ft</td>';
		html += '  </tr>';
		html += '</table>';
		html += '</div>';
		return html;
	}
	
	function onClick(A, B) {
    	var C = new GInfoWindowTab("Info", B);
    	A.openInfoWindowTabsHtml([C])
    	map.setCenter(A.getLatLng());
	}

	//This function is called on page load to start the refresh of the strikes
	function cycle() {
		//setInterval ( "UpdateKML()", Sec2Update * 1000 );
		setInterval ( "CountDown()", 1000 );
	}
	var intvl = Sec2Update;
	function CountDown(){
		intvl -= 1;
		if(intvl<1){
			intvl = Sec2Update;
			GetXML();
		}
		document.getElementById("cntdwn").innerHTML = intvl;
		document.getElementById("sec2up").innerHTML = Sec2Update;
		var d=new Date();
		document.getElementById("curDate").innerHTML = d.toUTCString();
	}

  // End hide-->


