$(document).ready(function() {
   setHover();
   
   $("a.basicinfo").click(function(event) {
      event.preventDefault();
      
      var businessId = $(this).parent().attr("id");
      var split = businessId.split("_");
      var id = split[1];
      
      $.ajax({
         type: "POST",
         url: "businessinfo.php",
         data: "businessId="+id,
         error: function (XMLHttpRequest, textStatus, errorThrown) {
            $("div#"+businessId).children("div.infocard").css({color:"red",fontWeight:"bold",padding:"4px"});
            showInfocard(businessId,"Error: could not retreive business data from server.");
         },
         success: function(data, textStatus) {
            showInfocard(businessId,data);
         }
      });
   });
});

function setHover() {
   $("div.business").bind("mouseenter", function(event) {
      $(this).css({background:"#FC3"});
   });
   $("div.business").bind("mouseleave", function(event) {
      $(this).css({background:"#fef5cc"});
   });
}

function showInfocard(businessId, data) {
   var split = businessId.split("_");
   var id = split[1];
   
   var basicinfo = $("div#"+businessId).children("a.basicinfo");
   var infocard = $("div#"+businessId).children(".infocard");
   infocard.empty();
   infocard.append(data);
   
   // get address
   var address = trim(basicinfo.children(".address").text()) + " Halifax NS Canada";
   // alert("address "+address);
   
   // get map canvas id
   var mapId = "mapid_"+id;
   var map = $("#"+mapId);
   map.empty();
   
   // toggle info card (using JQuery slide effect)
   if (infocard.css("display") == "none") {
      infocard.show("fast");
      map.show("slow");
   }
   else {
      map.slideUp("fast");
      infocard.slideUp("slow");
   }
   
   // display address on map
   showAddress(mapId,address);
}

function showAddress(mapId,address) {
   if (GBrowserIsCompatible()) {
      var geocoder = new GClientGeocoder();
      if (geocoder) {
         geocoder.getLatLng(
            address,
            function(point) {
               if (!point) {
                  alert("Google Maps could not find '" + address + "'!");
               }
               else {
                  var map = new GMap2(document.getElementById(mapId));
                  var marker = new GMarker(point);
                  map.setCenter(point, 15);
                  map.addOverlay(marker);
                  map.addControl(new GSmallMapControl());
                  // map.openInfoWindow(map.getCenter(), document.createTextNode(""+address));
               }
            }
         );
      }
   }
}
