#include <lib/std.mi>

Function menuresize(int h, int w);
Function doortoggle(int h);

Global Group Topdoor, Bottomdoor, frameGroup, Overlay;
Global Layer Toplogo, BottomLogo;
Global Timer doorTimer;
Global Boolean doorState, doorMENU;

System.onScriptLoaded() {
	frameGroup = getScriptGroup();

	Topdoor = framegroup.findObject("menu.topdoor");
	Bottomdoor = framegroup.findObject("menu.bottomdoor");

	Toplogo = framegroup.findObject("topdoor.logo");
	Bottomlogo = framegroup.findObject("bottomdoor.logo");

	Overlay = frameGroup.findObject("menu.overlay");

	doorState = 1;

	doorMENU = system.getPrivateInt(getSkinName(), "doorMENU", 0);

	if(doorMENU) {
		menuresize(framegroup.getHeight(), framegroup.getWidth());

		doorTimer = new Timer;
		doorTimer.setDelay(300);
		doorTimer.start();
	} else {
		Topdoor.hide();
		Toplogo.hide();
		Bottomdoor.hide();
		Bottomlogo.hide();

		Overlay.hide();
	}
}

System.onScriptUnloading() {
  delete doorTimer;
}

menuresize(int h, int w) {
		Topdoor.setXmlParam("h", integerToString((h-48)/2));
		Toplogo.setXmlParam("x", integerToString((w-44)/2-47));

		Bottomdoor.setXmlParam("h", integerToString((h-48)/2));
		Bottomdoor.setXmlParam("y", integerToString((h-48)/2+24));
		Bottomlogo.setXmlParam("x", integerToString((w-44)/2-61));
}

framegroup.onresize(int x, int y, int w, int h) {
	if(doorMENU) menuresize(h, w);
}

doorTimer.onTimer() {
	doortoggle(framegroup.getHeight());
	doorTimer.stop();
}

doortoggle(int h) {
	if(doorstate) {
	int toph = Topdoor.getXmlParam("h");

	Topdoor.setTargetY(24-toph);
	Topdoor.setTargetSpeed(3);
	Topdoor.gotoTarget();

	Bottomdoor.setTargetY((h-48)/2+(h-48)/2+24);
	Bottomdoor.setTargetSpeed(3);
	Bottomdoor.gotoTarget();

	doorState = 0;
	} else {
	Topdoor.setTargetY(24);
	Topdoor.setTargetSpeed(3);
	Topdoor.gotoTarget();

	Bottomdoor.setTargetY((h-48)/2+24);
	Bottomdoor.setTargetSpeed(3);
	Bottomdoor.gotoTarget();

	doorState = 1;
	}
}

//DoorBtn.onLeftButtonUp(int x, int y) {
//	Topdoor.setXmlParam("h", integerToString((framegroup.getHeight()-48)/2));
//	Topdoor.setXmlParam("y", integerToString(24-Topdoor.getHeight()));
//	Toplogo.setXmlParam("x", integerToString((framegroup.getWidth()-44)/2-47));
//
//	Bottomdoor.setXmlParam("h", integerToString((framegroup.getHeight()-48)/2));
//	Bottomdoor.setXmlParam("y", integerToString((framegroup.getHeight()-48)/2+(framegroup.getHeight()-48)/2+24));
//	Bottomlogo.setXmlParam("x", integerToString((framegroup.getWidth()-44)/2-61));
//
//	Overlay.Show();
//	Overlay.setTargetA(255);
//	Overlay.setTargetSpeed(0.5);
//	Overlay.gotoTarget();
//}

Topdoor.onTargetReached() {
	if(!doorState) {
		Overlay.setTargetA(0);
		Overlay.setTargetSpeed(0.5);
		Overlay.gotoTarget();

		Topdoor.hide();
		Bottomdoor.hide();
	} else {
		doorState = 0;
		doorTimer.start();
	}
}

Overlay.onTargetReached() {
	if(Overlay.getAlpha()==0) Overlay.hide();
	else {
		Topdoor.show();
		Bottomdoor.show();
		doortoggle(framegroup.getHeight());
	}
}