// JavaScript Document
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function GoLogin() {
if (document.getElementById("txtUserName").value == "" || document.getElementById("txtUserName").value == "user name") {
if (document.getElementById("txtPassword").value == "" || document.getElementById("txtPassword").value == "password") {
  alert("Please Enter your username");} else {document.location = "/Login.aspx";}}
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

var map = null;
var geocoder = null;

function initializeMap() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(51.460852, -0.219727), 8);
        map.setUIToDefault();
        geocoder = new GClientGeocoder();
        WebServices.TypeLib.Companies.GetAllCompanies(PopulateMapCallback, FailedCallBack);
    }
}

function initializeEventMap() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(51.460852, -0.219727), 8);
        map.setUIToDefault();
        geocoder = new GClientGeocoder();
    }
}

function mappage_checkall(obj) {
    if (!obj.checked) {
    //uncheck all
        var x = document.getElementsByTagName("input");
        for (var i = 0; i < x.length; i++) {
            if (obj.id != x[i].id) {
                if (x[i].type == 'checkbox') { x[i].checked = false; } 
            }
        }
    } else {
    //check all
    var x = document.getElementsByTagName("input");
    for (var i = 0; i < x.length; i++) {
        if (obj.id != x[i].id) {
            if (x[i].type == 'checkbox') { x[i].checked = true; } 
        }
    }

    }
}

//function showAddress(address) {
//    var map = new GMap2(document.getElementById("map_canvas"));
//    map.setCenter(new GLatLng(51.460852, -0.219727), 7);
//    marker = new GMarker(new GLatLng(51.460852, -0.219727), { draggable: true });
//    map.addControl(new GLargeMapControl());
//    //map.addControl(new MapTypeControl());
//    map.addControl(new GScaleControl());
//    map.enableScrollWheelZoom();
//    map.disableDoubleClickZoom();
//    showAllCustomersOnMap()
//    geocoder = new GClientGeocoder();
//    if (geocoder) {
//        geocoder.getLatLng(
// address,
// function(point) {
//     if (!point) {
//         alert(address + " not found");
//     } else {

//         posset = 1;

//         map.setMapType(G_HYBRID_MAP);
//         map.setCenter(point, 16);
//         zm = 1;
//         marker.setPoint(point);
//         GEvent.trigger(marker, "click");
//         map.addOverlay(createMarker(point, -1, "YOU ARE HERE"));
//     }
// }
// );
//    }
//}


function showAddress(address) {
    if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
              if (!point) {
                  alert("We're sorry but '" + address + "' cannot be found on Google Maps. Please try again.");
              } else {
              map.setZoom(13);
              map.setCenter(point, 13);
              map.panTo(point);
              marker = new GMarker(point);
              map.addOverlay(marker);
              map.setCenter(point, 13);
     
                  //alert(point.lat());
                  //alert(point.lng());
              }
          });
      }
      var my_gmapd = document.getElementById('map_canvas');  // id of your map 
      var div = document.createElement('DIV');
      div.style.backgroundColor = 'white';
      div.style.position = 'absolute';
      div.style.bottom = '0px';
      div.style.height = '25px';
      div.style.borderTop = '1px solid #aaa';
      my_gmapd.appendChild(div);
      div.style.width = '100%';
      div.style.zIndex = '500'; // move to middle 


      var divs = my_gmapd.getElementsByTagName('DIV'); // get map's child divs
      divs[1].style.zIndex = '1000';  // move to front; the google image 
      divs[2].style.zIndex = '1000';  // move to front; the copyright string
      divs[2].style.wordWrap = 'break-word';  // wrap the copyright string around
      divs[2].style.width = '50%';  // optionally, set a pixel-width here 
      divs[2].style.fontSize = '80%';  // make it teensy bit smaller            
}

function findPoints(address) {
    if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
              if (!point) {
                  alert("We're sorry but '" + address + "' cannot be found on Google Maps. Please try again.");
              } else {
                  map.setZoom(13);
                  map.panTo(point);
                  map.addOverlay(createMarker(point, document.getElementById('ctl00_CentreTable_ddlCategory').value, address));
                  map.setCenter(point, 13);

                  document.getElementById('ctl00_CentreTable_txtLat').value = point.lat();
                  document.getElementById('ctl00_CentreTable_txtLng').value = point.lng();
              }
          });
    }
}

function showAllCustomersOnMap() {
    var x = document.getElementsByTagName("input");
    var strNums = '';
    var first;
    first = 0;
    for (var i = 0; i < x.length; i++) {
        if (x[i].type == 'checkbox') {
            if (x[i].checked && x[i].value != 'on') {
                if (first == 0) {strNums = x[i].value; } else { strNums = strNums + "," + x[i].value; }
                first = 1
            }
        }
    }
    if (strNums == '') { alert('No categories have been selected, please select a category from the right'); } else {
    WebServices.TypeLib.Companies.GetCompaniesByCatList(strNums, PopulateMapCallback, FailedCallBack);}
    
}

function FailedCallBack(error) {
    // Display the error.
    alert("There has been a technical problem retrieving the Companys, the problem has been reported and our engineers will fix this soon, our aplogies for the inconvinience.");
    var stackTrace = error.get_stackTrace();
    var message = error.get_message();
    var statusCode = error.get_statusCode();
    var exceptionType = error.get_exceptionType();
    var timedout = error.get_timedOut();

    // Display the error.
    alert("Service Error: " + message + "/n" + "Stack Trace: " + stackTrace + "/n" + "/n" + "Status Code: " + statusCode + "/n" + "Exception Type: " + exceptionType + "/n" + "Timedout: " + timedout);

}

function OnChangeCats(obj) {
    var categoryID;
    categoryID = obj[obj.selectedIndex].value;
    WebServices.TypeLib.Companies.GetCompaniesBySubCategory(categoryID,20 , PopulateMapCallback, FailedCallBack);
    WebServices.TypeLib.BusinessCategories.GetCategoriesByParent(categoryID,20 , PopulateSubCatCallback, FailedCallBack);

}

function OnChangeSearchCats(obj) {
    var categoryID;
    categoryID = obj[obj.selectedIndex].value;
    if (categoryID == 11) {
        window.location.assign("/context/templates/SEMNMap/SEMN_People_Summary.aspx");
    } else {
        window.location.assign("/context/templates/SEMNMap/SEMN_People_Summary.aspx?cid=" + categoryID);
    }
}

function createMarker(point, cat,addr) {  
    // Create a lettered icon for this point using our icon class
    var letter = String.fromCharCode("A".charCodeAt(0) + cat);
    var baseIcon = new GIcon(G_DEFAULT_ICON);
    baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
    baseIcon.iconSize = new GSize(20, 34);
    baseIcon.shadowSize = new GSize(37, 34);
    baseIcon.iconAnchor = new GPoint(9, 34);
    baseIcon.infoWindowAnchor = new GPoint(9, 2);
    var letteredIcon = new GIcon(baseIcon);
    letteredIcon.image = "/context/Templates/SEMNMaster/images/Icons/20x34/" + cat + ".png";
    // Set up our GMarkerOptions object
    markerOptions = { icon: letteredIcon };
    var marker = new GMarker(point, markerOptions);
    GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(addr); });
    GEvent.addListener(marker, "onmouseover", function() { marker.openInfoWindowHtml(addr); });
    //GEvent.addListener(marker, "onmouseout", function() { marker.closeInfoWindowHtml();
    return marker;
   
}




function PopulateSubCatCallback(result, eventArgs) {
    for (var i = 0; i < result.length; i++) {
        //Repopulate the SubCategoryBox
    }
}

function PopulateMapCallback(result, eventArgs) {
    map = new GMap2(document.getElementById("map_canvas"));
    map.setUIToDefault();
    geocoder = new GClientGeocoder();
    map.clearOverlays();
for (var i = 0; i < result.length; i++) {
        //RePushPin the Map
        var point = new GLatLng(result[i].Lattitude, result[i].Longitude); 
        // Set up our GMarkerOptions objectmarkerOptions = { icon:blueIcon };
        var addr
        addr = "<b>" + result[i].CompanyName + "</b></br>";
        addr = addr + result[i].Street + "</br>";
        addr = addr + result[i].Town + "</br>";
        addr = addr + result[i].City + "</br>";
        addr = addr + result[i].Country + ", " + result[i].Postcode + "</br>";
        addr = addr + "Tel: " + result[i].Telephone + "</br>";
        addr = addr + "Email: " + result[i].EmailAddress + "</br>";
        addr = addr + "WWW: <a href='" + result[i].WebAddress + "' target='_blank'>" + result[i].WebAddress + "</a></br>";
        addr = addr + "Areas of Expertise: " + result[i].ExpertAreas + "</br></br>";
        addr = addr + "<a href='/People/company_details.aspx?cid=" + result[i].CompanyID + "'>click to view company details..</a></br>";
        map.addOverlay(createMarker(point, result[i].SubBusinessCategory, addr));
    }
    var point = new GLatLng(51.5442353, -0.5308714); 
    map.setCenter(point, 8);
    document.getElementById("recordNo").innerHTML = "Companies found: " + result.length;
}