/*
Copyright 2005-2009 skyvector.com. All Rights reserved.
You may not use this script for any purpose without permission.
*/

var chart;
var slider;
var zoomer;
var datalayerdiv;
var switcherdiv;
var tile=new Array();
var tilesrc=new Array();
var vwidth;
var vheight;
var orig_vwidth;
var orig_vheight;
var setid=1;
var protoid=1;
var scale=1;
var tilesize=256;
var tiledir='/tiles';
var scrolltimeout;
var http_request = false;
var weather=1;
var rcx=0;
var rcy=0;
var dBox;
var isIE=false;
var showPlan=1;
var fltPlandiv;
var oldrighthtml;

if (window.ActiveXObject){
   isIE=true;
}

function makeRequester(){
   var http_request;
   if (window.XMLHttpRequest) { // Mozilla, Safari, ...
      http_request = new XMLHttpRequest();
   } else if (window.ActiveXObject) { // IE
      isIE=true;
      try {
         http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         try {
            http_request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e) {}
     }
   }
   if(!http_request){
      return false;
   }
   return http_request;
}

function getDataLayer (url){
   if(url.indexOf("?") > 0){
      url+="&rand="+Math.random();
   }else{
      url+="?rand="+Math.random();
   }
   var http_request=makeRequester();
   http_request.onreadystatechange = function() { rcvDataLayer(http_request); };
   http_request.open('GET',url,true);
   http_request.send(null);
}

function rcvDataLayer(request){
   if (request.readyState == 4) {
      if (request.status == 200) {
         var html = request.responseText;
         var xmldoc= request.responseXML;
         var dataLayer=xmldoc.getElementsByTagName('dataLayer').item(0);
         var switchers=xmldoc.getElementsByTagName('switchers').item(0);
         var svgLayer=xmldoc.getElementsByTagName('svgLayer').item(0);
         var func=xmldoc.getElementsByTagName('func').item(0);

         if(dataLayer){
            var html=dataLayer.firstChild.data;
            if(html){
               if(!datalayerdiv){
                  datalayerdiv=document.getElementById("datalayer");
               } 
               if(!datalayerdiv){
                  datalayerdiv=document.getElementById("datalayer");
               } 
               if(datalayerdiv){
                  datalayerdiv.innerHTML=html;
               }
            }
         }
         if(switchers){
            var html=switchers.firstChild.data;
            if(html){
               if(!switcherdiv){
                  switcherdiv=document.getElementById("switchers");
               } 
               if(!switcherdiv){
                  switcherdiv=document.getElementById("switchers");
               } 
               if(switcherdiv){
                  switcherdiv.innerHTML=html;
               }
            }
         }
         if(svgLayer){
            var html=svgLayer.firstChild.data;
            if(html){
               if(!svgdiv){
                  svgdiv=document.getElementById("svgdivid");
               }
               if(!svgdiv){
                  svgdiv=document.getElementById("svgdivid");
               }
               if(svgdiv){
                  svgdiv.innerHTML=html;
               }
            }
         }
         if(func){
            var f=func.firstChild.data;
            if(f) eval(f);
         }
      }
      void(request);
   }
}



function makeRequest(url){
   http_request=makeRequester();
   http_request.onreadystatechange = xmlResponse;
   http_request.open('GET',url,true);
   http_request.send(null);
}


function xmlResponse(){
   if (http_request.readyState == 4) {
      if (http_request.status == 200) {
         var xmldoc= http_request.responseXML;
         var func=xmldoc.getElementsByTagName('func').item(0);
         if(func){
            var f=func.firstChild.data;
            if(f) eval(f);
         }
      }else{
          //error with response;
      }
   }
}

function airport(a){
   makeRequest("/perl/airport?i="+escape(a));
}
function search(a,b){
   showPlan=1;
   if(b){
      try {
         pageTracker._trackEvent("Map","Search",a);
      }catch(err) {}
   }
   makeRequest("/perl/search?q="+escape(a) + "&s="+scale);
}


var scalors=new Array(.5,1,1.5,2,3,4,6,8,12,16,24,36,48,72,96);


var htiles;
var vtiles;
var hmax;
var vmax;

var posx;
var posy;
var scrollx=0;
var scrolly=0;
var dragstartx=0;
var dragstarty=0;
var dragon=0;
var zoomstartx=0;
var zoomon=0;

function pan(x,y,force){
   posx=Math.floor(x);
   posy=Math.floor(y);
   newscrollx=Math.floor(vwidth/2)-posx;
   newscrolly=Math.floor(vheight/2)-posy;
   if(force || newscrollx != scrollx || newscrolly != scrolly){
      //msg.innerHTML=("scrolled to ("+posx+","+posy+") which is at ("+newscrollx+","+newscrolly+")");
      //msg.innerHTML=(protoid+","+scale+","+posx+","+posy+", scrolltop="+chart.scrollTop );
      scrollx=newscrollx;
      scrolly=newscrolly;
      slider.style.top=scrolly+"px";
      slider.style.left=scrollx+"px";
      var tx=scrollx>0 ? 0 : Math.floor(-1*scrollx/tilesize); //first tile to load
      var ty=scrolly>0 ? 0 : Math.floor(-1*scrolly/tilesize); //first tile to load
      for(var i=ty ; i < ty+vtiles; i++){
         for(var j=tx ; j < tx+htiles; j++){
            var ix=j % htiles; //image x array element
            var iy=i % vtiles; //image y array element
            var itop=i*tilesize; //image top
            var ileft=j*tilesize; //image left
            var filename="";
            if (i >=0 && i < vmax && j >=0 && j < hmax ){
               filename=tiledir + "/tile_" + setid + "_" + protoid + "_" + scale + "_" + j + "_" + i + ".jpg";
            }else{
               filename=tiledir + "/clear.gif";
            }
            if (tile[iy] && tile[iy][ix] && tilesrc[iy][ix] != filename){
               tile[iy][ix].src = tiledir + "/clear.gif";
               delay=Math.floor((Math.abs(ileft+(.5*tilesize)-posx)+Math.abs(itop+(.5*tilesize)-posy))/20);
               setTimeout("tile["+iy+"]["+ix+"].src=\""+filename+"\"",delay);
   //msg.innerHTML="tile.src="+tilesrc[iy][ix]+" and delay="+delay;
               tilesrc[iy][ix] = filename;
               if (tile[iy][ix].style.top == itop+"px" && tile[iy][ix].style.left == ileft+"px"){
               }else{
                  tile[iy][ix].style.top=itop+"px";
                  tile[iy][ix].style.left=ileft+"px";
               }
            }
         }
      }
      if (scrolltimeout) clearTimeout(scrolltimeout);
      scrolltimeout=setTimeout("reScroll()",600);
   }
}

function reScroll(){
   if (chart){
      if (chart.scrollTop !=0) chart.scrollTop=0;
      if (chart.scrollLeft !=0) chart.scrollLeft=0;
      getDataLayer("/perl/dataLayer_xml?wx="+weather+"&a="+setid+"-"+protoid+"-"+scale+"-"+posx+"-"+posy+"-"+vwidth+"-"+vheight + (showPlan ? "&do=showPlan" : "" ));
      document.cookie="StartLoc="+setid+"-"+protoid+"-"+scale+"-"+posx+"-"+posy+"; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/;";
   //getDataLayer("/perl/grid?a="+setid+"-"+protoid+"-"+scale+"-"+posx+"-"+posy+"&h="+vheight+"&w="+vwidth);
   }
}

function check_weather(check){
   if (check){
      weather=1;
      reScroll();
   }else{
      weather=0;
      if(datalayerdiv){
         datalayerdiv.innerHTML='';
      }
      reScroll();
   }
}

function zoom(z){
   scale=parseInt(scale);
   if (z=="OUT"){
      if (scale < 10){
         posx=Math.floor(posx*scalors[scale]/scalors[(scale+1)]);
         posy=Math.floor(posy*scalors[scale]/scalors[(scale+1)]);
         scale++;
         initMap();
      }
   }else if (z=="IN"){
      if (scale > 1){
         posx=Math.floor(posx*scalors[scale]/scalors[(scale-1)]);
         posy=Math.floor(posy*scalors[scale]/scalors[(scale-1)]);
         scale--;
         initMap();
      }
   }else{
      if (z >= 1 && z <= 10){
         posx=Math.floor(posx*scalors[scale]/scalors[z]);
         posy=Math.floor(posy*scalors[scale]/scalors[z]);
         scale=z;
         initMap();
      }
   }
   try {
      pageTracker._trackEvent("Map","Zoom",scale+"");
   }catch(err) {}
}

function initMap(p_chart,p_set,p_protoid,p_scale,p_x,p_y){
   if(p_chart){
      chart=document.getElementById(p_chart);
      if (!chart){return false};
      dBoxMk();
      //chart.style.position='relative';
      chart.style.border='1px solid #808080';
      chart.style.backgroundColor='#D5E6E6';
      chart.style.overflow='hidden';
      chart.style.textAlign='left';
   }else{
      if (!chart){return false};
   }
   if(p_set){
      setid=p_set;
   }
   if(p_scale){
      scale=p_scale;
   }
   if(p_protoid){
      protoid=p_protoid;
   }
   if(p_x){
      posx=p_x;
   }
   if(p_y){
      posy=p_y;
   }
   if(sizes[protoid]){
      mapwidth=sizes[protoid][0];
      mapheight=sizes[protoid][1];
   }else{
      mapwidth=12000;
      mapheight=12000;
   }
   if(!posx || posx>(mapwidth/scalors[scale])){
      posx=Math.floor((mapwidth/2)/scalors[scale]);
   }
   if(!posy || posy>(mapheight/scalors[scale])){
      posy=Math.floor((mapheight/2)/scalors[scale]);
   }
   if (!orig_vwidth) orig_vwidth=chart.clientWidth;
   if (!orig_vheight) orig_vheight=chart.clientHeight;
   if (!orig_vwidth) orig_vwidth=chart.style.pixelWidth;
   if (!orig_vheight) orig_vheight=chart.style.pixelHeight;
   
   vwidth=chart.clientWidth;
   vheight=chart.clientHeight;
   if (!vwidth) vwidth=chart.style.pixelWidth;
   if (!vheight) vheight=chart.style.pixelHeight;
   if (!vwidth) vwidth=800;
   if (!vheight) vheight=600;
   if(navigator.userAgent.indexOf("MSIE 6") > 0){
      var w=document.documentElement.clientWidth;
      var h=document.documentElement.clientHeight;
      if (w && h){
         vwidth=parseInt(w-216);
         vheight=parseInt(h-102);
      }
   }
   htiles=Math.ceil(vwidth/tilesize)+1;
   vtiles=Math.ceil(vheight/tilesize)+1;
   hmax=Math.ceil((mapwidth/scalors[scale])/tilesize);
   vmax=Math.ceil((mapheight/scalors[scale])/tilesize);
   var zoomerx=vwidth-140;
   var zoomery=vheight-23;
   var html='';
   //html += "<div id=\"svgdivid\" style=\"position: absolute; z-index: 0; height: "+ vheight +"px; width: "+ vwidth +"px; text-align: left;\"></div>";
   //html += "<div id=\"datalayer\" style=\"position: absolute; z-index: 1;\"><img src=\""+tiledir + "/clear.gif\"/></div>";
   html += "<img style=\"z-index: 1; width: 134px; height: 17px; position: absolute; right: 6px; bottom: 5px; border: none;\" usemap=\"#zoomermap\" src=\"/images/zc.png\"/><map id=\"zoomermap\" name=\"zoomermap\"> <area title=\"Zoom Out\" alt=\"Zoom Out\" shape=\"rect\" coords=\"0,0,19,16\" href=\"javascript:;\" onclick=\"zoom('OUT'); return false\"/> <area title=\"Zoom In\" alt=\"Zoom In\" shape=\"rect\" coords=\"114,0,133,16\" href=\"javascript:;\" onclick=\"zoom('IN'); return false\"/> <area shape=\"rect\" coords=\"20,0,34,16\" href=\"javascript:;\" onclick=\"zoom(10); return false;\"/> <area shape=\"rect\" coords=\"35,0,42,16\" href=\"javascript:;\" onclick=\"zoom(9); return false;\"/> <area shape=\"rect\" coords=\"43,0,50,16\" href=\"javascript:;\" onclick=\"zoom(8); return false;\"/> <area shape=\"rect\" coords=\"51,0,58,16\" href=\"javascript:;\" onclick=\"zoom(7); return false;\"/> <area shape=\"rect\" coords=\"59,0,66,16\" href=\"javascript:;\" onclick=\"zoom(6); return false;\"/> <area shape=\"rect\" coords=\"67,0,74,16\" href=\"javascript:;\" onclick=\"zoom(5); return false;\"/> <area shape=\"rect\" coords=\"75,0,82,16\" href=\"javascript:;\" onclick=\"zoom(4); return false;\"/> <area shape=\"rect\" coords=\"83,0,90,16\" href=\"javascript:;\" onclick=\"zoom(3); return false;\"/> <area shape=\"rect\" coords=\"91,0,98,16\" href=\"javascript:;\" onclick=\"zoom(2); return false;\"/> <area shape=\"rect\" coords=\"99,0,112,16\" href=\"javascript:;\" onclick=\"zoom(1); return false;\"/> </map> <img id=\"zoomer\" border=\"0\" width=\"10\" height=\"21\" src=\"/images/zs.png\" style=\"position: absolute; z-index: 2; bottom: 3px; right: " + (scale*8 + 24) + "px;\"/> ";
   var centerx=Math.floor(vwidth/2)-6;
   var centery=Math.floor(vheight/2)-6;
   html += "<img style=\"z-index: 1; position: absolute; top: " + centery + "px; left: " + centerx + "px;\" src=\"/images/crosshairs.gif\" width=\"11\" height=\"11\" border=\"0\"/>";
   html += "<div id=\"switchers\" style=\"top: 0px; right: 0px; z-index: 1; position: absolute; height: 12px; \"></div>";
   //html += "<div id=\"dBox\" class=\"dBox\" style=\"visibility: hidden;\"></div>";
   html += "<div id=\"slider\" style=\"position: absolute; z-index: 0; width: 20px; height: 20px; top: -10px; left: -20px;\">";
   for (var i=0; i < vtiles; i++){
      for (var j=0; j < htiles; j++){
         html += "<img style=\"position: absolute; z-index: 0; top: "+i*tilesize+"px; left: "+j*tilesize+"px;\" id=\"img_"+j+"_"+i+"\" border=\"0\" width=\"" + tilesize + "\" height=\"" + tilesize + "\" src=\""+tiledir + "/clear.gif\"/>";
      }
   }
   html += "<div id=\"svgdivid\" style=\"position: absolute; z-index: 0; height: "+ vheight +"px; width: "+ vwidth +"px; text-align: left;\"></div>";
   html += "<div id=\"datalayer\" style=\"position: absolute; z-index: 1;\"><img src=\""+tiledir + "/clear.gif\"/></div>";
   html += "</div>";
   chart.innerHTML=html;
//   if(navigator.userAgent.indexOf("MSIE")>0){
//      chart.style.width=orig_vwidth;
//      chart.style.height=orig_vheight;
//   }
   slider=document.getElementById("slider");   
   datalayerdiv=document.getElementById("datalayer");
   switcherdiv=document.getElementById("switchers");
   switcherdiv.onclick=function() {
      try {
         pageTracker._trackEvent("Map","Switcher");
      }catch(err) {}
   }
   svgdiv=document.getElementById("svgdivid");
   for (var i=0; i < vtiles; i++){
      tile[i]=new Array();
      tilesrc[i]=new Array();
      for (var j=0; j < htiles; j++){
         tile[i][j]=document.getElementById("img_"+j+"_"+i);
         tilesrc[i][j]='x';
         if(tile[i][j]){
         }else{ alert("tile img element ("+j+","+i+")not found")}
      }
   } 
   pan(posx,posy,1);
   chart.onmousedown=mdown;
   chart.oncontextmenu=mright;
   //document.onmouseup=mup;
   //chart.onmouseup=mup;
   chart.onmouseup=mup;
   //chart.onmouseout=mup;
   chart.onmousemove=mmove;
   chart.ondblclick=mdc;
   chart.onclick=function (){dBoxHide();};
   chart.ondrag= function (){return false;};
   chart.ondragend= function (){return false;};
   chart.ondragenter= function (){return false;};
   chart.ondragleave= function (){return false;};
   chart.ondragover= function (){return false;};
   chart.ondragstart= function (){return false;};
   zoomer=document.getElementById("zoomer");
   if (zoomer){
      zoomer.minleft=(zoomerx+26);
      zoomer.maxleft=(zoomerx+26+(9*8));
      zoomer.onmousedown=zmdown;
      zoomer.onmouseup=mup;
      zoomer.ondrag= function (){return false;};
      zoomer.ondragend= function (){return false;};
      zoomer.ondragenter= function (){return false;};
      zoomer.ondragleave= function (){return false;};
      zoomer.ondragover= function (){return false;};
      zoomer.ondragstart= function (){return false;};
   }
}
function zmdown(e){
   if (!e){
      e=window.event;
   }
   dBoxHide();
   zoomon=1;
}
function mup(e){
   if (!e){
      e=window.event;
   }
   dragon=0;
   if(zoomon && zoomer){
      zoomon=0;
      var left=e.clientX-chart.offsetLeft-4;
      if (left < zoomer.minleft) left=zoomer.minleft;
      if (left > zoomer.maxleft) left=zoomer.maxleft;
      
      var a=(left - zoomer.minleft);
      var newscale=Math.round(10-(a/8));
      if (newscale != scale){
         setTimeout("zoom("+newscale+")",90);
      }
   }
   return false;
}
function mright(e){
   if(!e){
      e=window.event;
   }
   dBoxHide();
   rcx=e.clientX;
   var x=rcx-chart.offsetLeft;
   rcy=e.clientY;
   var y=rcy-chart.offsetTop;
   var xp=Math.floor(posx-((vwidth/2)-x));
   var yp=Math.floor(posy-((vheight/2)-y));
   makeRequest("/perl/rightClick?a="+setid+"-"+protoid+"-"+scale+"-"+xp+"-"+yp);
      try {
         pageTracker._trackEvent("Map","rClick");
      }catch(err) {}
   return false;
}
   
function mdown(e){
   if(!e){
      e=window.event;
   }
   //dBoxHide();
   dragon=1;
   dragstartx=posx+e.clientX-chart.offsetLeft;
   dragstarty=posy+e.clientY-chart.offsetTop; 
   return false;
}

function mmove(e) {
   if(!e){
      e=window.event;
   }
   var x=e.clientX-chart.offsetLeft;
   var y=e.clientY-chart.offsetTop;
   if (zoomon==1){
      if(zoomer){
         var left=x-4;
         if (left < zoomer.minleft) left=zoomer.minleft;
         if (left > zoomer.maxleft) left=zoomer.maxleft;
         zoomer.style.left=left+"px";
      } 
   }else if (dragon==1){
      pan(dragstartx-x,dragstarty-y);
   }
   return false;
}
function mdc(e){
   if(!e){
      e=window.event;
   }
   dBoxHide();
   var x=e.clientX-chart.offsetLeft;
   var y=e.clientY-chart.offsetTop;
   var xp=Math.floor(posx-((vwidth/2)-x));
   var yp=Math.floor(posy-((vheight/2)-y));
   pan(xp,yp);
   return false;
}
function setProto(p){
   protoid=p;
   initMap();
}

function locData(data){
   mup();
   if (!dBox){
      dBoxMk();
   }
   if (dBox){
      dBox.style.top=rcy + "px";
      dBox.style.left=rcx + "px";
      var html = "<div class=\"dHead\">Location Information</div>";
      for (var i in data.near) {
         var point=data.near[i];
         html += "<div class=\"dLine\"><a class=\"plan\" href=\"javascript:fltPlan({i:'" + point.i + "',lat:'" + point.lat + "',lon:'" + point.lon + "',t:'" + point.t + "',v:'"+point.v+"'"+(point.url ? ",u:'"+point.url+"'":"")+(point.n ? ",n:'"+escape(point.n.replace("'","\\'"))+"'":"")+"});\">PLAN</a>"+(point.url ? "<a class=\"dLine\" href=\"" + point.url + "\">":"")+"<img class=\"dBoxIcon\" src=\"/images/"+point.t+".png\"/>" + (point.n ? point.n + " (" + (point.f ?  point.f + " " :"") + point.i + ")" : point.i)+(point.url ? "</a>":"")+"</div>\n";
      }
      html += "<div class=\"dLine\"><a class=\"plan\" href=\"javascript:fltPlan({i:'GPS',lat:'" + data.lat + "',lon:'" + data.lon + "',t:'GPS'});\">PLAN</a><img class=\"dBoxIcon\" src=\"/images/GPS.png\"/>GPS " + data.lat + "/" + data.lon + "</div>\n";
      dBox.innerHTML=html;
      dBox.style.visibility='visible';
   }
}
function dBoxHide() {
   if (dBox){
      dBox.style.visibility='hidden';
   }
}
function dBoxMk() {
   if (chart){
      if (isIE){
         dBox=document.createElement("div");
         dBox.className="dBox";
      }else{
         dBox=document.createElementNS("http://www.w3.org/1999/xhtml","div");
      }
      dBox.setAttribute("class","dBox");
      dBox.style.visibility="hidden";
      dBox.style.zIndex=100;
      //var parentDiv=chart.parentNode;
      //parentDiv.insertBefore(dBox,chart);
      document.body.insertBefore(dBox,document.body.lastChild);
   }
}

function fltPlan(point) {
   dBoxHide();
   var args="a="+setid+"-"+protoid+"-"+scale+"-"+posx+"-"+posy+"-"+vwidth+"-"+vheight;
   if(weather) args += "&wx="+weather;
   args +="&do=addPoint";
   if (point.t) args += "&t="+escape(point.t);
   if (point.i) args += "&i="+escape(point.i);
   if (point.lat) args += "&lat="+escape(point.lat);
   if (point.lon) args += "&lon="+escape(point.lon);
   if (point.v) args += "&v="+escape(point.v);
   if (point.u) args += "&u="+escape(point.u);
   if (point.n) args += "&n="+point.n; // already escaped;
   getDataLayer("/perl/dataLayer_xml?"+args);
      try {
         pageTracker._trackEvent("Map","Plan");
      }catch(err) {}
}

function clearPlan() {
   if(fltPlandiv) fltPlandiv.innerHTML='';
   if (oldrighthtml) fltPlandiv.innerHTML=oldrighthtml;
   getDataLayer("/perl/dataLayer_xml?wx="+weather+"&a="+setid+"-"+protoid+"-"+scale+"-"+posx+"-"+posy+"-"+vwidth+"-"+vheight + "&do=clearPlan" );
}

function updatePlan(plan) {
   showPlan=0;
   if (!fltPlandiv) fltPlandiv=document.getElementById("fltPlan");
   if (!fltPlandiv) return false;
   if (!oldrighthtml){
      oldrighthtml=fltPlandiv.innerHTML;
   }
   //fltPlandiv.style.textAlign='left';
   var html="Flight Plan<input type=\"button\" onclick=\"clearPlan()\" value=\"Clear\"/><br/><table class=\"fP\">";
   for (var i = 0 ; i < plan.points.length ; i++){
      var point=plan.points[i];
      html += "<tr class=\"fP\"><td rowspan=\"2\" class=\"fPid\"><a class=\"fP\" href=\"javascript:search('"+point.lat+"/"+point.lon +"')\"><img class=\"dBoxIcon\" src=\"/images/"+point.t+".png\" /><br/>"+( point.i.length > 4 ? "<span style=\"font-size: 9px;\">" + point.i + "</span>" : point.i ) + "</a></td><td class=\"fPname\">"+(point.name ? point.name : point.i +" "+ Math.round(point.lat*1000)/1000 + "/" + Math.round(point.lon*1000)/1000 )+"</td>\n";
      html += "<td class=\"fPname\" rowspan=\"2\" valign=\"middle\" style=\"font-size: 1px; line-height: 1px;\"><a href=\"javascript:fPup("+i+");\"><img border=\"0\" width=\"11\" height=\"9\" src=\"/images/fPup.gif\"/></a><br/>";
      html += "<a href=\"javascript:fPdel("+i+");\"><img border=\"0\" width=\"11\" height=\"11\" src=\"/images/fPdel.gif\"/></a><br/>";
      html += "<a href=\"javascript:fPdown("+i+");\"><img border=\"0\" width=\"11\" height=\"9\" src=\"/images/fPdown.gif\"/></a></td></tr>";
      if (point.distance) {
         html += "<tr><td class=\"fPdata\">"+point.crsMag+"&#176;<em style=\"font-size: 10px; color: #808080;\">("+point.crsTrue+"&#176;T)</em> "+point.distance+"nm</td></tr>\n";
      }else{
         html += "<tr><td class=\"fPdata\" style=\"color: #d0d0d0; font-style: italic; text-align: center;\">n/a</td></tr>\n";
      }
   }
   html +="<tr><td class=\"fPdata\" colspan=\"3\">Total Distance: <span style=\"font-weight: bold\">" + plan.totalDist + "nm</span></td></tr>";
   html +="</table>";
   fltPlandiv.innerHTML=html;
}



//better weather
var wxBox;

function wxHide() {
   if (wxBox){
      wxBox.style.zIndex=-10;
      wxBox.innerHTML=' ';
      wxBox.style.visibility='hidden';
      
   }
}

function wxBoxMk() {
   if (chart){
      if (isIE){
         wxBox=document.createElement("div");
         wxBox.className="wxBox";
      }else{
         wxBox=document.createElementNS("http://www.w3.org/1999/xhtml","div");
      }
      wxBox.setAttribute("class","wxBox");
      wxBox.style.visibility="hidden";
      //wxBox.style.width="400px";
      wxBox.style.fontFamily="sans-serif";
      wxBox.style.fontSize="9pt";
      wxBox.style.textAlign="left";
      wxBox.style.position="absolute";
      wxBox.style.backgroundColor="#ffffaa";
      wxBox.style.border="1px solid black";
      wxBox.style.paddingLeft="2px";
      wxBox.style.paddingRight="2px";
      wxBox.style.zIndex=10;
      //var parentDiv=chart.parentNode;
      //parentDiv.insertBefore(wxBox,chart);
      document.body.insertBefore(wxBox,document.body.firstChild);
   }
}

function wxShow(x,y,metar){
   if (!wxBox){
      wxBoxMk();
   }
   if(wxBox){
      x=parseInt(x);
      y=parseInt(y);
      x+=chart.offsetLeft+15-posx+Math.round(vwidth/2);
      y+=chart.offsetTop+15-posy+Math.round(vheight/2);
      wxBox.innerHTML=unescape(metar);
      wxBox.style.top=y+"px";
      wxBox.style.left=x+"px";
      wxBox.style.zIndex=10;
      wxBox.style.visibility="visible";
   }
}

function clearSearch(){
   if(fltPlandiv && fltPlandiv.innerHTML.indexOf("earch Results") > 0 ){
       fltPlandiv.innerHTML='';
       if (oldrighthtml) fltPlandiv.innerHTML=oldrighthtml;
   }
}

function searchResults(sr){
   if (!fltPlandiv) fltPlandiv=document.getElementById("fltPlan");
   if (!fltPlandiv) return false;
   if (!oldrighthtml){
      oldrighthtml=fltPlandiv.innerHTML;
   }
   var html="Search Results <input type=\"button\" value=\"Clear\" onclick=\"clearSearch()\"/><br/><table class=\"fP\">";
   html += "<tr class=\"fP\"><th class=\"fP\">GoTo</th><th class=\"fP\">Airport Information Page</th></tr>";
   for (var i = 0 ; i < sr.length ; i++){
      var cand=sr[i];
      html += "<tr class=\"fP\"><td rowspan=\"2\" class=\"fPid\"><a class=\"fP\" href=\"javascript:search('"+cand.lat+"/"+cand.lon+"')\">"+( cand.id.length > 4 ? "<span style=\"font-size: 9px;\">" + cand.id + "</span>" : cand.id ) + "</a></td><td class=\"fPname\"><a class=\"fP\" href=\""+cand.url+"\">"+ cand.name +"</a></td></tr>\n";
      html += "<tr><td class=\"fPdata\">"+ cand.city + ", " + cand.st +"</td></tr>\n";
   }
   html +="</table>";
   fltPlandiv.innerHTML=html;
 


}
function fPup(i){
   getDataLayer("/perl/dataLayer_xml?wx="+weather+"&a="+setid+"-"+protoid+"-"+scale+"-"+posx+"-"+posy+"-"+vwidth+"-"+vheight + "&do=fPup&i=" + i );
}
function fPdel(i){
   getDataLayer("/perl/dataLayer_xml?wx="+weather+"&a="+setid+"-"+protoid+"-"+scale+"-"+posx+"-"+posy+"-"+vwidth+"-"+vheight + "&do=fPdel&i=" + i );
}
function fPdown(i){
   getDataLayer("/perl/dataLayer_xml?wx="+weather+"&a="+setid+"-"+protoid+"-"+scale+"-"+posx+"-"+posy+"-"+vwidth+"-"+vheight + "&do=fPdown&i=" + i );
}

setInterval("checkC()",2000);

function checkC(){
   var c=document.getElementById("chart");
   if (c){
      if (c.clientHeight < (vheight-10)){
         c.style.height=vheight+"px"; 
      }
   }
}

function checkC(){
   var c=document.getElementById("chart");
   if (c){
      if (c.clientHeight < 10 && vheight > 10){
         c.style.height=vheight+"px"; 
      }
      if (c.clientWidth < 10 && vwidth > 10){
         c.style.width=vwidth+"px"; 
      }
   }
}

