/**
  This JavaScript is solely for the use of Neteffects and FunckyFish, and all related products.
  Permission to use any part of this code file is only with the permission of both parties.
**/

function mediaInit() {
  var media_nav = $('media-nav');
  if(media_nav) {
    media_nav.select('li').each(function(itm) {
      addEventForToggle(itm);
      var rel_id = itm.id.replace('nav-', '');
      var relation = $(rel_id);
      if(relation && relation.hasClassName('default')) {
        relation.addClassName('active');
        if(!itm.hasClassName('active'))  itm.addClassName('active');
      }
      //else hideMediaItem(relation);
    });
  }
}

function addEventForToggle(ele) {
  ele.observe('click', toggleMedia.bindAsEventListener(this));
}

function hideMediaItem(ele) {
  ele.hide();
}

function showMediaItem(ele) {
  ele.show();
}

function toggleMedia(event) {
  var sender = Event.element(event);
  var item_to_show_id = sender.id.replace('nav-', '');
  var media_content = $('media-content');
  if(media_content) {
    
    media_content.childElements().each(function(media_child) {
      if(media_child.id == item_to_show_id) media_child.show();
      else media_child.hide();
    });
    
    var media_nav = $('media-nav');
    if(media_nav) {
      media_nav.childElements().each(function(media_child) {
        media_child.removeClassName('active');
      });
    }
    sender.addClassName('active');
  }
}

function initializeMap(str, desc) {
  if (GBrowserIsCompatible()) getLatLngVals(str, function(x,y){showMap(x,y, desc);});
}

function showMap(lat, lng, str) {
  if (GBrowserIsCompatible()) {
    var canvas = $("map_canvas");
    if(canvas) {
      if(lat == null && lng == null) {
        canvas.removeClassName('loading');
        var msg = new Element('p').update("Sorry, map could not be found.");
        msg.addClassName("map-err");
        canvas.insert({top : msg });
      }
      else {
        canvas.removeClassName('loading');
        var map = new GMap2(canvas);
        var gpoint = new GLatLng(lat, lng);
        map.setCenter(gpoint, 13);
        map.setUIToDefault();
        var marker = new GMarker(gpoint);
        if(str != '' && str != null) marker.openInfoWindowHtml(str);
        map.addOverlay(marker);
      }
    }
  }
}

function getLatLngVals(addr, callback) {
  var geocoder = new GClientGeocoder();
  geocoder.getLatLng(addr,
    function(point) {
      if(!point) callback(null, null);
      else       callback(point.lat(), point.lng());
    }
  );
}