
   MA_DOM = (document.getElementById) ? true : false;
   MA_NS4 = (document.layers) ? true : false;
    MA_IE = (document.all) ? true : false;
   MA_IE4 = MA_IE && !MA_DOM;

if(MA_DOM) getBoxNavi = document.getElementById("boxNavi").style;
else if(MA_NS4) getBoxNavi = document.layers["boxNavi"];
else if(MA_IE4)  getBoxNavi = document.all.boxNavi.style;
else alert("browser not found!");

state            = 0;
veryOldPositionY = 0;
oldPositionY     = 0;
newPositionY     = 0;
barHeight        = 40;
getBoxNavi.zIndex = "10";
getBoxNavi.left = "0";
getBoxNavi.top = "0";

function ma_initNavMover(uEvent) {
        uEvent = ma_checkNavEvent(uEvent);
        ma_doNav(uEvent);
        setTimeout("ma_initNavMover()",10);
}

function ma_checkNavEvent(uEvent) { // eventhandler
				if(MA_IE) { // IE4/5/6
            topYoffset = document.body.clientHeight - barHeight;
            newPositionY = document.body.scrollTop + topYoffset;
						}
			  else { // NS4/6
            topYoffset = window.innerHeight - barHeight;
            newPositionY = window.pageYOffset  + topYoffset;
						}				
        if (uEvent != -1) {
                if((veryOldPositionY == oldPositionY) && (newPositionY == oldPositionY)) uEvent = 0; // nothing happen
                else uEvent = 1; // move in y axis
        }
        return uEvent;
}

function ma_doNav(uEvent) {  // state-event machine
        //top.test.document.write("test101: state = " + state + " / uEvent = " + uEvent + "<br>");
        switch(state)        {
                case  0: // layer hidden
                        switch(uEvent)        {
                                case -1:        veryOldPositionY = oldPositionY = newPositionY;
                                case  0:        ma_showNav(); state = 1; break;
                                default:         break;
                                }
                                break;
                case  1: // layer shown
                        switch(uEvent)        {
                                case  1:        ma_hideNav(); state = 0; break;
                                default:         break;
                                }
                                break;
                default: break; // not possible
        }
        ma_scrollNav();
}

function ma_showNav() {  //timout show menu
        setTimeout("ma_showNav2()",250);
}
function ma_showNav2() {  //pos and show menu
        getBoxNavi.top = newPositionY;
        getBoxNavi.visibility = "visible";
}

function ma_hideNav() { //hide menu
        getBoxNavi.visibility = "hidden";
}
function ma_scrollNav() { //hide menu
        veryOldPositionY = oldPositionY;
        oldPositionY = newPositionY;
}
xr = (window.onresize) ? window.onresize :  new Function;
window.onresize = function(){setTimeout("ma_initNavMover(-1)",5)};

xl = (window.onload) ? window.onload :  new Function;
window.onload = function(){setTimeout("ma_initNavMover(-1)",5)};

