// Copyright 2006-2007 javascript-array.com var timeout = 300; var closetimer = 0; var ddmenuitem = 0; function calculateOffsetLeft(r){var kb=0;while(r){kb+=r['offsetLeft'];r=r.offsetParent}return kb;} // open hidden layer function mopen(id, left) { // cancel close timer mcancelclosetime(); // close old layer if(ddmenuitem) ddmenuitem.style.visibility = 'hidden'; // get new layer and show it ddmenuitem = document.getElementById(id); if(left>0) ddmenuitem.style.left=left+'px'; ddmenuitem.style.visibility = 'visible'; } // close showed layer function mclose() { if(ddmenuitem) ddmenuitem.style.visibility = 'hidden'; } // go close timer function mclosetime() { closetimer = window.setTimeout(mclose, timeout); } // cancel close timer function mcancelclosetime() { if(closetimer) { window.clearTimeout(closetimer); closetimer = null; } } // close layer when click-out document.onclick = mclose;