#include <lib/std.mi>

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

Global Group Topdoor, Bottomdoor, frameGroup, Overlay;
Global Layer Toplogo, BottomLogo;
Global Timer doorTimer;
Global Guiobject vid;
Global Boolean doorState, doorVID;

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

	vid = framegroup.findObject("video.content");

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

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

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

	doorState = 1;

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

	if(doorVID) {
		vid.hide();

		vidresize(framegroup.getHeight(), framegroup.getWidth());

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

		Overlay.hide();

		vid.show();
	}
}

System.onScriptUnloading() {
  delete doorTimer;
}

vidresize(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(doorVID) vidresize(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;
	}
}

Topdoor.onTargetReached() {
	if(!doorState) {
		vid.show();

		Overlay.setTargetA(0);
		Overlay.setTargetSpeed(0.5);
		Overlay.gotoTarget();

		Topdoor.hide();
		Bottomdoor.hide();
	}
}

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