  // (c)2003-2008 activeweave, inc. - http://www.activeweave.com
// author: Jean Sini - mailto:jean@activeweave.com

var Activeweave = window.Activeweave || {};

/* Temporary Redefinition in order to function both  in Rover and Stickis */
Activeweave.Utils               = Activeweave.Utils               || {};
Activeweave.Utils.log           = Activeweave.Utils.log           || Activeweave.log;
Activeweave.Utils.hitch         = Activeweave.Utils.hitch         || Activeweave.hitch;
Activeweave.Utils.addParameter  = Activeweave.Utils.addParameter  || Activeweave.addParameter;
Activeweave.Utils.USER          = Activeweave.Utils.USER          || Activeweave.USER;
Activeweave.Utils.ACCOUNT       = Activeweave.Utils.ACCOUNT       || Activeweave.ACCOUNT;
Activeweave.Utils.BLOG          = Activeweave.Utils.BLOG          || Activeweave.BLOG;
Activeweave.Utils.POST          = Activeweave.Utils.POST          || Activeweave.POST;
Activeweave.Utils.URL           = Activeweave.Utils.URL           || Activeweave.URL;
Activeweave.Utils.isIE          = Activeweave.Utils.isIE          || Activeweave.isIE;
Activeweave.Utils.isIE6         = Activeweave.Utils.isIE6         || Activeweave.isIE6;
Activeweave.Utils.isMacFF       = Activeweave.Utils.isMacFF       || Activeweave.isMacFF;
Activeweave.Utils.swap          = Activeweave.Utils.swap          || Activeweave.swap;

Activeweave.DEFAULT_POPUP_WIDTH  = 500;
Activeweave.PARAM                = 'param';

  
Activeweave.requestInvitePopup = function(user)
  {
  try
    {
    var url     = '/widgets/popup.jsp';
    var params  = Activeweave.Utils.addParameter("popup","invite", true);
    params     += Activeweave.Utils.addParameter(Activeweave.Utils.USER,user,false);
    var popupW  = $('popup');
    if(popupW)
      {
      popupW.style.width = Activeweave.DEFAULT_POPUP_WIDTH+"px";
      }
    new Ajax.Request(url,
      {
      method:     'post',
      parameters: params,
      onComplete: Activeweave.Utils.hitch(this,"invitePopupReceived")
      });
    }
  catch(ex)
    {
    }
  }

Activeweave.requestConnectPopup = function(popup,accountId,width)
  {
  try
    {
    var url     = '/widgets/popup.jsp';
    var params  = 'popup='+popup;
    params     += '&a.id='+accountId;
    var popupW  = $('popup');
    if(popupW)
      {
      width = (width==null||width=='undefined')?Activeweave.DEFAULT_POPUP_WIDTH:width;
      popupW.style.width = width+"px";
      }
    new Ajax.Request(url,
      {
      method:     'post',
      parameters: params,
      onComplete: Activeweave.Utils.hitch(this,"connectPopupReceived")
      });
    }
  catch(ex)
    {
    }
  }

Activeweave.requestPopup = function(popup, callback,width,close)
  {
  try
    {
    var url     = '/widgets/popup.jsp';
    var params  = Activeweave.Utils.addParameter('popup',popup,true);
    if(close)
      {
      params+= Activeweave.Utils.addParameter('close',close,false);  
      }
    var popupW  = $('popup');
    if(popupW)
      {
      popupW.style.width = (width||Activeweave.DEFAULT_POPUP_WIDTH)+"px";
      }
    if(!callback)
      {         
      callback = Activeweave.popupReceived;
      }

    new Ajax.Request(url,
      {
      method:     'post',
      parameters: params,
      onComplete: callback
      });
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.requestPopup()",ex);
    }
  }

Activeweave.importBookmarksInit = function(request)
  {
  try
    {       
    Activeweave.Bookmarks.isImportingRequest();
    Activeweave.popupReceived(request);
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.importBookmarksInit()",ex);
    }
  }

Activeweave.invitePopupReceived = function(request)
  {
  Activeweave.popupReceived(request);
  Activeweave.lookup('search_txt',130);
  }

Activeweave.connectPopupReceived = function(request)
  {
  Activeweave.popupReceived(request,130);
  }

Activeweave.sizeShadow = function(shadow)
  {
  try
    {
    shadow  = shadow || $('shadow');
    if(shadow)
      {
      shadow.style.height     = Math.max(document.body.offsetHeight,document.documentElement.clientHeight)+"px";
      }
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.sizeShadow()",ex);
    }
  }

Activeweave.sizePopup = function(popup,topOffset)
  {
  if(topOffset==null||topOffset=='undefined') topOffset = 0;
  var offsetFromTop = Activeweave.Utils.isIE6()?document.documentElement.scrollTop:0;
  try
    {
    popup   = popup  || $('popup');
    if(popup)
      {
      var x = (document.body.offsetWidth-popup.offsetWidth)/2;
      popup.style.left        = x+"px";
      popup.style.top         = offsetFromTop+Math.max(10,((document.documentElement.clientHeight-popup.offsetHeight)/2)-topOffset)+"px";
      }
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.sizePopup()",ex);
    }
  }

Activeweave.popupReceived = function(request,topOffset)
  {
  try
    {
    if(topOffset==null||topOffset=='undefined') topOffset = 0;
    var resp    = request.responseText;
    var shadow  = $('shadow');
    var popup   = $('popup');
    if(resp&&resp.trim().length>0&&shadow&&popup)
      {
      shadow.style.display    = "block";
      shadow.style.visibility = "visible";
      if(Activeweave.Utils.isMacFF())
        {
        var anim = $('animation');
        if(anim)
          {
          anim.style.display = 'none';
          }
        }
      Activeweave.sizeShadow(shadow);
      popup.innerHTML = resp;
      var empty = $('emptyPopup');
      if(empty!=null)
        {
        Activeweave.closePopup();
        }
      else
        {
        popup.style.display     = "block";
        popup.style.visibility  = "visible";
        Activeweave.sizePopup(popup,topOffset);
        }
      }
    else
      {
      Activeweave.closePopup();
      }
    }
  catch(ex)
    {
    }
  }

Activeweave.closePopup = function()
  {
  try
    {
    var shadow  = $('shadow');
    var popup   = $('popup');
    if(shadow&&popup)
      {
      shadow.style.display    = "none";
      shadow.style.visibility = "hidden";
      popup.innerHTML         = "";
      popup.style.display     = "none";
      popup.style.visibility  = "hidden";
      popup.style.width       = Activeweave.DEFAULT_POPUP_WIDTH+'px';
      if(Activeweave.Utils.isMacFF())
        {
        var anim = $('animation');
        if(anim)
          {
          anim.style.display = 'block';
          }
        }
      }
    }
  catch(ex)
    {
    }
  }

Activeweave.showProfile = function(aid,fetchable,e)
  {
	var relTarg;
  try
    {
    var expandEl,profileEl;
    profileEl = "profile_" + aid;
    var profile = $(profileEl);
    if(profile)
      {
      profile.style.display = "inline";
      var child = profile.firstChild;
      if(child==null&&fetchable)
        {
        Activeweave.fetchProfile(aid);
        }
      }
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.showProfile()",ex);
    }
  }

Activeweave.showLatestNotes = function(bid,fetchable,e)
  {
	var relTarg;
  try
    {
    var expandEl,nodeSetEl;

    nodeSetEl = "noteSet_" + bid;

    var nodeSet = $(nodeSetEl);

    if(nodeSet)
      {
      nodeSet.style.display = "inline";
      var child = nodeSet.firstChild;
      if(child==null&&fetchable)
        {
        Activeweave.fetchLatestNotes(bid);
        }
      }
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.showLatestNotes()",ex);
    }
  }

Activeweave.showThumbnails = function(pid,bid)
  {
  try
    {
    var expandEl,nodeSetEl;

    expandEl  = "expand_" + pid;
    nodeSetEl = "noteSet_" + pid;

    var nodeSet = $(nodeSetEl);
    var expand  = $(expandEl);

    if(nodeSet)
      {
      nodeSet.style.display = "inline";
      var child = nodeSet.firstChild;
      if(child==null)
        {
        Activeweave.fetchThumbnails(pid,bid);
        }
      }
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.showThumbnails()",ex);
    }
  }

Activeweave.hideLatestNotes = function(bid,e)
  {
	var relTarg;
  try
    {
    if (!e) e = window.event;
	  if (e.relatedTarget) relTarg = e.relatedTarget;
	  else if (e.toElement) relTarg = e.toElement;

    var nodeSetEl = "noteSet_" + bid;

    var nodeSet = $(nodeSetEl);

    if(nodeSet)
      {
      while(relTarg)
        {
        if(relTarg==nodeSet) return;
        relTarg = relTarg.parentNode;
        }
      nodeSet.style.display = "none";
      }
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.showLatestNotes()",ex);
    }
  }

Activeweave.hideProfile = function(aid,e)
  {
	var relTarg;
  try
    {
    if (!e) e = window.event;
	  if (e.relatedTarget) relTarg = e.relatedTarget;
	  else if (e.toElement) relTarg = e.toElement;

    var profileEl = "profile_" + aid;
    var profile = $(profileEl);
    if(profile)
      {
      while(relTarg)
        {
        if(relTarg==profile) return;
        relTarg = relTarg.parentNode;
        }
      profile.style.display = "none";
      }
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.hideProfile()",ex);
    }
  }

Activeweave.fetchProfile = function(aid)
  {
  try
    {
    var url       = "/widgets/overlaid.profile.jsp";
    var params    = Activeweave.Utils.addParameter(Activeweave.Utils.ACCOUNT,aid, true);
    var account      = aid;
    new Ajax.Request( url,
                    { asynchronous: true,
                      method:       'post',
                      parameters:   params,
                      onComplete:   function(request) { Activeweave.profileFetched(account,request);}
                    });
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.fetchProfile()",ex);
    }
  }

Activeweave.fetchLatestNotes = function(bid)
  {
  try
    {
    var url       = "/widgets/overlaid.notes.jsp";
    var params    = Activeweave.Utils.addParameter(Activeweave.BLOG,bid, true);
    var blog      = bid;
    new Ajax.Request( url,
                    { asynchronous: true,
                      method:       'post',
                      parameters:   params,
                      onComplete:   function(request) { Activeweave.latestNotesFetched(blog,request);}
                    });
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.fetchLatestNotes()",ex);
    }
  }

Activeweave.fetchThumbnails = function(pid,bid)
  {
  try
    {
    var url       = "/widgets/overlaid.thumbnails.jsp";
    var pidStr    = ""+pid;
    var thumburls = Activeweave.thumbUrls[pidStr];
    var params    = "";

    if(thumburls)
      {
      params += Activeweave.Utils.addParameter(Activeweave.Utils.BLOG,bid,true);
      params += Activeweave.Utils.addParameter(Activeweave.Utils.POST,pid,false);
      for(var i=0;i<thumburls.length;i++)
        {
        params    += Activeweave.Utils.addParameter(Activeweave.Utils.URL,thumburls[i], false);
        }
      var tid      = pid;
      new Ajax.Request( url,
                    { asynchronous: true,
                      method:       'post',
                      parameters:   params,
                      onComplete:   function(request) { Activeweave.latestNotesFetched(tid,request);}});
      }
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.fetchThumbnails()",ex);
    }
  }

Activeweave.latestNotesFetched = function(bid,request)
  {
  try
    {
    var html = request.responseText;
    var nodeSetEl = "noteSet_" + bid;
    var nodeSet = $(nodeSetEl);
    if(nodeSet)
      {
      nodeSet.innerHTML = html;
      }
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.latestNotesFetched()",ex);
    }
  }

Activeweave.profileFetched = function(aid,request)
  {
  try
    {
    var html = request.responseText;
    var profileEl = "profile_" + aid;
    var profile = $(profileEl);
    if(profile)
      {
      profile.innerHTML = html;
      }
    }
  catch(ex)
    {
    Activeweave.Utils.log("Activeweave.profileFetched()",ex);
    }
  }