<HTML> <BODY> <style REL="stylesheet" TYPE="text/css"> A.menu { font-family:Arial,Helvetica; font-weight:bold; color:green; text-decoration:underline; } A.menu:hover { font-family:Arial,Helvetica; font-weight:bold; background-color:pink; } A.menu:visited, A.menu:active { font-family:Arial,Helvetica; font-weight:bold; color:green; } A.submenu { font-family:Arial,Helvetica; color:green; } A.submenu:hover { font-family:Arial,Helvetica; background-color:pink; } A.submenu:visited, A.submenu:active { font-family:Arial,Helvetica; color:green; }
</style> <SCRIPT> // JS-Menu 0.5.1 by Vitaly Polonetsky (faqer@topxioft.com) // GNU GENERAL PUBLIC LICENSE
// #################### SIZE / PLACE CONFIGURATION #################### right_sided=0; // Right sided (0-no,1-yes) one_open_menu=0; // Show only one open menu at a time
right_side_margin=10; // HTML page's right margin page_width=140; // HTML page's width top_menu=20; // Top location of the first main menu left_main_menu=10; // Left location of main menus left_sub_menu=20; // Left location of sub menus top_after_sub_menu=25; // Skip N pixels after sub menu top_before_sub_menus=25; // Skip N pixels after main menu top_after_sub_menus=30; // Skip N pixels before main menu
// #################### MENU AMOUNT CONFIGURATION #################### menu_len=4; // Num. of main menus
var menucount; menucount=new Array(menu_len+1); menucount[0]=menu_len; menucount[1]=2; // Num. of sub menus in the first main menu menucount[2]=1; menucount[3]=0; menucount[4]=0;
var menu; menu=new Array(menucount[0]+1); for(i=1;i<=menucount[0];i++) menu[i] = new Array(menucount[i]+1); menu[0]=new Array(menucount[0]+1);
// ##################### MENU TEXT CONFIGURATION ##################### menu[1][0]='SubMenu1'; menu[1][1]='Item1'; menu[1][2]='Item2'; menu[2][0]='SubMenu2'; menu[2][1]='Item'; menu[3][0]='<A HREF="http://www.navioo.com/">SingleItem1</A>'; menu[4][0]='SingleItem2';
// Public Variables var timerevent=0; var can_redraw=0; //var net_ie=netscape_ie(); //var net6=netscape6();
var agt=navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion); var is_minor = parseFloat(navigator.appVersion);
var is_nav = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)); var is_nav2 = (is_nav && (is_major == 2)); var is_nav3 = (is_nav && (is_major == 3)); var is_nav4 = (is_nav && (is_major == 4)); var is_nav4up = (is_nav && (is_major >= 4)); var is_navonly = (is_nav && ((agt.indexOf(";nav") != -1) || (agt.indexOf("; nav") != -1)) ); var is_nav6 = (is_nav && (is_major == 5)); var is_nav6up = (is_nav && (is_major >= 5)); var is_gecko = (agt.indexOf('gecko') != -1);
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)); var is_ie3 = (is_ie && (is_major < 4)); var is_ie4 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5")==-1) ); var is_ie4up = (is_ie && (is_major >= 4)); var is_ie5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) ); var is_ie5_5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1)); var is_ie5up = (is_ie && !is_ie3 && !is_ie4); var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
BuildMenu(); setTimeout('RedrawMenu();',500);
// ############################################################################
function RedrawMenu(menuindex) { var layer_top=top_menu; var x1,y1; for(i=1;i<=menucount[0];i++) { if(menu[0][i]+''=='undefined') { menu[0][i]=-1; is_nav4? document.layers['menu'+i].top=top_menu+((i-1)/2)*((i-1)/2)*100: is_ie4? document.all('menu'+i).style.top=top_menu+(((i-1)/2)*((i-1)/2))*100: document.getElementById('menu'+i).style.top=top_menu+(((i-1)/2)*((i-1)/2))*100; if(!right_sided) { is_nav4? document.layers['menu'+i].left=-page_width: is_ie4? document.all('menu'+i).style.left=-page_width: document.getElementById('menu'+i).style.left=-page_width; } else { is_nav4? document.layers['menu'+i].left=page_width: is_ie4? document.all('menu'+i).style.left=page_width: document.getElementById('menu'+i).style.left=page_width; } is_nav4? document.layers['menu'+i].visibility='show': is_ie4? document.all('menu'+i).style.visibility='visible': document.getElementById('menu'+i).style.visibility='visible'; MoveLayer('menu'+i,left_main_menu,layer_top); } else { // SUB menus if((menu[0][i]==1)&&(!one_open_menu||can_redraw==1)) { layer_top+=top_before_sub_menus; sub_menu_top=layer_top; add_top=top_before_sub_menus; for(j=1;j<=menucount[i];j++) { // SUB MENU LAYER HEADER if(is_nav4) document.layers['menu'+i+'submenu'+j].top=layer_top; else if(menuindex==i) is_ie4? document.all('menu'+i+'submenu'+j).style.top=layer_top: document.getElementById('menu'+i+'submenu'+j).style.top=layer_top;
// SUB MENU LAYER FOOTER if(j<menucount[i]) { layer_top+=top_after_sub_menu; add_top+=top_after_sub_menu; } }
if(menuindex==i) { // MOVE MAIN MENUS for(temp0=menucount[0];temp0>i;temp0--) { if(menu[0][temp0]==1) for(temp02=menucount[temp0];temp02>0;temp02--) { MoveLayer('menu'+temp0+'submenu'+temp02,'undefined',is_nav4?document.layers['menu'+temp0+'submenu'+temp02].top+add_top:net6px(is_ie4?document.all('menu'+temp0+'submenu'+temp02).style.top:document.getElementById('menu'+temp0+'submenu'+temp02).style.top)+add_top); } MoveLayer('menu'+temp0,'undefined',is_nav4?document.layers['menu'+temp0].top+add_top:net6px(is_ie4?document.all('menu'+temp0).style.top:document.getElementById('menu'+temp0).style.top)+add_top); }
// BRING SUB MENUS for(j=1;j<=menucount[i];j++) { is_nav4? y2=document.layers['menu'+i+'submenu'+j].top: y2=net6px(is_ie4?document.all('menu'+i+'submenu'+j).style.top:document.getElementById('menu'+i+'submenu'+j).style.top); is_nav4? document.layers['menu'+i+'submenu'+j].top=sub_menu_top+((j-1)/2)*((j-1)/2)*100: is_ie4? document.all('menu'+i+'submenu'+j).style.top=sub_menu_top+(((j-1)/2)*((j-1)/2))*100: document.getElementById('menu'+i+'submenu'+j).style.top=sub_menu_top+(((j-1)/2)*((j-1)/2))*100; if(!right_sided) { is_nav4? document.layers['menu'+i+'submenu'+j].left=-page_width: is_ie4? document.all('menu'+i+'submenu'+j).style.left=-page_width: document.getElementById('menu'+i+'submenu'+j).style.left=-page_width; } else { is_nav4? document.layers['menu'+i+'submenu'+j].left=page_width: is_ie4? document.all('menu'+i+'submenu'+j).style.left=page_width: document.getElementById('menu'+i+'submenu'+j).style.left=page_width; } is_nav4? document.layers['menu'+i+'submenu'+j].visibility='show': is_ie4? document.all('menu'+i+'submenu'+j).style.visibility='visible': document.getElementById('menu'+i+'submenu'+j).style.visibility='visible'; !right_sided? MoveLayer('menu'+i+'submenu'+j,left_sub_menu,y2): MoveLayer('menu'+i+'submenu'+j,left_sub_menu-right_side_margin,y2); } } } else { if(!(one_open_menu&&menuindex==i&&menu[0][menuindex]==1)) if(!(one_open_menu&&menuindex!=i&&menu[0][i]==-1)) { menu[0][i]=-1; add_top=-top_before_sub_menus; for(j=1;j<=menucount[i];j++) { if((menuindex==i)||(one_open_menu)) { if(!right_sided) { is_ie4? MoveLayer('menu'+i+'submenu'+j,-page_width,layer_top+top_before_sub_menus+((j-1)/2)*((j-1)/2)*100,"document.all('menu"+i+"submenu"+j+"').style.visibility="hidden";"): MoveLayer('menu'+i+'submenu'+j,-page_width,layer_top+top_before_sub_menus+((j-1)/2)*((j-1)/2)*100,"document.getElementById('menu"+i+"submenu"+j+"').style.visibility="hidden";"); } else { is_ie4? MoveLayer('menu'+i+'submenu'+j,page_width,layer_top+top_before_sub_menus+((j-1)/2)*((j-1)/2)*100,"document.all('menu"+i+"submenu"+j+"').style.visibility="hidden";"): MoveLayer('menu'+i+'submenu'+j,page_width,layer_top+top_before_sub_menus+((j-1)/2)*((j-1)/2)*100,"document.getElementById('menu"+i+"submenu"+j+"').style.visibility="hidden";"); } if(is_nav4) document.layers['menu'+i+'submenu'+j].visibility="hide"; }
if(j<menucount[i]) { add_top-=top_after_sub_menu; } }
// MOVE MAIN MENUS if(menuindex==i||one_open_menu) for(temp0=i+1;temp0<=menucount[0];temp0++) { MoveLayer('menu'+temp0,'undefined',is_nav4?document.layers['menu'+temp0].top+add_top:net6px(is_ie4?document.all('menu'+temp0).style.top:document.getElementById('menu'+temp0).style.top)+add_top); if(menu[0][temp0]==1) for(temp02=1;temp02<=menucount[temp0];temp02++) MoveLayer('menu'+temp0+'submenu'+temp02,'undefined',is_nav4?document.layers['menu'+temp0+'submenu'+temp02].top+add_top:net6px(is_ie4?document.all('menu'+temp0+'submenu'+temp02).style.top:document.getElementById('menu'+temp0+'submenu'+temp02).style.top)+add_top); } } } } layer_top+=top_after_sub_menus; }
// OPEN ONE MENU if(one_open_menu&&menu[0][menuindex]==1) { if(can_redraw==1) can_redraw=0; else { can_redraw=1; timerevent+=10; setTimeout('RedrawMenu('+menuindex+'); timerevent-=10;',timerevent); } } }
function BuildMenu() { var layer_top=top_menu; for(i=1;i<=menucount[0];i++) { // MAIN MENU LAYER HEADER is_nav4? document.writeln('<LAYER ID="menu'+i+'" VISIBILITY="hide" TOP='+layer_top+' LEFT='+left_main_menu+' WIDTH='+(page_width-left_main_menu-right_side_margin)+'>'): document.writeln('<DIV ID="menu'+i+'" BORDER=1 STYLE="visibility:hidden;position:absolute;top:'+layer_top+'px;left:'+left_main_menu+'px;">');
if(right_sided) { is_nav4? document.writeln('<DIV ALIGN="right">'): document.writeln('<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH="'+(page_width-left_main_menu-right_side_margin)+'px"><TR><TD ALIGN="right">'); }
// MAIN MENU LAYER BODY if(menucount[i]>0) { is_ie4up||is_nav6up? document.write('<A HREF="javascript:open_close_sub_menus('+i+');" CLASS="menu" onMouseOver="setTimeout('self.status=\''+menu[i][0]+'\';',1);" onMouseOut="self.status='';">'): document.write('<A HREF="javascript:open_close_sub_menus('+i+');" CLASS="menu" onMouseOver="self.status=''+menu[i][0]+''; return true;" onMouseOut="self.status=''; return true;">'); } document.write(menu[i][0]); if(menucount[i]>0) document.write('</A>'); document.writeln();
// MAIN MENU LAYER FOOTER if(right_sided) { is_nav4? document.writeln('</DIV>'): document.writeln('</TD></TR></TABLE>'); }
is_nav4? document.writeln('</LAYER>'): document.writeln('</DIV>');
// SUB MENUS for(j=1;j<=menucount[i];j++) { // SUB MENU LAYER HEADER is_nav4? document.writeln('<LAYER ID="menu'+i+'submenu'+j+'" VISIBILITY="hide" TOP='+layer_top+' LEFT='+left_sub_menu+' WIDTH='+(page_width-left_sub_menu-right_side_margin)+'>'): document.writeln('<DIV ID="menu'+i+'submenu'+j+'" STYLE="visibility:hidden;position:absolute;top:'+layer_top+'px;left:'+left_sub_menu+'px;">');
if(right_sided) { is_nav4? document.writeln('<DIV ALIGN="right">'): document.writeln('<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH="'+(page_width-left_sub_menu-right_side_margin)+'px"><TR><TD ALIGN="right">'); }
// SUB MENU LAYER BODY document.writeln(menu[i][j]+'<BR>');
// SUB MENU LAYER FOOTER if(right_sided) { is_nav4? document.writeln('</DIV>'): document.writeln('</TD></TR></TABLE>'); }
is_nav4? document.writeln('</LAYER>'): document.writeln('</DIV>'); } layer_top+=top_after_sub_menus; } }
function MoveLayer(layer_name,left,top,after_move_action) { var dont_move=0; index_menu=layer_name.indexOf("menu"); index_submenu=layer_name.indexOf("submenu"); name_length=layer_name.length; if(index_menu==0) { if(index_submenu!=-1) { if(menu[layer_name.substr(index_menu+4,index_submenu-4)][layer_name.substr(index_submenu+7,name_length)]=="") dont_move=1; } else { if(menu[layer_name.substr(index_menu+4,name_length)][0]=="") dont_move=1; } } if(dont_move!=1) { layer=is_nav4?document.layers[layer_name]:is_ie4?document.all(layer_name):document.getElementById(layer_name); x1=is_nav4?document.layers[layer_name].left:eval(is_ie4?document.all(layer_name).style.pixelLeft:document.getElementById(layer_name).style.pixelLeft); y1=is_nav4?document.layers[layer_name].top:eval(is_ie4?document.all(layer_name).style.pixelTop:document.getElementById(layer_name).style.pixelTop); if(left+''=='undefined') left=x1; if(top+''=='undefined') left=y1; // Netscape 6: if(x1+''=='undefined') x1=net6px(is_ie4?document.all(layer_name).style.left:document.getElementById(layer_name).style.left); if(y1+''=='undefined') y1=net6px(is_ie4?document.all(layer_name).style.top:document.getElementById(layer_name).style.top); x2=left; y2=top; speed=30; if(is_nav4) waitspeed=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))/110*50; for(temp=0;temp<speed;temp++) { // MOVE ACTION if(is_nav4) { layer.left=x1-(x1-x2)/speed*temp; layer.top=y1-(y1-y2)/speed*temp; for(temp2=0;temp2<waitspeed*5;temp2++); } else { timerevent+=10; is_ie4? setTimeout('document.all(''+layer_name+'').style.left='+(x1-(x1-x2)/speed*temp)+'; document.all(''+layer_name+'').style.top='+(y1-(y1-y2)/speed*temp)+'; timerevent-=10;',timerevent): setTimeout('document.getElementById(''+layer_name+'').style.left='+(x1-(x1-x2)/speed*temp)+'; document.getElementById(''+layer_name+'').style.top='+(y1-(y1-y2)/speed*temp)+'; timerevent-=10;',timerevent); } }
if(is_nav4) { layer.left=x2; layer.top=y2; } else { timerevent+=10; is_ie4? setTimeout('document.all(''+layer_name+'').style.left='+x2+'; document.all(''+layer_name+'').style.top='+y2+'; timerevent-=10;',timerevent): setTimeout('document.getElementById(''+layer_name+'').style.left='+x2+'; document.getElementById(''+layer_name+'').style.top='+y2+'; timerevent-=10;',timerevent);
if(after_move_action) { timerevent+=10; setTimeout(after_move_action+" timerevent-=10;",timerevent); } } } }
function open_close_sub_menus(menuindex) { timerevent+=10; setTimeout("open_close_sub_menus_call("+menuindex+"); timerevent-=10;",timerevent); }
function open_close_sub_menus_call(menuindex) { menu[0][menuindex]==-1?menu[0][menuindex]=1:menu[0][menuindex]=-1; RedrawMenu(menuindex); }
function net6px(value) { var text=value; var length=text.length; var retval=text.substr(0,length-2); retval=retval*1; return retval; }
</SCRIPT> </BODY> </HTML>
|