var mapResults;
function validateSearchForm(form){
    var searchVal = form.searchInput.value;
    var restaurant = form.restaurant.checked;
    var privateStore = form.privateStore.checked;
    var government = form.government.checked; 
    var getString = '';
    if(restaurant == true){
        getString += '&restaurant=restaurant';
    }
    if(privateStore == true){
        getString += '&privateStore=privateStore';
    }
    if(government == true){
        getString += '&government=government';
    }

    $.ajax({
          url: 'http://gib.ca/index2.php',
          type: "POST",
          data: "searchInput="+searchVal+getString,
          success: function(resp) {
              mapResults = resp;
              var locObjectArray = mapResults;
              var obj = jQuery.parseJSON(locObjectArray);
              var arrayLength = obj.length;
              if(arrayLength == 0){
                  alert("No results found. Please try another search. ")
              }
              createMap();
              createResults();
          }
        });
        return false;
}
function createResults(){
    var locObjectArray = mapResults;
    var obj = jQuery.parseJSON(locObjectArray);
    var arrayLength = obj.length;
    var newObject;
    var eachLoc = " "; 
    for(var i=0; i < arrayLength; i++){
        newObject = obj[i];
        var divId = 'store-'+i;
        eachLoc += "<div class='eachLoc'><div class='locTitle' id='"+divId+"'>"+newObject.storeName+"</div><div class='locInfo'>"+newObject.addressOne+" "+newObject.addressTwo+"<br />"+newObject.city+" "+newObject.province+"<br />"+newObject.telephone+"<br />"+"</div></div>";
    }
    //alert(eachLoc);
    $("#resultsArea").html(eachLoc);

    
        $('.locTitle').click(function(){
            var id = $(this).attr('id'); 
            var objNum = id.split('-')[1]; 
            createIndiMap(obj[objNum].lat, obj[objNum].longi, 16,objNum);
        });
    

}
function createIndiMap(lat,longi,zoom,objectNum){
    var locObjectArray = mapResults;
    var obj = jQuery.parseJSON(locObjectArray);
    var newObject = obj[objectNum];
       var latlng = new google.maps.LatLng(lat, longi);

     var myOptions = {
       zoom: zoom,
       center: latlng,
       mapTypeId: google.maps.MapTypeId.ROADMAP
     };
     var map = new google.maps.Map(document.getElementById("locMap"),
         myOptions);
     var marker = new google.maps.Marker({
       position: latlng
     });
    marker.setMap(map);
    var contentString = '<strong>'+newObject.storeName+'</strong><br />'+newObject.addressOne+' '+newObject.addressTwo+'<br />'+newObject.city+' '+newObject.province+'<br />'+newObject.telephone;
    var infowindow = new google.maps.InfoWindow({
        content: contentString
    });
    infowindow.open(map,marker);
}
function attachInfo(newMarker, newObject, map){
   var contentString = '<strong>'+newObject.storeName+'</strong><br />'+newObject.addressOne+' '+newObject.addressTwo+'<br />'+newObject.city+' '+newObject.province+'<br />'+newObject.telephone;
    var infowindow = new google.maps.InfoWindow({
        content: contentString
    });

    google.maps.event.addListener(newMarker, 'mouseover', function() {
      infowindow.open(map,newMarker);
    });
    google.maps.event.addListener(newMarker, 'mouseout', function() {
      infowindow.close();
    });
}
function attachInfoClick(newMarker, newObject, map){
   var contentString = '<strong>'+newObject.storeName+'</strong><br />'+newObject.addressOne+' '+newObject.addressTwo+'<br />'+newObject.city+' '+newObject.province+'<br />'+newObject.telephone;
    var infowindow = new google.maps.InfoWindow({
        content: contentString
    });

    google.maps.event.addListener(newMarker, 'click', function() {
      infowindow.open(map,newMarker);
      map.setZoom(16);
    });
}
function createMap(){
    var locObjectArray = mapResults;
    var obj = jQuery.parseJSON(locObjectArray);

       var latlng = new google.maps.LatLng(obj[0].lat,obj[0].longi);

     var myOptions = {
       zoom: 12,
       center: latlng,
       mapTypeId: google.maps.MapTypeId.ROADMAP
     };
     var map = new google.maps.Map(document.getElementById("locMap"),
         myOptions);
     var marker = new google.maps.Marker({
       position: latlng
     });

    // To add the marker to the map, call setMap();
    marker.setMap(map);
    attachInfo(marker, obj[0], map);
    attachInfoClick(marker, obj[0], map);

    var arrayLength = obj.length;
    
    if(arrayLength > 1){
        var newObject, newLatLang, newMarker;
        for(var i =1; i< arrayLength; i++){
            newObject = obj[i];
            newLatLang = new google.maps.LatLng(newObject.lat, newObject.longi);
            newMarker = new google.maps.Marker({
               position: newLatLang,
               map: map
            });
            newMarker.setMap(map);
            attachInfo(newMarker, newObject, map);
            attachInfoClick(newMarker, newObject, map);
        }
    }
    
}
function initialize() {
    var latlng = new google.maps.LatLng(49.274478,-123.128429);
    
    var myOptions = {
      zoom: 14,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("locMap"),
        myOptions);
    
  

 
  }

$(document).ready(function(){
    $("input.searchInput").focus(function(){
        $(this).val(' ');
    });
});

