﻿var map;
var directionsPanel;
var directions;
var MarkersArray = [];
var localSearch = new GlocalSearch();
var country;
var geocoder = new GClientGeocoder();

function closeWarning() {
    $(".stockistSearchWarning").fadeOut();
}

function usePointFromPostcode() {
  
  //Get postcode/location from search text box
    var postcode = document.getElementById('ctl00_MainContentPlaceHolder_TownPostTextBox').value;
    
    //Exceptions
    if (postcode.toLowerCase() == "stanstead") { postcode = "Stanstead, Suffolk"; }
    if (postcode.toLowerCase().indexOf("dt1") != -1) { postcode = "Dorchester"; }
    
    if (postcode.replace(/^\s+|\s+$/g, "") == "") {
        alert("Please enter a town, area or postcode to narrow your search");
    } else if ($('#ctl00_MainContentPlaceHolder_AreaOfInterestDropDownList').val() == "Please select") {
        alert("Please select an area of interest");
    } else {

    localSearch.setSearchCompleteCallback(null,
    function() {
        try {
            var resultLat = localSearch.results[0].lat;
            var resultLng = localSearch.results[0].lng;
            var point = new GLatLng(resultLat, resultLng);
            var resultTownCounty = localSearch.results[0].streetAddress;
            postBackGeoResults(point, resultTownCounty);
        }
        catch (err) {
            //try googlemap api if AJAX api fails. (Less accurate)
            country = document.getElementById('ctl00_MainContentPlaceHolder_CountriesToSearch').value
            searchAddress(postcode + ", " + country + ", Europe");
        }
    });

        country = document.getElementById('ctl00_MainContentPlaceHolder_CountriesToSearch').value
        localSearch.execute(postcode + ", " + country + ", Europe");
    }
    

}

function postBackGeoResults(point, resultTownCounty) {
    
    var pageName = window.location.pathname;
    if (pageName.indexOf("wheretobuy") >= 0 || pageName.indexOf("StockistSearch.aspx") >= 0) {
        point = point + "," + document.getElementById('ctl00_MainContentPlaceHolder_CountriesToSearch').value + "," + resultTownCounty;
        __doPostBack('HiddenCoordinates', point)
    } else {
        var market = $("#ctl00_MainContentPlaceHolder_hiddenMarketID").text();
        window.location = "http://www.neptune.com/Neptune/StockistSearch.aspx?marketsearch=" + market + "&co=" + point + "&tc=" + resultTownCounty;
    }
}

var geocoder = new google.maps.ClientGeocoder();
var addressFoundMarker = false;

function searchAddress(address){
    //alert(address);
    geocoder.getLatLng(
    address,
    function(pnt) {
      if (!pnt) {
        alert("Google cannot locate this Postcode/Town. Please enter your closest major town.");
      } 
      else {
        postBackGeoResults(pnt);

      }
    }
  );
}

function clickButton(e, buttonid){

      var evt = e ? e : window.event;
      var bt = document.getElementById(buttonid);

      if (bt){
          if (evt.keyCode == 13){
                bt.click();
                return false;
          }
      }
}

function mapLoad(canvas) {
    if (google.maps.BrowserIsCompatible()) {
        map = new google.maps.Map2(document.getElementById(canvas));
        map.setUIToDefault();
        var point = new google.maps.LatLng(53.794524, -1.327415);
        map.setCenter(point, 4);
    }
}

function getDirections(latitudeF, longitudeF) {

    //var start = "Cirencester";
    //var finish = "SN2 7SE";

    var start = document.getElementById('ctl00_MainContentPlaceHolder_CoordinatesLbl').innerHTML;
    var finish = latitudeF + "," + longitudeF;

    directionsPanel = document.getElementById("directions");
    directions = new GDirections(map, directionsPanel);

    var route = "from: " + start + " to: " + finish;
    
  //Animate Divs
  $('#CompanyList').animate({
    width: 'toggle'
  }, 750,function() {
    // Animation complete.
  });
      
  $('#map_canvas').animate({
    left: '-=335'
    }, 750, function() {
    //Animation complete.
    directions.load(route);
    //Hide current markers
    
    for (var i = 0; i < MarkersArray.length; i++) {
        var marker = MarkersArray[i];
        if (marker.isHidden()) {
          marker.show();
        } else {
          marker.hide();
        }
      } 
    });
   
     $('#directionsHolder').animate({
    opacity: 1.0,
    width:'335'
  }, 750, function() {
    //Animation complete.
  });

  $('#ctl00_MainContentPlaceHolder_Panel1').animate({
    width: '335'
  }, 750,function() {
    // Animation complete.
    
  });
  
}

function backToResult() {

//Remove markers & directions
//map.clearOverlays();
directions.clear();

    //Show original markers
    for (var i = 0; i < MarkersArray.length; i++) {
        var marker = MarkersArray[i];
        if (marker.isHidden()) {
          marker.show();
        } else {
          marker.hide();
        }
      } 
    
//Animate Divs
  $('#CompanyList').animate({
    width: 'toggle'
  }, 750,function() {
    // Animation complete.
    
  });
        
  $('#map_canvas').animate({
    left: '+=335'
    }, 750, function() {
    //Animation complete.
  });
   
     $('#directionsHolder').animate({
    opacity: 0.0,
    width: '0'
  }, 750, function() {
    //Animation complete.
  });
  
  $('#ctl00_MainContentPlaceHolder_Panel1').animate({
    width: '0'
  }, 750,function() {
    // Animation complete.
    
  });
  
map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
document.getElementById('directions').innerHTML="";

}

function showCustomMarker(latitude, longitude){
    /*var point = new google.maps.LatLng(latitude, longitude);
    var myHomeIcon = new GIcon();
    myHomeIcon.image = '/App_Themes/Default/Images/GoogleMapsMarkers/Home/image.png';
    myHomeIcon.printImage = '/App_Themes/Default/Images/GoogleMapsMarkers/Home/printImage.gif';
    myHomeIcon.mozPrintImage = '/App_Themes/Default/Images/GoogleMapsMarkers/Home/mozPrintImage.gif';
    myHomeIcon.iconSize = new GSize(25,25);
    myHomeIcon.shadow = '/App_Themes/Default/Images/GoogleMapsMarkers/Home/shadow.png';
    myHomeIcon.transparent = '/App_Themes/Default/Images/GoogleMapsMarkers/Home/transparent.png';
    myHomeIcon.shadowSize = new GSize(38,25);
    myHomeIcon.printShadow = '/App_Themes/Default/Images/GoogleMapsMarkers/Home/printShadow.gif';
    myHomeIcon.iconAnchor = new GPoint(13,25);
    myHomeIcon.infoWindowAnchor = new GPoint(13,0);
    myHomeIcon.imageMap = [12,0,13,1,14,2,14,3,15,4,15,5,16,6,20,7,23,8,24,9,23,10,22,11,22,12,21,13,20,14,19,15,19,16,19,17,19,18,19,19,19,20,20,21,20,22,19,23,5,23,4,22,4,21,4,20,5,19,5,18,5,17,5,16,5,15,4,14,3,13,2,12,1,11,1,10,0,9,1,8,4,7,8,6,9,5,9,4,10,3,10,2,11,1,12,0];
	markerOptions = { icon:myHomeIcon };
    var marker = new google.maps.Marker(point, markerOptions);
    map.addOverlay(marker);
    MarkersArray.push(marker);*/
}

function test() {

$('#ct101_MainContentPlaceHolder_ct101_Panel2').hide()
document.getElementById("ct101_MainContentPlaceHolder_ct101_Panel2").style.visibility = "none";

}

function showPostLetter(latitude, longitude, index, prem) {
    var point = new google.maps.LatLng(latitude, longitude);
    //map.setCenter(point, 10);
    var letter = String.fromCharCode("A".charCodeAt(0) + index);
    var letteredIcon = new google.maps.Icon(G_DEFAULT_ICON);
    letteredIcon.iconSize = new GSize(25,25);
    letteredIcon.shadowSize = new GSize(38,25);
    letteredIcon.iconAnchor = new GPoint(13,25);
    
    if (prem==true)
    {
    letteredIcon.image = "/App_Themes/Default/Images/GoogleMapsMarkers/Premiere/image" + letter + ".png";
    } else {
    letteredIcon.image = "/App_Themes/Default/Images/GoogleMapsMarkers/Standard/image" + letter + ".png";
    }
    
    markerOptions = { icon: letteredIcon };

    var marker = new google.maps.Marker(point, markerOptions);
    map.addOverlay(marker);
    MarkersArray.push(marker);
    marker.pane.bringToTop(marker);


}

//var geocoder = new google.maps.ClientGeocoder();
//var addressFoundMarker = false;

//function searchAddress(address){
//    //alert(address);
//    geocoder.getLatLng(
//    address,
//    function(point) {
//      if (!point) {
//        addressFound(0);
//        addressFoundMarker = false;
//      } 
//      else {
//        addressFound(1);
//        addressFoundMarker = true;
//        //map.setCenter(point, 10);
//        var marker = new GMarker(point);
//        map.addOverlay(marker);
//        LongitudeField.value = point.lng();
//        LatitudeField.value = point.lat();
//      }
//    }
//  );
//}

var positiveColor = '#66CC00'; //green
var negativeColor = '#FF5555'; //red

function addressFound(value) {
    if (value == 1) {
        AddressLine1Field.style.backgroundColor = positiveColor;
        AddressLine2Field.style.backgroundColor = positiveColor;
        TownField.style.backgroundColor = positiveColor;
        CountyField.style.backgroundColor = positiveColor;
        PostcodeField.style.backgroundColor = positiveColor;
        CountryField.style.backgroundColor = positiveColor;
    } 
    else {
        AddressLine1Field.style.backgroundColor = negativeColor;
        AddressLine2Field.style.backgroundColor = negativeColor;
        TownField.style.backgroundColor = negativeColor;
        CountyField.style.backgroundColor = negativeColor;
        PostcodeField.style.backgroundColor = negativeColor;
        CountryField.style.backgroundColor = negativeColor;
    }    
}

function printPartOfPage()
{
 var printContentMap = document.getElementById('map_canvas');
 var windowUrl = 'about:blank';
 var uniqueId = new Date();
 var windowName = 'Print' + uniqueId.getTime();
 var printWindow = window.open(windowUrl, windowName, 'left=20,top=20,width=1000,height=');
    
 printWindow.document.write(printContentMap.innerHTML);
 var div1 = printWindow.document.getElementById('map_canvas');
 printWindow.document.getElementById('ctl00_MainContentPlaceHolder_Panel1').setAttribute("class", "StockistDirectionsPrint");
 printWindow.focus();

}

function addLoadEventCG() {

window.onload = mapLoad("map_canvas");

}


function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
function addUnLoadEvent(func) {
    var oldonunload = window.onunload;
    if (typeof window.onunload != 'function') {
        window.onunload = func;
    } else {
        window.onunload = function() {
            oldonunload();
            func();
        }
    }
}
