home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 July / Chip_2003-07_cd1.bin / internet / digimania / menu.js < prev   
Text File  |  2003-05-05  |  8KB  |  218 lines

  1.  
  2.         var opened = ''
  3.         var tm_hide=null
  4.         var tm_show=null
  5.         var interval_hide=300
  6.         var interval_show=200
  7. //        var shifting = 0
  8.             
  9.         function getobject(n) {
  10.             var x;    
  11.             d=document;
  12.             if(!(x=d[n])&&d.all) x=d.all[n];
  13.             if(!x && d.getElementById) x=d.getElementById(n);
  14.             return x;
  15.         }        
  16.     
  17.         function gomenu(address,frame){
  18.             eval("var x="+frame+".location")
  19.             x.href=address
  20.         }
  21.  
  22.         function shiftmenu(pix) {
  23.             shifting=pix
  24.         }
  25.  
  26.         function createmenu(id,top) {
  27.             eval("items_"+id+"=new Array()")
  28.         }
  29.         
  30.         function additem() {
  31.             id=arguments[0]
  32.             eval("var tmp=items_"+id)
  33.             var x=new Array()
  34.             for (i=1;i<arguments.length;i++) {
  35.                 x[x.length]=arguments[i]
  36.             }
  37.             tmp[tmp.length]=x
  38.         }
  39.             
  40.         function rendermenu(id,left,top,shifting) {
  41.             var width=0
  42.             document.writeln('<div unselectable="on" id="'+id+'" class=submenu style="left:'+left+'px; top: '+top+'px; width: '+width+'px" onmouseout="rollout()" onmouseover="rollon()">');
  43.             document.writeln('<table id="'+id+'_tbl" cellspacing=0 cellpadding=0>')
  44.             eval("var tmp=items_"+id)
  45.             eval("tops_"+id+"="+top)
  46.             eval("shifting_"+id+"="+(shifting+0))
  47.             var item_cap = ''
  48.             var item_cap2 = ''
  49.             var item_sub = ''
  50.             for (i=0; i<tmp.length; i++) {
  51.                 var item = tmp[i]
  52.                 if (item.length==1) {
  53.                     t=item[0].split('~');
  54.                     if (t.length>2) {
  55.                         item_sub = t[2]
  56.                         if (t[0] != item_cap) {
  57.                             item_cap = t[0]
  58.                             document.writeln('<tr><td><nobr><span unselectable="on" class=l0 onmouseover="rollon()">'+item_cap+'</span></nobr></td></tr>')
  59.                         }
  60.                         if (t[1] != item_cap2) {
  61.                             item_cap2 = t[1]
  62.                             document.writeln('<tr><td><nobr>   <span unselectable="on" class=l1 onmouseover="rollon()">'+item_cap2+'</span></nobr></td></tr>')
  63.                         }
  64.                         document.writeln('<tr><td><nobr>      - <span class=l2 unselectable="on" onmouseover="rollon()">'+item_sub+'</span></nobr></td></tr>')
  65.                     }
  66.                     else if (t.length>1) {
  67.                         item_sub = t[1]
  68.                         if (t[0] != item_cap) {
  69.                             item_cap = t[0]
  70.                             document.writeln('<tr><td><nobr><span unselectable="on" class=l0 onmouseover="rollon()">'+item_cap+'</span></nobr></td></tr>')
  71.                         }
  72.                         document.writeln('<tr><td><nobr>   <span unselectable="on" class=l1 onmouseover="rollon()">'+item_sub+'</span></nobr></td></tr>')
  73.                     }
  74.                     else {
  75.                         item_cap = ''
  76.                         item_sub = t[0]
  77.                         document.writeln('<tr><td><nobr><span unselectable="on" onmouseover="rollon()">'+item_sub+'</span></nobr></td></tr>')
  78.                     }                    
  79.                 }
  80.                 else if (item.length==2) {
  81.                     t=item[0].split('~');
  82.                     if (t.length>2) {
  83.                         item_sub = t[2]
  84.                         if (t[0] != item_cap) {
  85.                             item_cap = t[0]
  86.                             document.writeln('<tr><td><nobr><span unselectable="on" class=l0 onmouseover="rollon()">'+item_cap+'</span></nobr></td></tr>')
  87.                         }
  88.                         if (t[1] != item_cap2) {
  89.                             item_cap2 = t[1]
  90.                             document.writeln('<tr><td><nobr>   <span unselectable="on" class=l1 onmouseover="rollon()">'+item_cap2+'</span></nobr></td></tr>')
  91.                         }
  92.                         document.writeln('<tr><td><nobr>      - <a href="" class=l2 unselectable="on" onclick="gomenu(\''+item[1]+'\',\'window\'); return false" onmouseover="rollon()">'+item_sub+'</a></nobr></td></tr>')
  93.                     }
  94.                     else if (t.length>1) {
  95.                         item_sub = t[1]
  96.                         if (t[0] != item_cap) {
  97.                             item_cap = t[0]
  98.                             document.writeln('<tr><td><nobr><span unselectable="on" class=l0 onmouseover="rollon()">'+item_cap+'</span></nobr></td></tr>')
  99.                         }
  100.                         document.writeln('<tr><td><nobr>   <a href="" class=l1 unselectable="on" onclick="gomenu(\''+item[1]+'\',\'window\'); return false" onmouseover="rollon()">'+item_sub+'</a></nobr></td></tr>')
  101.                     }
  102.                     else {
  103.                         item_cap = ''
  104.                         item_sub = t[0]
  105.                         document.writeln('<tr><td><nobr><a href="" unselectable="on" onclick="gomenu(\''+item[1]+'\',\'window\'); return false" onmouseover="rollon()">'+item_sub+'</a></nobr></td></tr>')
  106.                     }
  107.                 }
  108.                 else {
  109.                     t=item[0].split('~');
  110.                     if (t.length>2) {
  111.                         item_sub = t[2]
  112.                         if (t[0] != item_cap) {
  113.                             item_cap = t[0]
  114.                             document.writeln('<tr><td><nobr><span unselectable="on" class=l0 onmouseover="rollon()">'+item_cap+'</span></nobr></td></tr>')
  115.                         }
  116.                         if (t[1] != item_cap2) {
  117.                             item_cap2 = t[1]
  118.                             document.writeln('<tr><td><nobr>   <span class=l1 unselectable="on" class=caption onmouseover="rollon()">'+item_cap2+'</span></nobr></td></tr>')
  119.                         }
  120.                         document.writeln('<tr><td><nobr>      - <a href="" class=l2 unselectable="on" onclick="gomenu(\''+item[1]+'\',\''+item[2]+'\'); return false" onmouseover="rollon()">'+item_sub+'</a></nobr></td></tr>')
  121.                     }
  122.                     else if (t.length>1) {
  123.                         item_sub = t[1]
  124.                         if (t[0] != item_cap) {
  125.                             item_cap = t[0]
  126.                             document.writeln('<tr><td><nobr><span unselectable="on" class=l0 onmouseover="rollon()">'+item_cap+'</span></nobr></td></tr>')
  127.                         }
  128.                         document.writeln('<tr><td><nobr>   <a href="" class=l1 unselectable="on" onclick="gomenu(\''+item[1]+'\',\''+item[2]+'\'); return false" onmouseover="rollon()">'+item_sub+'</a></nobr></td></tr>')
  129.                     }
  130.                     else {
  131.                         item_cap = ''
  132.                         item_sub = t[0]
  133.                         document.writeln('<tr><td><nobr><a href="" unselectable="on" onclick="gomenu(\''+item[1]+'\',\''+item[2]+'\'); return false" onmouseover="rollon()">'+item_sub+'</a></nobr></td></tr>')
  134.                     }
  135.                 }
  136.             }
  137.             document.writeln('</table>')
  138.             document.writeln('</div>')
  139.             var tbl=gEBI(id)
  140.             tbl.style.width=(gEBI(id+'_tbl').offsetWidth+30)+'px'            
  141. //            repoz(id)
  142.         }
  143.  
  144.         function repoz(o) {
  145. //            var posunuti = 255
  146.             eval("var sh=shifting_"+o)
  147.  
  148.             var bh = document.body.offsetHeight
  149.             var m = gEBI(o)
  150.             eval("var mtop=tops_"+o)            
  151. //            var mtop = m.offsetTop
  152. //            alert(mtop)
  153.             var mhgh = m.offsetHeight
  154. //            alert(mhgh)
  155.             var total = mtop+mhgh
  156. //            alert(total)
  157.             var diff = total-bh+sh
  158.             if (diff<0) diff=0
  159. //            alert(document.body.scrollTop+'> '+sh+', '+mtop)
  160.             if (document.body.scrollTop>(sh-15)) {
  161. //                alert(document.body.scrollTop+'> '+sh+', '+mtop)
  162.                 //mtop=document.body.scrollTop-sh+15
  163.             }
  164.             else {
  165. ///            mtop=mtop-diff
  166.             mtop=mtop-diff
  167.             //if (mtop<document.body.scrollTop) mtop=document.body.scrollTop
  168.             if (mtop<-sh) { // kdyby horni hrana menu mela nahore presahnout obrazovku, pak menu umistit k hornimu okraji obrazovky
  169.                 mtop=-sh
  170. //                if ((sh+mtop)<document.body.scrollTop) {
  171.                 //if (document.body.scrollTop>sh) {
  172. //                    mtop=document.body.scrollTop-sh
  173. //                }
  174. //                mtop=0
  175.             }
  176.             }
  177. //            mtop = mtop+document.body.scrollTop
  178. //            alert(mtop)
  179.             m.style.top=mtop+'px'
  180.         }
  181.         
  182.         function openmenu(id) {        
  183.             hidemenu()
  184.             repoz(id)
  185.             menuobj=getobject(id);
  186.             menuobj.style.visibility='visible';
  187.             opened=id
  188.         }
  189.         
  190.         function hidemenu() {
  191.             if (opened!='') {
  192.                 menuobj=getobject(opened);
  193.                 menuobj.style.visibility='hidden';
  194.             }
  195.             opened=''
  196.         }
  197.         
  198.         function rollon(id) {
  199.             clearTimeout(tm_hide);
  200.             clearTimeout(tm_show);
  201.             if (getobject(id)!=null) {
  202.                 tm_show=setTimeout("openmenu('"+id+"')",interval_show);
  203.             }
  204.         }
  205.  
  206.         function rollout() {
  207.             clearTimeout(tm_hide);
  208.             clearTimeout(tm_show);
  209.             tm_hide=setTimeout('hidemenu()',interval_hide);
  210.         }
  211.         
  212.     function rollonm0() {
  213.         if (gEBI('m0')!=null) {
  214.             if (gEBI('m0').style.visibility=='visible')
  215.                 rollon('m0')
  216.         }
  217.     }
  218.