//var gMap = null;
var latlngCenter = new google.maps.LatLng(18.794396, 98.969516);
var geocoder = new google.maps.Geocoder();
//var markersArray = [];
var infoWindow = new google.maps.InfoWindow({maxWidth:10});


function initializeLocations(elementname, gmap) {
    var myOptions = {
        zoom: 10,
        center: latlngCenter,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    gmap = new google.maps.Map(document.getElementById(elementname), myOptions);
    //gmap = new google.maps.Map(elementname, myOptions);
    return gmap;
}

//Render Marker
function SetMarker(xlatlng, xTitle, address, gmapElement, markers) {
    var marker = new google.maps.Marker({
        position: xlatlng,
        title: xTitle
    });

    marker.setMap(gmapElement);
    addMarkerEvent(marker, address, gmapElement);
    markers.push(marker);

    return markers;
}

// Sets the bounds of the map to contain all markers in the array
function SetZoomLevel(gmapElement, markers) {
    var bounds = new google.maps.LatLngBounds();
    for (i = 0; i < markers.length; i++) {
        bounds.extend(markers[i].position);
    }

    if (markers != null) {

        if (markers.length == 1) {

            gmapElement.setCenter(bounds.getCenter());
        }
        else {
            gmapElement.setCenter(bounds.getCenter());
            gmapElement.fitBounds(bounds);
        }
    }
  
   // gmapElement.fitBounds(bounds);
    

}

function addMarkerEvent(marker, address, gmapElement) {
    google.maps.event.addListener(marker, 'click', function () { setInfoWindow(marker, address, gmapElement); });
}


function setInfoWindow(marker, address, gmapElement) {

    var contentString = '<div id="content">' +
                '<div id="siteNotice">' +
                '</div>' +
                '<h2 id="firstHeading" class="firstHeading">' + marker.title + '</h2>' +
                '<div id="bodyContent">' +
                    '<p>' + address + '.</p>' +
                '</div>' +
                '</div>';


    infoWindow.content = contentString;
    infoWindow.open(gmapElement, marker);
}

//function showOverlays() {
//    if (markersArray) {
//        for (i in markersArray) {
//            markersArray[i].setMap(gMap);
//        }
//    }
//}

//function clearOverlays() {
//    if (markersArray) {
//        for (i in markersArray) {
//            markersArray[i].setMap(null);
//        }
//    }
//}

//function deleteOverlays() {
//    if (markersArray) {
//        for (i in markersArray) {
//            markersArray[i].setMap(null);
//        }
//        markersArray.length = 0;
//    }
//}

function GetLocations(locationId, gmapElement, markers) {
  
    var result = $.ajax
      ({
          type: "POST",
          url: "/base/iBillSoftwareConsult/GetLocationsById/" + locationId + ".aspx",
          data: {},
          dataType: "xml",
          async: false,
          success: function (xml) {
              markers = xmlParser(xml, gmapElement, markers);
          }
      }).responseText;

    return markers;
}

// Render markers
function xmlParser(xml, gmapElement, markers) {

    $(xml).find("Table1").each(function () {
        var TempPoint = $(this).find("Point").text();
        var LocationName = $(this).find("Title").text();
        var address = $(this).find("Address").text();
        TempPoint = TempPoint.replace("POINT (", "").replace(")", "").replace(" ", ",");
        var ArrTemp = new Array();
        ArrTemp = TempPoint.split(",");
        var PointLatLong = new google.maps.LatLng(ArrTemp[0], ArrTemp[1]);
        markers = SetMarker(PointLatLong, LocationName, address, gmapElement, markers);
    });

    return markers;
}
