﻿      var map = null;
      var fitmap = null;
      var expanded = 0;
            
      function GetMap()
      {
         var q = document.getElementById('query').innerHTML;
         var z = q.split(',');
         var lat = z[0];
         var lon = z[1];
         var radius = z[2];
         var radius2 = z[3];
         var radius3 = z[4];
         var coord = new VELatLong(lat,lon);
      
      
         map = new VEMap('myMap');
         map.LoadMap(coord, 9, VEMapStyle.Road, 1);
         map.HideDashboard();
         
         fitmap = radius3;
         if (fitmap==0 || fitmap=='0') {fitmap = radius2}
         if (fitmap==0 || fitmap=='0') {fitmap = radius}
                  
         AddCircle(lat,lon,radius);
         AddCircle(lat,lon,radius2);
         AddCircle(lat,lon,radius3);
         
      }   
      
      function AddCircle(latin, lonin, radius)
         {
             
            var locs = new Array();
            var lat1 = latin * Math.PI/180.0;
            var lon1 = lonin * Math.PI/180.0;
            var d = radius/3956;
            
            if (d > 0) {
               var x;
               // drawing point every six degrees
               for (x = 0; x <= 360; x+=6)
               {
                 var tc = (x / 90)* Math.PI / 2;
                 var lat = Math.asin(Math.sin(lat1)*Math.cos(d)+Math.cos(lat1)*Math.sin(d)*Math.cos(tc));
                 lat = 180.0 * lat / Math.PI;
                 var lon;
                  if (Math.cos(lat1)==0)
                 {
                     lon=lonin; // endpoint a pole
                 }
                 else
                 {
                     lon = ((lon1 - Math.asin(Math.sin(tc) * Math.sin(d)/Math.cos(lat1)) + Math.PI) % (2 * Math.PI)) - Math.PI;
                 }
                 lon = 180.0 * lon / Math.PI;
                 var loc = new VELatLong(lat,lon);
                 locs.push(loc);
               }

               var shape = new VEShape(VEShapeType.Polyline, locs);
               shape.SetLineColor(new VEColor(130,60,60,.5));
               shape.SetLineWidth(4);

               shape.SetCustomIcon("<span style='font-family:Arial; font-size:10.0pt; color:#fff; background-color:#823C3C;padding:4px;'>"+radius+"</span>");
               shape.SetTitle(radius+" mile radius");
               shape.SetDescription("This is your report area.");
               map.AddShape(shape);
               if (radius==fitmap) {
               map.SetMapView(locs);}
            }
             
         }
      
      function DisposeMap()
         {
            if(map != null)
            {
              map.Dispose();
            }
         }
         
      var expandedTriggerClass='expandedarea';
		var normalTriggerClass='trigger';
		var hoverTriggerClass='triggerhover';
		var normalElementClass='show';
		var collapsedElementClass='hide';
		var collapsedElements=new Array();
		var triggerElements=new Array();
    	function domCollapse()
		{
			if(document.getElementById && document.createTextNode)
			{
				//parentElementId='collapsesection';
				//triggerelements='div';
				var triggerClass=/trigger/;
	
				var elms,tohide,colobj,elementsToCheck,triggerelements,parentElementId;
				elementsToCheck=triggerelements?triggerelements:'*';
				if(parentElementId)
				{
					elms=document.getElementById('parentElementId').getElementsByTagName(elementsToCheck);
				} else {
					elms=document.getElementsByTagName(elementsToCheck);
				}
				for (i=0;i<elms.length;i++)
				{
					if(triggerClass.test(elms[i].className))
					{
						tohide=elms[i].nextSibling;
						while(tohide.nodeType!=1)
						{
							tohide=tohide.nextSibling;
						}
						collapsedElements.push(tohide)
						triggerElements.push(elms[i])
						juggleClass(tohide,normalElementClass,0);
						juggleClass(tohide,collapsedElementClass,1);
						elms[i].colobj=tohide;
						elms[i].onmouseover=function(){doTriggerHover(this);}
						elms[i].onmouseout=function(){juggleClass(this,hoverTriggerClass,0);}
						elms[i].onclick=function(){doDomCollapse(this,this.colobj);return false}
						elms[i].className=elms[i].className+' '+normalTriggerClass;
					}
				}
			}
		}
		function doTriggerHover(o)
		{
			if(!checkClass(hoverTriggerClass,o) && !checkClass(expandedTriggerClass,o))
			{
				juggleClass(o,hoverTriggerClass,1);
			}
		}
		function doDomCollapse(o,t)
		{
			if(t)
			{
				if(checkClass(collapsedElementClass,t))
				{
					juggleClass(t,collapsedElementClass,0);
					juggleClass(t,normalElementClass,1);
					juggleClass(o,normalTriggerClass,0);
					juggleClass(o,expandedTriggerClass,1);
				}else{
					juggleClass(t,normalElementClass,0);
					juggleClass(t,collapsedElementClass,1);
					juggleClass(o,expandedTriggerClass,0);
					juggleClass(o,normalTriggerClass,1);
				}
			}
		}
		function doDomCollapseAll(state){
			var i,o,t;
			for(i=0;i<collapsedElements.length;i++){
				t=collapsedElements[i];	
				o=triggerElements[i];	
				if(state==1){
					juggleClass(t,collapsedElementClass,0);
					juggleClass(t,normalElementClass,1);
					juggleClass(o,normalTriggerClass,0);
					juggleClass(o,expandedTriggerClass,1);
				} else {
					juggleClass(t,normalElementClass,0);
					juggleClass(t,collapsedElementClass,1);
					juggleClass(o,expandedTriggerClass,0);
					juggleClass(o,normalTriggerClass,1);
				}
			}
		}
		function juggleClass(o,c,s)
		{
			if(s==0) 
			{
				o.className=o.className.replace(c,'');	
			}
			if (s==1 && !checkClass(c,o))
			{
				o.className+=' '+c
			}
		}
		function checkClass(c,o)
		{
			var re=new RegExp('\\b'+c+'\\b');
			return re.test(o.className);
		}
		
		function SwitchExpand() {
		  if (expanded==0) {expanded=1;} else {expanded=0;}
		  doDomCollapseAll(expanded);
		}
