home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 December / Chip_2000-12_cd1.bin / internet / ukazky / aukce.cz_soubory / menu.js < prev    next >
Text File  |  2000-10-19  |  8KB  |  207 lines

  1. // Hierarchicka MENU v.1.0, Autori: Jan Svoboda, Jan Bartos, http://www.KeyWay.cz
  2.  
  3. var mg_showing="click"
  4. var mg_BH=33
  5. var mg_FS=8
  6. var mg_FT="Verdana, Arial"
  7. var mg_FCH="#FFFFFF"
  8. var mg_FC="#000000"
  9. var mg_inactFC="#AAAAAA"
  10. var mg_TW=100
  11. var mg_LH=15
  12. var mg_cGrid="#000000"
  13. var mg_cBody="#CCCCCC"
  14. var mg_top=110
  15. var mg_fromright=130
  16. var mg_imgadr="http://www.dobreweby.cz/button/dbwa2.gif"
  17. var mg_imgwid=88
  18. var mg_imghei=31
  19. var mg_imgleft="left.gif"
  20. var mg_imgright="right.gif"
  21. var mg_tmoac=2000
  22. var mg_makepicture=false//rozhodnuti zda defaultne vyplesknout obrazek na absolutni pozici
  23.  
  24. var mg_NSou=true
  25. var mg_Act=false
  26. var mg_ST,mg_hI,mg_TP,mg_HP,mg_Temp,mg_BS,mg_d1,mg_d3,mg_d4
  27. var mg_LP="height="+mg_LH+" style='font-family: "+mg_FT+"; font-size: "+mg_FS+"pt; color: "+mg_FC+"'"
  28. var mg_inactLP="height="+mg_LH+" style='cursor: default; font-family: "+mg_FT+"; font-size: "+mg_FS+"pt; color: "+mg_inactFC+"'"
  29. var mg_clmx,mg_tmpclmx,mg_clmy,mg_tmpclmy,mg_momx,mg_momy
  30.  
  31. images=new Array(3)
  32. images[2]=new Image();images[2].src=mg_imgleft
  33. images[3]=new Image();images[3].src=mg_imgright
  34.  
  35. document.write ('<table id=mi_MENU1></table>')
  36. document.write ('<table id=mi_MENU2></table>')
  37.  
  38. document.write ('<script EVENT=onmousedown() FOR=document LANGUAGE=JavaScript>')
  39. document.write ('if(mg_NSou){mg_clmx=event.clientX;mg_clmy=event.clientY}')
  40. document.write ('else{if(mi_MENU2.style.visibility=="visible"){mg_NSou=true;mg_clmx=event.clientX;mg_clmy=event.clientY}}')
  41. document.write ('</script>')
  42.  
  43. document.write ('<script EVENT=onmousemove() FOR=document LANGUAGE=JavaScript>')
  44. document.write ('mg_momx=event.clientX;mg_momy=event.clientY')
  45. document.write ('</script>')
  46.  
  47. document.write ('<script EVENT=onmousemove() FOR=mi_MENU1 LANGUAGE=JavaScript>')
  48. document.write ('window.clearTimeout(mg_STO)')
  49. document.write ('</script>')
  50.  
  51. if(mg_makepicture)
  52. {
  53. images[1]=new Image();images[1].src=mg_imgadr
  54. if(mg_showing=="click")document.write ('<img ID=mi_navigation style="cursor: hand" onclick=mf_M1(1) border=0 src='+mg_imgadr+' width='+mg_imgwid+' height='+mg_imghei+'>')
  55. if(mg_showing=="move")document.write ('<img ID=mi_navigation style="cursor: hand" onmousemove="if(mg_NSou){mg_clmx=mg_momx;mg_clmy=mg_momy;mf_M1(1)}" border=0 src='+mg_imgadr+' width='+mg_imgwid+' height='+mg_imghei+'>')
  56. mi_navigation.style.visibility="visible"
  57. mi_navigation.style.posTop=mg_top
  58. mi_navigation.style.posLeft=document.body.clientWidth-document.body.scrollLeft-mg_fromright
  59. }
  60.  
  61. function mf_MN()
  62. {
  63. mi_navigation.style.posLeft=document.body.clientWidth-document.body.scrollLeft-mg_fromright+15
  64. }
  65.  
  66. function mf_SetTablePar()
  67. {
  68. mg_TP=" border=1 width="+mg_TW+" cellspacing=0 style=border-left: 2px solid "+mg_cGrid+"; border-right: 0px solid "+mg_cGrid+"; border-top: 1px "+mg_cGrid+"; border-bottom: 2px solid "+mg_cGrid+" cellpadding=2 bordercolor="+mg_cGrid+" bordercolorlight="+mg_cGrid+" bordercolordark="+mg_cGrid
  69. mg_HP="height="+mg_LH+" style='background-color: "+mg_cGrid+"; font-family: "+mg_FT+"; font-size: "+mg_FS+"pt; color: "+mg_FCH+";' align=center"
  70. }
  71.  
  72. function mf_HideLayer(layerName)
  73. {
  74. mg_NSou=true
  75. eval('document.all["'+layerName+'"].style.visibility="hidden"')
  76. }
  77.  
  78. function mf_MoveLayer(layerName,left,top)
  79. {
  80. mg_NSou=false
  81. eval('document.all["'+layerName+'"].style.visibility="visible"')
  82. eval('document.all["'+layerName+'"].style.top='+top)
  83. eval('document.all["'+layerName+'"].style.left='+left)
  84. }
  85.  
  86. function mf_ChangeCol_PL_M1(mp_iRow,mp_iName,mp_iCell,mp_iHasBranch,mp_iHead)
  87. {
  88. if(typeof mg_Temp=="object")mg_Temp.className=''
  89. mp_iCell.className='cmenuact'
  90. window.clearTimeout(mg_ST)
  91. mg_d1=mp_iRow
  92. mg_d3=mp_iHead
  93. var ml_a=mp_iCell.id.split("_")
  94. mg_d4="a"+mp_iName+"_"+ml_a[1]
  95. mp_iHasBranch==1?mg_ST=window.setTimeout('mf_M2(mg_d1,mg_d3,mg_d4)',50):mf_HideLayer("mi_MENU2")
  96. }
  97.  
  98. function mf_DeCol_PL_M1(mp_iCell)
  99. {
  100. if(mi_MENU2.style.visibility!="visible")mp_iCell.className=''
  101. mg_Temp=mp_iCell
  102. }
  103.  
  104. function mf_M1(mp_ArrayName)
  105. {
  106.  
  107. if(typeof mg_clmx=="undefined")
  108. {
  109. alert('Strßnka se doΦφtß. PoΦkejte prosφm chvφli.');return false
  110. }
  111.  
  112. mg_STO=window.setTimeout('mf_HideLayer("mi_MENU1")',mg_tmoac)
  113.  
  114. var ml_cururl=document.URL.toUpperCase()
  115. var ml_Picture,ml_Tail,ml_obr
  116. mf_SetTablePar()
  117. mg_BS=document.body.offsetWidth-25-mg_TW
  118.  
  119. if(mg_clmx>mg_BS)mg_clmx=mg_BS
  120. if(mg_clmx+mg_TW-6>mg_BS){ml_ml_Tail=" align='top'";ml_Picture=mg_imgleft}
  121. else {ml_ml_Tail=" align='right'";ml_Picture=mg_imgright}
  122. var ml_j=1;var ml_iPL=eval("a"+mp_ArrayName)
  123. var ml_R="<TABLE onMouseOut='mf_ShowOrHide()' ID=mi_MENU1"+mg_TP+">"
  124. ml_R+="<TR><TD "+mg_HP+">"+ml_iPL[0]+"</TD></TR>"
  125. for(var ml_i=1;ml_i<ml_iPL.length;ml_i+=3)
  126. {
  127. if(ml_iPL[ml_i+2]==1)ml_obr="<img ID=mi_T src='"+ml_Picture+"' width='12' height='12'"+ml_ml_Tail+">"
  128. else ml_Picture=="left"?ml_obr="<img ID=mi_T src='"+ml_Picture+"' width='12' height='1'"+ml_Tail+">":ml_obr=""
  129. var ml_A='"'+ml_iPL[ml_i+1]+'"';
  130. var ml_B='"'+mp_ArrayName+'"';
  131. var ml_C='"'+ml_iPL[ml_i]+'"';
  132.  
  133. if(ml_cururl.indexOf(ml_iPL[ml_i+1].toUpperCase())!=-1)
  134. {
  135. mg_tmpclmx=mg_clmx;mg_tmpclmy=mg_clmy
  136. ml_R+="<TR><TD bgcolor="+mg_cBody+" "+mg_inactLP+" ID=mi_"+ ml_j++ +" onClick='mg_clmx=mg_tmpclmx;mg_clmy=mg_tmpclmy;return false' onMouseOver='mf_ChangeCol_PL_M1("+ml_j+","+ml_B+",this,"+ml_iPL[ml_i+2]+","+ml_C+")' onMouseOut='mf_DeCol_PL_M1(this)'>"+ml_obr+ml_iPL[ml_i]+"</TD></TR>"
  137. }
  138. else
  139. ml_R+="<TR><TD bgcolor="+mg_cBody+" "+mg_LP+" ID=mi_"+ ml_j++ +" onClick='mf_Follow_Link("+ml_A+")' onMouseOver='mf_ChangeCol_PL_M1("+ml_j+","+ml_B+",this,"+ml_iPL[ml_i+2]+","+ml_C+")' onMouseOut='mf_DeCol_PL_M1(this)'>"+ml_obr+ml_iPL[ml_i]+"</TD></TR>"
  140.  
  141. }
  142. ml_R+="</TABLE>"
  143. var ml_toTop=0
  144. if(parseInt(ml_iPL.length/3)*(mg_LH+1)+mg_clmy+mg_BH+15>document.body.offsetHeight)
  145. {
  146. ml_toTop=parseInt(ml_iPL.length/3)*(mg_LH+1)+mg_clmy+mg_BH+35-document.body.offsetHeight
  147. }
  148. mi_MENU1.outerHTML=ml_R;mf_MoveLayer("mi_MENU1",mg_clmx,mg_clmy+document.body.scrollTop-ml_toTop)
  149. }
  150.  
  151. function mf_ChangeCol_PL_M2(mp_iCell)
  152. {
  153. mp_iCell.className='cmenuact'
  154. }
  155.  
  156. function mf_DeCol_PL_M2(mp_iCell)
  157. {
  158. mp_iCell.className=''
  159. }
  160.  
  161. function mf_Follow_Link(mp_Link)
  162. {
  163. mf_HideLayer("mi_MENU2");mf_HideLayer("mi_MENU1")
  164. window.status="P°echßzφm na strßnku http://"+mp_Link
  165. document.location="http://"+escape(mp_Link)
  166. }
  167.  
  168. function mf_M2(mp_Row,mp_Head,mp_Name)
  169. {
  170. var ml_cururl=document.URL.toUpperCase()
  171. var ml_iPL=eval(mp_Name)
  172. var ml_R="<TABLE onMouseOut=mf_ShowOrHide() ID=mi_MENU2"+mg_TP+">"
  173. ml_R+="<TR><TD "+mg_HP+">"+mp_Head+"</TD></TR>"
  174. for(var ml_i=0;ml_i<ml_iPL.length;ml_i+=2)
  175. {
  176. var ml_A='"'+ml_iPL[ml_i+1]+'"'
  177.  
  178. if(ml_cururl.indexOf(ml_iPL[ml_i+1].toUpperCase())!=-1)
  179. {
  180. mg_tmpclmx=mg_clmx;mg_tmpclmy=mg_clmy
  181. ml_R+="<TR><TD "+mg_inactLP+" bgcolor="+mg_cBody+" onClick='mg_clmx=mg_tmpclmx;mg_clmy=mg_tmpclmy;return false' onMouseOver='mf_ChangeCol_PL_M2(this)' onMouseOut='mf_DeCol_PL_M2(this)'>"+ml_iPL[ml_i]+"</TD></TR>"
  182. }
  183. else
  184. ml_R+="<TR><TD "+mg_LP+" bgcolor="+mg_cBody+" onClick='mf_Follow_Link("+ml_A+")' onMouseOver='mf_ChangeCol_PL_M2(this)' onMouseOut='mf_DeCol_PL_M2(this)'>"+ml_iPL[ml_i]+"</TD></TR>"
  185.  
  186. }
  187. ml_R+="</TABLE>"
  188. mi_MENU2.outerHTML=ml_R
  189. var ml_posX=mg_clmx+mg_TW-6
  190. if(ml_posX>mg_BS){ml_posX=mg_clmx-mg_TW+6;if(ml_posX<0)ml_posX=1}
  191. var ml_posY=mp_Row*mg_LH+mg_clmy-12
  192. if(ml_posY+ml_i*mg_LH+ml_i*2>document.body.offsetHeight-mg_BH)ml_posY=(document.body.offsetHeight-mg_BH-ml_i*mg_LH)
  193. mf_MoveLayer("mi_MENU2",ml_posX,ml_posY+document.body.scrollTop+mp_Row)
  194. }
  195.  
  196. function mf_Decide()
  197. {
  198. var ml_e=document.elementFromPoint(mg_momx,mg_momy)
  199. if(ml_e.tagName=="TD")ml_e=ml_e.parentElement.parentElement.parentElement
  200. else if(ml_e.tagName=="IMG" && ml_e.id=="mi_T")ml_e=ml_e.parentElement.parentElement.parentElement.parentElement
  201. if(ml_e.id!="mi_MENU1" && ml_e.id!="mi_MENU2"){mf_HideLayer("mi_MENU2");mf_HideLayer("mi_MENU1")}
  202. mg_Act=false;window.clearTimeout(mg_hI)
  203. }
  204.  
  205. function mf_ShowOrHide()
  206. {if (mg_Act==false){mg_Act=true;mg_hI=window.setTimeout("mf_Decide()",700)}}
  207.