var skype_injection_path='chrome://skype_ff_toolbar_win/content/';
var skype_tool=null;

/*window.addEventListener("click",skype_click_handler,true);

{
  if (skype_tool)
      skype_tool.closemenu();
  //HideSkypeMenuFull();
} */

//CALL BUTTON
var ActiveCallButtonPart=0;
function SetCallButtonPart(obj)
{
  if (obj.getAttribute('id') == '__skype_highlight_id_left')
    {
      ActiveCallButtonPart=0;
  }
    else if (obj.getAttribute('id') == '__skype_highlight_id_right')
    {
      ActiveCallButtonPart=1;
  }
}

function SetCallButton(obj, hl, isInternational)
{
  var cb_part_l=null;
    var cb_part_ml=null;
    var cb_part_mr=null;
    var cb_part_r=null;
    if (obj.getAttribute('rtl') == 'false')
    {
      cb_part_l=obj.firstChild.firstChild;
      cb_part_ml=obj.firstChild.lastChild;
      cb_part_mr=obj.lastChild.firstChild;
      cb_part_r=obj.lastChild.lastChild;

        cb_flag=obj.firstChild.lastChild.firstChild;
        if (cb_flag && cb_flag.isSameNode(obj.firstChild.firstChild.firstChild) == true)
      cb_flag=null;
    }
    else
    {
      cb_part_l=obj.lastChild.lastChild;
      cb_part_ml=obj.lastChild.firstChild;
      cb_part_mr=obj.firstChild.lastChild;
      cb_part_r=obj.firstChild.firstChild;

        cb_flag=obj.lastChild.firstChild.lastChild;
    if (cb_flag && cb_flag.isSameNode(obj.lastChild.lastChild.lastChild) == true)
      cb_flag=null;
    }

  if (hl == 1)
    {
        cb_part_l.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_mouseover_l.gif')";
        if (cb_part_l.isSameNode(cb_part_ml) != true)
      cb_part_ml.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_mouseover_m.gif')";
        cb_part_mr.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_mouseover_m.gif')";


      if (isInternational=="0")
        {
            if (ActiveCallButtonPart==0)    //left
            {
                cb_part_r.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_mouseonflag_r.gif')";
                //shadow
                if (cb_flag)
                {
                  cb_flag.style.top='1px';
                  cb_flag.style.left='1px';     /*top right bottom left*/
                  cb_flag.style.padding='1px 0px 0px 1px';//'2px 0px 0px 0px';
                }
            }
            else                            //right
            {
                cb_part_r.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_mouseover_r.gif')";
                //flag
                if (cb_flag)
                {
                  cb_flag.style.top='0px';
                  cb_flag.style.left='0px';
                  cb_flag.style.padding='0px 1px 1px 0px';//'0px 1px 1px 0px';
                  cb_flag.style.margin='0px 0px 2px 0px;';
                }
            }
        }
        else
        {
            cb_part_r.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_mouseover_r.gif')";
             //flag
             if (cb_flag)
             {
            cb_flag.style.top='0px';
               cb_flag.style.left='0px';
               cb_flag.style.padding='0px 1px 1px 0px';
        cb_flag.style.margin='0px 0px 2px 0px;';
             }
        }
    }
    else
    {
        cb_part_l.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_normal_l.gif')";
        if (cb_part_l.isSameNode(cb_part_ml) != true)
          cb_part_ml.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_normal_m.gif')";
        cb_part_mr.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_normal_m.gif')";
        cb_part_r.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_normal_r.gif')";

    //flag
        if (cb_flag)
        {
          cb_flag.style.top='0px';
          cb_flag.left='0px';
          cb_flag.style.padding='0px 1px 1px 0px';
          cb_flag.style.margin='0px 0px 2px 0px;';
        }
    }
}
var cb_l='';
var cb_m='';
var cb_r='';

function SetCallButtonPressed(obj, pr, isInternational)
{
  var cb_part_l=null;
    var cb_part_ml=null;
    var cb_part_mr=null;
    var cb_part_r=null;
    if (obj.getAttribute('rtl') == 'false')
    {
      cb_part_l=obj.firstChild.firstChild;
      cb_part_ml=obj.firstChild.lastChild;
      cb_part_mr=obj.lastChild.firstChild;
      cb_part_r=obj.lastChild.lastChild;

        cb_flag=obj.firstChild.lastChild.firstChild;
        if (cb_flag && cb_flag.isSameNode(obj.firstChild.firstChild.firstChild) == true)
      cb_flag=null;
    }
    else
    {
      cb_part_l=obj.lastChild.lastChild;
      cb_part_ml=obj.lastChild.firstChild;
      cb_part_mr=obj.firstChild.lastChild;
      cb_part_r=obj.firstChild.firstChild;

        cb_flag=obj.lastChild.firstChild.lastChild;
        if (cb_flag && cb_flag.isSameNode(obj.lastChild.lastChild.lastChild) == true)
      cb_flag=null;
    }
  if (pr == 1)
    {
      cb_l=cb_part_l.style.backgroundImage;//getAttribute('src');
    cb_m=cb_part_mr.style.backgroundImage;
    cb_r=cb_part_r.style.backgroundImage;//getAttribute('src');

        if (isInternational=="0")
        {
          if (ActiveCallButtonPart==0)    //left
          {
              //obj.firstChild.firstChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_l.gif');
                cb_part_l.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_l.gif')";
                if (cb_part_l.isSameNode(cb_part_ml) != true)
                cb_part_ml.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
          }
          else                            //right
          {
              //obj.firstChild.firstChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_l.gif');
                cb_part_l.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_l.gif')";
                if (cb_part_l.isSameNode(cb_part_ml) != true)
                cb_part_ml.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
              cb_part_mr.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
              //obj.lastChild.lastChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_r.gif');
                cb_part_r.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_r.gif')";
          }
        }
        else
        {
                 //obj.firstChild.firstChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_l.gif');
                cb_part_l.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_l.gif')";
                if (cb_part_l.isSameNode(cb_part_ml) != true)
                cb_part_ml.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
              cb_part_mr.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
              //obj.lastChild.lastChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_r.gif');
                cb_part_r.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_r.gif')";
        }
    }
    else
    {
      //obj.firstChild.firstChild.setAttribute('src', cb_l);
        cb_part_l.style.backgroundImage=cb_l;
        if (cb_part_l.isSameNode(cb_part_ml) != true)
          cb_part_ml.style.backgroundImage=cb_m;
        cb_part_mr.style.backgroundImage=cb_m;
        //obj.lastChild.lastChild.setAttribute('src', cb_r);
        cb_part_r.style.backgroundImage=cb_r;
    }
}

//COMMANDS
function SkypeToolBarInit(tb)
{
  skype_tool=tb;
}

function doRunCMD(event, link, id, name)
{
  if (skype_tool)
  {
    if (link == 'chdial')
    {
        var obj=event.originalTarget;
      if (!obj)
        obj=event;
      /*var brd=getBounds(obj);
        var docelem = document.documentElement;
      if ((docelem.scrollTop == 0 && document.body.scrollTop != 0) || (docelem.scrollLeft == 0 && document.body.scrollLeft != 0))
          docelem=document.body;

      scrollY=docelem.scrollTop;
      scrollX=docelem.scrollLeft;

      var my=brd.top+16, mx=brd.left;/*brd.height*/

       //var oDoc = obj.ownerDocument;

        /*var obj2 = document.getBoxObjectFor(element);

        var html_box = new XPCNativeWrapper(obj2).wrappedJSObject;
        if (!html_box)
          html_box = obj2;

        var screenX = html_box.screenX;
        var screenY = html_box.screenY;
          */

        flagColor='rgb(184, 203, 255)';
        skype_tool.chprefix(id, document, obj, screenY);
    }
    else if (link == 'copy')
    skype_tool.copy_num(id, document);
    else if (link == 'sms')
    skype_tool.sms(id);
    else if (link == 'add')
    skype_tool.add(id, name);
    else
      skype_tool.call(id);
  }
}

function runCMD(link)
{
  HideSkypeFull();
  doRunCMD(null, link, skype_curid, skype_cur_name);
}

//FLAG TOOLTIP
function HideSkypeFull()
{
//   skype_active=false;
   document.getElementById('skype_dc').style.visibility="hidden";
}

function ShowSkype(event, title)
{
//  skype_active=true;
  DoShowSkype(event.pageX, event.pageY+20, title);
}

function DoShowSkype(cX, cY, title)
{
  var menu=document.getElementById('skype_dc');
  menu.firstChild.nodeValue=title;
  menu.style.visibility="visible";

  menu.style.left=cX+'px';
  menu.style.top=cY+'px';

}
var flagColor='rgb(184, 203, 255)';
function doSkypeFlag(obj,brd)
{
  flagColor=brd;
}

//MENU
var skype_curid=0,skype_active=false,skype_showseed=0,skype_ctm=0,skype_cur_name='';
var curbutton=null;
function CheckCallButton(obj)
{
  var res=false;
  if (curbutton && curbutton.isSameNode(obj)==true)
      res=true;

    curbutton=obj;
    return res;
}

function HideSkypeMenu()
{                       //skype_tool.sd('HideSkypeMenu skype_active='+skype_active);
  if(!skype_active)
    HideSkypeMenuFull();
    else
      setTimeout("HideSkypeMenu()",1000);
}

function HideSkypeMenu2(event)
{
    skype_showseed=0;
    if(!skype_active)
      HideSkypeMenuFull();
    else
    {
      skype_active=false;
    setTimeout("HideSkypeMenu()",1000);
    }
}

function HideSkypeMenuFull()
{                                 //skype_tool.sd('HideSkypeMenuFull skype_active='+skype_active);
/*   skype_active=false;
   document.getElementById('skype_menu').style.visibility="hidden";*/
}

function CheckSkype()
{
   skype_active=true;
}

function ShowSkypeMenu(event, call_msg, id, callto, isMobile, name, x, y)
{
try{
/*    skype_active=true;                   //skype_tool.sd('ShowSkypeMenu skype_curid='+skype_curid+'   callto='+callto+'  id='+id);
    if(document.getElementById('skype_menu').style.visibility!="hidden" && skype_curid==callto)//id
      return;
    skype_showseed=Math.random();
    clearTimeout(skype_ctm);
    var obj=event.originalTarget;
    if (!obj)
      obj=event;
//    var brd=getBounds(obj);
    //var pcx=brd.left, pcy=brd.top+16;/*brd.height;* /   //alert(pcx+'--'+pcy);

    scrolls=getDivScroll(obj);

    var pcx = x+scrolls.left, pcy = y+scrolls.top;

    skype_ctm=setTimeout('DoShowSkypeMenu(\''+call_msg+'\','+skype_showseed+',"'+callto+'",'+pcx+','+pcy+','+isMobile+',"'+name+'")',0);*/
}catch(e){ }
}

function DoShowSkypeMenu(call_msg, seed, callto, pcx, pcy, isMobile, name)
{
try{                            //skype_tool.sd('DoShowSkypeMenu seed='+seed+'   skype_showseed='+skype_showseed);
/*    if(seed!=skype_showseed)
      return;
    skype_showseed=0;
    skype_curid=callto;
  skype_cur_name=name;
    var menu=document.getElementById('skype_menu');

    var my=pcy, mx=pcx;

    var menubox=document.getBoxObjectFor(menu);
    //var docelem = document.documentElement;
                                  //alert(menubox.height);
                                  //alert('doc h='+document.height + ' y='+my+' menu h='+menubox.height);
    var docH=document.height;
    if (docH < document.documentElement.clientHeight) docH=document.documentElement.clientHeight;
    if (docH < document.documentElement.scrollHeight) docH=document.documentElement.scrollHeight;
    if (docH < document.body.clientHeight) docH=document.body.clientHeight;
    if (docH < document.body.scrollHeight) docH=document.body.scrollHeight;
    if ((my + menubox.height) > docH)
    my=my - 16 - menubox.height;
    if (my < 0) my=0;
//    if (document.height != 0 && (my + menubox.height) > document.height && (my + menubox.height) > document.documentElement.scrollHeight)//docelem.clientHeight)
      //my=document.height - menubox.height;

    var docW=document.width;
    if (docW < document.documentElement.clientWidth) docW=document.documentElement.clientWidth;
    if (docW < document.documentElement.scrollWidth) docW=document.documentElement.scrollWidth;
    if (docW < document.body.clientWidth) docW=document.body.clientWidth;
    if (docW < document.body.scrollWidth) docW=document.body.scrollWidth;
  if ((mx + menubox.width) > docW)
      mx=document.width - menubox.width;
    if (mx < 0) mx=0;
//  if (document.width != 0 && (mx + menubox.width) > document.width && (mx + menubox.width) > document.documentElement.scrollWidth)//docelem.clientWidth)

    menu.style.left=mx+'px';
    menu.style.top=my+'px';

    skype_tool.doFixMenu(menu, isMobile, document);

    menu.style.visibility="visible";  */
}catch(e){ }
}

function SetBgColor(obj, color)
{
try{
  obj.lastChild.style.backgroundColor = color;
}catch(e){ }
}

//UTIL
function getBounds(element)
{
try{
  var left = element.left;
    var top = element.top;
     while(!(element.tagName.toLowerCase() == 'span' && element.getAttribute('id') == '__skype_highlight_id'))
    {
       element=element.parentNode;
    }
  left = element.offsetLeft;
    top = element.offsetTop;
    for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
    {
       left += parent.offsetLeft;
      top += parent.offsetTop;
    if (parent.tagName.toLowerCase() == 'div')
        {
          left -= parent.scrollLeft;
        top -= parent.scrollTop;
        }
    }


    return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}catch(e){ }
}

function getDivScroll(element)
{
try{
  var left = 0;
    var top = 0;
     while(!(element.tagName.toLowerCase() == 'span' && element.getAttribute('id') == '__skype_highlight_id'))
    {
       element=element.parentNode;
    }

    for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
    {
    if (parent.tagName.toLowerCase() == 'div')
        {
          left -= parent.scrollLeft;
        top -= parent.scrollTop;
        }
    }


    return {left: left, top: top};
}catch(e){ }
}
