/**
 * Java script class to take care of the various map controls
 * 
 * $Id: mapcontrols.js,v 1.12 2009/02/23 05:55:12 vpulla Exp $
 */



var nav_arr = new Array('n','s','w','e',
                        'nw','nw_l','nw_t',
                        'sw','sw_l','sw_b',
                        'ne','ne_t','ne_r',
                        'se','se_r','se_b');
var nav_str = new String('0000000000000000');
map_move_factor = 1;

function MapControls()
{}

MapControls.nav_hover=function map_hover(nav_element)
{
   switch (nav_element)
      {
         case "n":      {  MapControls.set_nav('1000000000000000');  break;}
         case "s":      {  MapControls.set_nav('0100000000000000');  break;}
         case "w":      {  MapControls.set_nav('0010000000000000');  break;}
         case "e":      {  MapControls.set_nav('0001000000000000');  break;}
         
         case "nw":     {  MapControls.set_nav('0000111000000000');  break;}
         case "nw_l":   {  MapControls.set_nav('0000111000000000');  break;}
         case "nw_t":   {  MapControls.set_nav('0000111000000000');  break;}
         
         case "sw":     {  MapControls.set_nav('0000000111000000');  break;}
         case "sw_l":   {  MapControls.set_nav('0000000111000000');  break;}
         case "sw_b":   {  MapControls.set_nav('0000000111000000');  break;}
         
         case "ne":     {  MapControls.set_nav('0000000000111000');  break;}
         case "ne_t":   {  MapControls.set_nav('0000000000111000');  break;}
         case "ne_r":   {  MapControls.set_nav('0000000000111000');  break;}
         
         case "se":     {  MapControls.set_nav('0000000000000111');  break;}
         case "se_r":   {  MapControls.set_nav('0000000000000111');  break;}
         case "se_b":   {  MapControls.set_nav('0000000000000111');  break;}
         default:       {  MapControls.set_nav('0000000000000000');  break;}
      }
}

////////////////////////////////////////////////////////////////////////////////
//
// SET_NAV highlights navigation bar elements accoring the the bit string passed
// nav_arr and nav_str are defined in the include file "definitions.js"
//

MapControls.set_nav=function set_nav(bits)
{
   //navstyle = "nav";
   //navstyle2   = "nav_active";
      
   helpstr=bits.toString()
   for (i=0;i < nav_arr.length; i++)
   {
      if (helpstr.substring(i,i+1)!=nav_str.substring(i,i+1))
      {
            obj = document.getElementById(nav_arr[i])
            if (nav_str.substring(i,i+1)=='1') 
            { 
               obj.className = "row";
            } 
            else 
            { 
               obj.className = "row_active";
            }
       }
   }
   nav_str=helpstr;
}

MapControls.move_map=function move_map(direction)
{
   switch(direction)
   {
      case "w":
      case "W":
         map.moveCenterInPercent(-(map_move_factor), 0);
         break;
      case "n":
      case "N":
         map.moveCenterInPercent(0, map_move_factor);
         break;
      case "e":
      case "E":
         map.moveCenterInPercent(map_move_factor, 0);
         break;
      case "s":
      case "S":
         map.moveCenterInPercent(0, -(map_move_factor));
         break;
      case "nw":
      case "NW":
         map.moveCenterInPercent(-(map_move_factor), (map_move_factor));
         break;
      case "ne":
      case "NE":
         map.moveCenterInPercent((map_move_factor), (map_move_factor));
         break;
      case "se":
      case "SE":
         map.moveCenterInPercent((map_move_factor), -(map_move_factor));
         break;
      case "sw":
      case "SW":
         map.moveCenterInPercent(-(map_move_factor), -(map_move_factor));
         break;
   }
   
   if(typeof(onMapMove) == "function")
   {
      onMapMove(direction);
   }
}

MapControls.showAjaxMap=function showAjaxMap(containerId)
{
   var mapContainer = document.getElementById(containerId);
   var mapContainerPrint = document.getElementById(containerId + "_print");
   mapContainerPrint.style.display="none";
   mapContainer.style.display="block";
}