function SB_Error(key, serr, sbidx)
{
    document.getElementById(key + '_sbh_' + sbidx).onclick = 'void(0);';
    document.getElementById(key + '_sbh_' + sbidx).innerHTML = serr;
}

function SB_Remove(key, oid, otype, sbidx, ilang)
{
    document.getElementById(key + '_sbh_' + sbidx).onclick = 'void(0);';
    document.getElementById(key + '_sbh_' + sbidx).innerHTML = 'Removing...';
    var atext = new Array('remove', ilang);
    AJAX_AddTo(atext, '', key, oid, otype, sbidx);
}

function SB_AddTo(key, oid, otype, sbidx, ilang)
{
    
    document.getElementById(key + '_sbh_' + sbidx).onclick = 'void(0);';
    document.getElementById(key + '_sbh_' + sbidx).innerHTML = 'Adding...';
    var atext = new Array('add', ilang);
    AJAX_AddTo(atext, '', key, oid, otype, sbidx);
}

function SB_AddLinkTo(key,link,title, otype, sbidx, ilang)
{
    
    document.getElementById(key + '_sbh_' + sbidx).onclick = 'void(0);';
    document.getElementById(key + '_sbh_' + sbidx).innerHTML = 'Adding...';
    var atext = new Array('addlink', ilang);
    AJAX_AddLinkTo(atext, '', key, link,title,otype,sbidx);
}

function SB_RemoveLink(key, link, title, otype, sbidx, ilang)
{
    
    document.getElementById(key + '_sbh_' + sbidx).onclick = 'void(0);';
    document.getElementById(key + '_sbh_' + sbidx).innerHTML = 'Removing...';
    var atext = new Array('removelink', ilang);
    AJAX_AddLinkTo(atext, '', key, link,title, otype,sbidx);
}
function SB_Process(key, response, sb_msg, sbtext, oid, otype, idx, sbtext, ilang)
{
    // if (sb_msg != '') { alert(sb_msg); }
    var s_imgpath = document.getElementById('ekimgpath').value;
    if (response == -1 && otype == 19)
    {
        document.getElementById(key + '_sbimg_' + idx).src = s_imgpath + 'bookmarks/invite.gif';
        document.getElementById(key + '_sbh_' + idx).innerHTML = sbtext; 
        document.getElementById(key + '_sbh_' + idx).alt = sbtext;
        document.getElementById(key + '_sbh_' + idx).onclick = 'void(0);';
        document.getElementById(key + '_sbh_' + idx).href = 'javascript: void(0)';
    }
    else if (response == 1)
    {
        document.getElementById(key + '_sbimg_' + idx).src = s_imgpath + 'bookmarks/addto.gif';
        document.getElementById(key + '_sbh_' + idx).innerHTML = sbtext; 
        document.getElementById(key + '_sbh_' + idx).alt = sbtext;
        document.getElementById(key + '_sbh_' + idx).title = sbtext;
        document.getElementById(key + '_sbh_' + idx).href = "javascript: SB_AddTo('" + key + "', " + oid + ", " + otype + ", " + idx + ", " + ilang + "); void(0)";
        document.getElementById(key + '_sbh_' + idx).onclick = "";
        
    }
    else if (response == 0)
    {
        document.getElementById(key + '_sbimg_' + idx).src = s_imgpath + 'bookmarks/remove.gif';
        document.getElementById(key + '_sbh_' + idx).innerHTML = sbtext; 
        document.getElementById(key + '_sbh_' + idx).alt = sbtext;
        document.getElementById(key + '_sbh_' + idx).title = sbtext;
        document.getElementById(key + '_sbh_' + idx).href = "javascript: SB_Remove('" + key + "', " + oid + ", " + otype + ", " + idx + ", " + ilang + "); void(0)";
        document.getElementById(key + '_sbh_' + idx).onclick = "";
    }
}
function SB_ProcessLink(key, response, sb_msg, sbtext, link , title, otype, idx, sbtext, ilang)
{
    // if (sb_msg != '') { alert(sb_msg); }
    var s_imgpath = document.getElementById('ekimgpath').value;
    if (response == -1 && otype == 19)
    {
        document.getElementById(key + '_sbimg_' + idx).src = s_imgpath + 'bookmarks/invite.gif';
        document.getElementById(key + '_sbh_' + idx).innerHTML = sbtext; 
        document.getElementById(key + '_sbh_' + idx).alt = sbtext;
        document.getElementById(key + '_sbh_' + idx).onclick = 'void(0);';
        document.getElementById(key + '_sbh_' + idx).href = 'javascript: void(0)';
    }
    else if (response == 1)
    {
        document.getElementById(key + '_sbimg_' + idx).src = s_imgpath + 'bookmarks/addto.gif';
        document.getElementById(key + '_sbh_' + idx).innerHTML = sbtext; 
        document.getElementById(key + '_sbh_' + idx).alt = sbtext;
        document.getElementById(key + '_sbh_' + idx).title = sbtext;
        document.getElementById(key + '_sbh_' + idx).href = "javascript: SB_AddLinkTo('" + key + "', '" + link + "','" + title +"', " + otype + ", " + idx + ", " + ilang + "); void(0)";
        document.getElementById(key + '_sbh_' + idx).onclick = "";
        
    }
    else if (response == 0)
    {
        document.getElementById(key + '_sbimg_' + idx).src = s_imgpath + 'bookmarks/remove.gif';
        document.getElementById(key + '_sbh_' + idx).innerHTML = sbtext; 
        document.getElementById(key + '_sbh_' + idx).alt = sbtext;
        document.getElementById(key + '_sbh_' + idx).title = sbtext;
        document.getElementById(key + '_sbh_' + idx).href = "javascript: SB_RemoveLink('" + key + "', '" + link + "','" + title + "', " + otype + ", " + idx + ", " + ilang + "); void(0)";
        document.getElementById(key + '_sbh_' + idx).onclick = "";
    }
    
}
  	   
var req;
function SB_loadXMLDoc(url) 
{
    if (window.XMLHttpRequest) { // branch for native XMLHttpRequest object
        req = new XMLHttpRequest();
        req.onreadystatechange = SB_processReqChange;
        req.open("GET", url, true);
        req.send(null);
    } else if (window.ActiveXObject) { // branch for IE/Windows ActiveX version
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = SB_processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}
function SB_processReqChange() 
{
    if (req.readyState == 4) { // only if req shows "complete"
        if (req.status == 200) { // only if "OK"
          response  = req.responseXML.documentElement;
          method    = response.getElementsByTagName('method')[0].firstChild.data;
          result    = response.getElementsByTagName('result')[0].firstChild.data;
          key       = response.getElementsByTagName('key')[0].firstChild.data;
          sb_msg    = response.getElementsByTagName('returnmsg')[0].firstChild.data;
          idx       = response.getElementsByTagName('idx')[0].firstChild.data;
          if (result == 'error')
          {
              SB_Error(key, sb_msg, idx);
          }
          else
          {
              oid       = response.getElementsByTagName('oid')[0].firstChild.data;
              otype     = response.getElementsByTagName('otype')[0].firstChild.data;
              sbtext    = response.getElementsByTagName('retmsg')[0].firstChild.data;
			  ilang     = response.getElementsByTagName('ilang')[0].firstChild.data;
			  if( oid == 0)
			  {
			    title     = response.getElementsByTagName('title')[0].firstChild.data;
			    link      = response.getElementsByTagName('link')[0].firstChild.data;
			     eval(method + '(sb_msg, result, key, link, title, otype, idx, sbtext, ilang);');
			  }
			  else
			  {  
                eval(method + '(sb_msg, result, key, oid, otype, idx, sbtext, ilang);');
              }
		        //dispatch ajax finished event
		        $ektron().trigger("EktronSocialbarAjaxFinished", [method]);
          }
        } else {
            alert("There was a problem retrieving the XML data:\n" + req.statusText);
        }
    }
}

function AJAX_AddTo(input, response, key, oid, otype, sbidx, sbtext, ilang)
{
  if (response != ''){ 
    SB_Process(key, response, input, sbtext, oid, otype, sbidx, sbtext, ilang);
  }else{
    var s_path = document.getElementById('ekapppath').value;
    url = s_path + 'AJAXbase.aspx?action=addto&oid=' + oid + '&otype=' + otype + '&lang=' + input[1] + '&mode=' + input[0] + '&idx=' + sbidx + '&key=' + key +'&sbtext=' + sbtext;
    SB_loadXMLDoc(url);
  }

}

function AJAX_AddLinkTo(input, response, key, link, title, otype, sbidx, sbtext, ilang)
{
  
  if (response != ''){ 
    SB_ProcessLink(key, response, input, sbtext, link, title, otype, sbidx, sbtext, ilang);
  }else{
    var s_path = document.getElementById('ekapppath').value;
    url = s_path + 'AJAXbase.aspx?action=addto&link=' + link + '&otype=' + otype + '&lang=' + input[1] + '&mode=' + input[0] + '&idx=' + sbidx + '&key=' + key +'&title=' + title;
    SB_loadXMLDoc(url);
  }

}


