1) Script Title: AnyLink Drop Down Menu

2) Script URL (on DD): http://www.dynamicdrive.com/dynamici...pmenuindex.htm

3) Describe problem:

I do not want the header roll over to restore when the cursor enters the menu. I thought it might be simple, but I can't make it do it. I've tried putting MM_swapImgRestore(); in various places. But it just doesn't do what I want. If i take the onmouseout out of the href the header roll over stays until the menu is exited, but if you exit the header instead of exiting the menu the roll over on the header stays. Surely there is some simply solution, I just can't find it.

Code:

Menu build:
var jmenuproducts=new Array();
jmenuproducts[0]= '<a href="products.php?cat=8">Real Estate</a>';
jmenuproducts[1]= '<a href="products.php?cat=32">Motivation</a>';
jmenuproducts[2]= '<a href="products.php?cat=16">Interviews</a>';
jmenuproducts[3]= '<a href="shadowing.php">Shadowing</a>';
jmenuproducts[4]= '<a href="seminars.php">Seminars</a>';
jmenuproducts[5]= '<a href="coaching.php">Coaching</a>';
jmenuproducts[6]= '<a href="order.php">Order</a>';


Menu display

<div id="menuproducts">
<a href="products.php"
onmouseout="delayhidemenu()"
onmouseover="MM_swapImage('products','','images/m2/productssel.gif',1);
dropdownmenu(this, event, jmenuproducts, '103px',0);"
onClick="return clickreturnvalue()"
>
<img src="images/m2/products.gif" alt="products" name="products"
width="125" height="55" border="0" id="products" />
</a>
</div>


Modified anylink.js


/***********************************************
* AnyLink Drop Down Menu- Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var menuwidth='100px' //default menu width
var menubgcolor='#737273' //menu bgcolor
var disappeardelay=250 //menu disappear speed onMouseout (in miliseconds)
var hidemenu_onclick="yes" //hide menu when user clicks within menu?

/////No further editting needed

var ie4=document.all
var ns6=document.getElementById&&!document.all

if (ie4||ns6)
document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu(); " onMouseout="dynamichide(event)"></div>')

function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}


function showhide(obj, e, visible, hidden, menuwidth)
{
if (ie4||ns6)
dropmenuobj.style.left=dropmenuobj.style.top="-500px"

if (menuwidth!="")
{
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=menuwidth
}

if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
obj.visibility=visible
else if (e.type=="click")
obj.visibility=hidden

}

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
var edgeoffset=0
if (whichedge=="rightedge"){
var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth
}
else{
var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset
var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure){ //move up?
edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) //up no good either?
edgeoffset=dropmenuobj.y+obj.offsetHeight-topedge
}
}
return edgeoffset
}

function populatemenu(what){
if (ie4||ns6)
dropmenuobj.innerHTML=what.join("")
}



function dropdownmenu(obj, e, menucontents, menuwidth, moreleft)
{
var tofftop = -3

var toffleft = 4 + moreleft;

if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
clearhidemenu()
dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv

populatemenu(menucontents)

if (ie4||ns6){
showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth)
dropmenuobj.x=getposOffset(obj, "left")+toffleft;
dropmenuobj.y=getposOffset(obj, "top")+tofftop;
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
}

return clickreturnvalue()
}

function clickreturnvalue()
{
if (ie4||ns6)
{
if (dropmenuobj == undefined)
return false;
else
return true;
}
else
return true
}

function contains_ns6(a, b) {
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}

function dynamichide(e){

if (ie4 && !dropmenuobj.contains(e.toElement))
delayhidemenu()
else if ( ns6
&&
e.currentTarget!= e.relatedTarget
&&
!contains_ns6(e.currentTarget, e.relatedTarget)
)
{
delayhidemenu()
}
}

function hidemenu(e)
{
if (typeof dropmenuobj!="undefined")
{
if (ie4||ns6)
{
dropmenuobj.style.visibility="hidden"
}
}

MM_swapImgRestore();
//alert("hidemenu");
}

function delayhidemenu(){
if (ie4||ns6)
delayhide=setTimeout("hidemenu()",disappeardelay)

MM_swapImgRestore();
//alert("delayhidemenu");

}

function checkhidemenu()
{
// if the cursor is in the menu don't clear
// else swap

//alert("checkhidemenu "+b);

}

function clearhidemenu(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide)
}

if (hidemenu_onclick=="yes")
document.onclick=hidemenu