home *** CD-ROM | disk | FTP | other *** search
/ Mundo do CD-ROM 118 / cdrom118.iso / internet / webaroo / WebarooSetup.exe / Webaroo.msi / _408A41632F6F4D5D904B2EADA61EFFFE < prev    next >
Encoding:
Text File  |  2006-03-07  |  25.6 KB  |  955 lines

  1. <!--
  2.  
  3. function ylib_Browser()
  4. {
  5.     d=document;
  6.     this.agt=navigator.userAgent.toLowerCase();
  7.     this.major = parseInt(navigator.appVersion);
  8.     this.dom=(d.getElementById)?1:0;
  9.     this.ns=(d.layers);
  10.     this.ns4up=(this.ns && this.major >=4);
  11.     this.ns6=(this.dom&&navigator.appName=="Netscape");
  12.     this.op=(window.opera? 1:0);
  13.     this.ie=(d.all);
  14.     this.ie4=(d.all&&!this.dom)?1:0;
  15.     this.ie4up=(this.ie && this.major >= 4);
  16.     this.ie5=(d.all&&this.dom);
  17.     this.win=((this.agt.indexOf("win")!=-1) || (this.agt.indexOf("16bit")!=-1));
  18.     this.mac=(this.agt.indexOf("mac")!=-1);
  19. };
  20.  
  21. var oBw = new ylib_Browser();
  22.  
  23. function ylib_getObj(id,d)
  24. {
  25.     var i,x;  if(!d) d=document; 
  26.     if(!(x=d[id])&&d.all) x=d.all[id]; 
  27.     for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][id];
  28.     for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=ylib_getObj(id,d.layers[i].document);
  29.     if(!x && document.getElementById) x=document.getElementById(id); 
  30.     return x;
  31. };
  32.  
  33. function ylib_getH(o) { return (oBw.ns)?((o.height)?o.height:o.clip.height):((oBw.op&&typeof o.style.pixelHeight!='undefined')?o.style.pixelHeight:o.offsetHeight); };
  34. function ylib_setH(o,h) { if(o.clip) o.clip.height=h; else if(oBw.op && typeof o.style.pixelHeight != 'undefined') o.style.pixelHeight=h; else o.style.height=h; };
  35. function ylib_getW(o) { return (oBw.ns)?((o.width)?o.width:o.clip.width):((oBw.op&&typeof o.style.pixelWidth!='undefined')?w=o.style.pixelWidth:o.offsetWidth); };
  36. function ylib_setW(o,w) { if(o.clip) o.clip.width=w; else if(oBw.op && typeof o.style.pixelWidth != 'undefined') o.style.pixelWidth=w; else o.style.width=w; };
  37. function ylib_getX(o) { return (oBw.ns)?o.left:((o.style.pixelLeft)?o.style.pixelLeft:o.offsetLeft); };
  38. function ylib_setX(o,x) { if(oBw.ns) o.left=x; else if(typeof o.style.pixelLeft != 'undefined') o.style.pixelLeft=x; else o.style.left=x; };
  39. function ylib_getY(o) { return (oBw.ns)?o.top:((o.style.pixelTop)?o.style.pixelTop:o.offsetTop); };
  40. function ylib_setY(o,y) { if(oBw.ns) o.top=y; else if(typeof o.style.pixelTop != 'undefined') o.style.pixelTop=y; else o.style.top=y; };
  41. function ylib_getPageX(o) { var x=0; if(oBw.ns) x=o.pageX; else { while(eval(o)) { x+=o.offsetLeft; o=o.offsetParent; } } return x; };
  42. function ylib_getPageY(o) { var y=0; if(oBw.ns) y=o.pageY; else { while(eval(o)) { y+=o.offsetTop; o=o.offsetParent; } } return y; };
  43. function ylib_getZ(o) { return (oBw.ns)?o.zIndex:o.style.zIndex; };
  44. function ylib_moveTo(o,x,y) { ylib_setX(o,x);ylib_setY(o,y); };
  45. function ylib_moveBy(o,x,y) { ylib_setX(o,ylib_getPageX(o)+x);ylib_setY(o,ylib_getPageY(o)+y); };
  46. function ylib_setZ(o,z) { if(oBw.ns)o.zIndex=z;else o.style.zIndex=z; };
  47. function ylib_show(o,disp) { (oBw.ns)? '':(!disp)? o.style.display="inline":o.style.display=disp; (oBw.ns)? o.visibility='show':o.style.visibility='visible'; };
  48. function ylib_hide(o,disp) { (oBw.ns)? '':(arguments.length!=2)? o.style.display="none":o.style.display=disp; (oBw.ns)? o.visibility='hide':o.style.visibility='hidden'; };
  49. function ylib_setStyle(o,s,v) { if(oBw.ie5||oBw.dom) eval("o.style."+s+" = '" + v +"'"); };
  50. function ylib_getStyle(o,s) { if(oBw.ie5||oBw.dom) return eval("o.style."+s); };
  51. function ylib_addEvt(o,e,f,c){ if(o.addEventListener)o.addEventListener(e,f,c);else if(o.attachEvent)o.attachEvent("on"+e,f);else eval("o.on"+e+"="+f) };
  52. function ylib_writeHTML(o,h) { if(oBw.ns){var doc=o.document;doc.write(h);doc.close();return false;} if(o.innerHTML)o.innerHTML=h; };
  53.  
  54. function ylib_insertHTML(o,h,w)
  55. {
  56.     if(oBw.op) return;
  57.     if(o.insertAdjacentHTML)
  58.     { 
  59.         o.insertAdjacentHTML(w,h);
  60.         return;
  61.     }
  62.     if(oBw.ns)
  63.     {
  64.         ylib_writeHTML(o,h);
  65.         return;
  66.     }
  67.     var r = o.ownerDocument.createRange();
  68.     r.setStartBefore(o);
  69.     var frag = r.createContextualFragment(h);
  70.     ylib_insertObj(o,w,frag);
  71. };
  72.  
  73. function ylib_insertObj(o,w,node)
  74. {
  75.     switch(w)
  76.     {
  77.         case 'beforeBegin':
  78.             o.parentNode.insertBefore(node,o);
  79.         break;
  80.  
  81.         case 'afterBegin':
  82.             o.insertBefore(node,o.firstChild);
  83.         break;
  84.  
  85.         case 'beforeEnd':
  86.             o.appendChild(node);
  87.         break;
  88.  
  89.         case 'afterEnd':
  90.             if (o.nextSibling) o.parentNode.insertBefore(node,o.nextSibling);
  91.             else o.parentNode.appendChild(node);
  92.         break;
  93.     }
  94. };
  95.  
  96. var YLIB_SHIFT_KEYCODE = 16;
  97. var YLIB_CTRL_KEYCODE = 17;
  98. var YLIB_ALT_KEYCODE = 18;
  99. var YLIB_SHIFT = "shift";
  100. var YLIB_CTRL = "ctrl";
  101. var YLIB_ALT = "alt";
  102.  
  103. ylib_keyevt.count=0;
  104.  
  105. function ylib_keyevt(elm)
  106. {
  107.     this.id = "keyevt"+ylib_keyevt.count++;
  108.     eval(this.id + "=this");
  109.     this.keys = new Array();
  110.     this.shift=0;
  111.     this.ctrl=0;
  112.     this.alt=0;
  113.     this.addKey = ylib_addKey;
  114.     this.keyevent = ylib_keyevent;
  115.     this.checkModKeys = ylib_checkModKeys;
  116. };
  117.  
  118. function ylib_addKey(cdom,cns4,a,m)
  119. {
  120.     if(oBw.ie||oBw.dom) this.keys[cdom] = [a,m];
  121.     else this.keys[cns4] = [a,m];
  122. };
  123.  
  124. var YLIB_COUNT=0;
  125.  
  126. function ylib_keyevent(evt)
  127. {
  128.     if(oBw.ie||oBw.op) evt=event;
  129.     var k = (oBw.ie||oBw.op||oBw.ns6)? evt.keyCode:evt.which;
  130.     this.checkModKeys(evt,k);
  131.     if(this.keys[k]==null) return false;
  132.     var m = this.keys[k][1];
  133.     if((this.shift && (m.indexOf(YLIB_SHIFT) != -1) || !this.shift && (m.indexOf(YLIB_SHIFT) == -1)) && (this.ctrl && (m.indexOf(YLIB_CTRL) != -1) || !this.ctrl && (m.indexOf(YLIB_CTRL) == -1)) && (this.alt && (m.indexOf("alt") != -1) || !this.alt && (m.indexOf("alt") == -1)))
  134.     {
  135.         var a = this.keys[k][0];
  136.         a = eval(a); 
  137.         if(typeof a == "function") a();
  138.     }
  139. };
  140.  
  141. function ylib_checkModKeys(e,k)
  142. {
  143.     if(oBw.dom)
  144.     { 
  145.         this.shift = e.shiftKey;
  146.         this.ctrl = e.ctrlKey;
  147.         this.alt = e.altKey;
  148.     }
  149.     else
  150.     {
  151.         // for opera
  152.         this.shift = (k==YLIB_SHIFT_KEYCODE) ? 1:0;
  153.         this.ctrl = (k==YLIB_CTRL_KEYCODE) ? 1:0;
  154.         this.alt = (k==YLIB_ALT_KEYCODE) ? 1:0;
  155.     }
  156. };
  157.  
  158. var oKey = new ylib_keyevt();
  159.  
  160. /* Buttons */
  161.  
  162. function ClickButton(p_sButtonId, p_sHiddenFieldId, p_oClickHandler)
  163. {
  164.     var oButton = document.getElementById(p_sButtonId);
  165.  
  166.     if(oButton && oButton.form)
  167.     {
  168.         var oHiddenField = document.getElementById(p_sHiddenFieldId);
  169.  
  170.         if(oHiddenField)
  171.         {
  172.             oButton.HiddenField = oHiddenField;
  173.             oButton.HiddenField.value = "";
  174.             oButton.onclick = function () {
  175.                 if(typeof p_oClickHandler != 'undefined' && p_oClickHandler) p_oClickHandler();
  176.                 this.HiddenField.value = this.value;
  177.                 this.form.submit();
  178.             };
  179.             
  180.             return oButton;
  181.         }
  182.         else return false;
  183.     }
  184.     else return false;
  185. };
  186.  
  187. function Menu_Click(p_oEvent)
  188. {
  189.     var oEvent = p_oEvent ? p_oEvent : window.event;
  190.     var oSender = p_oEvent ? oEvent.target : oEvent.srcElement;
  191.  
  192.     if(p_oEvent) oEvent.stopPropagation();
  193.     else oEvent.cancelBubble = true;
  194.     
  195.     this.Sender = oSender;
  196.     this.Event = oEvent;
  197.     
  198.     if(typeof this.ClickHandler != 'undefined') this.ClickHandler();
  199. };
  200.  
  201. function Menu_MouseOver(p_oEvent)
  202. {
  203.     var oEvent = p_oEvent ? p_oEvent : window.event;
  204.     var oSender = p_oEvent ? oEvent.target : oEvent.srcElement;
  205.     
  206.     if(oSender.tagName == 'LI') oSender.className = 'hover';
  207.     else if(oSender.tagName == 'A') oSender.parentNode.className = 'hover';
  208.     else return false;
  209. };
  210.  
  211. function Menu_MouseOut(p_oEvent)
  212. {
  213.     var oEvent = p_oEvent ? p_oEvent : window.event;
  214.     var oSender = p_oEvent ? oEvent.target : oEvent.srcElement;
  215.     
  216.     if(oSender.tagName == 'LI') oSender.className = '';
  217.     else if(oSender.tagName == 'A') oSender.parentNode.className = '';
  218.     else return false;    
  219. };
  220.  
  221. function Button_Click(p_oEvent)
  222. {
  223.     var oEvent = p_oEvent ? p_oEvent : window.event;
  224.     var oSender = p_oEvent ? oEvent.target : oEvent.srcElement;
  225.  
  226.     if(p_oEvent) oEvent.stopPropagation();
  227.     else oEvent.cancelBubble = true;
  228.  
  229.     this.Event = oEvent;
  230.     this.Sender = oSender;
  231.  
  232.     HideMenu();
  233.     this.Menu.Button = this;
  234.     g_oMenu = this.Menu;
  235.  
  236.     if(typeof this.ClickHandler != 'undefined') this.ClickHandler();
  237.     else g_oMenu.Show();
  238.     
  239.     document.onclick = Document_Click;
  240. };
  241.  
  242. function ButtonMenu(p_sMenuId, p_oClickHandler)
  243. {
  244.     var oMenu = document.getElementById(p_sMenuId);
  245.  
  246.     if(oMenu)
  247.     {
  248.         if(typeof p_oClickHandler != 'undefined') oMenu.ClickHandler = p_oClickHandler;
  249.             
  250.         oMenu.Show = function () { 
  251.  
  252.             if(document.all) this.style.width = this.offsetWidth+'px';
  253.  
  254.             var nTop = ylib_getPageY(this.Button) + this.Button.offsetHeight;
  255.             var nLeft = ylib_getPageX(this.Button);
  256.             
  257.             if(oBw.ie && oBw.mac)
  258.             {
  259.                 nTop -= 4;
  260.                 nLeft -= 6;    
  261.             }
  262.  
  263.             this.style.top = nTop+'px';
  264.             this.style.left = nLeft+'px';
  265.             this.style.visibility = 'visible'; 
  266.  
  267.         };
  268.             
  269.         oMenu.onclick = Menu_Click;
  270.         
  271.         if(document.all)
  272.         {
  273.             oMenu.onmouseover = Menu_MouseOver;
  274.             oMenu.onmouseout = Menu_MouseOut;
  275.         }
  276.  
  277.         return oMenu;
  278.     }
  279.     else return false;
  280. };
  281.  
  282. function Button(p_sButtonId)
  283. {
  284.     var oButton = document.getElementById(p_sButtonId);
  285.     
  286.     if(oButton)
  287.     {
  288.         oButton.onclick = Button_Click;
  289.         return oButton;
  290.     }
  291.     else return false;
  292. };
  293.  
  294. function MenuButton()
  295. {
  296.     var nArguments = arguments.length;
  297.     
  298.     function __MenuButton_TwoArguments(p_sButtonId, p_sMenuId)
  299.     {
  300.         var oButton = new Button(p_sButtonId);
  301.     
  302.         if(oButton)
  303.         {
  304.             oButton.Menu = new ButtonMenu(p_sMenuId);
  305.             return oButton;
  306.         }
  307.         else return false;    
  308.     };
  309.     
  310.     function __MenuButton_ThreeArguments(p_sButtonId, p_sMenuId, p_oMenuClickHandler)
  311.     {
  312.         var oButton = new Button(p_sButtonId);
  313.             
  314.         if(oButton)
  315.         {
  316.             oButton.Menu = new ButtonMenu(p_sMenuId, p_oMenuClickHandler);
  317.             return oButton;
  318.         }
  319.         else return false;
  320.     };
  321.     
  322.     function __MenuButton_FourArguments(p_sButtonId, p_oButtonClickHandler, p_sMenuId, p_oMenuClickHandler)
  323.     {
  324.         var oButton = new Button(p_sButtonId);
  325.             
  326.         if(oButton && typeof p_oButtonClickHandler != 'undefined')
  327.         {
  328.             oButton.ClickHandler = p_oButtonClickHandler;
  329.             oButton.Menu = new ButtonMenu(p_sMenuId, p_oMenuClickHandler);
  330.             return oButton;
  331.         }
  332.         else return false;
  333.     };
  334.  
  335.     if(nArguments == 2) return __MenuButton_TwoArguments(arguments[0],arguments[1]);
  336.     else if(nArguments == 3) return __MenuButton_ThreeArguments(arguments[0],arguments[1],arguments[2]);
  337.     else if(nArguments == 4) return __MenuButton_FourArguments(arguments[0],arguments[1],arguments[2],arguments[3]);
  338.     else return false;
  339. };
  340.  
  341. /* Mail + PIM Tabs */
  342.  
  343. function Tab_MouseOver()
  344. {
  345.     if(!this.Selected) this.className = "hover";
  346.     return false;
  347. };
  348.  
  349. function Tab_MouseOut()
  350. {
  351.     if(!this.Selected) this.className = "";
  352.     return false;    
  353. };
  354.  
  355. function PIMMenu_Click(p_oEvent)
  356. {
  357.     var oEvent = p_oEvent ? p_oEvent : window.event;
  358.     if(p_oEvent) oEvent.stopPropagation();
  359.     else oEvent.cancelBubble = true;
  360.     if(oEvent && oEvent.target && oEvent.target.parentNode && oEvent.target.parentNode.tagName == "A") window.location = oEvent.target.parentNode.href;
  361. };
  362.  
  363. function Arrow_Click(p_oEvent)
  364. {
  365.     document.Selects = document.getElementsByTagName('select');
  366.  
  367.     if(document.Selects[0])
  368.     {
  369.         var nSelects = document.Selects.length-1;
  370.         for(var i=nSelects;i>=0;i--) document.Selects[i].style.visibility = 'hidden';
  371.     }
  372.     
  373.     var oEvent = p_oEvent ? p_oEvent : window.event;
  374.     
  375.     if(p_oEvent) oEvent.stopPropagation();
  376.     else oEvent.cancelBubble = true;
  377.     
  378.     HideMenu();
  379.     
  380.     var oTab = this.parentNode.parentNode;
  381.     var nTop = (oTab.offsetTop+oTab.parentNode.offsetHeight);
  382.     var sTop = ((oTab.Selected) ? (nTop+2) : (nTop-1)) + "px";
  383.  
  384.     g_oMenu = document.getElementById(this.href.split('#')[1]);
  385.     g_oMenu.style.top = sTop;
  386.     g_oMenu.style.left = oTab.offsetLeft+"px";
  387.  
  388.     g_oMenu.onclick = PIMMenu_Click;
  389.     g_oMenu.style.visibility = "visible";
  390.  
  391.     document.onclick = Document_Click;    
  392.  
  393.     return false;
  394. };
  395.  
  396. function Tabs_Init()
  397. {
  398.     var oMailTab = document.getElementById('mailtab');
  399.     var oAddressBookTab = document.getElementById('addressbooktab');
  400.     var oCalendarTab = document.getElementById('calendartab');
  401.     var oNotepadTab = document.getElementById('notepadtab');        
  402.     
  403.     if(oMailTab)
  404.     {
  405.         oMailTab.getElementsByTagName("a")[1].onclick = Arrow_Click;
  406.         oMailTab.onmouseover = Tab_MouseOver;
  407.         oMailTab.onmouseout = Tab_MouseOut;
  408.         oMailTab.Selected = (oMailTab.className == 'selected' || oMailTab.className == 'first selected') ? true : false;
  409.     }
  410.  
  411.     if(oAddressBookTab)
  412.     {
  413.         oAddressBookTab.getElementsByTagName("a")[1].onclick = Arrow_Click;
  414.         oAddressBookTab.onmouseover = Tab_MouseOver;
  415.         oAddressBookTab.onmouseout = Tab_MouseOut;
  416.         oAddressBookTab.Selected = (oAddressBookTab.className == 'selected' || oAddressBookTab.className == 'first selected') ? true : false;
  417.     }
  418.  
  419.     if(oCalendarTab)
  420.     {
  421.         oCalendarTab.getElementsByTagName("a")[1].onclick = Arrow_Click;
  422.         oCalendarTab.onmouseover = Tab_MouseOver;
  423.         oCalendarTab.onmouseout = Tab_MouseOut;
  424.         oCalendarTab.Selected = (oCalendarTab.className == 'selected' || oCalendarTab.className == 'first selected') ? true : false;
  425.     }
  426.  
  427.     if(oNotepadTab)
  428.     {
  429.         oNotepadTab.getElementsByTagName("a")[1].onclick = Arrow_Click;
  430.         oNotepadTab.onmouseover = Tab_MouseOver;
  431.         oNotepadTab.onmouseout = Tab_MouseOut;
  432.         oNotepadTab.Selected = (oNotepadTab.className == 'selected' || oNotepadTab.className == 'first selected') ? true : false;
  433.     }
  434.  
  435.     return false;
  436. };
  437.  
  438. function HideMenu()
  439. {
  440.     if(typeof g_oMenu != 'undefined' && g_oMenu)
  441.     {
  442.         if(g_oMenu.Hide) g_oMenu.Hide();
  443.         else g_oMenu.style.visibility = 'hidden';
  444.         
  445.         g_oMenu = null;
  446.         document.onclick = null;
  447.         window.onresize = null;
  448.     }
  449.     else return;
  450. };
  451.  
  452. function Document_Click()
  453. {
  454.     if(document.Selects)
  455.     {
  456.         var nSelects = document.Selects.length-1;
  457.         for(var i=nSelects;i>=0;i--) document.Selects[i].style.visibility = 'visible';
  458.     }
  459.  
  460.     HideMenu();
  461. };
  462.  
  463. /* Left navigation */
  464.  
  465. function LeftNav_Click(p_oEvent)
  466. {
  467.     var oEvent = p_oEvent ? p_oEvent : window.event;
  468.     var oSender = p_oEvent ? oEvent.target : oEvent.srcElement;
  469.     var oAnchor = oSender.getElementsByTagName('a')[0];
  470.  
  471.     if(oSender.tagName == 'LI' && oAnchor)
  472.     {
  473.         var oWindow = (oAnchor.target == "_top") ? window.parent : window;
  474.         oWindow.document.location = oAnchor.href;
  475.     }
  476. };
  477.  
  478. function LeftNav_MouseOver(p_oEvent)
  479. {
  480.     var oEvent = p_oEvent ? p_oEvent : window.event;
  481.     var oTarget = oEvent.target ? oEvent.target : oEvent.srcElement;
  482.     oTarget = oTarget.nodeType != 1 ? oTarget.parentNode : oTarget;
  483.  
  484.     var oLI;
  485.     
  486.     if(oTarget.tagName == "LI") oLI = oTarget;
  487.     else if(oTarget.parentNode.tagName == "LI") oLI = oTarget.parentNode;
  488.     else if(oTarget.parentNode.parentNode.tagName == "LI") oLI = oTarget.parentNode.parentNode;
  489.  
  490.     if(oLI) {
  491.  
  492.         var bEmptyLink = false;
  493.     
  494.         if(oTarget.tagName == "A")
  495.         {
  496.             if(oTarget.parentNode.tagName == "SPAN")
  497.             {
  498.                 oTarget.style.textDecoration = 'underline';
  499.                 bEmptyLink = true;
  500.             }
  501.         }
  502.     
  503.         if(oLI.className != 'selected')
  504.         {
  505.             oLI.previousClassName = oLI.className;
  506.             oLI.className = (oLI.previousClassName.length > 0) ? oLI.previousClassName+' hover' : 'hover';
  507.             oLI.firstChild.style.textDecoration = bEmptyLink ? 'none' : 'underline';
  508.         }
  509.     
  510.     }
  511. };
  512.  
  513. function LeftNav_MouseOut(p_oEvent)
  514. {
  515.     var oEvent = p_oEvent ? p_oEvent : window.event;
  516.     var oTarget = oEvent.target ? oEvent.target : oEvent.srcElement;
  517.     oTarget = oTarget.nodeType != 1 ? oTarget.parentNode : oTarget;
  518.  
  519.     var oLI;
  520.     
  521.     if(oTarget.tagName == "LI") oLI = oTarget;
  522.     else if(oTarget.parentNode.tagName == "LI") oLI = oTarget.parentNode;
  523.     else if(oTarget.parentNode.parentNode.tagName == "LI") oLI = oTarget.parentNode.parentNode;
  524.  
  525.     if(oLI) {
  526.     
  527.         var bEmptyLink = false;
  528.     
  529.         if(oTarget.tagName == "A")
  530.         {
  531.             if(oTarget.parentNode.tagName == "SPAN")
  532.             {
  533.                 oTarget.style.textDecoration = 'none';
  534.                 bEmptyLink = true;
  535.             }
  536.         }
  537.             
  538.         if(oLI.className != 'selected')
  539.         {
  540.             var bPreviousClassName = ((typeof oLI.previousClassName != 'undefined') && (oLI.previousClassName.length > 0)) ? true : false;
  541.             var sClassName = (bPreviousClassName) ? oLI.previousClassName+' hover':'hover';
  542.             if(oLI.className == sClassName) oLI.className = (bPreviousClassName) ? oLI.previousClassName:'';
  543.             oLI.firstChild.style.textDecoration = 'none';
  544.         }
  545.         
  546.     }
  547. };
  548.  
  549. function LeftNav(p_sNavId)
  550. {
  551.     var oLeftNav = document.getElementById(p_sNavId);
  552.     if(oLeftNav)
  553.     {
  554.         var aULs = oLeftNav.getElementsByTagName('ul');
  555.  
  556.         if(aULs[0])
  557.         {
  558.             aULs[0].onclick = LeftNav_Click;
  559.             aULs[0].onmouseover = LeftNav_MouseOver;
  560.             aULs[0].onmouseout = LeftNav_MouseOut;
  561.         }
  562.         else return;
  563.  
  564.         if(aULs[1])
  565.         {
  566.             aULs[1].onclick = LeftNav_Click;
  567.             aULs[1].onmouseover = LeftNav_MouseOver;
  568.             aULs[1].onmouseout = LeftNav_MouseOut;
  569.         }
  570.     }
  571.     else return false;
  572. };
  573.  
  574. function DestinationFolder_Click()
  575. {
  576.     var oSender = this.Sender;
  577.     var oLI = false;
  578.  
  579.     if(!oSender.tagName) oLI = oSender.parentNode;
  580.     else if(oSender.tagName == 'LI') oLI = oSender;
  581.     else if(oSender.parentNode.tagName == 'LI') oLI = oSender.parentNode;
  582.  
  583.     if(oLI)
  584.     {
  585.         var sFolderName = oLI.getAttribute( "iname" );
  586.         var oForm = this.Button.form;
  587.         var bNewFolder = parseInt(oLI.value) == 0 ? true : false;
  588.  
  589.         if(bNewFolder)
  590.         {
  591.             var sNewFolderName = window.prompt(oForm.newfoldermessage.value,'');
  592.             
  593.             if(sNewFolderName) sNewFolderName = sNewFolderName;
  594.             else return false;
  595.  
  596.             if(sNewFolderName != null && sNewFolderName != 'null' && sNewFolderName.length != 0)
  597.             {
  598.                 oForm.NewFol.value = sNewFolderName;
  599.                 oForm.destBox.value = '@NEW';
  600.                 oForm.MOV.value = '1';
  601.                 oForm.submit();
  602.             }
  603.             else return false;
  604.         }
  605.         else
  606.         {
  607.             oForm.destBox.value = sFolderName;
  608.             oForm.MOV.value = '1';
  609.             oForm.submit();
  610.         }
  611.     }
  612.     else {
  613.         return false;
  614.     }
  615. };
  616.  
  617. function Window_Resize()
  618. {
  619.     g_oMenu.style.left = ((ylib_getPageX(g_oMenu.Button)+g_oMenu.Button.offsetWidth)-g_oMenu.Button.Menu.offsetWidth)+'px';
  620. }
  621.  
  622. function Move_Click()
  623. {
  624.     g_oMenu.style.visibility = 'visible';
  625.  
  626.     if(!this.Configured)
  627.     {
  628.         if(g_oMenu.offsetHeight > 250)
  629.         {
  630.             g_oMenu.style.width = g_oMenu.offsetWidth+20+"px";
  631.             g_oMenu.className += ' overflow';
  632.  
  633.             if(document.all && !window.showModelessDialog)
  634.             {
  635.                 g_oMenu.style.top = '-1000px';
  636.                 g_oMenu.style.left = '-1000px';
  637.             }
  638.         }
  639.         else g_oMenu.style.width = g_oMenu.offsetWidth+"px";
  640.  
  641.         document.onclick = Document_Click;
  642.         window.onresize = Window_Resize;
  643.         this.Configured = true;
  644.     }
  645.  
  646.     var nTop = (ylib_getPageY(this) + this.offsetHeight);
  647.     var nLeft = ylib_getPageX(this);
  648.     
  649.     if(oBw.ie && oBw.mac)
  650.     {
  651.         nTop -= 4;
  652.         nLeft -= 6;    
  653.     }
  654.     
  655.     g_oMenu.style.top = nTop+'px';
  656.     g_oMenu.style.left = nLeft+'px';
  657. };
  658.  
  659. function PersonalFoldersDisplayToggle_Click()
  660. {
  661.     var sDoneURL = (g_oDoneURL) ? g_sDoneURL : document.URL;
  662.     window.open("/" + g_sYMURI + "/webaroo/e29f1fe6/welcome?pers=1&.done=" + escape(sDoneURL) + "&" + g_sURLExtras, '_self');
  663. };
  664.  
  665. function MySearchesDisplayToggle_Click()
  666. {
  667.     var sDoneURL = (g_oDoneURL) ? g_sDoneURL : document.URL;
  668.     window.open("/" + g_sYMURI + "/webaroo/e29f1fe6/welcome?searches=1&.done=" + escape(sDoneURL) + "&" + g_sURLExtras, '_self');
  669. };
  670.  
  671. function AddFolderControl_Click()
  672. {
  673.     var nn = window.prompt(g_sNewFolderMessage,'');
  674.  
  675.     if(nn != null && nn != 'null' && nn != '')
  676.     {
  677.         var nn_escaped = '';
  678.         var nn_len = nn.length;
  679.  
  680.         for(i=0;i<nn_len;i++)
  681.         {
  682.             var nn_asc = nn.charCodeAt(i);
  683.             if (nn_asc == 43) nn_escaped += '%2b';
  684.             else if(nn_asc>128) nn_escaped += nn.charAt(i);
  685.             else nn_escaped += escape(nn.charAt(i));
  686.         }
  687.     
  688.         var sURL = '/'+g_sYMURI+'/Folders?ADD=1&Name=' + nn_escaped + '&.crumb='+g_sFoldersCrumb+'&.done=' + g_sAddFolderDoneURL + '&' + g_sURLExtras;
  689.         window.open(sURL, '_self');
  690.     }
  691. };
  692.  
  693. function LHCol_Init()
  694. {
  695.     g_oAddFolderDoneURL = document.getElementById('addfolderdoneurl');
  696.     g_sAddFolderDoneURL = (g_oAddFolderDoneURL) ? g_oAddFolderDoneURL.value : escape(document.URL);
  697.  
  698.     g_oDoneURL = document.getElementById('doneurl');
  699.     if(g_oDoneURL) g_sDoneURL = g_oDoneURL.value;
  700.  
  701.     g_oYMURI = document.getElementById('ymuri');
  702.     if(g_oYMURI) g_sYMURI = g_oYMURI.value;
  703.     
  704.     g_oURLExtras = document.getElementById('urlextras');
  705.     if(g_oURLExtras) g_sURLExtras = g_oURLExtras.value;
  706.  
  707.     g_oNewFolderMessage = document.getElementById('newfoldermessage');
  708.     if(g_oNewFolderMessage) g_sNewFolderMessage = g_oNewFolderMessage.value;
  709.     
  710.     g_oFoldersCrumb = document.getElementById('folderscrumb');
  711.     if(g_oFoldersCrumb) g_sFoldersCrumb = g_oFoldersCrumb.value;
  712.  
  713.     var oPersonalFoldersDisplayToggle = document.getElementById('personalfoldersdisplaytoggle');
  714.     if(oPersonalFoldersDisplayToggle)
  715.     {
  716.         oPersonalFoldersDisplayToggle.onclick = PersonalFoldersDisplayToggle_Click;
  717.         oPersonalFoldersDisplayToggle.onmouseover = function () { this.className = 'hover'; };
  718.         oPersonalFoldersDisplayToggle.onmouseout = function () { this.className = ''; };    
  719.     }
  720.  
  721.     var oMSDisplayToggle = document.getElementById('mysearchesdisplaytoggle');
  722.     if(oMSDisplayToggle)
  723.     {
  724.         oMSDisplayToggle.onclick = MySearchesDisplayToggle_Click;
  725.         oMSDisplayToggle.onmouseover = function () { this.className = 'hover'; };
  726.         oMSDisplayToggle.onmouseout = function () { this.className = ''; };    
  727.     }
  728.     
  729.     var oAddFolderControl = document.getElementById('addfoldercontrol');
  730.     
  731.     if(oAddFolderControl)
  732.     {
  733.         oAddFolderControl.onclick = AddFolderControl_Click;
  734.         oAddFolderControl.onmouseover = function () { this.className = 'hover'; };
  735.         oAddFolderControl.onmouseout = function () { this.className = ''; };
  736.     }
  737. };
  738.  
  739. //-->
  740. var gICCookieName = "ym.IC2";
  741. var gFramesetCookieName = "ym.FR2";
  742. var gReloadCookieName = "ym.RL2";
  743. var ymDomain = "mail.yahoo.com";
  744.  
  745. function setICCookie(val)
  746. {
  747.     document.cookie = gICCookieName + "=" + escape(val) + ";domain=" + ymDomain ;
  748. }
  749.  
  750. function getICCookie()
  751. {
  752.     return getCookie(gICCookieName);
  753. }
  754.   
  755. function getFramesetCookie()
  756. {
  757.       return getCookie(gFramesetCookieName);
  758. }
  759.  
  760. function setFramesetCookie()
  761. {
  762.  
  763.     var val = window.location.pathname + window.location.search;
  764.           
  765.     document.cookie = gFramesetCookieName + "=" + escape(val) + ";domain=" + ymDomain ;
  766. }
  767.  
  768. function removeCookie(name)
  769. {
  770.     document.cookie = name + "=" + "" 
  771.                     + ";expires=" +  new Date(70,0,1) 
  772.                     + ";domain=" + ymDomain;
  773. }
  774.  
  775. function getCookie(cookiename)
  776. {
  777.     var i = document.cookie.indexOf(cookiename + "=");
  778.     if( i == -1 ) return null;
  779.  
  780.     i+= cookiename.length; i++;
  781.     var len = i+cookiename.length+1;
  782.  
  783.     var f = document.cookie.indexOf(";",i);
  784.     if( f == -1) 
  785.         f = document.cookie.length;
  786.  
  787.     return unescape( document.cookie.substring(i,f) );
  788. }
  789.  
  790. function setCookie(name, val)
  791. {
  792.     document.cookie = name + "=" + escape(val) + ";domain=" + ymDomain ;
  793. }
  794.  
  795. var gTargetsFixed = false;
  796. if( typeof icjsdis == "undefined" || typeof icjsdis == "unknown" )
  797. {
  798.     icjsdis = false;
  799. }
  800.  
  801. if( self.name == "ymailmain" && !icjsdis )
  802. {
  803.     document.onkeydown = fixTargets;
  804.     document.onmousedown = fixTargets;
  805. }
  806.  
  807. function fixTargets(evt) 
  808.     try
  809.     {
  810.     if( !document.body ) return;
  811.  
  812.     //citation: "Dynamic HTML: the Definitive Reference, by Goodman, Publ O'Reilly, 2nd ed)
  813.     evt = (evt) ? evt : ( (event) ? event : null );
  814.     if(evt)
  815.     {
  816.         var elem = ((evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null));
  817.         if(elem)
  818.         {
  819.              if( isLogout(elem) )
  820.                 removeAllFramesetCookies();
  821.             if( document.location.href.indexOf( "/instacompose" ) > -1 )
  822.                 fixupMailAnchorByTag( elem );
  823.         }
  824.     }
  825.  
  826.     if ( gTargetsFixed ) return;
  827.  
  828.     gTargetsFixed = true;
  829.     
  830.     fixupTargetByTag( document.body, "A", adTestAnchor )
  831.     fixupTargetByTag( document.body, "FORM", adTestForm )
  832.     }
  833.     catch(err) {}
  834. }
  835.  
  836. function isLogout(srcElement)
  837. {
  838.     //logout links
  839.     if(srcElement.tagName == "A" || srcElement.tagName == "a" )
  840.     {    
  841.         if( srcElement.href )
  842.         {
  843.             var theLcHref = srcElement.href.toLocaleLowerCase();
  844.             //ad-served
  845.             if( srcElement.href.indexOf( "S=1505" ) > -1 )
  846.             {
  847.                 if( theLcHref.indexOf("login?logout=1") > -1 ) 
  848.                     return true;
  849.             }
  850.             else if( theLcHref.indexOf("yahoo.com/ym") > -1 
  851.                 && theLcHref.indexOf("logout") > -1 
  852.                 && theLcHref.indexOf("yahoo.com/ym") < theLcHref.indexOf("logout") )
  853.                 return true; 
  854.         }
  855.     
  856.     }
  857.     return false;
  858. }
  859.  
  860. function removeAllFramesetCookies()
  861. {
  862.     removeCookie(gICCookieName);
  863.     removeCookie(gFramesetCookieName);
  864.     removeCookie(gReloadCookieName);
  865. }
  866.  
  867. function adTestAnchor(theTag)
  868. {
  869.     if( theTag.href )
  870.         if( theTag.href.indexOf( "S=1505" )>0 )
  871.             return true;
  872.  
  873.     return false;
  874. }
  875.  
  876. function adTestForm(theTag)
  877. {
  878.     if( theTag.action )
  879.         if( theTag.action.indexOf( "S=1505" )>0 )
  880.             return true;
  881.  
  882.     return false;
  883. }
  884.  
  885. function fixupMailAnchorByTag( srcElem )
  886. {
  887.     if(srcElem.tagName == "A" || srcElem.tagName == "a" )
  888.     {
  889.         if( srcElem.href )
  890.         {
  891.             var theHref = srcElem.href.toLocaleLowerCase();
  892.  
  893.             if( (srcElem.href.indexOf( "YY=" ) > -1) &&
  894.                 (srcElem.href.indexOf( "javascript:" ) == -1) )
  895.             {
  896.                 var newDate = new Date();
  897.                 var r = newDate.getTime();
  898.                 srcElem.href = srcElem.href + "&rand=" + r;
  899.                 return true;
  900.             }
  901.         }
  902.     }
  903.     return false;
  904. }
  905.  
  906. function fixupTargetByTag( scope, tagtype, testFn )
  907. {
  908.     var tags = scope.getElementsByTagName(tagtype);
  909.     for(var i = 0; i < tags.length ; i++)
  910.     {
  911.         if( testFn( tags[i] ) )
  912.         {
  913.             //don't mess up things that want a new window
  914.             if( tags[i].target && tags[i].target == "_blank" )
  915.                 continue;
  916.  
  917.             tags[i].target= "_top";
  918.         }
  919.     }
  920. }
  921.  
  922. function safePutInFrameset( frameName, toploc )
  923. {
  924.     if(frameName != "ymailmain" && frameName != "ymailcompose")
  925.     {
  926.             var prevCookieVal = getFramesetCookie();
  927.             if( prevCookieVal && prevCookieVal != "" )
  928.         {
  929.             removeCookie(gFramesetCookieName);
  930.                 return;
  931.         }
  932.  
  933.         if(frameName != "top")
  934.                 setFramesetCookie();
  935.  
  936.             top.location.href = toploc;
  937.     }
  938. }
  939.  
  940. function safeReloadFrameset(toploc)
  941. {
  942.     removeCookie(gFramesetCookieName);
  943.  
  944.     var secondTrip = getCookie(gReloadCookieName);
  945.     if( secondTrip != null && secondTrip != "" )
  946.     {
  947.         removeCookie(gReloadCookieName);
  948.         return;
  949.     }
  950.  
  951.     setCookie(gReloadCookieName,"true");
  952.     top.location.href = toploc; 
  953. }
  954.