I am using licenced version of menu. I use a javascript value to display the path of the menu, and the Automatic Menu Opening Module openmenusbyurl.js bolt on plugin. This almost works, except that when you enter in a submenu, and click on the parent menu, my path on vertical column is not updated. Something wrong with my function mm_getSelectionSequence() and _ocURL().
Can anyone help me on that ?
Thanks
David
Web link : http://fr.topsolid.com
Here is my menu_data.js :
Code: Select all
<script language="JavaScript">
<!--
_menuCloseDelay=5000 // The time delay for menus to remain visible on mouse out
_menuOpenDelay=0 // The time delay before menus open on mouse over
_subOffsetTop=0 // Sub menu top offset
_subOffsetLeft=0 // Sub menu left offset
/* All of the following paramater are none mandatory*/
//mm_maxLevels=0; // parameter [INTEGER] to fix the number of menus displayed to the specified maximum value.
resetAutoOpen=true // parameter This bit allows the menu to re-open if sibling menus have been closed, displaying the menu again if required.
//mm_contentFrame="Content"; // parameter - Currently in Beta so of no use in this version.
//forceChildSubOpen=true // Forces the opening of a child sub menu if the opening items URL matches the current page URL and also opens a sub menu
function _ocURL(){
if(_W.forceChildSubOpen){
_cln=_cip.length
for(_c=0;_c<_cln;_c++){
if(_mi[_cip[_c]][3]){
_mn=getMenuByName(_mi[_cip[_c]][3])
_cip[_cip.length]=_m[_mn][0][0]
}
}
forceChildSubOpen=0
}
_ombcu=new Array()
if(_cip.length>0){
for(_c=0;_c<_cip.length;_c++){
_ci=_cip[_c];
_mni=getParentItemByItem(_ci);
if(_mni==-1)_mni=_ci
if(_mni+" "!=$u){
while(_mni!=-1){
_ombcu[_ombcu.length]=_mni
_mni=getParentItemByItem(_mni);
if(_mni+" "==$u)_mni=-1
}
}
}
}
if(_startM){
setTimeout("_ocURL()", 300)
}
else{
if(_W.mm_contentFrame){
//_hrF=parent.frames[mm_contentFrame].location.pathname+parent.frames[mm_contentFrame].location.search
//_Lhr=parent.frames[mm_contentFrame].location.href
//_hx=_Lhr.split("/")
//_fNm="/"+_hx[_hx.length-1]
}
if(_ombcu.length&&(_W.mm_maxLevels>0||_W.mm_maxLevels+" "==$u)){
for(_oma=_ombcu.length-1;_oma>-1;_oma--){
_i=_ombcu[_oma]
_I=_mi[_i]
//alert(_I)
_popi(_i)
clickAction(_i)
_ofMT=1
if(_I[32]){
_tI=gmobj("img"+_i)
if(_tI&&_I[29])_tI.src=_I[29]
}
if(_oma==_W.mm_maxLevels)return
}
}
}
}
// mm_separator is the separator string to be placed between
// menu item names in the output to the page. Edit this
// to suit your taste.
var mm_separator = "<tr><td class='separator'></td></tr>";
// mm_selectionSequenc is the sequence of selected menu items
// that led to the last selected item. Rebuilt when the page
// loads by the getSelectionSequenc() function
var mm_selectionSequence = "";
// mm_openUrl() is called to go to the next page. It automatically
// passes the _itemRef (last active menu item) to the next page
function mm_openUrl(url)
{
if (_itemRef == null){
_itemRef = '<%=Session("menu")%>';
}
url+="?menu="+_itemRef;
window.location.href = url;
}
// mm_getSelectionSequence extracts the _itemRef from the parameter
// passed in the url, then figures out the sequence of menu items
// that led to it. Called at the bottom of this file so that it
// runs automatically when the page loads and after the menus are
// drawn
function mm_getSelectionSequence(){
var urls = location.search;
if (urls.lastIndexOf("menu=") >= 0 ) {
var param=urls.substring(urls.lastIndexOf("menu="));
var selectedItem = param.substring(5,param.length);
var i = selectedItem;
}
else {
var i = '<%=Session("menu")%>';
}
if (_mi[i] != null ) {
do {
var url = _mi[i][2].substring(23,_mi[i][2].length - 2);
if (mm_selectionSequence == "")
mm_selectionSequence = '<tr><td class="slidemenu"> <a title="' + _mi[i][1] + '" href="' + url + '?menu=' + i + '" onMouseOver="javascript:window.status=\'' + _mi[i][1] + '\';return(true);" onMouseOut="javascript:window.status=\'\';return(true);">' + _mi[i][1] + '</a></td></tr>' +mm_selectionSequence ;
else
mm_selectionSequence = '<tr><td class="slidemenu"> <a title="' + _mi[i][1] + '" href="' + url + '?menu=' + i + '" onMouseOver="javascript:window.status=\'' + _mi[i][1] + '\';return(true);" onMouseOut="javascript:window.status=\'\';return(true);">' + _mi[i][1] + '</a></td></tr>' + mm_separator + mm_selectionSequence;
//mm_selectionSequence = '<tr><td class="slidemenu"> <a href="' + url + '?menu=' + i + '" onMouseOver="javascript:window.status=\'Test\';return(true);" onMouseOut="javascript:window.status=\'\';return(true);">' + _mi[i][1] + '</a></td></tr>' +mm_selectionSequence ;
//else
//mm_selectionSequence = '<tr><td class="slidemenu"> <a href="' + url + '?menu=' + i + '" onMouseOver="javascript:window.status=\'Test2\';return(true);" onMouseOut="javascript:window.status=\'\';return(true);">' + _mi[i][1] + '</a></td></tr>' + mm_separator + mm_selectionSequence;
i = getParentItemByItem(i);
} while (!isNaN(i));
}
}
function elem(url,title) {
this.url = url;
this.title = title;
}
var Menu = new Array();
Menu[0] = new elem("/products/",'Produits');
Menu[1] = new elem("/services/",'Services');
Menu[2] = new elem("/download/",'Téléchargements');
Menu[3] = new elem("/successes/",'Succès Client');
Menu[4] = new elem("/news/",'Nouveautés');
Menu[5] = new elem("/vars/",'Réseau de Vente');
Menu[6] = new elem("/partners/",'Partenaires');
Menu[7] = new elem("/company/",'Société');
// Menu PRODUCTS
var SubMenu0 = new Array();
SubMenu0[0] = new elem("/products/plm/",'CFAO/ERP intégrée');
SubMenu0[1] = new elem("/products/industry/",'Solutions Métiers');
SubMenu0[2] = new elem("/products/2006/",'TopSolid 2006');
// Menu SERVICES
var SubMenu1 = new Array();
SubMenu1[0] = new elem("/services/support/",'Support');
SubMenu1[1] = new elem("/services/education/",'Education');
SubMenu1[2] = new elem("/services/training/",'Formation');
SubMenu1[3] = new elem("/services/msservices/",'Missler Software Services');
// Menu DOWNLOAD
var SubMenu2 = new Array();
SubMenu2[0] = new elem("/download/patch/",'Patches');
SubMenu2[1] = new elem("/download/free/","Logiciels Gratuits");
SubMenu2[2] = new elem("/download/marketing.asp","Marketing");
SubMenu2[3] = new elem("/download/videos.asp","Vidéos");
// Menu SUCCESSES
var SubMenu3 = new Array();
SubMenu3[0] = new elem("/successes/",'Reportages');
// Menu NEWS & EVENTS
var SubMenu4 = new Array();
SubMenu4[0] = new elem("/news/press/",'Communiqués de Presse');
SubMenu4[1] = new elem("/news/pressroom.asp",'Espace Presse');
SubMenu4[2] = new elem("/news/shows/",'Salons');
SubMenu4[3] = new elem("/news/newsletter/",'Newsletter');
// Menu RESEAU VENTE
var SubMenu5 = new Array();
SubMenu5[0] = new elem("/vars/frenchnetwork.asp",'France');
SubMenu5[1] = new elem("/vars/search",'International');
// Menu COMPANY
var SubMenu7 = new Array();
SubMenu7[0] = new elem("/company/profile.asp",'Présentation');
SubMenu7[1] = new elem("/company/careers.asp",'Recrutement');
SubMenu7[2] = new elem("/company/history.asp",'Historique');
SubMenu7[3] = new elem("/company/contactus/",'Contactez-nous');
with(menuStyle=new mm_style()){
onbgcolor="#006699";
align='center';
//onbgcolor="#4F8EB6";
oncolor="#ffffff";
//offbgcolor="#DCE9F0";
offbgcolor="#000000";
//offcolor="#515151";
offcolor="#ffffff";
bordercolor="#000000";
borderstyle="solid";
borderwidth=0;
separatorcolor="#CCCCCC";
separatorsize="1";
padding=3;
fontsize="10";
fontstyle="normal";
fontfamily="Arial";
pagecolor="white";
pagebgcolor="#006699";
headercolor="#000000";
headerbgcolor="#ffffff";
//subimage="menu/arrow.gif";
subimagepadding="0";
//overfilter='Fade(duration=0.2);Shadow(color='#777777',Direction=135,Strength=3)';
overfilter="fade(duration=0.5)";
outfilter="fade(duration=0.5)";
itemheight=20;
itemwidth=90;
//keepalive=1;
//separatorpadding=10;
}
with(SubMenuStyle=new mm_style()){
onbgcolor="#006699";
align='center';
//onbgcolor="#4F8EB6";
oncolor="#000000";
//offbgcolor="#DCE9F0";
offbgcolor="#006699";
//offcolor="#515151";
offcolor="#ffffff";
bordercolor="#000000";
borderstyle="solid";
borderwidth=0;
separatorcolor="#CCCCCC";
//separatorcolor="#2D729D";
separatorsize="1";
padding=3;
fontsize="10";
fontstyle="normal";
fontfamily="Arial";
pagecolor="black";
pagebgcolor="#006699";
headercolor="#000000";
headerbgcolor="#ffffff";
overfilter="fade(duration=0.5)";
outfilter="fade(duration=0.5)";
itemheight=20;
separatorpadding=10;
}
with(milonic=new menuname("Main Menu")){
style=menuStyle;
left=5;
top=85;
orientation="horizontal";
alwaysvisible=1;
for (var i = 0; i < Menu.length; i++){
aI("text=" + Menu[i].title + ";url=javascript:mm_openUrl('" + Menu[i].url + "');showmenu=" + Menu[i].title + ";pagematch=" + Menu[i].url + ";status=" + Menu[i].title + ";");
}
}
with(milonic=new menuname(Menu[0].title)){
style=SubMenuStyle;
orientation="horizontal";
left=5;
//alwaysvisible=1;
//itemwidth=130;
for (var i = 0; i < SubMenu0.length; i++){
aI("text=" + SubMenu0[i].title + ";url=javascript:mm_openUrl('" + SubMenu0[i].url + "');showmenu=" + SubMenu0[i].title + ";pagematch=" + SubMenu0[i].url + ";status=" + SubMenu0[i].title + ";title=" + SubMenu0[i].title + ";");
}
}
with(milonic=new menuname(Menu[1].title)){
style=SubMenuStyle;
//itemwidth=80;
left=5;
orientation="horizontal";
//alwaysvisible=1;
for (var i = 0; i < SubMenu1.length; i++){
aI("text=" + SubMenu1[i].title + ";url=javascript:mm_openUrl('" + SubMenu1[i].url + "');showmenu=" + SubMenu1[i].title + ";pagematch=" + SubMenu1[i].url + ";status=" + SubMenu1[i].title + ";title=" + SubMenu1[i].title + ";");
}
}
with(milonic=new menuname(Menu[2].title)){
style=SubMenuStyle;
//itemwidth=100;
left=100;
orientation="horizontal";
//alwaysvisible=1;
for (var i = 0; i < SubMenu2.length; i++){
aI("text=" + SubMenu2[i].title + ";url=javascript:mm_openUrl('" + SubMenu2[i].url + "');showmenu=" + SubMenu2[i].title + ";pagematch=" + SubMenu2[i].url + ";status=" + SubMenu2[i].title + ";title=" + SubMenu2[i].title + ";");
}
}
with(milonic=new menuname(Menu[3].title)){
style=SubMenuStyle;
//itemwidth=80;
left=315;
orientation="horizontal";
//alwaysvisible=1;
for (var i = 0; i < SubMenu3.length; i++){
aI("text=" + SubMenu3[i].title + ";url=javascript:mm_openUrl('" + SubMenu3[i].url + "');showmenu=" + SubMenu3[i].title + ";pagematch=" + SubMenu3[i].url + ";status=" + SubMenu3[i].title + ";title=" + SubMenu3[i].title + ";");
}
}
with(milonic=new menuname(Menu[4].title)){
style=SubMenuStyle;
//itemwidth=120;
left=320;
orientation="horizontal";
//alwaysvisible=1;
for (var i = 0; i < SubMenu4.length; i++){
aI("text=" + SubMenu4[i].title + ";url=javascript:mm_openUrl('" + SubMenu4[i].url + "');showmenu=" + SubMenu4[i].title + ";pagematch=" + SubMenu4[i].url + ";status=" + SubMenu4[i].title + ";title=" + SubMenu4[i].title + ";");
}
}
with(milonic=new menuname(Menu[5].title)){
style=SubMenuStyle;
left=485;
orientation="horizontal";
//alwaysvisible=1;
for (var i = 0; i < SubMenu5.length; i++){
aI("text=" + SubMenu5[i].title + ";url=javascript:mm_openUrl('" + SubMenu5[i].url + "');showmenu=" + SubMenu5[i].title + ";pagematch=" + SubMenu5[i].url + ";status=" + SubMenu5[i].title + ";title=" + SubMenu5[i].title + ";");
}
}
with(milonic=new menuname(Menu[7].title)){
style=SubMenuStyle;
//itemwidth=80;
left=440;
orientation="horizontal";
//alwaysvisible=1;
for (var i = 0; i < SubMenu7.length; i++){
aI("text=" + SubMenu7[i].title + ";url=javascript:mm_openUrl('" + SubMenu7[i].url + "');showmenu=" + SubMenu7[i].title + ";pagematch=" + SubMenu7[i].url + ";status=" + SubMenu7[i].title + ";title=" + SubMenu7[i].title + ";");
}
}
drawMenus();
mm_getSelectionSequence();
_ocURL()
//-->
</script>