Subversion Repositories wimsdev

Rev

Blame | Last modification | View Log | RSS feed

  1. var skype_injection_path = 'chrome://skype_ff_toolbar_win/content/';
  2. var skype_tool = null;
  3.  
  4. /*window.addEventListener("click",skype_click_handler,true);
  5. function skype_click_handler(event)
  6. {
  7.         if (skype_tool)
  8.                 skype_tool.closemenu();
  9.         //HideSkypeMenuFull();
  10. } */
  11.  
  12. //CALL BUTTON
  13. var SkypeActiveCallButtonPart = 0;
  14. function SkypeSetCallButtonPart(obj)
  15. {
  16.         if (obj.getAttribute('id') == '__skype_highlight_id_left')
  17.         {
  18.                 SkypeActiveCallButtonPart = 0;
  19.         }
  20.         else if (obj.getAttribute('id') == '__skype_highlight_id_right')
  21.         {
  22.                 SkypeActiveCallButtonPart = 1;
  23.         }
  24. }
  25.  
  26. function SkypeSetCallButton(obj, hl, isInternational)
  27. {
  28.         var cb_part_l = null;
  29.         var cb_part_ml = null;
  30.         var cb_part_mr = null;
  31.         var cb_part_r = null;
  32.         if (obj.getAttribute('rtl') == 'false')
  33.         {
  34.                 cb_part_l = obj.firstChild.firstChild;
  35.                 cb_part_ml = obj.firstChild.lastChild;
  36.                 cb_part_mr = obj.lastChild.firstChild;
  37.                 cb_part_r = obj.lastChild.lastChild;
  38.  
  39.                 cb_flag = obj.firstChild.lastChild.firstChild;
  40.                 if (cb_flag && cb_flag.isSameNode(obj.firstChild.firstChild.firstChild) == true)
  41.                         cb_flag = null;
  42.         }
  43.         else
  44.         {
  45.                 cb_part_l = obj.lastChild.lastChild;
  46.                 cb_part_ml = obj.lastChild.firstChild;
  47.                 cb_part_mr = obj.firstChild.lastChild;
  48.                 cb_part_r = obj.firstChild.firstChild;
  49.  
  50.                 cb_flag = obj.lastChild.firstChild.lastChild;
  51.                 if (cb_flag && cb_flag.isSameNode(obj.lastChild.lastChild.lastChild) == true)
  52.                         cb_flag = null;
  53.         }
  54.  
  55.         if (hl == 1)
  56.         {
  57.                 cb_part_l.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_mouseover_l.gif')";
  58.                 if (cb_part_l.isSameNode(cb_part_ml) != true)
  59.                         cb_part_ml.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_mouseover_m.gif')";
  60.                 cb_part_mr.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_mouseover_m.gif')";
  61.  
  62.  
  63.                 if (isInternational == "0")
  64.                 {
  65.                         if (SkypeActiveCallButtonPart == 0)    //left
  66.                         {
  67.                                 cb_part_r.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_mouseonflag_r.gif')";
  68.                                 //shadow
  69.                                 if (cb_flag)
  70.                                 {
  71.                                         cb_flag.style.top = '1px';
  72.                                         cb_flag.style.left = '1px';
  73.                                         /*top right bottom left*/
  74.                                         cb_flag.style.padding = '1px 0px 0px 1px';//'2px 0px 0px 0px';
  75.                                 }
  76.                         }
  77.                         else                            //right
  78.                         {
  79.                                 cb_part_r.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_mouseover_r.gif')";
  80.                                 //flag
  81.                                 if (cb_flag)
  82.                                 {
  83.                                         cb_flag.style.top = '0px';
  84.                                         cb_flag.style.left = '0px';
  85.                                         cb_flag.style.padding = '0px 1px 1px 0px';//'0px 1px 1px 0px';
  86.                                         cb_flag.style.margin = '0px 0px 2px 0px;';
  87.                                 }
  88.                         }
  89.                 }
  90.                 else
  91.                 {
  92.                         cb_part_r.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_mouseover_r.gif')";
  93.                         //flag
  94.                         if (cb_flag)
  95.                         {
  96.                                 cb_flag.style.top = '0px';
  97.                                 cb_flag.style.left = '0px';
  98.                                 cb_flag.style.padding = '0px 1px 1px 0px';
  99.                                 cb_flag.style.margin = '0px 0px 2px 0px;';
  100.                         }
  101.                 }
  102.         }
  103.         else
  104.         {
  105.                 cb_part_l.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_normal_l.gif')";
  106.                 if (cb_part_l.isSameNode(cb_part_ml) != true)
  107.                         cb_part_ml.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_normal_m.gif')";
  108.                 cb_part_mr.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_normal_m.gif')";
  109.                 cb_part_r.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_normal_r.gif')";
  110.  
  111.                 //flag
  112.                 if (cb_flag)
  113.                 {
  114.                         cb_flag.style.top = '0px';
  115.                         cb_flag.left = '0px';
  116.                         cb_flag.style.padding = '0px 1px 1px 0px';
  117.                         cb_flag.style.margin = '0px 0px 2px 0px;';
  118.                 }
  119.         }
  120. }
  121. var skype_cb_l = '';
  122. var skype_cb_m = '';
  123. var skype_cb_r = '';
  124.  
  125. function SkypeSetCallButtonPressed(obj, pr, isInternational)
  126. {
  127.         var cb_part_l = null;
  128.         var cb_part_ml = null;
  129.         var cb_part_mr = null;
  130.         var cb_part_r = null;
  131.         if (obj.getAttribute('rtl') == 'false')
  132.         {
  133.                 cb_part_l = obj.firstChild.firstChild;
  134.                 cb_part_ml = obj.firstChild.lastChild;
  135.                 cb_part_mr = obj.lastChild.firstChild;
  136.                 cb_part_r = obj.lastChild.lastChild;
  137.  
  138.                 cb_flag = obj.firstChild.lastChild.firstChild;
  139.                 if (cb_flag && cb_flag.isSameNode(obj.firstChild.firstChild.firstChild) == true)
  140.                         cb_flag = null;
  141.         }
  142.         else
  143.         {
  144.                 cb_part_l = obj.lastChild.lastChild;
  145.                 cb_part_ml = obj.lastChild.firstChild;
  146.                 cb_part_mr = obj.firstChild.lastChild;
  147.                 cb_part_r = obj.firstChild.firstChild;
  148.  
  149.                 cb_flag = obj.lastChild.firstChild.lastChild;
  150.                 if (cb_flag && cb_flag.isSameNode(obj.lastChild.lastChild.lastChild) == true)
  151.                         cb_flag = null;
  152.         }
  153.         if (pr == 1)
  154.         {
  155.                 skype_cb_l = cb_part_l.style.backgroundImage;//getAttribute('src');
  156.                 skype_cb_m = cb_part_mr.style.backgroundImage;
  157.                 skype_cb_r = cb_part_r.style.backgroundImage;//getAttribute('src');
  158.  
  159.                 if (isInternational == "0")
  160.                 {
  161.                         if (SkypeActiveCallButtonPart == 0)    //left
  162.                         {
  163.                                 //obj.firstChild.firstChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_l.gif');
  164.                                 cb_part_l.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_down_l.gif')";
  165.                                 if (cb_part_l.isSameNode(cb_part_ml) != true)
  166.                                         cb_part_ml.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
  167.                         }
  168.                         else                            //right
  169.                         {
  170.                                 //obj.firstChild.firstChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_l.gif');
  171.                                 cb_part_l.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_down_l.gif')";
  172.                                 if (cb_part_l.isSameNode(cb_part_ml) != true)
  173.                                         cb_part_ml.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
  174.                                 cb_part_mr.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
  175.                                 //obj.lastChild.lastChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_r.gif');
  176.                                 cb_part_r.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_down_r.gif')";
  177.                         }
  178.                 }
  179.                 else
  180.                 {
  181.                         //obj.firstChild.firstChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_l.gif');
  182.                         cb_part_l.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_down_l.gif')";
  183.                         if (cb_part_l.isSameNode(cb_part_ml) != true)
  184.                                 cb_part_ml.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
  185.                         cb_part_mr.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
  186.                                 //obj.lastChild.lastChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_r.gif');
  187.                         cb_part_r.style.backgroundImage = "url('chrome://skype_ff_toolbar_win/content/cb_down_r.gif')";
  188.                 }
  189.         }
  190.         else
  191.         {
  192.                 //obj.firstChild.firstChild.setAttribute('src', skype_cb_l);
  193.                 cb_part_l.style.backgroundImage = skype_cb_l;
  194.                 if (cb_part_l.isSameNode(cb_part_ml) != true)
  195.                         cb_part_ml.style.backgroundImage = skype_cb_m;
  196.                 cb_part_mr.style.backgroundImage = skype_cb_m;
  197.                 //obj.lastChild.lastChild.setAttribute('src', skype_cb_r);
  198.                 cb_part_r.style.backgroundImage = skype_cb_r;
  199.         }
  200. }
  201.  
  202. //COMMANDS
  203. function SkypeToolBarInit(tb)
  204. {
  205.         skype_tool = tb;
  206. }
  207.  
  208. function doRunCMDSkype(event, link, id, name)
  209. {
  210.         if (skype_tool)
  211.         {
  212.                 if (link == 'chdial')
  213.                 {
  214.                         var obj=event.originalTarget;
  215.                         if (!obj)
  216.                                 obj=event;
  217.  
  218.                         /*var brd=SkypeGetBounds(obj);
  219.                    var docelem = document.documentElement;
  220.                    if ((docelem.scrollTop == 0 && document.body.scrollTop != 0) || (docelem.scrollLeft == 0 && document.body.scrollLeft != 0))
  221.                            docelem=document.body;
  222.    
  223.                    scrollY=docelem.scrollTop;
  224.                    scrollX=docelem.scrollLeft;
  225.    
  226.                    var my=brd.top+16, mx=brd.left;/*brd.height*/
  227.  
  228.                         //var oDoc = obj.ownerDocument;
  229.  
  230.                         /*var obj2 = document.getBoxObjectFor(element);
  231.    
  232.                    var html_box = new XPCNativeWrapper(obj2).wrappedJSObject;
  233.                    if (!html_box)
  234.                          html_box = obj2;
  235.    
  236.                    var screenX = html_box.screenX;
  237.                    var screenY = html_box.screenY;
  238.                            */
  239.  
  240.                         SkypeFlagColor='rgb(184, 203, 255)';
  241.                         skype_tool.chprefix(id, document, obj, screenY);
  242.                 }
  243.                 else if (link == 'copy')
  244.                         skype_tool.copy_num(id, document);
  245.                 else if (link == 'sms')
  246.                         skype_tool.sms(id);
  247.                 else if (link == 'add')
  248.                         skype_tool.add(id, name);
  249.                 else
  250.                         skype_tool.call(id);
  251.         }
  252. }
  253.  
  254. function runCMDSkype(link)
  255. {
  256.         HideSkypeFull();
  257.         doRunCMDSkype(null, link, skype_curid, skype_cur_name);
  258. }
  259.  
  260. //FLAG TOOLTIP
  261. function HideSkypeFull()
  262. {
  263.         //   skype_active=false;
  264.         document.getElementById('skype_dc').style.visibility = "hidden";
  265. }
  266.  
  267. function ShowSkype(event, title)
  268. {
  269.         //  skype_active=true;
  270.         DoShowSkype(event.pageX, event.pageY + 20, title);
  271. }
  272.  
  273. function DoShowSkype(cX, cY, title)
  274. {
  275.         var menu = document.getElementById('skype_dc');
  276.         menu.firstChild.nodeValue = title;
  277.         menu.style.visibility = "visible";
  278.  
  279.         menu.style.left = cX + 'px';
  280.         menu.style.top = cY + 'px';
  281.  
  282. }
  283. var SkypeFlagColor = 'rgb(184, 203, 255)';
  284. function doSkypeFlag(obj, brd)
  285. {
  286.         SkypeFlagColor = brd;
  287. }
  288.  
  289. //MENU
  290. var skype_curid = 0,skype_active = false,skype_showseed = 0,skype_ctm = 0,skype_cur_name = '';
  291. var skype_curbutton = null;
  292. function SkypeCheckCallButton(obj)
  293. {
  294.         var res = false;
  295.         if (skype_curbutton && skype_curbutton.isSameNode(obj) == true)
  296.                 res = true;
  297.  
  298.         skype_curbutton = obj;
  299.         return res;
  300. }
  301.  
  302. function HideSkypeMenu()
  303. {                       //skype_tool.sd('HideSkypeMenu skype_active='+skype_active);
  304.         if (!skype_active)
  305.                 HideSkypeMenuFull();
  306.         else
  307.                 setTimeout("HideSkypeMenu()", 1000);
  308. }
  309.  
  310. function HideSkypeMenu2(event)
  311. {
  312.         skype_showseed = 0;
  313.         if (!skype_active)
  314.                 HideSkypeMenuFull();
  315.         else
  316.         {
  317.                 skype_active = false;
  318.                 setTimeout("HideSkypeMenu()", 1000);
  319.         }
  320. }
  321.  
  322. function HideSkypeMenuFull()
  323. {                                 //skype_tool.sd('HideSkypeMenuFull skype_active='+skype_active);
  324.         /*   skype_active=false;
  325.         document.getElementById('skype_menu').style.visibility="hidden";*/
  326. }
  327.  
  328. function CheckSkype()
  329. {
  330.         skype_active = true;
  331. }
  332.  
  333. function ShowSkypeMenu(event, call_msg, id, callto, isMobile, name, x, y)
  334. {
  335.         try {
  336.                 /*      skype_active=true;                                                      //skype_tool.sd('ShowSkypeMenu skype_curid='+skype_curid+'   callto='+callto+'  id='+id);
  337.                 if(document.getElementById('skype_menu').style.visibility!="hidden" && skype_curid==callto)//id
  338.                   return;
  339.                 skype_showseed=Math.random();
  340.                 clearTimeout(skype_ctm);
  341.           var obj=event.originalTarget;
  342.           if (!obj)
  343.                   obj=event;
  344.   //    var brd=SkypeGetBounds(obj);
  345.                 //var pcx=brd.left, pcy=brd.top+16;/*brd.height;* /   //alert(pcx+'--'+pcy);
  346.  
  347.           scrolls=SkypeGetDivScroll(obj);
  348.  
  349.                 var pcx = x+scrolls.left, pcy = y+scrolls.top;
  350.  
  351.                 skype_ctm=setTimeout('DoShowSkypeMenu(\''+call_msg+'\','+skype_showseed+',"'+callto+'",'+pcx+','+pcy+','+isMobile+',"'+name+'")',0);*/
  352.         } catch(e) {
  353.         }
  354. }
  355.  
  356. function DoShowSkypeMenu(call_msg, seed, callto, pcx, pcy, isMobile, name)
  357. {
  358.         try {                                                        //skype_tool.sd('DoShowSkypeMenu seed='+seed+'   skype_showseed='+skype_showseed);
  359.                 /*      if(seed!=skype_showseed)
  360.                   return;
  361.                 skype_showseed=0;
  362.                 skype_curid=callto;
  363.           skype_cur_name=name;
  364.                 var menu=document.getElementById('skype_menu');
  365.  
  366.                 var my=pcy, mx=pcx;
  367.  
  368.           var menubox=document.getBoxObjectFor(menu);
  369.           //var docelem = document.documentElement;
  370.                                                                         //alert(menubox.height);
  371.                                                                         //alert('doc h='+document.height + ' y='+my+' menu h='+menubox.height);
  372.           var docH=document.height;
  373.           if (docH < document.documentElement.clientHeight) docH=document.documentElement.clientHeight;
  374.           if (docH < document.documentElement.scrollHeight) docH=document.documentElement.scrollHeight;
  375.           if (docH < document.body.clientHeight) docH=document.body.clientHeight;
  376.           if (docH < document.body.scrollHeight) docH=document.body.scrollHeight;
  377.           if ((my + menubox.height) > docH)
  378.                   my=my - 16 - menubox.height;
  379.           if (my < 0) my=0;
  380.   //    if (document.height != 0 && (my + menubox.height) > document.height && (my + menubox.height) > document.documentElement.scrollHeight)//docelem.clientHeight)
  381.                   //my=document.height - menubox.height;
  382.  
  383.           var docW=document.width;
  384.           if (docW < document.documentElement.clientWidth) docW=document.documentElement.clientWidth;
  385.           if (docW < document.documentElement.scrollWidth) docW=document.documentElement.scrollWidth;
  386.           if (docW < document.body.clientWidth) docW=document.body.clientWidth;
  387.           if (docW < document.body.scrollWidth) docW=document.body.scrollWidth;
  388.           if ((mx + menubox.width) > docW)
  389.                   mx=document.width - menubox.width;
  390.           if (mx < 0) mx=0;
  391.   //    if (document.width != 0 && (mx + menubox.width) > document.width && (mx + menubox.width) > document.documentElement.scrollWidth)//docelem.clientWidth)
  392.  
  393.                 menu.style.left=mx+'px';
  394.                 menu.style.top=my+'px';
  395.  
  396.           skype_tool.doFixMenu(menu, isMobile, document);
  397.  
  398.           menu.style.visibility="visible";  */
  399.         } catch(e) {
  400.         }
  401. }
  402.  
  403. function SkypeSetBgColor(obj, color)
  404. {
  405.         try {
  406.                 obj.lastChild.style.backgroundColor = color;
  407.         } catch(e) {
  408.         }
  409. }
  410.  
  411. //UTIL
  412. function SkypeGetBounds(element)
  413. {
  414.         try {
  415.                 var left = element.left;
  416.                 var top = element.top;
  417.                 while (!(element.tagName.toLowerCase() == 'span' && element.getAttribute('id') == '__skype_highlight_id'))
  418.                 {
  419.                         element = element.parentNode;
  420.                 }
  421.                 left = element.offsetLeft;
  422.                 top = element.offsetTop;
  423.                 for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
  424.                 {
  425.                         left += parent.offsetLeft;
  426.                         top += parent.offsetTop;
  427.                         if (parent.tagName.toLowerCase() == 'div')
  428.                         {
  429.                                 left -= parent.scrollLeft;
  430.                                 top -= parent.scrollTop;
  431.                         }
  432.                 }
  433.  
  434.  
  435.                 return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
  436.         } catch(e) {
  437.         }
  438. }
  439.  
  440. function SkypeGetDivScroll(element)
  441. {
  442.         try {
  443.                 var left = 0;
  444.                 var top = 0;
  445.                 while (!(element.tagName.toLowerCase() == 'span' && element.getAttribute('id') == '__skype_highlight_id'))
  446.                 {
  447.                         element = element.parentNode;
  448.                 }
  449.  
  450.                 for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
  451.                 {
  452.                         if (parent.tagName.toLowerCase() == 'div')
  453.                         {
  454.                                 left -= parent.scrollLeft;
  455.                                 top -= parent.scrollTop;
  456.                         }
  457.                 }
  458.  
  459.  
  460.                 return {left: left, top: top};
  461.         } catch(e) {
  462.         }
  463. }