var fixedMenuId = 'container';
var fixedMenuHolderId = 'container_holder';
   
 var fixedMenu =  {  
    hasInner: typeof(window.innerWidth) == 'number',  
    hasElement: document.documentElement != null && document.documentElement.clientWidth,
    menu: document.getElementById ? document.getElementById(fixedMenuId) : document.all ? document.all[fixedMenuId] : document.layers[fixedMenuId],
	header_h : document.getElementById('header').offsetHeight+ document.getElementById('mixMenu').offsetHeight+ document.getElementById('mixHelper').offsetHeight,
	bh : document.getElementById('header').offsetHeight+ document.getElementById('mixMenu').offsetHeight+ document.getElementById('mixHelper').offsetHeight + document.getElementById('tabbox').offsetHeight - 29
 };  
   
fixedMenu.computeShifts = function() {
    //fixedMenu.shiftY = fixedMenu.hasInner ? pageYOffset : fixedMenu.hasElement ? document.documentElement.scrollTop : document.body.scrollTop;  
	fixedMenu.testy = (document.all) ? (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) : window.pageYOffset;
    //if (fixedMenu.targetTop > 0)  
    //     fixedMenu.shiftY += fixedMenu.targetTop;  
    // else {  
    //     fixedMenu.shiftY += (fixedMenu.hasElement ? document.documentElement.clientHeight : fixedMenu.hasInner ? window.innerHeight - 20 : document.body.clientHeight)  
    //         - fixedMenu.targetBottom  
    //         - fixedMenu.menu.offsetHeight;  
    //}  
};
   
fixedMenu.moveMenu = function() {
	fixedMenu.computeShifts();

	//console.log("header:" + header_h + ", fixedMenu.testy:" + fixedMenu.testy);
	
	if (fixedMenu.testy < (fixedMenu.header_h - 10)) {
		fixedMenu.menu.style.top = '';
		fixedMenu.menu.style.position = '';
	}
	else {
		var dh = document.getElementById(fixedMenuId).offsetHeight;
		
		if ((fixedMenu.testy + dh + 10) > fixedMenu.bh){
			fixedMenu.menu.style.position = 'absolute';
			//fixedMenu.menu.style.top = (fixedMenu.hasElement ? document.documentElement.clientHeight : fixedMenu.hasInner ? window.innerHeight - 20 : document.body.clientHeight) - 310 - dh + 'px';
			fixedMenu.menu.style.top = Math.max(fixedMenu.header_h, fixedMenu.bh - dh) + 'px';
		}
		else {
			fixedMenu.menu.style.top = 10 + 'px';
			fixedMenu.menu.style.position = 'fixed';
		}
	}

	fixedMenu.menu.style.bottom = '';  
};  
   
 fixedMenu.floatMenu = function() {  
     fixedMenu.moveMenu();  
     setTimeout('fixedMenu.floatMenu()', 20);  
 };  
 
fixedMenu.moveMenuIE = function() {  
    fixedMenu.computeShifts();  

	//alert("header:"+document.getElementById('header').clientHeight+ ' , '+
	//		"mixmenu:"+document.getElementById('mixMenu').clientHeight+' , '+
	//		"mixHelper:"+document.getElementById('mixHelper').offsetHeight);
		if (fixedMenu.testy < (fixedMenu.header_h - 10)){
			fixedMenu.menu.style.top = '';
		}
		else {
			var dh = document.getElementById(fixedMenuId).offsetHeight;
			
			if ((fixedMenu.testy + dh + 10) > fixedMenu.bh){
				fixedMenu.menu.style.top = Math.max(fixedMenu.header_h, fixedMenu.bh - dh) + 'px';
			} else {
				fixedMenu.menu.style.top = fixedMenu.testy + 10;
			}
		}
    //}
    //fixedMenu.menu.style.right = '';  
    fixedMenu.menu.style.bottom = '';  
};
fixedMenu.floatMenuIE = function() {  
    fixedMenu.moveMenuIE();  
    setTimeout('fixedMenu.floatMenuIE()', 20);  
 };
 
 // addEvent designed by Aaron Moore  
 fixedMenu.addEvent = function(element, listener, handler) {  
     if(typeof element[listener] != 'function' || typeof element[listener + '_num'] == 'undefined') {  
         element[listener + '_num'] = 0;  
         if (typeof element[listener] == 'function') {  
             element[listener + 0] = element[listener];  
             element[listener + '_num']++;  
         }  
         element[listener] = function(e) {  
             var r = true;  
             e = (e) ? e : window.event;  
             for(var i = 0; i < element[listener + '_num']; i++)  
                 if(element[listener + i](e) === false)  
                     r = false;  
             return r;  
         }  
     }  
   
     //if handler is not already stored, assign it  
     for(var i = 0; i < element[listener + '_num']; i++)  
         if(element[listener + i] == handler)  
             return;  
     element[listener + element[listener + '_num']] = handler;  
     element[listener + '_num']++;  
 };  
   
 fixedMenu.supportsFixed = function() {  
     var testDiv = document.createElement("div");  
     testDiv.id = "testingPositionFixed";  
     testDiv.style.position = "fixed";  
     testDiv.style.top = "0px";  
     testDiv.style.right = "0px";  
     document.body.appendChild(testDiv);  
     var offset = 1;  
     if (typeof testDiv.offsetTop == "number" && testDiv.offsetTop != null && testDiv.offsetTop != "undefined") {  
         offset = parseInt(testDiv.offsetTop);  
     }  
     if (offset == 0) {  
         return true;  
     }  
   
     return false;  
 };  
   
fixedMenu.init = function() {
	fixedMenu.header_h = document.getElementById('header').offsetHeight+ document.getElementById('mixMenu').offsetHeight+ document.getElementById('mixHelper').offsetHeight;
	
	fixedMenu.bh = fixedMenu.header_h + document.getElementById('tabbox').offsetHeight - 29;

    if (fixedMenu.supportsFixed()){
       fixedMenu.menu.style.position = "fixed";
	   fixedMenu.addEvent(window, 'onscroll', fixedMenu.moveMenu);
	   fixedMenu.floatMenu();
	   }
    else
	{  
        var ob = document.layers ? fixedMenu.menu : fixedMenu.menu.style;  
   
        //fixedMenu.targetLeft = parseInt(ob.left);  
        fixedMenu.targetTop = parseInt(ob.top);  
        //fixedMenu.targetRight = parseInt(ob.right);  
        fixedMenu.targetBottom = parseInt(ob.bottom);  
   
        if (document.layers) {  
            menu.left = 0;  
            menu.top = 0;  
        }  
        fixedMenu.addEvent(window, 'onscroll', fixedMenu.moveMenuIE);  
        fixedMenu.floatMenuIE();  
    }  
 };  

document.getElementById(fixedMenuHolderId).style.height = document.getElementById(fixedMenuId).clientHeight + 10 + 'px';
fixedMenu.addEvent(window, 'onload', fixedMenu.init);