home *** CD-ROM | disk | FTP | other *** search
/ Komputer for Alle 2002 #4 / K-CD-4-2002.ISO / Namo WebEditor / data1.cab / Eng_Program_Executable_Files_Compact / lib / Script / namoscriptwizard.js < prev    next >
Encoding:
JavaScript  |  2001-10-21  |  60.7 KB  |  1,827 lines

  1. // javascript source for Namo Script Wizard
  2. // 5.0.30
  3.  
  4. function namosw_page_left(element) 
  5. {
  6.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  7.     x = element.pageX;
  8.   } else {
  9.     x = element.offsetLeft;
  10.     for (el = element.offsetParent; el; el = el.offsetParent)
  11.       x += el.offsetLeft;
  12.   }
  13.   return x;
  14. }
  15.  
  16. function namosw_page_top(element) 
  17. {
  18.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  19.     y = element.pageY;
  20.   } else {
  21.     y = element.offsetTop;
  22.     for (el = element.offsetParent; el; el = el.offsetParent)
  23.       y += el.offsetTop;
  24.   }
  25.   return y;
  26. }
  27.  
  28. function namosw_page_right(el) {
  29.   wid =  (navigator.appName.indexOf('Netscape', 0) != -1) ? window.innerWidth : document.body.offsetWidth;
  30.   return wid - namosw_page_left(el);
  31. }
  32.  
  33. function namosw_page_bottom(el) {
  34.   hei =  (navigator.appName.indexOf('Netscape', 0) != -1) ? window.innerHeight : document.body.offsetHeight;
  35.   return hei - namosw_page_top(el);
  36. }
  37.  
  38. function namosw_set_visible(el, flag) {
  39.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  40.     el.visibility = flag ? 'show' : 'hide';
  41.   } else {
  42.     el.style.visibility = flag ? 'visible' : 'hidden';
  43.   }
  44. }
  45.  
  46. function namosw_set_pos(el, x, y)
  47. {
  48.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  49.     el.left = x;
  50.     el.top  = y;
  51.   } else {
  52.     el.style.pixelLeft = x;
  53.     el.style.pixelTop  = y;
  54.   }
  55. }
  56.  
  57. function namosw_left(el) {
  58.   return (navigator.appName.indexOf('Netscape', 0) != -1) ? el.left : el.style.pixelLeft;
  59. }
  60.  
  61. function namosw_top(el) {
  62.   return (navigator.appName.indexOf('Netscape', 0) != -1) ? el.top : el.style.pixelTop;
  63. }
  64.  
  65. function namosw_is_relative(el) {
  66.   return (navigator.appName.indexOf('Netscape', 0) != -1) ? el.position == 'relative' : 
  67.                                              el.style.position == 'relative';
  68. }
  69.  
  70. function namosw_new_animation_object(name, obj, time, xpos, ypos, path, byword, zoom, stepNum) 
  71. {
  72.   var str = (navigator.appName.indexOf('Netscape', 0) != -1) ? 'document.'+name : 'document.all[\''+name+'\']';
  73.   var object;
  74.  
  75.   if (name == '') return 0;
  76.  
  77.   object = eval(str);
  78.   if (!object) return 0 ;
  79.  
  80.   object.name     = name;
  81.   object.startCondObj  = obj;
  82.   object.startCondTime = time;
  83.   object.startXPos     = xpos;     // left, center, right
  84.   object.startYPos     = ypos;     // top,  center, bottom
  85.   object.pathType      = path;     // line, arc, spiral
  86.   object.byword        = byword;   // true, false
  87.   object.zoom          = zoom;
  88.   object.stepNum       = stepNum;
  89.   return object;
  90. }
  91.  
  92. function namosw_is_space(c)
  93. {
  94.   return (c == ' ' || c == '\t' || c == '\r' || c == '\n');
  95. }
  96.  
  97. function namosw_process_byword(list, index)
  98. {
  99.   var el = list[index];
  100.   if (navigator.appName.indexOf('Netscape', 0) != -1)
  101.     return;
  102.   if (!el)
  103.     return;
  104.   if (el.byword == false)
  105.     return;
  106.  
  107.   var dest = "";
  108.   var src = el.innerHTML;
  109.   var objNum = document.NamoAnimationObjects.length;
  110.   var wordi = 0, i = 0, mark;
  111.   while (i < src.length) {
  112.     mark = i;
  113.     while (i < src.length) {
  114.       while (i < src.length && namosw_is_space(src.charAt(i))) i++;
  115.       if    (i < src.length && src.charAt(i) != '<') break;
  116.       while (i < src.length && src.charAt(i) != '>') i++;
  117.       if    (i < src.length && src.charAt(i) == '>') i++;
  118.     }
  119.     dest += src.substring(mark, i);
  120.     if (i >= src.length) break;
  121.     dest += '<span id=\"' + el.name + 'word' + (wordi+1) + '\" style=\"position:relative\">';
  122.     mark = i;
  123.     while (i < src.length && !namosw_is_space(src.charAt(i)) && src.charAt(i) != '<') i++;
  124.     while (i < src.length && namosw_is_space(src.charAt(i)) == ' ') i++;
  125.     if (el.byword == false) while (i < src.length && src.charAt(i) != '<') i++;
  126.     dest += src.substring(mark, i);
  127.     dest += '</span>';
  128.     wordi++;
  129.   }
  130.   el.innerHTML = dest;
  131.   el.posLeft   = 0;
  132.   el.style.visibility = 'visible';
  133.  
  134.   list[index] = namosw_new_animation_object(el.name+'word1', el.startCondObj, el.startCondTime, 
  135. el.startXPos, el.startYPos, el.pathType, false, el.zoom, el.stepNum);
  136.   for (i = 1; i < wordi; i++) {
  137.     list[objNum+i-1] = namosw_new_animation_object(el.name+'word'+(i+1), (el.byword ? (el.name+'word'+i) : el.startCondObj), (el.byword ? 0 : el.startCondTime), el.startXPos, el.startYPos, el.pathType, false, el.zoom, el.stepNum);
  138.     list[objNum+i-1].style.posLeft = 0;
  139.     list[objNum+i-1].style.visibility = 'visible';
  140.   }
  141.   el.startCondTime = -1;
  142. }
  143.  
  144. function namosw_init_animation()
  145. {
  146.   var i    = 0;
  147.   var list = new Array;
  148.  
  149.   document.NamoAnimationObjects = list;
  150.  
  151.   var length = list.length;
  152.   for (i = 0; i < length; i++)
  153.     namosw_process_byword(list, i);
  154.  
  155.   for (i = 0; i < list.length; i++) {
  156.     if (!list[i]) continue;
  157.     list[i].countDown = (list[i].startCondObj == null) ? list[i].startCondTime : -1;
  158.     list[i].step      = 0;
  159.     list[i].sx        = (list[i].startXPos == 'left')  ? -namosw_page_left(list[i])  :
  160.                (list[i].startXPos == 'right') ?  namosw_page_right(list[i]) : 0;
  161.     list[i].sy        = (list[i].startYPos == 'top')   ? -namosw_page_top(list[i])   :
  162.                (list[i].startYPos == 'bottom')?  namosw_page_bottom(list[i]): 0;
  163.     list[i].ex      = 0;
  164.     list[i].ey       = 0;
  165.     if (!namosw_is_relative(list[i])) {
  166.       list[i].sx += namosw_left(list[i]);
  167.       list[i].sy += namosw_top(list[i]);
  168.       list[i].ex += namosw_left(list[i]);
  169.       list[i].ey += namosw_top(list[i]);
  170.     }
  171.     if (list[i].pathType == 'spiral') {
  172.       list[i].sx = Math.max(-200+list[i].ex, Math.min(200+list[i].ex, list[i].sx));
  173.       list[i].sy = Math.max(-200+list[i].ey, Math.min(200+list[i].ey, list[i].sy));
  174.     }
  175.     namosw_set_pos(list[i], list[i].sx, list[i].sy);
  176.     namosw_set_visible(list[i], false);
  177.   }
  178.   window.setTimeout("namosw_animate();", 10);
  179. }
  180.  
  181. function namosw_animate(str) 
  182. {
  183.   var live_object_num = 0;
  184.   for (var i = 0; i < document.NamoAnimationObjects.length; i++) {
  185.     var el = document.NamoAnimationObjects[i];
  186.     if (!el) continue;
  187.     if (el.countDown > 0) {
  188.       el.countDown = (0 < el.countDown-10) ? el.countDown-10 : 0;
  189.       live_object_num++;
  190.       continue;
  191.     }
  192.     if (el.countDown < 0)
  193.       continue;
  194.  
  195.     if (el.pathType == 'line') {
  196.       newx = el.sx + el.step * (el.ex - el.sx) / el.stepNum;
  197.       newy = el.sy + el.step * (el.ey - el.sy) / el.stepNum;
  198.     } else if (el.pathType == 'arc') {
  199.       linex = el.sx + el.step * (el.ex - el.sx) / el.stepNum;
  200.       liney = el.sy + el.step * (el.ey - el.sy) / el.stepNum;
  201.  
  202.       x = (el.ex + el.sx) / 2;
  203.       y = (el.ey + el.sy) / 2;
  204.       sinv = Math.sin(Math.PI*el.step/el.stepNum*(el.ex-el.sx > 0 ? -1:1));
  205.       cosv = Math.cos(Math.PI*el.step/el.stepNum);
  206.       newx = ((cosv*(el.sx-x) - sinv*(el.sy-y) + x) + linex) / 2;
  207.       newy = ((sinv*(el.sx-x) + cosv*(el.sy-y) + y) + liney) / 2;
  208.     } else if (el.pathType == 'spiral') {
  209.       sinv = Math.sin(2*Math.PI*el.step/el.stepNum);
  210.       cosv = Math.cos(2*Math.PI*el.step/el.stepNum);
  211.       r = (el.stepNum-el.step)/el.stepNum;
  212.       newx = el.ex + (cosv*(el.sx-el.ex) - sinv*(el.sy-el.ey))*r;
  213.       newy = el.ey + (sinv*(el.sx-el.ex) + cosv*(el.sy-el.ey))*r;
  214.     }
  215.     if (el.style) {
  216.       if (el.zoom == 'zoomin')
  217.         el.style.fontSize = 50+50*el.step/el.stepNum + '%';
  218.       else if (el.zoom == 'zoomout')
  219.         el.style.fontSize = 200-100*el.step/el.stepNum + '%';
  220.     }
  221.     namosw_set_pos(el, newx, newy);
  222.     namosw_set_visible(el, true);
  223.  
  224.     if (el.step++ == el.stepNum) {
  225.       namosw_set_pos(el, el.ex, el.ey);
  226.       el.step = 0;
  227.       el.countDown = -1;
  228.       // trigger other object(self can be trigger)
  229.       for (var j = 0; j < document.NamoAnimationObjects.length; j++) {
  230.         var obj = document.NamoAnimationObjects[j];
  231.         if (obj.countDown < 0 && obj.startCondObj == el.name) {
  232.           obj.countDown = obj.startCondTime;
  233.           live_object_num++;
  234.           if (i < j) {
  235.             obj.countDown += 10;
  236.             live_object_num--;
  237.           }
  238.         }
  239.       }
  240.     } else {
  241.       live_object_num++;
  242.     }
  243.   }
  244.   if (live_object_num > 0)
  245.     window.setTimeout("namosw_animate();", 10);
  246. }
  247.  
  248. function namosw_goto_byselect(sel, targetstr)
  249. {
  250.   var index = sel.selectedIndex;
  251.   if (sel.options[index].value != '') {
  252.      if (targetstr == 'blank') {
  253.        window.open(sel.options[index].value, 'win1');
  254.      } else {
  255.        var frameobj;
  256.        if (targetstr == '') targetstr = 'self';
  257.        if ((frameobj = eval(targetstr)) != null)
  258.          frameobj.location = sel.options[index].value;
  259.      }
  260.   }
  261. }
  262.  
  263. function namosw_goto(url, targetstr)
  264. {
  265.   if (url == 'backward')
  266.     history.back(1);
  267.   else if (url == 'forward')
  268.     history.forward(1);
  269.   else {
  270.      if (targetstr == 'blank') {
  271.        window.open(url, 'win1');
  272.      } else {
  273.        var frameobj;
  274.        if (targetstr == '') targetstr = 'self';
  275.        if ((frameobj = eval(targetstr)) != null)
  276.          frameobj.location = url;
  277.      }
  278.   }
  279. }
  280.  
  281. function namosw_infotext()
  282. {
  283.   var username;
  284.   var type, i, top, obj;
  285.   for (i = 1, top = 0; i < namosw_infotext.arguments.length; i += 2) {
  286.     obj = eval('document.'+namosw_infotext.arguments[i]);
  287.     if (obj == null) continue;
  288.     type = namosw_infotext.arguments[i+1];
  289.     if (type == 'username') {
  290.       if (username == null) 
  291.         username = prompt(namosw_infotext.arguments[0], "");
  292.       username = (username == null) ? '' : username;
  293.       obj.value = username;
  294.     } else if (type == 'moddate') {
  295.       obj.value = document.lastModified;
  296.     } else if (type == 'ipaddr' || type == 'hostname') {
  297.       if (navigator.appName.indexOf('Netscape', 0) != -1) {
  298.         var host  = java.net.InetAddress.getLocalHost();
  299.         obj.value = (type == 'ipaddr') ? host.getHostAddress() : host.getHostName();
  300.       } else {
  301.         obj.value = '';
  302.       }
  303.     }
  304.   }
  305. }
  306.  
  307. function namosw_init_clock()
  308. {
  309.   var type, i, top, obj, clocks;
  310.   clocks = new Array();
  311.   for (i = 0, top = 0; i < namosw_init_clock.arguments.length; i += 2) {
  312.     obj = eval('document.'+namosw_init_clock.arguments[i]);
  313.     if (obj == null) continue;
  314.     if ((type = namosw_init_clock.arguments[i+1]) < 1 && 11 < type) continue;
  315.     clocks[top++] = obj;
  316.     clocks[top++] = type;
  317.   }
  318.   clocks.months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July',
  319.                             'August', 'September', 'October', 'November', 'December');
  320.   clocks.days   = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday',
  321.                             'Thursday', 'Friday', 'Saturday');
  322.   clocks.k_days = new Array('└╧', '┐∙', '╚¡', '╝÷', '╕±', '▒▌', '┼Σ');
  323.   clocks.ampm_str   = new Array('AM', 'PM');
  324.   clocks.k_ampm_str = new Array('┐└└ⁿ', '┐└╚─');
  325.  
  326.   if (top > 0) {
  327.     document.namosw_clocks = clocks;
  328.     namosw_clock();
  329.   }
  330. }
  331.  
  332. function namosw_clock()
  333. {
  334.   var i, type, clocks, next_call, str, hour, ampm, now, year2, year4;
  335.   clocks = document.namosw_clocks;
  336.   if (clocks == null) return;
  337.   next_call = false;
  338.   for (i = 0; i < clocks.length; i += 2) {
  339.     obj   = clocks[i];
  340.     type  = clocks[i+1];
  341.     now   = new Date();
  342.     year2 = now.getYear();
  343.     year4 = year2;
  344.     if (year2 < 1000) year4 = 1900 + year2;
  345.     if (year2 >= 100) year2 = year4;
  346.  
  347.     if (type == 1 || type == 2) {
  348.       obj.value = clocks.months[now.getMonth()] + ' ' + now.getDate() + ', ' + year4;
  349.       if (type == 2) 
  350.         obj.value = clocks.days[now.getDay()] + ', ' + obj.value;
  351.     } else if (type == 3 || type == 4) {
  352.       obj.value = year2 + '/' + (now.getMonth()+1) + '/' + now.getDate();
  353.     } else if (type == 5 || type == 6) {
  354.       obj.value = now.getDate() + '/' + (now.getMonth()+1) + '/' + year2;
  355.     } else if (type == 8 || type == 9 || type == 10 || type == 11) {
  356.       obj.value = year4 + '│Γ ' + (now.getMonth()+1) + '┐∙ ' + now.getDate() + '└╧';
  357.       if (type == 9)
  358.         obj.value += ' ' + clocks.k_days[now.getDay()] + '┐Σ└╧';
  359.     }
  360.     if (type == 4 || type == 6 || type == 7 || type == 10 || type == 11) {
  361.       hour = now.getHours();
  362.       ampm = 0;
  363.       if (hour >= 12) {
  364.     if (hour > 12) hour -= 12;
  365.     ampm = 1;
  366.       }
  367.       if (type == 10 || type == 11) {
  368.     str = clocks.k_ampm_str[ampm] +' '+ hour+'╜├ '+ now.getMinutes() +'║╨';
  369.     if (type == 11) str += ' ' + now.getSeconds() +'├╩';
  370.       } else {
  371.     str = hour +':'+ ((now.getMinutes() < 10) ? '0'+now.getMinutes():now.getMinutes()) +':'+ ((now.getSeconds() < 10) ? '0'+now.getSeconds():now.getSeconds()) +' '+ clocks.ampm_str[ampm];
  372.       }
  373.       if (type == 7) obj.value  = str;
  374.       else           obj.value += ' ' + str;
  375.     }
  376.     if (type == 4 || type == 6 || type == 7 || type == 10 || type == 11)
  377.       next_call = true;
  378.   }
  379.   if (next_call)
  380.     window.setTimeout("namosw_clock();", 1000);
  381. }
  382.  
  383. function namosw_init_scrolltext()
  384. {
  385.   list = new Array();
  386.   for (var i = 0, top = 0; i < namosw_init_scrolltext.arguments.length; i += 2) {
  387.     obj = eval('document.'+namosw_init_scrolltext.arguments[i]);
  388.     if (obj == null) continue;
  389.     list[top++] = obj;
  390.     for (str = '', j = 0; j < namosw_init_scrolltext.arguments[i+1]; j++)
  391.       str += ' ';
  392.     str += obj.value;
  393.     obj.value = str;
  394.   }
  395.   if (top > 0) {
  396.     document.namosw_scrolltext_list = list;
  397.     setTimeout('namosw_scrolltext()', 100);
  398.   }
  399. }
  400.  
  401. function namosw_scrolltext()
  402. {
  403.   for (i = 0; i < document.namosw_scrolltext_list.length; i++) {
  404.     obj   = document.namosw_scrolltext_list[i];
  405.     str   = obj.value.substring(1, obj.value.length);
  406.     str  += obj.value.substring(0, 1);
  407.     obj.value = str;
  408.   }
  409.   setTimeout('namosw_scrolltext()', 100);
  410. }
  411.  
  412. function namosw_scrollstatus()
  413. {
  414.   var str = '';
  415.   if (namosw_scrollstatus.arguments.length > 0) {
  416.     var i;
  417.     for (str = '', i = 0; i < 100; i++)
  418.       str += ' ';
  419.     for (i = 0; i < namosw_scrollstatus.arguments.length; i++)
  420.       str += namosw_scrollstatus.arguments[i] + ' ';
  421.     document.namosw_scrollstatus = str;
  422.   } else {
  423.     var src_str = document.namosw_scrollstatus;
  424.     str  = src_str.substring(1, src_str.length);
  425.     str += src_str.substring(0, 1);
  426.     document.namosw_scrollstatus = str;
  427.   }
  428.   window.status = str;
  429.   setTimeout('namosw_scrollstatus()', 100);
  430. }
  431.  
  432. function namosw_init_list(top_layer)
  433. {
  434.   if (parseInt(navigator.appVersion) < 4)
  435.     return;
  436.   if (top_layer == '')
  437.     return;
  438.  
  439.   document.namosw_lists     = new Array();
  440.   document.namosw_lists.lid = 0;
  441.  
  442.   var layer;
  443.   if (navigator.appName.indexOf('Netscape', 0) != -1)
  444.     layer = document.layers[top_layer];
  445.   else
  446.     layer = document.all[top_layer];
  447.  
  448. }
  449.  
  450. function namosw_list(parent, visible, width, height, font, size, fgColor, bgColor, indent, hbgColor, hfgColor) {
  451.   this.additem = namosw_l_additem;
  452.   this.addlist = namosw_l_addlist;
  453.   this.make    = namosw_l_make;
  454.   this.write   = namosw_l_write;
  455.   this.show    = namosw_l_show;
  456.   this.update  = namosw_l_update;
  457.   this.updateparent = namosw_l_updateparent;
  458.   this.items = new Array();
  459.   this.id = document.namosw_lists.length;
  460.   this.parent_id = 0;
  461.   this.x = 0;
  462.   this.y = 0;
  463.   this.visible = visible;
  464.   this.width    = width;
  465.   this.height   = height;
  466.   this.parent   = parent;
  467.   this.indent = indent;
  468.   this.fgColor = fgColor;
  469.   this.hfgColor = hfgColor;
  470.   this.bgColor  = bgColor;
  471.   this.hbgColor = hbgColor;
  472.  
  473.   this.font_start = '';
  474.   this.font_end   = '';
  475.  
  476.   this.font_start = '<font color=' + fgColor;
  477.   if (font != '') this.font_start += ' face=\"' + font + '\"';
  478.   if (size != '' && size.indexOf('pt', 0) == -1) this.font_start += ' size=' + size;
  479.   this.font_start += '>';
  480.  
  481.   this.font_start += '<span';
  482.   if (size.indexOf('pt', 0) != -1)
  483.     this.font_start += ' style="font-size:' +size+ ';"';
  484.   this.font_start += '>';
  485.  
  486.   this.font_end  = '</span>';
  487.   this.font_end += '</font>';
  488.  
  489.   this.made     = false;
  490.   this.shown    = false;
  491.   document.namosw_lists[document.namosw_lists.length] = this;
  492. }
  493.  
  494. function namosw_l_setclip(layer, left, right, top, bottom) {
  495.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  496.     layer.clip.left   = left; 
  497.     layer.clip.right  = right;
  498.     layer.clip.top    = top;  
  499.     layer.clip.bottom = bottom;
  500.   } else {    
  501.     layer.style.pixelWidth  = right-left;
  502.     layer.style.pixelHeight = bottom-top;
  503.     layer.style.clip  = "rect(" + top + "," + right + "," + bottom + "," + left + ")";
  504.   }
  505. }
  506.  
  507. function namosw_l_write() {
  508.   var layer, clip, str;
  509.   for(var i = 0; i < this.items.length; i++) { 
  510.     layer = this.items[i];
  511.     if (navigator.appName.indexOf('Netscape', 0) != -1) 
  512.       layer.visibility = "hidden";
  513.     else 
  514.       layer.style.visibility = "hidden";
  515.     str = "";
  516.  
  517.     str += "<table width="+this.width+" nowrap border='0' cellpadding='0' cellspacing='0'><tr>";
  518.     if (0 < this.indent) str += "<td width="+this.indent+" nowrap> </td>";
  519.     if (layer.type == 'list') {
  520.       str += "<td width=15  valign='middle' nowrap><a";
  521.       if (navigator.appName.indexOf('Netscape', 0) != -1) str += " href=\"javascript:void(0);\"";
  522.       else                                                str += " style=\"cursor:hand;\"";
  523.       str += " onclick=\"namosw_l_expand("+layer.list.id+");\"><img src=\"collapsed.gif\" name=\"_img"+layer.list.id+"\" border='0'></a></td>";
  524.     } else {
  525.       str += "<td width=15 nowrap> </td>";
  526.     }
  527.     str += "<td height="+(this.height-3)+" width="+(this.width-15-this.indent)+" valign='middle' align='left'>";
  528.  
  529.     if (layer.url)       str += "<a href=\"" + layer.url + "\" target=\"" + layer.frame + "\" style=\"text-decoration:none;\">";
  530.     if (this.font_start) str += this.font_start;
  531.     str += layer.text;
  532.     if (this.font_end) str += this.font_end;
  533.     if (layer.url)       str += "</a>";
  534.     str += "</td></table>";
  535.  
  536.     str = str.replace("span", "span id='namoswlistspan" + layer.lid + "'");
  537.  
  538.     if (navigator.appName.indexOf('Netscape', 0) != -1) {
  539.       layer.document.writeln(str);
  540.       layer.document.close();
  541.     } else {
  542.       layer.innerHTML = str;
  543.       layer.span = document.all['namoswlistspan'+layer.lid];
  544.     }
  545.     if (layer.type == 'list' && layer.list.visible)
  546.       this.items[i].list.write();
  547.   }
  548.   this.made = true;
  549. }
  550.  
  551. function namosw_l_show() {
  552.   var layer;
  553.   for(var i = 0; i < this.items.length; i++) { 
  554.     layer = this.items[i];
  555.     namosw_l_setclip(layer, 0, this.width, 0, this.height-1);
  556.     if (navigator.appName.indexOf('Netscape', 0) != -1) {
  557.       if (layer.oBgColor) layer.document.bgColor = layer.oBgColor;
  558.       else layer.document.bgColor = this.bgColor;
  559.     } else {
  560.       if (layer.oBgColor) layer.style.backgroundColor = layer.oBgColor;
  561.       else layer.style.backgroundColor = this.bgColor;
  562.     }
  563.     if (layer.type == 'list' && layer.list.visible)
  564.       layer.list.show();
  565.   }
  566.   this.shown = true;
  567. }
  568.  
  569. function namosw_l_update(parent_visible, x, y) {
  570.   var top = y, layer, list;
  571.   for(var i = 0; i < this.items.length; i++) { 
  572.     layer = this.items[i];
  573.     list  = layer.list;
  574.     if (this.visible && parent_visible) {
  575.       if (navigator.appName.indexOf('Netscape', 0) != -1) {
  576.     layer.visibility = "visible";
  577.     layer.top = top;
  578.     layer.left = x;
  579.       } else {
  580.     layer.style.visibility = "visible";
  581.     layer.style.pixelTop   = top;
  582.     layer.style.pixelLeft  = x;    
  583. //    if (layer.url) layer.style.cursor = "hand";
  584.       }
  585.       top += this.height;
  586.     } else {
  587.       if (navigator.appName.indexOf('Netscape', 0) != -1) layer.visibility = "hidden";
  588.       else layer.style.visibility = "hidden";
  589.     }
  590.     if (layer.type == 'list') {
  591.       if (list.visible) {
  592.         if (!list.made)  list.write();
  593.         if (!list.shown) list.show();
  594.         if (navigator.appName.indexOf('Netscape', 0) != -1) layer.document.images[0].src = "collapsed.gif";
  595.     else eval('document.images._img'+list.id+'.src = "collapsed.gif"');
  596.       } else {
  597.     if (navigator.appName.indexOf('Netscape', 0) != -1) layer.document.images[0].src = "expanded.gif";
  598.     else eval('document.images._img'+list.id+'.src = "expanded.gif"');
  599.       }
  600.       if (list.made)
  601.         top = list.update(this.visible && parent_visible, x, top);
  602.     }
  603.   }
  604.   return top;
  605. }
  606.  
  607. function namosw_l_updateparent(parent_id) {
  608.   this.parent_id = parent_id;
  609.   for(var i = 0; i < this.items.length; i++)
  610.     if (this.items[i].type == 'list')
  611.       this.items[i].list.updateparent(parent_id);
  612. }
  613.  
  614. function namosw_l_expand(i) {
  615.   document.namosw_lists[i].visible = !document.namosw_lists[i].visible;
  616.   list = document.namosw_lists[document.namosw_lists[i].parent_id];
  617.   list.update(true, list.x, list.y);
  618. }
  619.  
  620. function namosw_l_make(x, y) {
  621.   this.updateparent(this.id);
  622.   this.write();
  623.   this.show();
  624.   this.update(true, x, y);
  625.   this.x = x; 
  626.   this.y = y;
  627. }
  628.  
  629. function namosw_l_additem(text, url, frame) {
  630.   var layer = null;
  631.   if (navigator.appName.indexOf('Netscape', 0) != -1 && this.parent)
  632.     layer = eval('this.parent.document.layers.namoswlistitem'+document.namosw_lists.lid);
  633.   else
  634.     layer = eval('document.all.namoswlistitem'+document.namosw_lists.lid);
  635.   if (layer == null) {
  636.     if (navigator.appName.indexOf('Netscape', 0) != -1) 
  637.       layer = this.parent ? new Layer(this.width, this.parent) : new Layer(this.width);
  638.   }
  639.   if (layer == null) return;
  640.  
  641.   if (url)   layer.url   = url;
  642.   if (frame) {
  643.     if (frame.indexOf('parent.') != 0)
  644.       layer.frame = "_" + frame;
  645.     else
  646.       layer.frame = frame.substring(7, frame.length);
  647.   }
  648.   layer.type = 'item';
  649.   layer.text = text;
  650.   layer.lid  = document.namosw_lists.lid;
  651.   this.items[this.items.length] = layer;
  652.   layer.hbgColor = this.hbgColor;
  653.   layer.oBgColor = this.bgColor;
  654.   layer.fgColor = this.fgColor;
  655.   layer.hfgColor = this.hfgColor;
  656.   if (layer.captureEvents)
  657.     layer.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT|Event.MOUSEUP);
  658.   layer.onmouseover = namosw_l_onmouseover;
  659.   layer.onmouseout  = namosw_l_onmouseout;
  660. //  layer.onmouseup   = namosw_l_onmouseup;
  661.   document.namosw_lists.lid++;
  662. }
  663.  
  664. function namosw_l_addlist(list, text, url, frame) {
  665.   var layer = null;
  666.  
  667.   if (navigator.appName.indexOf('Netscape', 0) != -1 && this.parent)
  668.     layer = eval('this.parent.document.layers.namoswlistitem'+document.namosw_lists.lid);
  669.   else
  670.     layer = eval('document.all.namoswlistitem'+document.namosw_lists.lid);
  671.   if (layer == null) {
  672.     if (navigator.appName.indexOf('Netscape', 0) != -1) 
  673.       layer = this.parent ? new Layer(this.width, this.parent) : new Layer(this.width);
  674.   }
  675.   if (layer == null) return;
  676.  
  677.   if (url)   layer.url   = url;
  678.   if (frame) {
  679.     if (frame.indexOf('parent.') != 0)
  680.       layer.frame = "_" + frame;
  681.     else
  682.       layer.frame = frame.substring(7, frame.length);
  683.   }
  684.   layer.list = list;
  685.   layer.type = 'list';
  686.   layer.text = text;
  687.   layer.lid  = document.namosw_lists.lid;
  688.   this.items[this.items.length] = layer;
  689.   list.parent = this;
  690.   layer.hbgColor = this.hbgColor;
  691.   layer.oBgColor = this.bgColor;
  692.   layer.fgColor = this.fgColor;
  693.   layer.hfgColor = this.hfgColor;
  694.   if (layer.captureEvents)
  695.     layer.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT|Event.MOUSEUP);
  696.   layer.onmouseover = namosw_l_onmouseover;
  697.   layer.onmouseout  = namosw_l_onmouseout;
  698. //  layer.onmouseup   = namosw_l_onmouseup;
  699.   document.namosw_lists.lid++;
  700. }
  701.  
  702. function namosw_l_onmouseover()
  703. {
  704.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  705.     if (this.hbgColor)
  706.       this.bgColor = this.hbgColor;
  707.   } else {
  708.     if (this.hbgColor) this.style.backgroundColor = this.hbgColor;
  709.     if (this.hfgColor) this.span.style.color = this.hfgColor;
  710.   }
  711.   if (this.url) self.status = this.url;
  712. }
  713.  
  714. function namosw_l_onmouseout()
  715. {
  716.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  717.     this.bgColor = this.oBgColor;
  718.   } else  {
  719.     this.style.backgroundColor = this.oBgColor;
  720.     this.span.style.color = this.fgColor;
  721.   }
  722.   if (this.url) self.status = '';
  723. }
  724.  
  725. function namosw_l_onmouseup()
  726. {
  727.   if (this.url) {
  728.     if (this.frame == 'blank') {
  729.       window.open(this.url, 'win1');
  730.     } else {
  731.       var frame_obj;
  732.       if ((frame_obj = eval(this.frame)) != null)
  733.         frame_obj.location = this.url;
  734.     }
  735.   }
  736. }
  737.  
  738. function namosw_init_slide_layers()
  739. {
  740.   var layer;
  741.   var i;
  742.   var args = namosw_init_slide_layers.arguments;
  743.  
  744.   for (i = 0; i < args.length; i += 2) {
  745.       if (args[i] == '')
  746.         continue;
  747.       if (navigator.appName.indexOf('Netscape', 0) != -1) {
  748.     layer = document.layers[args[i]];
  749.         if (args[i+1] == 1)
  750.           layer.left = -layer.clip.width  + 5;
  751.         else if (args[i+1] == 2)
  752.           layer.top  = -layer.clip.height + 5;
  753.     layer._sl_dir    = (layer.top < 0) ? 'v' : ((layer.left < 0) ? 'h' : '');
  754.         if (layer._sl_dir == '') return;
  755.     layer._sl_maxpos = 0
  756.     layer._sl_minpos = (layer.top < 0) ? layer.top : layer.left;
  757.         if (layer.document.namoswmenucontainer)
  758.           layer = layer.document.namoswmenucontainer;
  759.     if (layer.captureEvents)
  760.       layer.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT);
  761.       } else {
  762.     layer = document.all[args[i]];
  763.         if (args[i+1] == 1)
  764.           layer.style.pixelLeft = -layer.style.pixelWidth  + 5;
  765.         else if (args[i+1] == 2)
  766.           layer.style.pixelTop  = -layer.style.pixelHeight + 5;
  767.     layer._sl_dir    = (layer.style.pixelTop < 0) ? 'v' : ((layer.style.pixelLeft < 0) ? 'h' : '');
  768.         if (layer._sl_dir == '') return;
  769.     layer._sl_maxpos = 0;
  770.     layer._sl_minpos = (layer.style.pixelTop < 0) ? layer.style.pixelTop : layer.style.pixelLeft;
  771.       }
  772.       layer.onmouseover  = namosw_sl_mouseover;
  773.       layer.onmouseout   = namosw_sl_mouseout;
  774.   }
  775. }
  776.  
  777. function namosw_sl_mouseover() 
  778. {
  779.   var layer = this;
  780.   var name  = (navigator.appName.indexOf('Netscape', 0) != -1) ? layer.name : layer.id;
  781.   if (name == 'namoswmenucontainer') {
  782.     if (navigator.appName.indexOf('Netscape', 0) != -1) {        // redundant check
  783.       layer = layer.parentLayer;
  784.       name  = layer.name;
  785.     }
  786.   }
  787.   if (layer._up_interval)
  788.     return;
  789.   if (layer._down_interval) {
  790.     clearInterval(layer._down_interval);
  791.     layer._down_interval = 0;
  792.   }
  793.   layer._up_interval = setInterval("namosw_sl_mouseover2('" + name + "')", 50)
  794. }
  795.  
  796. function namosw_sl_mouseout() 
  797. {
  798.   var layer = this;
  799.   var name  = (navigator.appName.indexOf('Netscape', 0) != -1) ? layer.name : layer.id;
  800.   if (name == 'namoswmenucontainer') {
  801.     if (navigator.appName.indexOf('Netscape', 0) != -1) {        // redundant check
  802.       layer = layer.parentLayer;
  803.       name  = layer.name;
  804.     }
  805.   }
  806.   if (layer._down_interval)
  807.     return;
  808.   if (layer._up_interval) {
  809.     clearInterval(layer._up_interval)
  810.     layer._up_interval = 0;
  811.   }
  812.   layer._down_interval = setInterval("namosw_sl_mouseout2('" + name + "')", 50)
  813. }
  814.  
  815. function namosw_sl_mouseover2(name) 
  816. {
  817.   var layer;
  818.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  819.     layer = document.layers[name];
  820.     if (layer._sl_dir == 'h' && layer.left < layer._sl_maxpos)
  821.       layer.left += 5;
  822.     else if (layer._sl_dir == 'v' && layer.top < layer._sl_maxpos)
  823.       layer.top += 5;
  824.     else if (layer._up_interval) {
  825.       clearInterval(layer._up_interval);
  826.       layer._up_interval = 0;
  827.     }
  828.   } else {
  829.     layer = document.all[name];
  830.     if (layer._sl_dir == 'h' && layer.style.pixelLeft < layer._sl_maxpos)
  831.       layer.style.pixelLeft += 5
  832.     else if (layer._sl_dir == 'v' && layer.style.pixelTop < layer._sl_maxpos)
  833.       layer.style.pixelTop += 5;
  834.     else if (layer._up_interval) {
  835.       clearInterval(layer._up_interval);
  836.       layer._up_interval = 0;
  837.     }
  838.   }
  839. }
  840.  
  841. function namosw_sl_mouseout2(name) 
  842. {
  843.   var layer;
  844.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  845.     layer = document.layers[name];
  846.     if (layer._sl_dir == 'h' && layer._sl_minpos < layer.left)
  847.       layer.left -= 5;
  848.     else if (layer._sl_dir == 'v' && layer._sl_minpos < layer.top)
  849.       layer.top  -= 5;  
  850.     else if (layer._down_interval) {
  851.       clearInterval(layer._down_interval);
  852.       layer._down_interval = 0;
  853.     }
  854.   } else { 
  855.     layer = document.all[name];
  856.     if (layer._sl_dir == 'h' && layer._sl_minpos < layer.style.pixelLeft)
  857.       layer.style.pixelLeft -= 5;
  858.     else if (layer._sl_dir == 'v' && layer._sl_minpos < layer.style.pixelTop)
  859.       layer.style.pixelTop -= 5;
  860.     else if (layer._down_interval) {
  861.       clearInterval(layer._down_interval);
  862.       layer._down_interval = 0;
  863.     }
  864.   }
  865. }
  866.  
  867. function namosw_init_float_layers()
  868. {
  869.   var name;
  870.   var layer;
  871.   var i;
  872.   var j;
  873.  
  874.   j = 0;
  875.   document._float_layers = new Array(Math.max(1, namosw_init_float_layers.arguments.length/2));
  876.   for (i = 0; i < namosw_init_float_layers.arguments.length; i += 2) {
  877.     name  = namosw_init_float_layers.arguments[i];
  878.     if (name == '')
  879.       return;
  880.     if (navigator.appName.indexOf('Netscape', 0) != -1) {
  881.       layer = document.layers[name];
  882.       layer._fl_pos_left = layer.left;
  883.       layer._fl_pos_top  = layer.top;
  884.     } else {
  885.       layer = document.all[name];
  886.       layer._fl_pos_left = layer.style.pixelLeft;
  887.       layer._fl_pos_top  = layer.style.pixelTop;
  888.     }
  889.     layer._fl_pos = namosw_init_float_layers.arguments[i+1];
  890.     if (layer)
  891.       document._float_layers[j++] = layer;
  892.   }
  893.  
  894.   document._fl_interval = setInterval('namosw_process_float_layers()', 200);
  895. }
  896.  
  897. function namosw_page_width()
  898. {
  899.   return (navigator.appName.indexOf('Netscape', 0) != -1) ? innerWidth  : document.body.clientWidth;
  900. }
  901.  
  902. function namosw_page_height()
  903. {
  904.   return (navigator.appName.indexOf('Netscape', 0) != -1) ? innerHeight : document.body.clientHeight;
  905. }
  906.  
  907. function namosw_process_float_layers()
  908. {
  909.   if (document._float_layers) {
  910.       var i;
  911.       var layer;
  912.       for (i = 0; i < document._float_layers.length; i++) {
  913.       layer = document._float_layers[i];
  914.       if (navigator.appName.indexOf('Netscape', 0) != -1) {
  915.         if (layer._fl_pos == 1)
  916.           layer.left = layer._fl_pos_left + window.pageXOffset;
  917.         else if (layer._fl_pos == 2 || layer._fl_pos == 5) 
  918.           layer.left = window.pageXOffset;
  919.         else if (layer._fl_pos == 3 || layer._fl_pos == 6) 
  920.           layer.left = window.pageXOffset + (namosw_page_width() - layer.clip.width)/2;
  921.         else
  922.           layer.left = window.pageXOffset + namosw_page_width() - layer.clip.width - 16;
  923.         if (layer._fl_pos == 1)
  924.           layer.top = layer._fl_pos_top + window.pageYOffset;
  925.         else if (layer._fl_pos == 2 || layer._fl_pos == 3 || layer._fl_pos == 4)
  926.           layer.top = window.pageYOffset;
  927.         else
  928.           layer.top  = window.pageYOffset + namosw_page_height() - layer.clip.height;
  929.       } else {
  930.         if (layer._fl_pos == 1)
  931.           layer.style.pixelLeft = layer._fl_pos_left + document.body.scrollLeft;
  932.         else if (layer._fl_pos == 2 || layer._fl_pos == 5)
  933.           layer.style.pixelLeft = document.body.scrollLeft;
  934.         else if (layer._fl_pos == 3 || layer._fl_pos == 6)
  935.           layer.style.pixelLeft = document.body.scrollLeft + (namosw_page_width() - layer.style.pixelWidth)/2;
  936.         else
  937.           layer.style.pixelLeft = document.body.scrollLeft + namosw_page_width()  - layer.style.pixelWidth;
  938.         if (layer._fl_pos == 1)
  939.           layer.style.pixelTop = layer._fl_pos_top + document.body.scrollTop;
  940.         else if (layer._fl_pos == 2 || layer._fl_pos == 3 || layer._fl_pos == 4)
  941.           layer.style.pixelTop = document.body.scrollTop;
  942.         else
  943.           layer.style.pixelTop  = document.body.scrollTop  + namosw_page_height() - layer.style.pixelHeight;
  944.          }
  945.       }
  946.   }
  947. }
  948.  
  949. function namosw_init_clip_effect()
  950. {
  951.   var rect_left, rect_top, rect_width, rect_height;
  952.   var type, color;
  953.   var width, height;
  954.   var args = namosw_init_clip_effect.arguments;
  955.  
  956.   if (args[0] == 0 && args.length == 3) {
  957.     rect_left   = 0;
  958.     rect_top    = 0;
  959.     rect_width  = namosw_page_width();
  960.     rect_height = namosw_page_height();
  961.     type  = args[1];
  962.     color = args[2];
  963.  
  964.   } else if (args[0] == 1 && args.length == 4) {
  965.     if (args[1] == '')
  966.       return;
  967.     var layer;
  968.     if (navigator.appName.indexOf('Netscape', 0) != -1) {
  969.       layer = document.layers[args[1]];
  970.       if (layer) {
  971.         rect_left   = layer.left;
  972.     rect_top    = layer.top;
  973.     rect_width  = layer.clip.width;
  974.     rect_height = layer.clip.height;
  975.       } else {
  976.         return;
  977.       }
  978.     } else {
  979.       layer = document.all[args[1]];
  980.       if (layer) {
  981.         rect_left   = layer.style.pixelLeft;
  982.     rect_top    = layer.style.pixelTop;
  983.     rect_width  = layer.style.pixelWidth;
  984.     rect_height = layer.style.pixelHeight;
  985.       } else {
  986.         return;
  987.       }
  988.     }
  989.     type  = args[2];
  990.     color = args[3];
  991.  
  992.   } else if (args[0] == 2 && args.length == 7) {
  993.     rect_left   = args[1];
  994.     rect_top    = args[2];
  995.     rect_width  = args[3];
  996.     rect_height = args[4];
  997.     type        = args[5];
  998.     color       = args[6];
  999.  
  1000.   } else {
  1001.     return;
  1002.   }
  1003.  
  1004.   window._cl_style     = new Array();
  1005.   window._cl_interval  = 0;
  1006.   window._cl_count     = 0;
  1007.   window._cl_max_count = 40;
  1008.  
  1009.   if (type == 0) 
  1010.     window._cl_number = 8;
  1011.   else if (type == 1) 
  1012.     window._cl_number = Math.min(64, Math.ceil(rect_height/10));
  1013.   else if (type == 2) 
  1014.     window._cl_number = Math.min(64, Math.ceil(rect_width/10));
  1015.   
  1016.   window._cl_rect_left   = rect_left;
  1017.   window._cl_rect_top    = rect_top;
  1018.   window._cl_rect_width  = rect_width;
  1019.   window._cl_rect_height = rect_height;
  1020.  
  1021.   if (type == 0) {
  1022.     width  = Math.floor(rect_width  / window._cl_number);
  1023.     height = Math.floor(rect_height / window._cl_number);
  1024.  
  1025.     for (i = 0; i < window._cl_number*window._cl_number; i++) {
  1026.       if (navigator.appName.indexOf('Netscape', 0) != -1) {
  1027.         window._cl_style[i] = eval("document.layers.namoswcliplayer"+i)
  1028.         window._cl_style[i].clip.width  = width;
  1029.         window._cl_style[i].clip.height = height;
  1030.         window._cl_style[i].left = rect_left + (i%window._cl_number) * width;
  1031.         window._cl_style[i].top  = rect_top  + Math.floor(i/window._cl_number) * height;
  1032.     window._cl_style[i].bgColor = color;
  1033.       } else {
  1034.         window._cl_style[i] = eval("document.all.namoswcliplayer" + i + ".style");
  1035.         window._cl_style[i].pixelWidth  = width;
  1036.         window._cl_style[i].pixelHeight = height;
  1037.         window._cl_style[i].pixelLeft = rect_left + (i%window._cl_number) * width;
  1038.         window._cl_style[i].pixelTop  = rect_top  + Math.floor(i/window._cl_number) * height;
  1039.     window._cl_style[i].backgroundColor = color;
  1040.       }
  1041.     }
  1042.     window._cl_interval = setInterval("namosw_cl_remove_box()", 10);
  1043.  
  1044.   } else if (type == 1) {
  1045.     height = rect_height / window._cl_number;
  1046.  
  1047.     for (i = 0; i < window._cl_number; i++) {
  1048.       if (navigator.appName.indexOf('Netscape', 0) != -1) {
  1049.         window._cl_style[i] = eval("document.layers.namoswcliplayer"+i)
  1050.         window._cl_style[i].clip.width  = rect_width;
  1051.         window._cl_style[i].clip.height = height;
  1052.         window._cl_style[i].left = rect_left;
  1053.         window._cl_style[i].top  = rect_top  + i*height;
  1054.     window._cl_style[i].bgColor = color;
  1055.       } else {
  1056.         window._cl_style[i] = eval("document.all.namoswcliplayer" + i + ".style");
  1057.         window._cl_style[i].pixelWidth  = rect_width;
  1058.         window._cl_style[i].pixelHeight = height;
  1059.         window._cl_style[i].pixelLeft = rect_left;
  1060.         window._cl_style[i].pixelTop  = rect_top  + i*height;
  1061.         window._cl_style[i].clip = "rect(0 " + rect_width + " " + height + " 0)";
  1062.     window._cl_style[i].backgroundColor = color;
  1063.       }
  1064.     }
  1065.     window._cl_interval = setInterval("namosw_cl_change_clip1()", 10);
  1066.  
  1067.   } else if (type == 2) {
  1068.     width = rect_width / window._cl_number;
  1069.  
  1070.     for (i = 0; i < window._cl_number; i++) {
  1071.       if (navigator.appName.indexOf('Netscape', 0) != -1) {
  1072.         window._cl_style[i] = eval("document.layers.namoswcliplayer"+i);
  1073.         window._cl_style[i].clip.width  = width;
  1074.         window._cl_style[i].clip.height = rect_height;
  1075.         window._cl_style[i].left = rect_left + i*width;
  1076.         window._cl_style[i].top  = rect_top;
  1077.     window._cl_style[i].bgColor = color;
  1078.       } else {
  1079.         window._cl_style[i] = eval("document.all.namoswcliplayer" + i + ".style");
  1080.         window._cl_style[i].pixelWidth  = width;
  1081.         window._cl_style[i].pixelHeight = rect_height;
  1082.         window._cl_style[i].pixelLeft = rect_left + i*width;
  1083.         window._cl_style[i].pixelTop  = rect_top;
  1084.         window._cl_style[i].clip = "rect(0 " + width + " " + rect_height + " 0)";
  1085.     window._cl_style[i].backgroundColor = color;
  1086.       }
  1087.     }
  1088.     window._cl_interval = setInterval("namosw_cl_change_clip2()", 10);
  1089.  
  1090.   } else if (type == 3) {
  1091.     if (navigator.appName.indexOf('Netscape', 0) != -1) {
  1092.       window._cl_style[0] = eval("document.layers.namoswcliplayer"+0)
  1093.       window._cl_style[0].clip.width  = rect_width;
  1094.       window._cl_style[0].clip.height = rect_height;
  1095.       window._cl_style[0].left = rect_left;
  1096.       window._cl_style[0].top  = rect_top;
  1097.       window._cl_style[0].bgColor = color;
  1098.     } else {
  1099.       window._cl_style[0] = eval("document.all.namoswcliplayer" + 0 + ".style");
  1100.       window._cl_style[0].pixelWidth  = rect_width;
  1101.       window._cl_style[0].pixelHeight = rect_height;
  1102.       window._cl_style[0].pixelLeft = rect_left;
  1103.       window._cl_style[0].pixelTop  = rect_top;
  1104.       window._cl_style[0].backgroundColor = color;
  1105.     }
  1106.     window._cl_interval = setInterval("namosw_cl_change_clip3()", 10);
  1107.  
  1108.   } else if (type == 4 || type == 5 || type == 6) {
  1109.     if (navigator.appName.indexOf('Netscape', 0) != -1) {
  1110.       if (type == 4 || type == 5) {
  1111.         window._cl_style[0] = document.layers.namoswcliplayer0;
  1112.         window._cl_style[0].clip.width  = rect_width/2;
  1113.         window._cl_style[0].clip.height = rect_height;
  1114.         window._cl_style[0].left = rect_left;
  1115.         window._cl_style[0].top  = rect_top;
  1116.         window._cl_style[0].bgColor = color;
  1117.  
  1118.         window._cl_style[1] = document.layers.namoswcliplayer1;
  1119.         window._cl_style[1].clip.width  = rect_width/2;
  1120.         window._cl_style[1].clip.height = rect_height;
  1121.         window._cl_style[1].left = rect_left + rect_width/2;
  1122.         window._cl_style[1].top  = rect_top;
  1123.         window._cl_style[1].bgColor = color;
  1124.       }
  1125.  
  1126.       if (type == 4 || type == 6) {
  1127.         window._cl_style[2] = document.layers.namoswcliplayer2;
  1128.         window._cl_style[2].clip.width  = rect_width;
  1129.         window._cl_style[2].clip.height = rect_height/2;
  1130.         window._cl_style[2].left = rect_left;
  1131.         window._cl_style[2].top  = rect_top;
  1132.         window._cl_style[2].bgColor = color;
  1133.  
  1134.         window._cl_style[3] = document.layers.namoswcliplayer3;
  1135.         window._cl_style[3].clip.width  = rect_width;
  1136.         window._cl_style[3].clip.height = rect_height/2;
  1137.         window._cl_style[3].left = rect_left;
  1138.         window._cl_style[3].top  = rect_top + rect_height/2;
  1139.         window._cl_style[3].bgColor = color;
  1140.       }
  1141.     } else {
  1142.       if (type == 4 || type == 5) {
  1143.         window._cl_style[0] = document.all.namoswcliplayer0.style;
  1144.         window._cl_style[0].pixelWidth  = rect_width/2;
  1145.         window._cl_style[0].pixelHeight = rect_height;
  1146.         window._cl_style[0].pixelLeft = rect_left;
  1147.         window._cl_style[0].pixelTop  = rect_top;
  1148.         window._cl_style[0].clip      = "rect(0" + (rect_width/2) + " " + rect_height + " 0)";
  1149.     window._cl_style[0].backgroundColor = color;
  1150.  
  1151.         window._cl_style[1] = document.all.namoswcliplayer1.style;
  1152.         window._cl_style[1].pixelWidth  = rect_width/2;
  1153.         window._cl_style[1].pixelHeight = rect_height;
  1154.         window._cl_style[1].pixelLeft = rect_left + rect_width/2;
  1155.         window._cl_style[1].pixelTop  = rect_top;
  1156.         window._cl_style[1].clip      = "rect(0" + (rect_width/2) + " " + rect_height + " 0)";
  1157.     window._cl_style[1].backgroundColor = color;
  1158.       }
  1159.  
  1160.       if (type == 4 || type == 6) {
  1161.         window._cl_style[2] = document.all.namoswcliplayer2.style;
  1162.         window._cl_style[2].pixelWidth  = rect_width;
  1163.         window._cl_style[2].pixelHeight = rect_height/2;
  1164.         window._cl_style[2].pixelLeft = rect_left;
  1165.         window._cl_style[2].pixelTop  = rect_top;
  1166.         window._cl_style[2].clip      = "rect(0" + rect_width + " " + (rect_height/2) + " 0)";
  1167.     window._cl_style[2].backgroundColor = color;
  1168.  
  1169.         window._cl_style[3] = document.all.namoswcliplayer3.style;
  1170.         window._cl_style[3].pixelWidth  = rect_width;
  1171.         window._cl_style[3].pixelHeight = rect_height/2;
  1172.         window._cl_style[3].pixelLeft = rect_left;
  1173.         window._cl_style[3].pixelTop  = rect_top + rect_height/2;
  1174.         window._cl_style[3].clip      = "rect(0" + rect_width + " " + (rect_height/2) + " 0)";
  1175.     window._cl_style[3].backgroundColor = color;
  1176.       }
  1177.  
  1178.     }
  1179.     window._cl_interval = setInterval("namosw_cl_change_clip456(" + type + ")", 10);
  1180.   }
  1181. }
  1182.  
  1183. function namosw_cl_change_clip1()
  1184. {
  1185.   var height = window._cl_rect_height  / window._cl_number;
  1186.  
  1187.   window._cl_count += 2;
  1188.  
  1189.   for (i = 0; i < window._cl_number; i++) {
  1190.     if (navigator.appName.indexOf('Netscape', 0) != -1) {
  1191.       window._cl_style[i].clip.top  = window._cl_count;
  1192.     } else {
  1193.       window._cl_style[i].clip = "rect(" + window._cl_count + " auto " + height + " auto)";
  1194.     }
  1195.   }
  1196.  
  1197.   if (height <= window._cl_count)
  1198.     clearInterval(window._cl_interval);
  1199. }
  1200.  
  1201. function namosw_cl_change_clip2()
  1202. {
  1203.   var width = window._cl_rect_width  / window._cl_number;
  1204.  
  1205.   window._cl_count += 2;
  1206.  
  1207.   for (i = 0; i < window._cl_number; i++) {
  1208.     if (navigator.appName.indexOf('Netscape', 0) != -1) {
  1209.       window._cl_style[i].clip.left  = window._cl_count;
  1210.     } else {
  1211.       window._cl_style[i].clip = "rect(auto " + width + " auto " + window._cl_count + ")";
  1212.     }
  1213.   }
  1214.  
  1215.   if (width <= window._cl_count)
  1216.     clearInterval(window._cl_interval);
  1217. }
  1218.  
  1219. function namosw_cl_change_clip3()
  1220. {
  1221.   var rect_width  = window._cl_rect_width;
  1222.   var rect_height = window._cl_rect_height;
  1223.  
  1224.   var x_delta = rect_width/2/window._cl_max_count*window._cl_count;
  1225.   var y_delta = rect_height/2/window._cl_max_count*window._cl_count;
  1226.  
  1227.   window._cl_count++;
  1228.  
  1229.     if (navigator.appName.indexOf('Netscape', 0) != -1) {
  1230.       window._cl_style[0].clip.left = x_delta;
  1231.       window._cl_style[0].clip.top  = y_delta;
  1232.       window._cl_style[0].clip.right  = rect_width  - x_delta;
  1233.       window._cl_style[0].clip.bottom = rect_height - y_delta;
  1234.     } else {
  1235.       var top, right, bottom, left;
  1236.       top    = y_delta;
  1237.       right  = rect_width - x_delta;
  1238.       bottom = rect_height - y_delta;
  1239.       left   = x_delta;
  1240.       window._cl_style[0].clip = "rect(" + top + " " + right + " " + bottom + " " + left + ")";
  1241.     }  
  1242.  
  1243.   if (window._cl_max_count < window._cl_count)
  1244.     clearInterval(window._cl_interval);
  1245. }
  1246.  
  1247. function namosw_cl_change_clip456(type)
  1248. {
  1249.   var rect_width  = window._cl_rect_width;
  1250.   var rect_height = window._cl_rect_height;
  1251.  
  1252.   var x_delta = rect_width/2/window._cl_max_count*window._cl_count;
  1253.   var y_delta = rect_height/2/window._cl_max_count*window._cl_count;
  1254.  
  1255.   window._cl_count++;
  1256.  
  1257.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  1258.     if (type == 4 || type == 5) {
  1259.       window._cl_style[0].clip.right = rect_width/2 - x_delta;
  1260.       window._cl_style[1].clip.left  = x_delta;
  1261.     }
  1262.     if (type == 4 || type == 6) {
  1263.       window._cl_style[2].clip.bottom = rect_height/2 - y_delta;
  1264.       window._cl_style[3].clip.top    = y_delta;
  1265.     }
  1266.   } else {
  1267.     var top, right, bottom, left;
  1268.  
  1269.     right   = rect_width/2 - x_delta;
  1270.     left    = x_delta;
  1271.     bottom  = rect_height/2 - y_delta;
  1272.     top     = y_delta;
  1273.  
  1274.     if (type == 4 || type == 5) {
  1275.       window._cl_style[0].clip = "rect(auto " + right + " auto 0)";
  1276.       window._cl_style[1].clip = "rect(auto " + (rect_width/2) + " auto " + left + ")";
  1277.     }
  1278.     if (type == 4 || type == 6) {
  1279.       window._cl_style[2].clip = "rect(0 auto " + bottom + " auto)";
  1280.       window._cl_style[3].clip = "rect(" + top + " auto " + (rect_height/2) + " auto)";
  1281.     }
  1282.   }  
  1283.  
  1284.   if (window._cl_max_count < window._cl_count)
  1285.     clearInterval(window._cl_interval);
  1286. }
  1287.  
  1288. function namosw_cl_remove_box() 
  1289. {
  1290.   var i;
  1291.  
  1292.   i = Math.round(Math.random()*(window._cl_number*window._cl_number-1));
  1293.   while (window._cl_style[i].visibility == 'hidden' || window._cl_style[i].visibility == 'hide') 
  1294.     i = Math.round(Math.random()*(window._cl_number*window._cl_number-1));
  1295.   window._cl_style[i].visibility = 'hidden';
  1296.  
  1297.   window._cl_count++;
  1298.   if (window._cl_number*window._cl_number <= window._cl_count)
  1299.     clearInterval(window._cl_interval);
  1300. }
  1301.  
  1302. function namosw_menu_write(itemlist, width, layername, bgcolor, bdcolor, fontname, fontsize, textdeco, color, hitextdeco, hicolor, visible)
  1303. {
  1304.   var i;
  1305.   var layer, str;
  1306.  
  1307.   if (layername == '')
  1308.     return;
  1309.   str = "";
  1310.   for (i = 0; i < itemlist.length; i += 2) {
  1311.     str += "<p style='margin-bottom:1;margin-top:5'>";
  1312.     str += "<a href='" + itemlist[i+1] + "'";
  1313.     if (itemlist.target) str += " target='" + itemlist.target[i/2] + "'";
  1314.     str += " onmouseover=\"namosw_menu_mouseover(this, '" + hitextdeco + "', '" + hicolor + "');\" onmouseout=\"namosw_menu_mouseout(this);\" ";
  1315.     str += "style='";
  1316.     if (fontname != '') str += "font-family:" + fontname + ";";
  1317.     if (fontsize != '') str += "font-size:" + fontsize + "pt;";
  1318.     if (color    != '') str += "color:" + color + ";";
  1319.     if (textdeco != '') str += "text-decoration:" + textdeco + ";";
  1320.     str += "'>";
  1321.     str += itemlist[i] + "</font></a>\n";
  1322.   }
  1323.     
  1324.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  1325.     layer = eval("document." + layername);
  1326.     layer.document.open('text/html');
  1327.     layer.document.writeln("<div id=\"namoswmenucontainer\" style=\"position:absolute; padding:4px; left:1px; top:1px; z-index:1;\">" + str + "</div>");
  1328.     layer.document.close();
  1329.     var layer2 = layer.document.namoswmenucontainer;
  1330.     layer2.clip.width  = width-2;
  1331.     layer2.clip.height = layer2.clip.height + 6;
  1332.     layer2.bgColor     = bgcolor;
  1333.     layer.clip.width  = width;
  1334.     layer.clip.height = layer2.clip.height + 2;
  1335.     layer.bgColor = bdcolor;
  1336.     layer.visibility = visible ? 'show' : 'hide';
  1337.   } else {
  1338.     layer = document.all[layername];
  1339.     layer.innerHTML = str;
  1340.     layer.style.pixelWidth = width;
  1341.     layer.style.padding = '4px';
  1342.     layer.style.backgroundColor = bgcolor;
  1343.     layer.style.borderColor = bdcolor;
  1344.     layer.style.borderWidth = '1px';
  1345.     layer.style.borderStyle = 'solid';
  1346.     layer.style.visibility = visible ? 'visible' : 'hidden';
  1347.   }
  1348. }
  1349.  
  1350. function namosw_menu_mouseover(el, td, color)
  1351. {
  1352.   if (document.all) {
  1353.     el.oldtd    = el.style.textDecoration;
  1354.     el.oldcolor = el.style.color;
  1355.     el.style.textDecoration = td;
  1356.     el.style.color = color;
  1357.   }
  1358. }
  1359.  
  1360. function namosw_menu_mouseout(el)
  1361. {
  1362.   if (document.all) {
  1363.     if (el.oldtd) {
  1364.       el.style.textDecoration = el.oldtd;
  1365.       el.style.color = el.oldcolor;
  1366.     }
  1367.   }
  1368. }
  1369.  
  1370. function namosw_popuplayer(layername, nsdoc)
  1371. {
  1372.   var layer;
  1373.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  1374.     layer = eval(nsdoc+'.'+layername);
  1375.     if (layer.visibility == 'show') {
  1376.       namosw_hidelayer();
  1377.     } else {
  1378.       layer.visibility    = 'show';
  1379.       window._popup_layer = layer;
  1380.     }
  1381.   } else {
  1382.     layer = eval('document.all.'+layername);
  1383.     if (layer.style.visibility == 'visible') {
  1384.       namosw_hidelayer();
  1385.     } else {
  1386.       layer.style.visibility = 'visible';
  1387.       window._popup_layer    = layer;
  1388.       document.body._oldonclick = document.body.onclick;
  1389.       document.body.onclick  = namosw_hidelayer;
  1390.       event.cancelBubble     = true;
  1391.     }
  1392.   }
  1393. }
  1394.  
  1395. function namosw_hidelayer()
  1396. {
  1397.   if (navigator.appName.indexOf('Netscape', 0) != -1) {
  1398.     if (window._popup_layer) {
  1399.       window._popup_layer.visibility = 'hide';
  1400.       window._popup_layer = 0;
  1401.     }
  1402.   } else {
  1403.     if (window._popup_layer) {
  1404.       window._popup_layer.style.visibility = 'hidden';
  1405.       window._popup_layer = 0;
  1406.     }
  1407.     document.body.onclick = document.body._oldonclick;
  1408.   }
  1409. }
  1410.  
  1411. function namosw_init_menu()
  1412. {
  1413. }
  1414.  
  1415. function namosw_fade_background(r1, g1, b1, r2, g2, b2, maxstep) 
  1416. {
  1417.   var i, r, g, b;
  1418.   for (i = 0; i <= maxstep; i++) {
  1419.     r = Math.floor((r1*(maxstep-i) + r2*i)/maxstep);
  1420.     g = Math.floor((g1*(maxstep-i) + g2*i)/maxstep);
  1421.     b = Math.floor((b1*(maxstep-i) + b2*i)/maxstep);
  1422.     namosw_fade_setbgcolor(r, g, b)
  1423.   }
  1424. }
  1425.  
  1426. function namosw_fade_setbgcolor() 
  1427. {
  1428.   var hexchars = '0123456789abcdef';
  1429.   var i;
  1430.   var color_str = '#';
  1431.   var args = namosw_fade_setbgcolor.arguments;
  1432.   if (args.length != 3)
  1433.     return;
  1434.   for (i = 0; i < 3; i++) {
  1435.     color_str += hexchars.charAt(Math.floor(args[i]/16));
  1436.     color_str += hexchars.charAt(args[i]%16);
  1437.   }
  1438.   document.bgColor = color_str;
  1439. }
  1440.  
  1441. function namosw_init_marquee(layername1, layername2, dir, scrollamount, scrolldelay, behavior, loop, cliplen, length, height) 
  1442. {
  1443.   var layer1, layer2;
  1444.  
  1445.   if (layername1 == '' || layername2 == '')
  1446.     return;
  1447.   if (document.all) {
  1448.     layer1 = document.all[layername1];
  1449.     if (!layer1) return;
  1450.     layer2 = document.all[layername2];
  1451.  
  1452.     if (dir == 'l' || dir == 'r') {
  1453.       layer1.style.clip = 'rect(auto ' + cliplen + ' auto 0)';
  1454.       layer1.style.pixelWidth = cliplen;
  1455.       if (behavior == 's' || behavior == 'l')
  1456.         layer2.style.pixelLeft = (dir == 'l') ? cliplen : -length;
  1457.       else
  1458.         layer2.style.pixelLeft = (dir == 'l') ? Math.max(0, -length+cliplen) : Math.min(0, -length+cliplen);
  1459.     } else if (dir == 't' || dir == 'b') {
  1460.       layer1.style.clip = 'rect(0 auto ' + cliplen + ' auto)';
  1461.       layer1.style.pixelHeight = cliplen;
  1462.       if (behavior == 's' || behavior == 'l')
  1463.         layer2.style.pixelTop = (dir == 't') ? cliplen : -length;
  1464.       else
  1465.         layer2.style.pixelTop = (dir == 't') ? Math.max(0, -length+cliplen) : Math.min(0, -length+cliplen);
  1466.     }
  1467.   } else {
  1468.     layer1 = document.layers[layername1];
  1469.     if (!layer1) return;
  1470.     layer2 = document.layers[layername1].document.layers[layername2];
  1471.  
  1472.     if (dir == 'l' || dir == 'r') {    
  1473.       layer1.clip.width  = cliplen;
  1474.       layer1.clip.height = height;
  1475.       if (behavior == 's' || behavior == 'l')
  1476.         layer2.left = (dir == 'l') ? cliplen : -length;
  1477.       else
  1478.         layer2.left = (dir == 'l') ? Math.max(0, -length+cliplen) : Math.min(0, -length+cliplen);
  1479.     } else if (dir == 't' || dir == 'b') {
  1480.       layer1.clip.height = cliplen;
  1481.       if (behavior == 's' || behavior == 'l')
  1482.         layer2.top = (dir == 't') ? cliplen : -length;
  1483.       else
  1484.         layer2.top = (dir == 't') ? Math.max(0, -length+cliplen) : Math.min(0, -length+cliplen);
  1485.     }
  1486.   }
  1487.  
  1488.   layer1.m_layer    = layer2;
  1489.   layer1.m_dir      = dir;
  1490.   layer1.m_amount   = scrollamount;
  1491.   layer1.m_delay    = scrolldelay;
  1492.   layer1.m_behavior = behavior;
  1493.   layer1.m_loop     = loop;
  1494.   layer1.m_cliplen  = cliplen;
  1495.   layer1.m_length   = length;
  1496.  
  1497.   if (layer1.m_behavior == 'l') {
  1498.     if (layer1.m_loop == -1)
  1499.       layer1.m_loop = 1;
  1500.   }
  1501.  
  1502.   layer1.m_interval = setInterval("namosw_marquee_scroll('" + layername1 + "');", scrolldelay);
  1503. }
  1504.  
  1505. function namosw_marquee_scroll(layername) 
  1506. {
  1507. // local function
  1508. // ------------------------
  1509. function get_left(l)
  1510. {
  1511.   return (navigator.appName.indexOf('Netscape', 0) != -1) ? l.left : l.style.pixelLeft;
  1512. }
  1513.  
  1514. function set_left(l, value)
  1515. {
  1516.   if (navigator.appName.indexOf('Netscape', 0) != -1) 
  1517.     l.left = value;
  1518.   else
  1519.     l.style.pixelLeft = value;
  1520. }
  1521.  
  1522. function get_top(l)
  1523. {
  1524.   return (navigator.appName.indexOf('Netscape', 0) != -1) ? l.top : l.style.pixelTop;
  1525. }
  1526.  
  1527. function set_top(l, value)
  1528. {
  1529.   if (navigator.appName.indexOf('Netscape', 0) != -1) 
  1530.     l.top = value;
  1531.   else
  1532.     l.style.pixelTop = value;
  1533. }
  1534. // ------------------------
  1535.  
  1536.   var layer;
  1537.   var layer2;
  1538.   if (document.all) {
  1539.     layer = document.all[layername];
  1540.   } else {
  1541.     layer = document.layers[layername];
  1542.   }
  1543.   layer2 = layer.m_layer;
  1544.  
  1545.   if (layer.m_behavior == 's') {            // scroll
  1546.     if (layer.m_dir == 'l') {
  1547.       if (get_left(layer2) >= -layer.m_length) {
  1548.         set_left(layer2, get_left(layer2)-layer.m_amount);
  1549.       } else {
  1550.         if (layer.m_loop > 0) layer.m_loop--;
  1551.         set_left(layer2, layer.m_cliplen);
  1552.       }
  1553.     } else if (layer.m_dir == 'r') {
  1554.       if (get_left(layer2) < layer.m_cliplen) {
  1555.         set_left(layer2, get_left(layer2) + layer.m_amount);
  1556.       } else {
  1557.         if (layer.m_loop > 0) layer.m_loop--;
  1558.         set_left(layer2, -layer.m_length);
  1559.       }
  1560.     } else if (layer.m_dir == 't') {
  1561.       if (get_top(layer2) >= -layer.m_length) {
  1562.         set_top(layer2, get_top(layer2) - layer.m_amount);
  1563.       } else {
  1564.         if (layer.m_loop > 0) layer.m_loop--;
  1565.         set_top(layer2, layer.m_cliplen);
  1566.       }
  1567.     } else if (layer.m_dir == 'b') {
  1568.       if (get_top(layer2) < layer.m_cliplen) {
  1569.         set_top(layer2, get_top(layer2) + layer.m_amount);
  1570.       } else {
  1571.         if (layer.m_loop > 0) layer.m_loop--;
  1572.         set_top(layer2, -layer.m_length);
  1573.       }
  1574.     }
  1575.     if (layer.m_loop == 0)
  1576.       clearInterval(layer.m_interval);
  1577.   } else if (layer.m_behavior == 'a') {            // alternate
  1578.     if (layer.m_dir == 'l') {
  1579.       if (get_left(layer2) > Math.min(0, -layer.m_length+layer.m_cliplen)) {
  1580.         set_left(layer2, get_left(layer2)-layer.m_amount);
  1581.       } else {
  1582.         if (layer.m_loop > 0) layer.m_loop--;
  1583.         layer.m_dir = 'r';
  1584.       }
  1585.     } else if (layer.m_dir == 'r') {
  1586.       if (get_left(layer2) < Math.max(0, -layer.m_length+layer.m_cliplen)) {
  1587.         set_left(layer2, get_left(layer2)+layer.m_amount);
  1588.       } else {
  1589.         if (layer.m_loop > 0) layer.m_loop--;
  1590.     layer.m_dir = 'l';
  1591.       }
  1592.     } else if (layer.m_dir == 't') {
  1593.       if (get_top(layer2) > Math.min(0, -layer.m_length+layer.m_cliplen)) {
  1594.         set_top(layer2, get_top(layer2) - layer.m_amount);
  1595.       } else {
  1596.         if (layer.m_loop > 0) layer.m_loop--;
  1597.         layer.m_dir = 'b';
  1598.       }
  1599.     } else if (layer.m_dir == 'b') {
  1600.       if (get_top(layer2) < Math.max(0, -layer.m_length+layer.m_cliplen)) {
  1601.         set_top(layer2, get_top(layer2)+layer.m_amount);
  1602.       } else {
  1603.         if (layer.m_loop > 0) layer.m_loop--;
  1604.     layer.m_dir = 't';
  1605.       }
  1606.     }
  1607.   } else if (layer.m_behavior == 'l') {            // slide
  1608.     if (layer.m_dir == 'l') {
  1609.       if (get_left(layer2) > 0) {
  1610.         set_left(layer2, Math.max(0, get_left(layer2)-layer.m_amount));
  1611.       } else {
  1612.         if (layer.m_loop > 0) layer.m_loop--;
  1613.     set_left(layer2, layer.m_cliplen);
  1614.       }
  1615.     } else if (layer.m_dir == 'r') {
  1616.       if (get_left(layer2)+layer.m_length < layer.m_cliplen) {
  1617.         set_left(layer2, Math.min(get_left(layer2)+layer.m_amount, layer.m_cliplen-layer.m_length));
  1618.       } else {
  1619.         if (layer.m_loop > 0) layer.m_loop--;
  1620.         set_left(layer2, -layer.m_length);
  1621.       }
  1622.     } else if (layer.m_dir == 't') {
  1623.       if (get_top(layer2) > 0) {
  1624.         set_top(layer2, Math.max(0, get_top(layer2) - layer.m_amount));
  1625.       } else {
  1626.         if (layer.m_loop > 0) layer.m_loop--;
  1627.         set_top(layer2, layer.m_cliplen);
  1628.       }
  1629.     } else if (layer.m_dir == 'b') {
  1630.       if (get_top(layer2)+layer.m_length < layer.m_cliplen) {
  1631.         set_top(layer2, Math.min(get_top(layer2)+layer.m_amount, layer.m_cliplen-layer.m_length));
  1632.       } else {
  1633.         if (layer.m_loop > 0) layer.m_loop--;
  1634.         set_top(layer2, -layer.m_length);
  1635.       }
  1636.     }
  1637.     if (layer.m_loop == 0)
  1638.       clearInterval(layer.m_interval);
  1639.   }
  1640. }
  1641.  
  1642. function namosw_rotate_banner(name, time) 
  1643. {  
  1644. }  
  1645.  
  1646. function namosw_rotate_banner_go() 
  1647. {
  1648.   var targetstr = document._rotatetargets[document._rotate_no];
  1649.   if (targetstr == 'blank') {
  1650.     window.open(document._rotatelinks[document._rotate_no], 'win1');
  1651.   } else {
  1652.     var frameobj;
  1653.     if (targetstr == '') targetstr = 'self';
  1654.     if ((frameobj = eval(targetstr)) != null)
  1655.       frameobj.location = document._rotatelinks[document._rotate_no];
  1656.   }
  1657. }
  1658.  
  1659. function namosw_mouse_trail() {
  1660.   if (!document.nasw_mt_bounce) {
  1661.     nasw_mt_dots = new Array();
  1662.     document.nasw_mt_bounce = 0.75;  
  1663.     document.nasw_mt_seglen = 10;
  1664.     document.nasw_mt_sprgk = 10;
  1665.     document.nasw_mt_deltat = .01;
  1666.     document.nasw_mt_ygrav = 50;
  1667.     document.nasw_mt_resist = 10;
  1668.     document.nasw_mt_stopvel = 0.1;
  1669.     document.nasw_mt_mass = 1;
  1670.     document.nasw_mt_stopc = 0.1;
  1671.     document.nasw_mt_xgrv = 0;
  1672.     document.nasw_mt_xps = 0;
  1673.     document.nasw_mt_ndts = namosw_mouse_trail.arguments.length;
  1674.     document.nasw_mt_yps = 0;
  1675.     document.nasw_mt_dtsize = 11;
  1676.     document.nasw_mt_followmouse = true;
  1677.  
  1678.     if (navigator.appName=="Netscape") {
  1679.       document.captureEvents(Event.MOUSEMOVE);
  1680.       document.onMouseMove = namosw_MoveHandler;
  1681.     } else {
  1682.       document.onmousemove = namosw_MoveHandlerIE;
  1683.     }
  1684.   }
  1685.  
  1686.   var i = 0;
  1687.   for (i = 0; i < document.nasw_mt_ndts; i++)
  1688.     nasw_mt_dots[i] = new namosw_dot(namosw_mouse_trail.arguments[i]);
  1689.     
  1690.   for (i = 0; i < document.nasw_mt_ndts; i++) {
  1691.     nasw_mt_dots[i].obj.left = nasw_mt_dots[i].X;
  1692.     nasw_mt_dots[i].obj.top = nasw_mt_dots[i].Y;
  1693.   }
  1694.     
  1695.   if (navigator.appName=="Netscape")
  1696.     namosw_startanimate();
  1697.   else
  1698.     setTimeout("namosw_startanimate()", 1000);
  1699. }
  1700.  
  1701. function namosw_dot(layername) 
  1702. {
  1703.   this.X = document.nasw_mt_xps;
  1704.   this.Y = document.nasw_mt_yps;
  1705.   this.dx = 0;
  1706.   this.dy = 0;
  1707.   if (navigator.appName=="Netscape")
  1708.     this.obj = eval("document." + layername);
  1709.   else
  1710.     this.obj = eval(layername + ".style");
  1711. }
  1712.  
  1713. function namosw_startanimate() 
  1714. {    
  1715.   setInterval("namosw_mouse_trail_animate()", 20);
  1716. }
  1717.  
  1718. function namosw_setInitPositions()
  1719. {
  1720.   var startloc = document.all.tags("LI");
  1721.   var i = 0;
  1722.   for (i = 0; i < startloc.length && i < (document.nasw_mt_ndts-1); i++) {
  1723.     nasw_mt_dots[i+1].X = startloc[i].offsetLeft + 
  1724.                   startloc[i].offsetParent.offsetLeft -document.nasw_mt_dtsize;
  1725.     nasw_mt_dots[i+1].Y = startloc[i].offsetTop +
  1726.                   startloc[i].offsetParent.offsetTop + 2*nasw_mt_dotsIZE;
  1727.   }
  1728.  
  1729.   nasw_mt_dots[0].X = nasw_mt_dots[1].X;
  1730.   nasw_mt_dots[0].Y = nasw_mt_dots[1].Y - document.nasw_mt_seglen;
  1731. }
  1732.  
  1733. function namosw_MoveHandler(e)
  1734. {
  1735.   document.nasw_mt_xps = e.pageX;
  1736.   document.nasw_mt_yps = e.pageY;      
  1737.   return true;
  1738. }
  1739.  
  1740. function namosw_MoveHandlerIE() {
  1741.   document.nasw_mt_xps = window.event.x + document.body.scrollLeft;
  1742.   document.nasw_mt_yps = window.event.y + document.body.scrollTop;      
  1743. }
  1744.  
  1745. function namosw_vec(X, Y)
  1746. {
  1747.   this.X = X;
  1748.   this.Y = Y;
  1749. }
  1750.  
  1751. function namosw_springForce(i, j, spring)
  1752. {
  1753.   var dx = (nasw_mt_dots[i].X - nasw_mt_dots[j].X);
  1754.   var dy = (nasw_mt_dots[i].Y - nasw_mt_dots[j].Y);
  1755.   var len = Math.sqrt(dx*dx + dy*dy);
  1756.   if (len > document.nasw_mt_seglen) {
  1757.     var springF = document.nasw_mt_sprgk * (len - document.nasw_mt_seglen);
  1758.     spring.X += (dx / len) * springF;
  1759.     spring.Y += (dy / len) * springF;
  1760.   }
  1761. }
  1762.  
  1763. function namosw_mouse_trail_animate() {    
  1764.   var start = 0;
  1765.   if (document.nasw_mt_followmouse) {
  1766.     nasw_mt_dots[0].X = document.nasw_mt_xps;
  1767.     nasw_mt_dots[0].Y = document.nasw_mt_yps;    
  1768.     nasw_mt_dots[0].obj.left = nasw_mt_dots[0].X;            
  1769.     nasw_mt_dots[0].obj.top =  nasw_mt_dots[0].Y;        
  1770.     start = 1;
  1771.   }
  1772.     
  1773.   for (i = start ; i < document.nasw_mt_ndts; i++ ) {
  1774.     var spring = new namosw_vec(0, 0);
  1775.       if (i > 0)
  1776.         namosw_springForce(i-1, i, spring);
  1777.       if (i < (document.nasw_mt_ndts - 1))
  1778.         namosw_springForce(i+1, i, spring);
  1779.         
  1780.       var resist = new namosw_vec(-nasw_mt_dots[i].dx * document.nasw_mt_resist, -nasw_mt_dots[i].dy * document.nasw_mt_resist);
  1781.       var accel = new namosw_vec((spring.X + resist.X)/document.nasw_mt_mass +document.nasw_mt_xgrv,
  1782.                           (spring.Y + resist.Y)/ document.nasw_mt_mass + document.nasw_mt_ygrav);    
  1783.  
  1784.       nasw_mt_dots[i].dx += (document.nasw_mt_deltat * accel.X);
  1785.       nasw_mt_dots[i].dy += (document.nasw_mt_deltat * accel.Y);
  1786.  
  1787.       if (Math.abs(nasw_mt_dots[i].dx) <document.nasw_mt_stopvel &&
  1788.         Math.abs(nasw_mt_dots[i].dy) <document.nasw_mt_stopvel &&
  1789.         Math.abs(accel.X) < document.nasw_mt_stopc &&
  1790.         Math.abs(accel.Y) < document.nasw_mt_stopc) {
  1791.         nasw_mt_dots[i].dx = 0;
  1792.         nasw_mt_dots[i].dy = 0;
  1793.       }
  1794.  
  1795.       nasw_mt_dots[i].X += nasw_mt_dots[i].dx;
  1796.       nasw_mt_dots[i].Y += nasw_mt_dots[i].dy;
  1797.  
  1798.       var height, width;
  1799.       if (navigator.appName=="Netscape") {
  1800.         height = window.innerHeight + window.pageYOffset;
  1801.         width = window.innerWidth + window.pageXOffset;
  1802.       } else {    
  1803.         height = document.body.clientHeight + document.body.scrollTop;
  1804.         width = document.body.clientWidth + document.body.scrollLeft;
  1805.       }
  1806.  
  1807.       if (nasw_mt_dots[i].Y >=  height -document.nasw_mt_dtsize - 1) {
  1808.         if (nasw_mt_dots[i].dy > 0)
  1809.            nasw_mt_dots[i].dy =document.nasw_mt_bounce * -nasw_mt_dots[i].dy;
  1810.         nasw_mt_dots[i].Y = height -document.nasw_mt_dtsize - 1;
  1811.       }
  1812.       if (nasw_mt_dots[i].X >= width -document.nasw_mt_dtsize) {
  1813.         if (nasw_mt_dots[i].dx > 0)
  1814.           nasw_mt_dots[i].dx =document.nasw_mt_bounce * -nasw_mt_dots[i].dx;
  1815.         nasw_mt_dots[i].X = width -document.nasw_mt_dtsize - 1;
  1816.       }
  1817.       if (nasw_mt_dots[i].X < 0) {
  1818.         if (nasw_mt_dots[i].dx < 0)
  1819.           nasw_mt_dots[i].dx =document.nasw_mt_bounce * -nasw_mt_dots[i].dx;
  1820.         nasw_mt_dots[i].X = 0;
  1821.       }
  1822.  
  1823.       nasw_mt_dots[i].obj.left = nasw_mt_dots[i].X;            
  1824.       nasw_mt_dots[i].obj.top =  nasw_mt_dots[i].Y;        
  1825.     }
  1826. }
  1827.