// (c)2003-2008 activeweave, inc. - http://www.activeweave.com
// author: Jean Sini - mailto:jean@activeweave.com

var Activeweave = window.Activeweave || {};

Activeweave.requestedOverlay = null;

Activeweave.fetchOverviewComponent = function(id,e,w,h)
  {
  try
    {
    var url       = "/about/overview/container.jsp";
    var nodeEl  = Activeweave.OVERVIEW;
    var node    = $(nodeEl);
    var markup  = $(Activeweave.OVERVIEW_MARKUP);
    var offsetX = 200;
    var offsetY = 350;
    if(node)
      {
      if(w)
        {
        offsetX = w/2;
        node.style.width = w+"px";
        markup.style.width = w-80+"px";
        }
      if(h)
        {
        offsetY = h - 110;
        node.style.height = h+"px";
        markup.style.height = (h-80)+"px";
        }
      if(e)
        {
        var posx = 0;
	      var posy = 0;
	      if (e.pageX || e.pageY)
          {
		      posx = e.pageX;
		      posy = e.pageY;
	        }
	      else if (e.clientX || e.clientY)
          {
		      posx = e.clientX + document.body.scrollLeft+document.documentElement.scrollLeft;
		      posy = e.clientY + document.body.scrollTop+document.documentElement.scrollTop;
	        }
        node.style.left= Math.max(30,(posx-offsetX))+"px";
        node.style.top = Math.max(30,(posy-offsetY))+"px";
        }
      }
    Activeweave.requestedOverlay = id;
    var params    = Activeweave.addParameter("component",id, true);
    new Ajax.Request( url,
                    { asynchronous: true,
                      method:       'post',
                      parameters:   params,
                      onComplete:   Activeweave.overviewComponentFetched });
    }
  catch(ex)
    {
    Activeweave.log("Activeweave.fetchOverviewComponent()",ex);
    }
  }

Activeweave.overviewComponentFetched = function(request)
  {
  try
    {
    var html    = request.responseText;
    var nodeEl  = Activeweave.OVERVIEW_MARKUP;
    var node    = $(nodeEl);
    var cont    = $(Activeweave.OVERVIEW);
    var valid   = false;
    if(node)
      {
      node.innerHTML      = html;
      var divs = node.getElementsByTagName("div");
      if(divs&&divs.length>0)
        {
        var div = divs[0];
        if(div) valid = div.id==("overviewComponent-"+Activeweave.requestedOverlay);
        }
      }
    if(cont&&valid)
      {
      cont.style.display = 'inline';
      }
    }
  catch(ex)
    {
    Activeweave.log("Activeweave.overviewComponentFetched()",ex);
    }
  }

Activeweave.hideOverviewComponent = function(e, elem)
  {
  var relTarg;
  try
    {
    if (!e) e = window.event;
    if (e.relatedTarget) relTarg = e.relatedTarget;
	  else if (e.toElement) relTarg = e.toElement;

    var triggerEl = Activeweave.TRIGGER;
    var nodeEl    = Activeweave.OVERVIEW;

    var trigger = $(triggerEl);
    var node    = $(nodeEl);
    if (!trigger)
      {
      trigger = elem;
      }
    if(trigger&&node)
      {
      while(relTarg)
        {
        if(relTarg==trigger||relTarg==node)
          {
          return;
          }
        relTarg = relTarg.parentNode;
        }
      node.style.display = "none";
      Activeweave.requestedOverlay = null;
      }
    else if(node)
      {
      node.style.display = "none";
      Activeweave.requestedOverlay = null;
      }
    }
  catch(ex)
    {
    Activeweave.log("Activeweave.hideOverviewComponent()",ex);
    }
  }