﻿/*
    GIS Map Functions for Lesotho Spatial Viewer
    Programmed By: Andrew Arnesen, INTERMAP
    Begun: 2008 05 27
    Last Updated: 2008 07 25
*/

var PagePrefix = "asmMap_";

// This function is from the AspMap 4 documentation & code examples
function map_trackMousePosition(isInside, latitude, longitude)
{			
    var label = document.getElementById("status"); // 
    if (isInside)
	    label.innerHTML = "Latitude: " + formatCoord(latitude, "lat") + " | Longitude: " + formatCoord(longitude, "long");				
	else
	    label.innerHTML = "&nbsp;";			
}	

// This function is from the AspMap 4 documentation & code examples	
function formatCoord(coord, type)
{
    var dec = Math.abs(coord);
	var deg = Math.floor(dec);
	var min = Math.floor((dec - deg) * 60) ;
	var sec = Math.floor((dec - deg - (min/60)) * 3600); 
	var suff = (coord > 0 ? "E" : "W"); if (type == "lat") suff = (coord > 0 ? "N" : "S");
	return deg + "&deg; " + min + "' " + sec + '" ' + suff;		
}

// This handler handles checking whether we have changed the checked 
// status of a group / layer and posting back if neccesary. 
function CheckHandlePostback(evt)
{
   
   
    var src = window.event != window.undefined ? window.event.srcElement : evt.target;    
    
      
    if (src.tagName.toLowerCase() == "input" && src.type == "checkbox") // Only post-back if checkbox
    {
       
        
       var parentDiv = GetParentByTagName("div", src);
       var parentNodeTable = parentDiv.previousSibling;
       var CurrentLevel = src.nextSibling;
       document.getElementById("PostBackLevel").value = CurrentLevel.value;
       
       if (src.checked)
       {
           if(parentNodeTable)
            {
                          
                var inpElemsInParentTable = parentNodeTable.getElementsByTagName("input");
                if(inpElemsInParentTable.length > 0)
                {
                    var parentNodeChkBox = inpElemsInParentTable[0]; 
                    if (parentNodeChkBox.checked == false)
                    {
                      parentNodeChkBox.checked = true;                      
                                                                      
                    }  
                    
                }
            }
       
       }
       
      
        
        window.document.forms(0).submit();
    }
            
}


  

   //utility function to get the container of an element by tagname
   function GetParentByTagName(parentTagName, childElementObj)
   {
      var parent = childElementObj.parentNode;
      while(parent.tagName.toLowerCase() != parentTagName.toLowerCase())
      {
         parent = parent.parentNode;
      }
    return parent;    
   }

