var milesil = new Array();

var mlats =  
[38965597,38967222,38969444,38968333,38963611,38955555,38956666,
38967222,
38978888,38989722,39003611,39017777,39031944,39043611,39056666,
39069722,39083055,39097222,39110555,39124444,39138611,39152777,
39166388,39179166,39189722,39202222,39216111,39229722,39244444,
39256666,39270277,39284722,39299166,39312500,39326944,39341111,
39355277,39369444,39382777,39397222,39411944,39426666,39440833,
39455277,39468333,39481111,39495277,39507222,39521388,39535277,
39549444,39563055,39577222,39591666,39604722,39618888,39632777,
39646388,39657222,39670833,39684444,39698055,39712500,39724444,
39736944,39750277,39762777,39776666,39790000,39802777,39815000,
39826388,39838611,39850833,39864722,39879166,39892222,39899722,
39910833,39923888,39938055,39951111,39962777,39976944,39991388,
39998888,40004166,40008611,40015833,40025277,40038888,40053611,
40065000,40072500,40082777,40095555,40109444,40122222,40124444,
40132222,40139444,40140277,40146944,40153055,40154444,40150277,
40150000,40158888,40173333,40187777,40195277,40206944,40217500,
40221944,40227222,40239444,40253611,40265555,40276388,40288055,
40300277,40314166,40325277,40338055,40352777,40366111,40377222,
40381388,40388333,40394166,40406944,40417222,40426944,40434444,
40441388,40453055,40466944,40478888,40494166,40507777,40516111,
40523888,40531111,40538611,40543888,40549444,40552777,40550833,
40553055,40556388,40560555,40552777,40562222,40574722,40588055,
40601752,40613055,40624166,40635277,40647500,40658888,40671388,
40682222,40690277,40699444,40709444,40723333,40737500,40751388,
40765277,40779444,40793055,40806111,40818611,40830555,40843055,
40856111,40868055,40880277,40894722,40908611,40920277,40930555,
40943611,40956944,40971666,40985277,40997222,41011388,41023888,
41038055,41051111,41062500,41074722,41084444,41097500,41108611,
41116111,41129722,41143888,41156944,41170833,41185277,41196944,
41209722,41221111,41234444,41249166,41262222,41275277,41290000,
41300555,41304444,41308888,41315555,41322777,41317777,41312777,
41312500,41310555,41308888,41315000,41319166,41323611,41313055,
41316388,41324166,41320833,41320555,41324722,41328055,41324166,
41319166,41317222,41317777,41320000,41320555,41321599,41330527,
41340277,41341666,41339722,41339722,41334722,41329722,41328055,
41325277,41321388,41318888,41312500,41313888,41308333,41299444,
41299166,41305555,41314444,41322777,41326666,41330277,41333611,
41341111,41344444,41348888,41353055,41355555,41361944,41365277,
41370555,41377500,41384444,41392222,41397222,41399444,41392777,
41383055,41392222,41403055,41416666,41422777,41431944,41444166,
41458055,41468611,41475555,41485277,41495145,41504166,41512500,
41526388,
41540277,41554444,41568055,41581111,41595277,41609722,41624166,
41638056,41652222,41663056,41670278,41676111,41681944,41687500,
41693611];

var mlngs =  
[-90430294,-90446944,-90465000,-90482222,-90499166,-90513333,-90531388,-90545277,
-90556111,-90567500,-90574444,-90575555,-90574722,-90585277,-90586944,
-90584444,-90591388,-90596388,-90603055,-90606111,-90613333,-90615833,
-90613055,-90600833,-90596111,-90591666,-90591944,-90595833,-90598611,
-90609166,-90607500,-90603888,-90605277,-90610555,-90613333,-90617222,
-90620277,-90621111,-90616944,-90613888,-90615555,-90616388,-90612500,
-90610277,-90603888,-90595277,-90588888,-90584166,-90580277,-90578888,
-90574722,-90578611,-90584166,-90589722,-90597777,-90604722,-90607222,
-90613611,-90625833,-90633055,-90639444,-90645555,-90642777,-90633055,
-90623611,-90615277,-90608888,-90606111,-90599166,-90588611,-90579166,
-90567500,-90571388,-90581111,-90585277,-90581388,-90572222,-90556666,
-90544722,-90536388,-90534166,-90526388,-90516111,-90511388,-90513055,
-90497222,-90479444,-90461388,-90445277,-90433611,-90429722,-90429444,
-90420555,-90404444,-90391388,-90390555,-90381944,-90373333,-90355277,
-90341666,-90323611,-90305555,-90291666,-90272777,-90253611,-90236111,
-90218055,-90203333,-90202222,-90196944,-90182777,-90172777,-90161111,
-90143611,-90126388,-90118055,-90111388,-90098611,-90086111,-90076111,
-90067777,-90068611,-90055555,-90049444,-90051111,-90045277,-90034166,
-90016666,-89998888,-89981388,-89971944,-89958888,-89944722,-89928888,
-89912777,-89905277,-89896944,-89887222,-89884722,-89880000,-89866388,
-89849444,-89832222,-89817222,-89800555,-89783611,-89765277,-89746111,
-89728333,-89710277,-89692777,-89678888,-89663888,-89654444,-89658055,
-89655736,-89647222,-89634722,-89621666,-89611666,-89616111,-89607222,
-89594444,-89579444,-89563055,-89551944,-89547222,-89550555,-89553611,
-89556111,-89558055,-89560277,-89552222,-89543888,-89532222,-89523333,
-89516388,-89506388,-89497222,-89490277,-89485277,-89474444,-89460555,
-89455000,-89448888,-89448055,-89441666,-89431388,-89425833,-89418611,
-89416111,-89406944,-89397222,-89387500,-89373888,-89363055,-89351944,
-89336944,-89332777,-89330000,-89322222,-89323333,-89326944,-89334722,
-89345000,-89358333,-89356111,-89351944,-89345833,-89338888,-89340555,
-89333055,-89313888,-89296111,-89278888,-89263055,-89244722,-89225833,
-89208333,-89189444,-89170555,-89153055,-89134444,-89118888,-89105555,
-89088888,-89074444,-89058611,-89039722,-89021111,-89003055,-88985277,
-88970277,-88951111,-88932777,-88916111,-88898888,-88881916,-88870187,
-88855555,-88835555,-88815000,-88797222,-88780555,-88763333,-88745277,
-88726944,-88708055,-88689722,-88672777,-88653888,-88636388,-88622222,
-88603055,-88586388,-88571388,-88555555,-88537500,-88518611,-88499166,
-88484166,-88465833,-88447777,-88430555,-88411944,-88394444,-88376111,
-88358333,-88341388,-88324722,-88308055,-88289722,-88271111,-88255277,
-88242222,-88231111,-88218055,-88208888,-88192222,-88178055,-88167777,
-88168611,-88161111,-88144722,-88130555,-88117314,-88101388,-88090277,
-88086111,
-88082777,-88077500,-88077500,-88069722,-88065277,-88063333,-88061666,
-88060556,-88057222,-88046667,-88027778,-88009722,-87991667,-87973333,
-87956389];

var points = ["Illinois & Mississippi River Junction","Grafton, IL","Hadleys Landing, IL","Hardin, IL","Kampsville, IL","Pearl Landing, IL","Grand Pass, IL","Bedford, IL","Montezuma, IL","Florence, IL","Griggsville Landing, IL","Naples, IL","Meridosia, IL","La Grange Lock & Dam","Beardstown, IL","Sangamon River mouth","Fredrick, IL","Browning, IL","Havana, IL","Spoon River mouth","Liverpool, IL","Lancaster Landing, IL","Kingston Landing, IL","Mackinaw River mouth","Pekin, IL","Peoria Lock & Dam","Peoria, IL","Mossville, IL","Spring Bay, IL","Rome, IL","Chillicothe, IL","Lacon, IL","Henry, IL","Hennepin, IL","Illinois & Mississippi Canal","Spring Valley, IL","Peru, IL","Illinois & Michigan Canal (Abandoned)","La Salle, IL","Vermillion River mouth","Starved Rock Lock & Dam","Ottawa, IL","Marseilles Lock","Marseilles Dam","Marseilles, IL","Seneca, IL","Morris, IL","Mazon River mouth","Dresden Island Lock & Dam","Kankakee River mouth","Des Plaines & Dupage River Junction","Brandon Road Lock & Dam","Joliet, IL","Lockport Lock & dam","Lockport, IL","Lemont, IL"];

var cvalus = [0,0,14,21,32,42,43,48,50,55,61,65,71,80,89,89,92,97,120,120,128,144,146,148,153,158,163,172,174,178,180,189,196,207,210,218,223,223,224,226,231,239,245,247,247,253,263,264,271,273,275,286,288,291,293,301];

var chtmix = [3,6,8,10,13,16,18,21,23,26,29,32,34,37,39,42,45,47,50,52,55,57,60,62,65,67,70,73,
              75,78,81,83,86,88,91,95,97,99,102,105,107,110,113,115,118,121,123,126,129,131,134,136,139,142,144,146,149,152,
              154,157,160,163,165,167,170,172,173,175,178,180,183,186,188,190,192,195,197,200,202,205,208,210,212,215,217,220,
              223,226,229,231,234,236,239,242,245,247,250,252,255,257,260,263,265,268,270,273,276,278,281,284,286,289,291,294,
              296,299,301,303,305];

	var poiprev = 0;
	var map = null;
	var miltxt= null;
	var minmapsz = VEMiniMapSize.Large;
        var pixX = 0;
        var pixY = 0;
        var mmile = 0;		

	function removeOptions(optionMenu)
	{
	  optionMenu.options.length = 0;
	}

	function addOptions(optionList, optionMenu)
	{
	 var i=0; var j=-1;
	 removeOptions(optionMenu);  // clear out the options
	 for (i=0; i < optionList.length; i++)
	    {
 
	     j++ 
	     optionMenu[j] = new Option(optionList[i]);
    
	    }
	}

	function addOpts(optionList, valueList, optionMenu)
	{
	 var i=0; var j=-1;
	 removeOptions(optionMenu);  // clear out the options
	 for (i=0; i < optionList.length; i++)
	    {
	     j++ 
	     optionMenu[j] = new Option(optionList[i], valueList[i]);
	    }
	}


	function includechange()
	{
	 var i=0; var j=-1;
	 for (i=0; i <304; i++)
	  {
	   j++
	   milesil[j] = i;
	  }
	 addOptions(milesil,document.myform2.mile);
	 addOpts(points,cvalus,document.myform2.poiil);
	}

        function preloadOpts()
        {
	      includechange();      
	}

	function UpdateInfo(e)
	{
	        var center = map.GetCenter();
		var ZL = e.zoomLevel;
		document.getElementById("info").innerHTML =
			'Illinois RIVER:  Latitude = ' + 
			center.Latitude + 
			', Longitude = ' 
			+ center.Longitude + 
			', Zoom=' + 
			ZL ;
                         
	}

         function GetPixel()
         {
            var pinfo = "";
            // Get pixel info about center of the map
            var pixelI = map.LatLongToPixel(map.GetCenter(), map.GetZoomLevel());
            pinfo += "Map center pixel coordinates are : (" + pixelI.x + ", " + pixelI.y + ")\n\n";
            pixX = pixelI.x;
            pixY = pixelI.y;            
            pinfopix = "pixX = " + pixX + "\n\n";
//            alert(pinfo);
//            alert(pinfopix);
         }  	
	
         function PixelClick2(e)
         {
            var x = e.mapX;
            var y = e.mapY;
            pixel2 = new VEPixel(x, y);
            var LL2 = map.PixelToLatLong(pixel2);
            info2.innerHTML =  LL2 + "<br />";            
//            info2.innerHTML = "LatLong: " + LL2;
//            info2.innerHTML = "Pixel X: " + x + " | Pixel Y: " + y + "<br /> LatLong: " + LL2; 
            map.FindLocations(LL2, GetResults);
         }

         function PixelClick(e)
         {
   	    var x = e.mapX;
      	    var y = e.mapY;
      	    pixel = new VEPixel(x, y);
      	    LL = map.PixelToLatLong(pixel);

            map.FindLocations(LL, GetResults);

         }


         function GetResults(locations)
         {
            if(locations)
            {
	       for(var i=0;i<locations.length;i++)
               {
                   info2.innerHTML+=locations[i].Name + "<br />";
               }
            }
            else
            {
                 info2.innerHTML+='No address found.'; 
            } 
         }	

	function OnPageLoad()
	{
                preloadOpts()

                map = new VEMap('myMap');
            
                map.SetDashboardSize(VEDashboardSize.Normal);
            
                map.LoadMap(new VELatLong(38.965597, -90.430294), 14 ,'h' ,false);
                
                map.ShowDashboard();                
            
//                map.AttachEvent("onclick", PixelClick);
            
		map.AttachEvent("onendpan", UpdateInfo);
			
		map.AttachEvent("onendzoom", UpdateInfo) ;
		
                map.AttachEvent("onclick", PixelClick2); 

	}
	
	function HideMiniMap()
	{
	        map.HideMiniMap();
	}
	         
	function ShowMiniMap()
	{
	    if (map.GetMapMode() == VEMapMode.Mode3D)
	       {
	          map.SetMapMode(VEMapMode.Mode2D);
	       }
	          GetPixel();
                  var minileft = Math.round(pixX + pixX - 191);
//		alert(minileft);    
	          map.ShowMiniMap(minileft, 0, minmapsz);            
        }
        
	function DoNavcht()
	{
	   if (mmile >= 306) 
	    {
	      alert('No Chart Available')
	      return;
	    } 
	    else 
	    {
	    
	      var i=0;
	      for (i=0; i < chtmix.length; i++) {
	         if (mmile < chtmix[i]) {
	             zchtno = i + 1;
	             zchtlink = 'http://www2.mvr.usace.army.mil/NIC2/Documents/chart' + zchtno + '.pdf';
//	             alert (zchtlink);
	             javascript: secondwindow = open(zchtlink, 'navcht', 'scrollbars=yes');
	             return;
	         }    
	      }
            }  
	}
http://www2.mvr.usace.army.mil/NIC2/Documents/chart1.pdf	
// http://www2.mvr.usace.army.mil/NIC2/Documents/MissRiver/Map118-0-8.pdf        
        
	function DoNavcht2()
	{
	   if (mmile >= 653) 
	    {
	      alert('No Chart Available')
	      return;
	    } 
	    else 
	    {
	    
	      var i=0;
	      for (i=0; i < chtmix.length; i++) {
	         if (mmile < chtmix[i]) {
	             zchtno = i + 1;
//	             if (zchtno < 10) {
//	                zchtno = '00' + zchtno;
//	             } else {
//	                if (zchtno < 100) {
//	                   zchtno = '0' + zchtno;
//	                }
//	             }   
//	             zchtmils = chtmils[i];
                     zchtlink = 'Cht102.jpg';  
//	             zchtlink = 'http://www.lrl.usace.army.mil/optm/article.asp?id=145#page=20';
//	             zchtlink = 'http://www.lrn.usace.army.mil/opn/tnriver/charts/' + zchtno + '.jpg';
//	             alert (zchtlink);
	             javascript: secondwindow = open(zchtlink, 'navcht', 'scrollbars=yes');
	             return;
	         }    
	      }
            }  
	}
	
// http://www2.mvr.usace.army.mil/NIC2/Documents/MissRiver/Map118-0-8.pdf	

        function DoAIS() {
            var vcenter = map.GetCenter();
            vclat = vcenter.Latitude;
            vclng = vcenter.Longitude;
            
            zaislink = '../bhais.php?zalat=' + vclat + '&zalng=' + vclng;
//	      alert (zaislink);
            javascript: secondwindow = open(zaislink, 'VEmain', 'scrollbars=yes');            
        }   

        function DoInfo() {
            var vcenter = map.GetCenter();
            vclat = vcenter.Latitude;
            vclng = vcenter.Longitude;
            
	      zlink = 'http://maps.live.com/default.aspx?v=2&lvl=14&style=h&cp=' + vclat + '~' + vclng;
//	      alert (zlink);
              javascript: secondwindow = open(zlink, 'VEmain', 'scrollbars=yes');            
            
//        http://maps.live.com/default.aspx?v=2&lvl=14&style=h&cp=25.783538~-80.183171
        }
	
         function AddShapes(mlat, mlng, mmile)
         {
            latLongcnt = new VELatLong(mlat, mlng);
            pin02 = new VEShape(VEShapeType.Pushpin, latLongcnt);
            pin02.SetTitle("<font color='blue'> Illinois River </font>");
            pin02.SetDescription("<font color='blue'> Mile " + mmile + "</font>");            
            pin02.SetCustomIcon("<span style='width:30px; height:15px; font-family:Arial,sans-serif; font-weight:bold; font-size:8pt;" +
               "color:white; overflow:hidden; text-align:center; border:1px solid #FF0000; background-color:blue'>" +
                miltxt + "</span>");
            map.AddShape(pin02);
         } 	


        function markmile()
	{
	 AddShapes(mlat,mlng,mmile);	
	}


	function milehit(mmile)
	{
        mlat  = mlats[mmile] / 1000000;
        mlng  = mlngs[mmile] / 1000000;        
        var latLong = new VELatLong(mlat,mlng);
        map.PanToLatLong(latLong);        
        markmile(mlat, mlng, mmile); 
        dist = Math.abs(mmile - poiprev)
        document.myform2.distnm.value = Math.round(0.86898 * dist);
        document.myform2.distsm.value =  dist;
        document.myform2.distkm.value = Math.round(1.609344 * dist);
	poiprev = mmile;
        document.myform2.mile.value = "9999";
	}

	
	function milechange()
	{
             var k; 
	     var hitval=" "; 
	     for (k=0; k < document.myform2.mile.options.length; k++)
	     {
	       if (document.myform2.mile.options[k].selected)
	       {
	         mmile = k;
	         miltxt = document.myform2.mile[k].text;	         
                 milehit(mmile);  
 	       }
             }
        } 

        function poichange()
	{
	     poi = parseInt (document.myform2.poiil.value);
             mmile = poi;
	     miltxt = poi;             
             milehit(mmile);   	
	}

