var absHeight = 336;
var inAction = 0;

function switchMenu(objectName) {

    if (!inAction) {
		
		object = document.getElementById(objectName);
        isCombo = 0;
		if (object.parentNode.parentNode.parentNode.parentNode.parentNode.id == "combo") {
            combox = object.parentNode.parentNode.parentNode.parentNode.parentNode;
            divArray = combox.getElementsByTagName('div');
//	        alert("divArrayLength: " + divArray.length);
            for (y=0; y<divArray.length; y++) {
	    	    if (divArray[y].offsetHeight > 0 &&divArray[y].id.match("scroll")) {
//                    alert("toClose: " + divArray[y].id);
                    toClose = divArray[y].id;	
		        }
	        }
            isCombo = 1;
		}

//        isCombo=0;
        
//		alert("Object: " + object + " ObjectName: " + objectName);
    	
		if (object.offsetHeight > 0) {
//            alert("go -> scrollUp");
//		    absHeight = object.offsetHeight;
            if(!isCombo) {
				inAction = 1;
                scrollUp(objectName);
			}
        }
	    else {
            inAction = 1;
			if (isCombo) {
//                alert("go -> switchCombo");
				switchCombo(objectName,toClose);
			}
			else {
//                alert("go -> scrollDown");
                scrollDown(objectName);				
			}
	    }
	}
	else {
//		alert("inAction!");

    }

}


function scrollUp(objectName) {
   	object = document.getElementById(objectName);
//    alert("ScrollUp: Object: " + object + " ObjectName: " + objectName + " OffsetHieght: " + object.offsetHeight);
    actHeight = object.offsetHeight;
    step = Math.ceil(Math.min(actHeight/3,Math.exp(actHeight)/100));
//    	alert ("step: " + step);
    object.style.height = (actHeight - step) + "px";
    if (object.offsetHeight > 0) {
        newObjectName = objectName;
        setTimeout('scrollUp(newObjectName)',10);
    }
    else {
//		     object.style.visibility = 'hidden';
		 inAction = 0;
   	}
}

function scrollDown(objectName) {
    
	object = document.getElementById(objectName);
//	object.style.visibility = 'visible';
	
    object = document.getElementById(objectName);
//    alert("scrollDown: Object: " + object + " ObjectName: " + objectName + " OffsetHieght: " + object.offsetHeight);
    actHeight = object.offsetHeight;
	step = Math.ceil(Math.min( (absHeight-actHeight)/3, Math.exp( (absHeight-actHeight) )/100 ) );
//	alert ("step: " + step);
    object.style.height = (actHeight + step) + "px";
	if (object.offsetHeight < absHeight) {
        newObjectName = objectName;
//        alert('Call: scrollDown(' + newObjectName +')');
        setTimeout('scrollDown(newObjectName)',50);
	}
	else {
		inAction = 0;	
	}

}

function switchCombo(toOpen, toClose) {

//    alert("switchCombo");
 
    objectOpen = document.getElementById(toOpen);
	objectClose = document.getElementById(toClose);
	
//	alert("toOPen: " + objectOpen.id + " toClose: " + objectClose.id);
	
	openActHeight = objectOpen.offsetHeight;
	closeActHeight = objectClose.offsetHeight;	
	
//    step = 1;
	step = Math.ceil(Math.min(Math.pow(absHeight-openActHeight,2)/36,(absHeight-openActHeight)/3));
//	alert("switchCombo: step: " + step);

//    alert("Open: " + objectOpen.offsetHeight + " Close: " + objectClose.offsetHeight + ":" +objectClose.style.height + " Step: " + step);
    objectOpen.style.height = (openActHeight + step) + "px";
    objectClose.style.height = (closeActHeight - step) + "px";
    if (closeActHeight >= step) { objectClose.style.height = (closeActHeight - step) + "px"; }
//    alert("Open: " + objectOpen.offsetHeight + " Close: " + objectClose.offsetHeight + ":" +objectClose.style.height);
	
	if (objectOpen.offsetHeight < absHeight) {
        newOpen = toOpen;
		newClose = toClose;
        setTimeout('switchCombo(newOpen, newClose)',50);
	}
	else {
//        alert("Open: " + objectOpen.offsetHeight + " Close: " + objectClose.offsetHeight);
        inAction = 0;	
	}
}

function scrollUpAll(combox) {
    divArray = combox.getElementsByTagName('div');
//	alert("divArrayLength: " + divArray.length);
    for (y=0; y<divArray.length; y++) {
		if (divArray[y].id.match("scroll")) {
            alert("autoScrollUp: " + divArray[y].id);
            scrollUp(divArray[y].id);	
		}
	}

    return(true);

}
