var skype_injection_path = 'chrome://skype_ff_toolbar_win/content/';
var skype_tool = null;

/*window.addEventListener("click",skype_click_handler,true);
function skype_click_handler(event)
{
 if (skype_tool)
 skype_tool.closemenu();
 //HideSkypeMenuFull();
} */

//CALL BUTTON
var SkypeActiveCallButtonPart = 0;
function SkypeSetCallButtonPart(obj)
{
 if (obj.getAttribute('id') == '__skype_highlight_id_left')
 {
 SkypeActiveCallButtonPart = 0;
 }
 else if (obj.getAttribute('id') == '__skype_highlight_id_right')
 {
 SkypeActiveCallButtonPart = 1;
 }
}

function SkypeSetCallButton(obj, hl, isInternational, isFax)
{
 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 (SkypeActiveCallButtonPart == 0) //left
 {
 cb_part_r.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_mouseonflag_r"+(isFax?"_fax":"")+".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"+(isFax?"_fax":"")+".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"+(isFax?"_fax":"")+".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"+(isFax?"_fax":"")+".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 skype_cb_l = '';
var skype_cb_m = '';
var skype_cb_r = '';

function SkypeSetCallButtonPressed(obj, pr, isInternational, isFax)
{
 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)
 {
 skype_cb_l = cb_part_l.style.backgroundImage;//getAttribute('src');
 skype_cb_m = cb_part_mr.style.backgroundImage;
 skype_cb_r = cb_part_r.style.backgroundImage;//getAttribute('src');

 if (isInternational == "0")
 {
 if (SkypeActiveCallButtonPart == 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"+(isFax?"_fax":"")+".gif');
 cb_part_r.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_down_r"+(isFax?"_fax":"")+".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"+(isFax?"_fax":"")+".gif');
 cb_part_r.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_down_r"+(isFax?"_fax":"")+".gif')";
 }
 }
 else
 {
 //obj.firstChild.firstChild.setAttribute('src', skype_cb_l);
 cb_part_l.style.backgroundImage = skype_cb_l;
 if (cb_part_l.isSameNode(cb_part_ml) != true)
 cb_part_ml.style.backgroundImage = skype_cb_m;
 cb_part_mr.style.backgroundImage = skype_cb_m;
 //obj.lastChild.lastChild.setAttribute('src', skype_cb_r);
 cb_part_r.style.backgroundImage = skype_cb_r;
 }
}

//COMMANDS
function SkypeToolBarInit(tb)
{
 skype_tool = tb;
}

function doRunCMDSkype(event, link, id, name)
{
 if (skype_tool)
 {
 if (link == 'chdial')
 {
 var obj=event.originalTarget;
 if (!obj)
 obj=event;

 /*var brd=SkypeGetBounds(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;
 */

 SkypeFlagColor='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 runCMDSkype(link)
{
 HideSkypeFull();
 doRunCMDSkype(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 SkypeFlagColor = 'rgb(184, 203, 255)';
function doSkypeFlag(obj, brd)
{
 SkypeFlagColor = brd;
}

//MENU
var skype_curid = 0,skype_active = false,skype_showseed = 0,skype_ctm = 0,skype_cur_name = '';
var skype_curbutton = null;
function SkypeCheckCallButton(obj)
{
 var res = false;
 if (skype_curbutton && skype_curbutton.isSameNode(obj) == true)
 res = true;

 skype_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=SkypeGetBounds(obj);
 //var pcx=brd.left, pcy=brd.top+16;/*brd.height;* / //alert(pcx+'--'+pcy);

 scrolls=SkypeGetDivScroll(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 SkypeSetBgColor(obj, color)
{
 try {
 obj.lastChild.style.backgroundColor = color;
 } catch(e) {
 }
}

//UTIL
function SkypeGetBounds(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 SkypeGetDivScroll(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) {
 }
}