var skype_injection_path = &prime;chrome://skype_ff_toolbar_win/content/&prime;;
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(&prime;id&prime;) == &prime;__skype_highlight_id_left&prime;)
	{
		SkypeActiveCallButtonPart = 0;
	}
	else if (obj.getAttribute(&prime;id&prime;) == &prime;__skype_highlight_id_right&prime;)
	{
		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(&prime;rtl&prime;) == &prime;false&prime;)
	{
		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(&prime;chrome://skype_ff_toolbar_win/content/cb_mouseover_l.gif&prime;)";
		if (cb_part_l.isSameNode(cb_part_ml) != true)
			cb_part_ml.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_mouseover_m.gif&prime;)";
		cb_part_mr.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_mouseover_m.gif&prime;)";


		if (isInternational == "0")
		{
			if (SkypeActiveCallButtonPart == 0)    //left
			{
				cb_part_r.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_mouseonflag_r"+(isFax?"_fax":"")+".gif&prime;)";
				//shadow
				if (cb_flag)
				{
					cb_flag.style.top = &prime;1px&prime;;
					cb_flag.style.left = &prime;1px&prime;;
					/*top right bottom left*/
					cb_flag.style.padding = &prime;1px 0px 0px 1px&prime;;//&prime;2px 0px 0px 0px&prime;;
				}
			}
			else                            //right
			{
				cb_part_r.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_mouseover_r"+(isFax?"_fax":"")+".gif&prime;)";
				//flag
				if (cb_flag)
				{
					cb_flag.style.top = &prime;0px&prime;;
					cb_flag.style.left = &prime;0px&prime;;
					cb_flag.style.padding = &prime;0px 1px 1px 0px&prime;;//&prime;0px 1px 1px 0px&prime;;
					cb_flag.style.margin = &prime;0px 0px 2px 0px;&prime;;
				}
			}
		}
		else
		{
			cb_part_r.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_mouseover_r"+(isFax?"_fax":"")+".gif&prime;)";
			//flag
			if (cb_flag)
			{
				cb_flag.style.top = &prime;0px&prime;;
				cb_flag.style.left = &prime;0px&prime;;
				cb_flag.style.padding = &prime;0px 1px 1px 0px&prime;;
				cb_flag.style.margin = &prime;0px 0px 2px 0px;&prime;;
			}
		}
	}
	else
	{
		cb_part_l.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_normal_l.gif&prime;)";
		if (cb_part_l.isSameNode(cb_part_ml) != true)
			cb_part_ml.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_normal_m.gif&prime;)";
		cb_part_mr.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_normal_m.gif&prime;)";
		cb_part_r.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_normal_r"+(isFax?"_fax":"")+".gif&prime;)";

		//flag
		if (cb_flag)
		{
			cb_flag.style.top = &prime;0px&prime;;
			cb_flag.left = &prime;0px&prime;;
			cb_flag.style.padding = &prime;0px 1px 1px 0px&prime;;
			cb_flag.style.margin = &prime;0px 0px 2px 0px;&prime;;
		}
	}
}
var skype_cb_l = &prime;&prime;;
var skype_cb_m = &prime;&prime;;
var skype_cb_r = &prime;&prime;;

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(&prime;rtl&prime;) == &prime;false&prime;)
	{
		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(&prime;src&prime;);
		skype_cb_m = cb_part_mr.style.backgroundImage;
		skype_cb_r = cb_part_r.style.backgroundImage;//getAttribute(&prime;src&prime;);

		if (isInternational == "0")
		{
			if (SkypeActiveCallButtonPart == 0)    //left
			{
				//obj.firstChild.firstChild.setAttribute(&prime;src&prime;, &prime;chrome://skype_ff_toolbar_win/content/cb_down_l.gif&prime;);
				cb_part_l.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_down_l.gif&prime;)";
				if (cb_part_l.isSameNode(cb_part_ml) != true)
					cb_part_ml.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_down_m.gif&prime;)";
			}
			else                            //right
			{
				//obj.firstChild.firstChild.setAttribute(&prime;src&prime;, &prime;chrome://skype_ff_toolbar_win/content/cb_down_l.gif&prime;);
				cb_part_l.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_down_l.gif&prime;)";
				if (cb_part_l.isSameNode(cb_part_ml) != true)
					cb_part_ml.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_down_m.gif&prime;)";
				cb_part_mr.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_down_m.gif&prime;)";
				//obj.lastChild.lastChild.setAttribute(&prime;src&prime;, &prime;chrome://skype_ff_toolbar_win/content/cb_down_r"+(isFax?"_fax":"")+".gif&prime;);
				cb_part_r.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_down_r"+(isFax?"_fax":"")+".gif&prime;)";
			}
		}
		else
		{
			//obj.firstChild.firstChild.setAttribute(&prime;src&prime;, &prime;chrome://skype_ff_toolbar_win/content/cb_down_l.gif&prime;);
			cb_part_l.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_down_l.gif&prime;)";
			if (cb_part_l.isSameNode(cb_part_ml) != true)
				cb_part_ml.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_down_m.gif&prime;)";
			cb_part_mr.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_down_m.gif&prime;)";
				//obj.lastChild.lastChild.setAttribute(&prime;src&prime;, &prime;chrome://skype_ff_toolbar_win/content/cb_down_r"+(isFax?"_fax":"")+".gif&prime;);
			cb_part_r.style.backgroundImage = "url(&prime;chrome://skype_ff_toolbar_win/content/cb_down_r"+(isFax?"_fax":"")+".gif&prime;)";
		}
	}
	else
	{
		//obj.firstChild.firstChild.setAttribute(&prime;src&prime;, 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(&prime;src&prime;, 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 == &prime;chdial&prime;)
		{
			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=&prime;rgb(184, 203, 255)&prime;;
			skype_tool.chprefix(id, document, obj, screenY);
		}
		else if (link == &prime;copy&prime;)
			skype_tool.copy_num(id, document);
		else if (link == &prime;sms&prime;)
			skype_tool.sms(id);
		else if (link == &prime;add&prime;)
			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(&prime;skype_dc&prime;).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(&prime;skype_dc&prime;);
	menu.firstChild.nodeValue = title;
	menu.style.visibility = "visible";

	menu.style.left = cX + &prime;px&prime;;
	menu.style.top = cY + &prime;px&prime;;

}
var SkypeFlagColor = &prime;rgb(184, 203, 255)&prime;;
function doSkypeFlag(obj, brd)
{
	SkypeFlagColor = brd;
}

//MENU
var skype_curid = 0,skype_active = false,skype_showseed = 0,skype_ctm = 0,skype_cur_name = &prime;&prime;;
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(&prime;HideSkypeMenu skype_active=&prime;+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(&prime;HideSkypeMenuFull skype_active=&prime;+skype_active);
	/*   skype_active=false;
	document.getElementById(&prime;skype_menu&prime;).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(&prime;ShowSkypeMenu skype_curid=&prime;+skype_curid+&prime;   callto=&prime;+callto+&prime;  id=&prime;+id);
		if(document.getElementById(&prime;skype_menu&prime;).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+&prime;--&prime;+pcy);
  
	  scrolls=SkypeGetDivScroll(obj);
  
		var pcx = x+scrolls.left, pcy = y+scrolls.top;
  
		skype_ctm=setTimeout(&prime;DoShowSkypeMenu(\&prime;&prime;+call_msg+&prime;\&prime;,&prime;+skype_showseed+&prime;,"&prime;+callto+&prime;",&prime;+pcx+&prime;,&prime;+pcy+&prime;,&prime;+isMobile+&prime;,"&prime;+name+&prime;")&prime;,0);*/
	} catch(e) {
	}
}

function DoShowSkypeMenu(call_msg, seed, callto, pcx, pcy, isMobile, name)
{
	try {                                                        //skype_tool.sd(&prime;DoShowSkypeMenu seed=&prime;+seed+&prime;   skype_showseed=&prime;+skype_showseed);
		/*  	if(seed!=skype_showseed)
		  return;
		skype_showseed=0;
		skype_curid=callto;
	  skype_cur_name=name;
		var menu=document.getElementById(&prime;skype_menu&prime;);
  
		var my=pcy, mx=pcx;
  
	  var menubox=document.getBoxObjectFor(menu);
	  //var docelem = document.documentElement;
									//alert(menubox.height);
									//alert(&prime;doc h=&prime;+document.height + &prime; y=&prime;+my+&prime; menu h=&prime;+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+&prime;px&prime;;
		menu.style.top=my+&prime;px&prime;;
  
	  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() == &prime;span&prime; && element.getAttribute(&prime;id&prime;) == &prime;__skype_highlight_id&prime;))
		{
			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() == &prime;div&prime;)
			{
				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() == &prime;span&prime; && element.getAttribute(&prime;id&prime;) == &prime;__skype_highlight_id&prime;))
		{
			element = element.parentNode;
		}

		for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
		{
			if (parent.tagName.toLowerCase() == &prime;div&prime;)
			{
				left -= parent.scrollLeft;
				top -= parent.scrollTop;
			}
		}


		return {left: left, top: top};
	} catch(e) {
	}
}