
OverlayMessage = function ( container )
    {
    // Terminology:
    // +-----------------+
    // |wrapper          |
    // |+---------------+|
    // ||container      ||
    // ||   +-------+   ||
    // ||   |overlay|   ||
    // ||   +-------+   ||
    // ||               ||
    // |+---------------+|
    // +-----------------+

    // Get the parent.
    var parent = container.parentNode;

    // Make the wrapper div.
    var wrapper = document.createElement( 'div' );
    wrapper.style.cssText = container.style.cssText;
    parent.insertBefore( wrapper, container );

    // Move the container into the wrapper.
    parent.removeChild( container );
    wrapper.appendChild( container );
    container.style.cssText = 'position: relative; width: 100%; height: 100%;';

    // Add the overlay div.
    this.overlay = document.createElement( 'div' );
    wrapper.appendChild( this.overlay );

    this.backgroundColor = '#9999cc';
    this.borderColor = '#666699';
    this.overlay.style.position = 'relative';
    this.overlay.style.top = '-55%';
    this.overlay.style.backgroundColor = this.backgroundColor;
    this.overlay.style.width = '40%';
    this.overlay.style.textAlign = 'center';
    this.overlay.style.marginLeft = 'auto';
    this.overlay.style.marginRight = 'auto';
    this.overlay.style.padding = '2em';
    this.overlay.style.borderWidth = '0.08in';
    this.overlay.style.borderStyle = 'ridge';
    this.overlay.style.borderColor = this.borderColor;
    this.overlay.style.zIndex = '100';
    this.overlay.style.opacity = '.75';
    this.overlay.style.filter = 'alpha(opacity=75)';

    this.overlay.style.display = 'none';
    };




OverlayMessage.prototype.Set = function ( message )
    {
    this.overlay.innerHTML = message;

    this.overlay.style.display = '';
    };


OverlayMessage.prototype.Clear = function ()
    {
    this.overlay.style.display = 'none';
    };


OverlayMessage.prototype.SetBackgroundColor = function ( color )
    {
    this.backgroundColor = this.overlay.style.backgroundColor = color;
    };


OverlayMessage.prototype.SetBorderColor = function ( color )
    {
    this.borderColor = this.overlay.style.borderColor = color;
    };

//For All Offices

function  WorldMap(){
	if (GBrowserIsCompatible()) {

      // display the loading message
      var om = new OverlayMessage(document.getElementById('map'));      
      om.Set('<b>Loading...<\/b>');
      
      var n=0;

      var icon = new GIcon();
      icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
      icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
      icon.iconSize = new GSize(12, 20);
      icon.shadowSize = new GSize(22, 20);
      icon.iconAnchor = new GPoint(6, 20);
      icon.infoWindowAnchor = new GPoint(5, 1);      

      function createMarker(point,html,icon) {
        var marker = new GMarker(point, {icon:icon});
        GEvent.addListener(marker, "mouseover", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }

      // new strategy - read the XML first, THEN create the map

        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(20, 0), 1);
        map.addControl(new GOverviewMapControl());

        GDownloadUrl("/web/system/modules/sonatatemplate/resources/jscript/displaymapinfo.xml", function (doc) {   
				var xmlDoc = GXml.parse(doc);
				//alert(doc);
				var markers = xmlDoc.documentElement.getElementsByTagName("marker");
                 // alert(markers.length);
				  
				for (var i = 0; i < markers.length; i++) {
				  // obtain the attribues of each marker
					  var lat = parseFloat(markers[i].getAttribute("lat"));
					  var lng = parseFloat(markers[i].getAttribute("lng"));
					  var point = new GLatLng(lat,lng);
					  var info = markers[i].getAttribute("info");
					  var marker = createMarker(point,info,icon);
					  map.addOverlay(marker);
				}
			   om.Clear();
      });
    }

    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    } 
}
//For Bangalore Offices


function  BangaloreMap(){
	if (GBrowserIsCompatible()) {

      // display the loading message
      var om = new OverlayMessage(document.getElementById('map'));      
      om.Set('<b>Loading...<\/b>');
      

      var n=0;

      var icon = new GIcon();
      icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
      icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
      icon.iconSize = new GSize(12, 20);
      icon.shadowSize = new GSize(22, 20);
      icon.iconAnchor = new GPoint(6, 20);
      icon.infoWindowAnchor = new GPoint(5, 1);      


      function createMarker(point,html,icon) {
        var marker = new GMarker(point, {icon:icon});
        GEvent.addListener(marker, "mouseover", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }

      // new strategy - read the XML first, THEN create the map

       var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
      //  map.setCenter(new GLatLng(-1.6347,29.388), 11, G_SATELLITE_MAP);
         map.setCenter(new GLatLng(12.9405316,77.5670466), 13);
		// map.setCenter(new GLatLng(20, 0), 10);
      // read the markers from the XML
      GDownloadUrl("/web/system/modules/sonatatemplate/resources/jscript/displaymapinfo.xml", function (doc) {
          
        var xmlDoc = GXml.parse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("markerBGL");
          
         for (var i = 0; i < markers.length; i++) {
          // obtain the attribues of each marker
			  var lat = parseFloat(markers[i].getAttribute("lat"));
			  var lng = parseFloat(markers[i].getAttribute("lng"));
			  var point = new GLatLng(lat,lng);
			  var info = markers[i].getAttribute("info");			  
			
			 var marker = createMarker(point,info,icon);
				  map.addOverlay(marker);
         
        }

        // Display the map, with some controls and set the initial location 

        om.Clear(); // Clear the loading message
      });
    }

    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
  
}

//For Hyderabad Office


function  HyderabadMap(){
	if (GBrowserIsCompatible()) {

      // display the loading message
      var om = new OverlayMessage(document.getElementById('map'));      
      om.Set('<b>Loading...<\/b>');
      

      var n=0;

      var icon = new GIcon();
      icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
      icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
      icon.iconSize = new GSize(12, 20);
      icon.shadowSize = new GSize(22, 20);
      icon.iconAnchor = new GPoint(6, 20);
      icon.infoWindowAnchor = new GPoint(5, 1);      

      function createMarker(point,html,icon) {
        var marker = new GMarker(point, {icon:icon});
        GEvent.addListener(marker, "mouseover", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }

        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
      //  map.setCenter(new GLatLng(-1.6347,29.388), 11, G_SATELLITE_MAP);
        map.setCenter(new GLatLng(17.4415, 78.4581987), 15);

      // read the markers from the XML
      GDownloadUrl("/web/system/modules/sonatatemplate/resources/jscript/displaymapinfo.xml", function (doc) {
           
        var xmlDoc = GXml.parse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("markerHYB");
 
        for (var i = 0; i < markers.length; i++) {
          // obtain the attribues of each marker
          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lng"));
          var point = new GLatLng(lat,lng);
          var info = markers[i].getAttribute("info");
		   
			var marker = createMarker(point,info,icon);
				  map.addOverlay(marker);
         
         
          
        }

        om.Clear(); // Clear the loading message
      });
    }

    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
  
}



function  DubaiMap(){
	if (GBrowserIsCompatible()) {

      // display the loading message
      var om = new OverlayMessage(document.getElementById('map'));      
      om.Set('<b>Loading...<\/b>');
      

      var n=0;

      var icon = new GIcon();
      icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
      icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
      icon.iconSize = new GSize(12, 20);
      icon.shadowSize = new GSize(22, 20);
      icon.iconAnchor = new GPoint(6, 20);
      icon.infoWindowAnchor = new GPoint(5, 1);      

      function createMarker(point,html,icon) {
        var marker = new GMarker(point, {icon:icon});
        GEvent.addListener(marker, "mouseover", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }

        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
      //  map.setCenter(new GLatLng(-1.6347,29.388), 11, G_SATELLITE_MAP);
        map.setCenter(new GLatLng(25.090885, 55.153022), 15);

      // read the markers from the XML
      GDownloadUrl("/web/system/modules/sonatatemplate/resources/jscript/displaymapinfo.xml", function (doc) {
           
        var xmlDoc = GXml.parse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("markerDUB");
 
        for (var i = 0; i < markers.length; i++) {
          // obtain the attribues of each marker
          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lng"));
          var point = new GLatLng(lat,lng);
          var info = markers[i].getAttribute("info");
		   
			var marker = createMarker(point,info,icon);
				  map.addOverlay(marker);
         
         
          
        }

        om.Clear(); // Clear the loading message
      });
    }

    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
  
}



//For UK..............


function  UKMap(){
	if (GBrowserIsCompatible()) {

      // display the loading message
      var om = new OverlayMessage(document.getElementById('map'));      
      om.Set('<b>Loading...<\/b>');
      

      var n=0;

       var icon = new GIcon();
      icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
      icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
      icon.iconSize = new GSize(12, 20);
      icon.shadowSize = new GSize(22, 20);
      icon.iconAnchor = new GPoint(6, 20);
      icon.infoWindowAnchor = new GPoint(5, 1);    

      function createMarker(point,html,icon) {
        var marker = new GMarker(point, {icon:icon});
        GEvent.addListener(marker, "mouseover", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }
   
       var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
      //  map.setCenter(new GLatLng(-1.6347,29.388), 11, G_SATELLITE_MAP);
          map.setCenter(new GLatLng(51.584936999999996, -0.361176), 15);
		// map.setCenter(new GLatLng(20, 0), 10);
      // read the markers from the XML
      GDownloadUrl("/web/system/modules/sonatatemplate/resources/jscript/displaymapinfo.xml", function (doc) {
           
        var xmlDoc = GXml.parse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("markerUK");

          
        for (var i = 0; i < markers.length; i++) {
          // obtain the attribues of each marker
          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lng"));
          var point = new GLatLng(lat,lng);
          var info = markers[i].getAttribute("info");
		  var marker = createMarker(point,info,icon);
				  map.addOverlay(marker);
		  
        
        }
        om.Clear(); // Clear the loading message
      });
    }

    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
  
}

// USA Offices................


function  USAMap(){
	if (GBrowserIsCompatible()) {

      // display the loading message
      var om = new OverlayMessage(document.getElementById('map'));      
      om.Set('<b>Loading...<\/b>');
      

      var n=0;

       var icon = new GIcon();
      icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
      icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
      icon.iconSize = new GSize(12, 20);
      icon.shadowSize = new GSize(22, 20);
      icon.iconAnchor = new GPoint(6, 20);
      icon.infoWindowAnchor = new GPoint(5, 1);          

      function createMarker(point,html,icon) {
        var marker = new GMarker(point, {icon:icon});
        GEvent.addListener(marker, "mouseover", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }

     
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
      //  map.setCenter(new GLatLng(-1.6347,29.388), 11, G_SATELLITE_MAP);
         map.setCenter(new GLatLng(42.061849, -88.078109), 3);
		// map.setCenter(new GLatLng(20, 0), 10);
      GDownloadUrl("/web/system/modules/sonatatemplate/resources/jscript/displaymapinfo.xml", function (doc) {
             
        var xmlDoc = GXml.parse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("markerUSA");

          
        for (var i = 0; i < markers.length; i++) {
          // obtain the attribues of each marker
          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lng"));
          var point = new GLatLng(lat,lng);
          var info = markers[i].getAttribute("info");
          var marker = createMarker(point,info,icon);
				  map.addOverlay(marker);
        }

      
        om.Clear(); // Clear the loading message
      });
    }

    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
  
}
//For Germany Offices..............


function  GermanyMap(){
	if (GBrowserIsCompatible()) {

      // display the loading message
      var om = new OverlayMessage(document.getElementById('map'));      
      om.Set('<b>Loading...<\/b>');
      

      var n=0;

        var icon = new GIcon();
      icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
      icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
      icon.iconSize = new GSize(12, 20);
      icon.shadowSize = new GSize(22, 20);
      icon.iconAnchor = new GPoint(6, 20);
      icon.infoWindowAnchor = new GPoint(5, 1);        

      function createMarker(point,html,icon) {
        var marker = new GMarker(point, {icon:icon});
        GEvent.addListener(marker, "mouseover", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }
       var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
      //  map.setCenter(new GLatLng(-1.6347,29.388), 11, G_SATELLITE_MAP);
     
         map.setCenter(new GLatLng(52.383838, 9.810448), 15);
		// map.setCenter(new GLatLng(20, 0), 10);

      GDownloadUrl("/web/system/modules/sonatatemplate/resources/jscript/displaymapinfo.xml", function (doc) {
           
        var xmlDoc = GXml.parse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("markerGMN");

          
        for (var i = 0; i < markers.length; i++) {
          // obtain the attribues of each marker
          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lng"));
          var point = new GLatLng(lat,lng);
          var info = markers[i].getAttribute("info");
		  var marker = createMarker(point,info,icon);
				  map.addOverlay(marker);
		  
         
        }

        om.Clear(); // Clear the loading message
      });
    }

    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
  
}

//For Netherland Offices...............

function  NetherlandMap(){
	if (GBrowserIsCompatible()) {

      // display the loading message
      var om = new OverlayMessage(document.getElementById('map'));      
      om.Set('<b>Loading...<\/b>');
      

      var n=0;

        var icon = new GIcon();
      icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
      icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
      icon.iconSize = new GSize(12, 20);
      icon.shadowSize = new GSize(22, 20);
      icon.iconAnchor = new GPoint(6, 20);
      icon.infoWindowAnchor = new GPoint(5, 1);          

      function createMarker(point,html,icon) {
        var marker = new GMarker(point, {icon:icon});
        GEvent.addListener(marker, "mouseover", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
      //  map.setCenter(new GLatLng(-1.6347,29.388), 11, G_SATELLITE_MAP);
         map.setCenter(new GLatLng(52.3910, 4.8375), 15);
		// map.setCenter(new GLatLng(20, 0), 10);

      GDownloadUrl("/web/system/modules/sonatatemplate/resources/jscript/displaymapinfo.xml", function (doc) {
         
        var xmlDoc = GXml.parse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("markerNETH");

          
        for (var i = 0; i < markers.length; i++) {
          // obtain the attribues of each marker
          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lng"));
          var point = new GLatLng(lat,lng);
          var info = markers[i].getAttribute("info");
		 var marker = createMarker(point,info,icon);
				  map.addOverlay(marker);
        }

        // Display the map, with some controls and set the initial location 

       
       
        om.Clear(); // Clear the loading message
      });
    }

    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
  
}

//For Singapore Offices...............

function  SingaporeMap(){
	if (GBrowserIsCompatible()) {

      // display the loading message
      var om = new OverlayMessage(document.getElementById('map'));      
      om.Set('<b>Loading...<\/b>');
      

      var n=0;

        var icon = new GIcon();
      icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
      icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
      icon.iconSize = new GSize(12, 20);
      icon.shadowSize = new GSize(22, 20);
      icon.iconAnchor = new GPoint(6, 20);
      icon.infoWindowAnchor = new GPoint(5, 1);          

      function createMarker(point,html,icon) {
        var marker = new GMarker(point, {icon:icon});
        GEvent.addListener(marker, "mouseover", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
      //  map.setCenter(new GLatLng(-1.6347,29.388), 11, G_SATELLITE_MAP);
         map.setCenter(new GLatLng(1.290321, 103.849136), 15);
		// map.setCenter(new GLatLng(20, 0), 10);

      GDownloadUrl("/web/system/modules/sonatatemplate/resources/jscript/displaymapinfo.xml", function (doc) {
         
        var xmlDoc = GXml.parse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("markerSNGP");

          
        for (var i = 0; i < markers.length; i++) {
          // obtain the attribues of each marker
          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lng"));
          var point = new GLatLng(lat,lng);
          var info = markers[i].getAttribute("info");
		 var marker = createMarker(point,info,icon);
				  map.addOverlay(marker);
        }

        // Display the map, with some controls and set the initial location 

       
       
        om.Clear(); // Clear the loading message
      });
    }

    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
  
}
