     var map=null;
     var geocoder=null;
     var mrk=null;
     var lastMarker = null;

     function load(lat,lng,zml)
     {
       if(GBrowserIsCompatible())
        {

         map=new GMap2(document.getElementById("map"));
         geocoder=new GClientGeocoder();
         map.addMapType(G_SATELLITE_3D_MAP);
		 map.addControl(new GOverviewMapControl());

/*
         map.enableScrollWheelZoom();
         map.enableContinuousZoom();
*/
         map.setUIToDefault();

         initMap(lat,lng,zml);

/*
         map.addControl(new GLargeMapControl());
         map.addControl(new GOverviewMapControl(new GSize(250,135)));

*/

         map.addControl(new ExtMapTypeControl({showTraffic: true, showTrafficKey: true}));
         map.enableGoogleBar(); 

         if (mrk)
         {
          var point = new GLatLng(lat, lng);
          lastMarker = new GMarker(point);
          map.addOverlay(lastMarker);
         }

         GEvent.addListener(map,"moveend",function()
         {
          var lat = map.getCenter().lat();
          var lng = map.getCenter().lng();
          setCookie('gllat',lat,365);
          setCookie('glltd',lng,365);
          setCookie('glzml',map.getZoom(),365);
          if (mrk)
          {
           if (lastMarker) map.removeOverlay(lastMarker);
           var point = new GLatLng(lat, lng);
           var t = "Lat:"+lat + " Lng:"+lng;
           lastMarker = new GMarker(point,{title:t});
           map.addOverlay(lastMarker);
          }
         });

        }

        GEvent.addListener(map, "click", clickFunction);

    }

     function clickFunction(overlay, latlng) {
      if (latlng) 
      {
		var sUrl="http://www.m3scout.com/bigmap/?v=dre"+getUrl(map);
		document.getElementById("surl").value=sUrl;
		document.getElementById("sites").value='<a href="'+sUrl+'" target="_blank">See the maps at BigMap</a>';
		document.getElementById("sites_img").value='<a href="'+sUrl+'" target="_blank"><img border=0 src="http://www.m3scout.com/bigmap/getmaps.asp?zml=12&lat='+getLat(map)+'&lng='+getLng(map)+'"></a>';
		document.getElementById("forum_img").value='[URL='+sUrl+'][IMG]http://www.m3scout.com/bigmap/getmaps.asp?zml=12&lat='+getLat(map)+'&lng='+getLng(map)+'[/IMG][/URL]'

        geocoder.getLocations(latlng, function(addresses) {
          if(addresses.Status.code != 200) {
            alert("Google reverse geocoder failed to find an address for " + latlng.toUrlValue());
          }
          else 
          { address = addresses.Placemark[0];
            var myHtml = '<div id="popup"><div class="adr">'+address.address+'</div></div>';
            map.openInfoWindow(latlng, myHtml); 

		  }
        });
      }
    }
    

     function load1(lat,lng,zml)
     {
       if(GBrowserIsCompatible())
        {
         map=new GMap2(document.getElementById("map"));
         geocoder=new GClientGeocoder();

         map.enableScrollWheelZoom();
         map.enableContinuousZoom();

         initMap(lat,lng,zml);

         map.addControl(new GLargeMapControl());
         map.addControl(new GOverviewMapControl(new GSize(250,135)));
         map.addControl(new ExtMapTypeControl({showTraffic: true, showTrafficKey: true}));
         map.enableGoogleBar(); 

         GEvent.addListener(map,"moveend",function()
         {setCookie('gllat',map.getCenter().lat(),365);
          setCookie('glltd',map.getCenter().lng(),365);
          setCookie('glzml',map.getZoom(),365);});
        }
  
        //map.addOverlay(new GLayer('lmc:youtube'));

      }

     function SetMarker(map)
     {
        if (mrk) 
        {
          mrk = false;
          if (lastMarker)
          {
             map.removeOverlay(lastMarker);
             lastMarker = null;
          }
        }
        else
        {
          mrk = true; 
          var lat = map.getCenter().lat();
          var lng = map.getCenter().lng();
          var point = new GLatLng(lat, lng);
          var t = "Lat:"+lat + " Lng:"+lng;

          lastMarker = new GMarker(point,{title:t});
          map.addOverlay(lastMarker);
        } 
         
     }


     function initMap(_lat,_lng,_zml)
     {
      var lat,lng,zml;

      if (_lat) lat = _lat;
      else 
       lat = getCookie('gllat');

      if (lat.length==0) lat = 3.15594;

      if (_lng) lng = _lng;
      else 
       lng = getCookie('glltd');

      if (lng.length==0) lng = 101.71443;

      if (_zml) zml = _zml;
      else 
       zml = getCookie('glzml');

      if (zml.length==0) zml=6;

      map.setCenter(new GLatLng(lat,lng),parseInt(zml));
     }

      function getExpirydate( nodays)
      {
        var UTCstring;
        Today = new Date();
        nomilli=Date.parse(Today);
        Today.setTime(nomilli+nodays*24*60*60*1000);
        UTCstring = Today.toUTCString();
        return UTCstring;
      }

      function getCookie(cookiename) 
      {
      var cookiestring=""+document.cookie;
       var index1=cookiestring.indexOf(cookiename);
       if (index1==-1 || cookiename=="") return ""; 
       var index2=cookiestring.indexOf(';',index1);
       if (index2==-1) index2=cookiestring.length; 
       return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
      }

     function setCookie(name,value,duration)
     {
      cookiestring=name+"="+escape(value)+";EXPIRES="+getExpirydate(duration);
      document.cookie=cookiestring;
     }

   function beforeAction()
   {
     document.body.style.cursor = 'wait';
   }

   function afterAction()
   {
     document.body.style.cursor = 'default';
   }

   function handlerFunction(txt, xmlDoc)
   {
     sendMail(txt);
   } 

   function errorFunction()
   {
     alert("Could not create URL for this map");
   }

   function select_url()
   {
	  var content=document.getElementById("surl");
	  content.focus();
	  content.select();
   }


   function sendMail(sUrl)
   {

     var subjectLine='BigMap'; 
     var bodyText='You can see this map at: '+sUrl;

     var message='mailto:?subject='+escape(subjectLine)+'&body='+escape(bodyText);
     var messageIE='mailto:?subject='+(subjectLine)+'&body='+escape(bodyText);     

     if(document.all) location.href=messageIE; 
     else  location.href=message; 
   }

   function sendTwitter(sUrl)
   { 
     var bodyText='Look at this map: '+sUrl;
     var message='http://twitter.com/home?status='+escape(bodyText);
     window.open(message,'twitter','toolbar=0,scrollbars=1;status=0,width=800,height=500');
     return false;
   }

  function sendFacebook(sUrl)
  {
    var u=sUrl; t='M3Scout Big Map';
	var message = 'http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t);
    window.open(message,'sharer','toolbar=0,scrollbars=1;status=0,width=700,height=436');
    return false;
  }

  function saveM3ScoutPOI(sPoint)
  {
    var u=sPoint;
	var message = 'http://www.m3scout.com/mymap_smallpoi.asp?poi='+u;
    window.open(message,'poi','toolbar=0,scrollbars=1;status=0,width=400,height=520');
    return false;
  }

   function getUrl(map)
   {
    var center = map.getCenter();
    var sUrl=Left(center.lng()+"",9)+"e"+Left(center.lat()+"",9)+"e"+map.getZoom();
    return sUrl;
   }


   function getPoint(map)
   {
    var center = map.getCenter();
    var sPoint="("+Left(center.lat()+"",9)+","+Left(center.lng()+"",9)+")";
    return sPoint;
   }

   function getLat(map)
   {
    var center = map.getCenter();
    var sPoint=Left(center.lat()+"",9);
    return sPoint;
   }

   function getLng(map)
   {
    var center = map.getCenter();
    var sPoint=Left(center.lng()+"",9);
    return sPoint;
   }


   function MailTo(map)
   {    
     var sUrl="http://www.m3scout.com/bigmap/?v=mle"+getUrl(map);
	 sendMail(sUrl);
     //cjAjaxEngine("geturl.asp?v=ml|"+sUrl,handlerFunction,errorFunction,beforeAction,afterAction);
   }

   function sendFace(map)
   {
     var sUrl="http://www.m3scout.com/bigmap/?v=fbe"+getUrl(map);
	 sendFacebook(sUrl);
   }

   function sendTwit(map)
   {
     var sUrl="http://www.m3scout.com/bigmap/?v=twe"+getUrl(map);
	 sendTwitter(sUrl);
   }

   function savePOI(map)
   {
     var sPoint=getPoint(map);
     saveM3ScoutPOI(sPoint);
   }

   function AddressDialog(map)
   {
      var o = document.getElementById("addressbar");
      if (o.style.display=='none') 
      {
        o.style.display="block";
        document.getElementById("idaddress").focus();
      }
      else                         o.style.display="none";
   }

   function URLDialog(map)
   {
      var o = document.getElementById("urlbar");
      if (o.style.display=='none') 
      {
        o.style.display="block";
        document.getElementById("urlbar").focus();
      }
      else                         o.style.display="none";
   }

   function lookupAddress(map)
   {
     var s = document.getElementById("idaddress").value;
     if (s!='')
       geocoder.getLocations(s,findCallback);
   }

   function Left(str, n)
	{
	   if (n <= 0)
			 return "";
	   else if (n > String(str).length)
			 return str;
	   else
			 return String(str).substring(0,n);
	}

  function findCallback(response)
  {
   if (!response) alert("Sorry, unable to find this");
   else
     if (response.Status.code!=200) 
       alert("Sorry, unable to find this"); 
     else
     {
       var place = response.Placemark[0];
       var lat = place.Point.coordinates[1];
       var lng = place.Point.coordinates[0];
      
       moveMap(lat,lng,15); 
       AddressDialog(map); 
     } 
  }

    function moveMap(lat,lng,zoom,mt)
    {
       var z;
       if (zoom) z = eval(zoom);
       else      z = map.getZoom();

       var m;

       if (mt) m = getGoogleMapType(mt);
       else    m = map.getCurrentMapType();

       map.setCenter(new GLatLng(eval(lat),eval(lng)),z,m);
    }
    
   function getGoogleMapType(mapType)
   {
     if (mapType=='0') return G_NORMAL_MAP;
     else
      if (mapType=='1') return G_SATELLITE_MAP;
      else
       if (mapType=='2') return G_HYBRID_MAP;

     return G_NORMAL_MAP;
   }












