﻿function MFXrunMenu(myName) {
	ieStep = 0;
	thereS = false;
	thereC = false;
	first = myName;
	if(whichOpen == -1 && !running && MFXmain[myName] && !(whichOpen == myName)) {
		running = true;
		if(NN) {
			myLayer[myName + 1].clip.height = 0;
			myLayer[myName + 1].visibility = VISIBLE;
		}
		if(IE) {
			myLayer[myName + 1].clip = "rect(" + ("auto") + " " + ("auto") + " " + (0) + " " + ("auto") + ")";
			myLayer[myName + 1].visibility = VISIBLE;
		}
		MFXopenMenuS(myName);
		MFXopenMenuC(myName);
	}
	if(whichOpen >= 0 && !running && !(whichOpen == myName)) {
		running = true;
		second = whichOpen;
		ieStep1 = myHeight[second + 1];
		thereCS = false;
		thereCC = false;
		MFXcloseMenuS(second);
		MFXcloseMenuC(second);
	}
	if(whichOpen >= 0 && !running && whichOpen == myName && closes) {
		running = true;
		second = whichOpen;
		ieStep1 = myHeight[second + 1];
		thereCS = false;
		thereCC = false;
		MFXcloseMenuS(second);
		MFXcloseMenuC(second);
	}
}

function MFXstopCloseS(myName) {
	running = false;
	thereCS = true;
	if(closes && first == whichOpen) {whichOpen = -1;}
	else {
		whichOpen=-1;
		MFXrunMenu(first);
	}
}

function MFXstopOpenS(myName) {
	running = false;
	thereS = true;
	if(IE) {myLayer[myName + 1].clip= "rect(" + ("auto") + " " + ("auto") + " " + ("auto") + " " + ("auto") + ")";}
	whichOpen = myName;
}

function MFXopenMenuS(myName) {
	myStep = mySpeed;
	if(NN && !thereS && !(first == lastMain)) {
		if(myLayer[first + 2].top + myStep > mySlide[first + 1]) {
			myStep = mySlide[first + 1] - myLayer[first + 2].top;
		}
		for(i = first + 2; i < myLayer.length; i+=2) {
			myLayer[i].top+=myStep;
		}
		if(myLayer[first + 2].top == mySlide[first + 1]) {
			MFXstopOpenS(first)
		}
		if(running)setTimeout('MFXopenMenuS(first)',10);
	}
	if(IE && !thereS && !(first == lastMain)) {
		if(myLayer[first + 2].pixelTop + myStep > mySlide[first + 1]) {
			myStep = mySlide[first + 1] - myLayer[first + 2].pixelTop;
		}
		for(i = first + 2; i < myLayer.length; i+=2) {
			myLayer[i].pixelTop+=myStep;
		}
		if(myLayer[first + 2].pixelTop == mySlide[first + 1]) {
			MFXstopOpenS(first)
		}
		if(running)setTimeout('MFXopenMenuS(first)',10);
	}
}

function MFXopenMenuC(myName) {
	myStep = mySpeed;
	if(NN && !thereC) {
		if ((myLayer[first + 1].clip.height + myStep) > myHeight[first + 1]) {
			myLayer[first + 1].clip.height = myHeight[first + 1]
		}
		if(myLayer[first + 1].clip.height == myHeight[first + 1]) {
			thereC = true;
			whichOpen = first;
			MFXstopOpenS(first)
		} else {
			myLayer[first + 1].clip.height+=myStep;
		}
		if(running)setTimeout('MFXopenMenuC(first)',10);
	}
	if(IE && !thereC) {
		ieStep+=myStep;
		myLayer[myName + 1].clip = "rect(" + ("auto") + " " + ("auto") + " " + (ieStep) + " " + ("auto") + ")";
		if(ieStep >= myHeight[first + 1]) {
			thereC = true;
			whichOpen = first;
			MFXstopOpenS(first)
		}
		if(running)setTimeout('MFXopenMenuC(first)',10);
	}
	// 動態佈置版面位置
	MFXchangeHeight();
}

function MFXcloseMenuS(myName) {
	myStep = mySpeed;
	if(NN && !thereCS && !(second == lastMain)) {
		if(myLayer[second + 2].top - myStep < myTop[second + 2]) {
			myStep = myLayer[second + 2].top - myTop[second + 2];
		}
		for(i = second + 2; i < myLayer.length; i+=2) {
			myLayer[i].top-=myStep;
		}
		if(myLayer[second + 2].top == myTop[second + 2]) {
			MFXstopCloseS(second);
		}
		if(running)setTimeout('MFXcloseMenuS(second)',10);
	}
	if(IE && !thereCS && !(second == lastMain)) {
		if(myLayer[second + 2].pixelTop - myStep < myTop[second + 2]) {
			myStep = myLayer[second + 2].pixelTop - myTop[second + 2];
		}
		for(i = second + 2; i < myLayer.length; i+=2) {
			myLayer[i].pixelTop-=myStep;
		}
		if(myLayer[second + 2].pixelTop == myTop[second + 2]) {
			MFXstopCloseS(second);
		}
		if(running)setTimeout('MFXcloseMenuS(second)',10);
	}
}

function MFXcloseMenuC(myName) {
	myStep=-mySpeed;
	ieStep1-=mySpeed;
	if(NN && !thereCC) {
		if ((myLayer[second + 1].clip.bottom + myStep) < 0) {
			myLayer[second + 1].clip.bottom = 0;
		}
		if(myLayer[second + 1].clip.bottom == 0) {
			thereCC=true;
			if(second == lastMain)MFXstopCloseS(second);
		} else {
			myLayer[second + 1].clip.bottom+=myStep;
		}
		if(running)setTimeout('MFXcloseMenuC(second)',10);
	}
	if(IE && !thereCC) {
		if(ieStep1 <= 0) {
			myLayer[myName + 1].clip = "rect(" + ("auto") + " " + ("auto") + " " + (0) + " " + ("auto") + ")";
			thereCC = true;
			if(second == lastMain)MFXstopCloseS(second);
		} else {
			myLayer[myName + 1].clip = "rect(" + ("auto") + " " + ("auto") + " " + (ieStep1) + " " + ("auto") + ")";
		}
		if(running)setTimeout('MFXcloseMenuC(second)',10);
	}
	// 動態佈置版面位置
	MFXchangeHeight();
}

// 修正物件座標
function fixPlace() {
    intTime += 1;

    if (intTime >= 3)
        clearInterval(timerID);
 
    document.getElementById('parentLayer').style.display = '';
    // 初始化座標位置
    objX = 0;
    objY = 0;
    // 如果沒有參考座標則給予參考座標
    if (document.getElementById("categoryContents") != null) {
	    requestPlace(categoryContents);
    } else {
	    requestPlace(topArea);
    }
}
