<?xml version="1.0" encoding="utf-8"?>

<objects>
	<script><![CDATA[
	function init(data)
	{
		var mbMainObj = getGUIObjectByName("mbMain");
		var mbTitleObj = getGUIObjectByName("mbTitleBar");
		var mbTextObj = getGUIObjectByName("mbText");

		var mbButton1Obj = getGUIObjectByName("mbButton1");
		var mbButton2Obj = getGUIObjectByName("mbButton2");
		var mbButton3Obj = getGUIObjectByName("mbButton3");

		// Calculate size
		var mbLRDiff = data.width / 2;     // Message box left/right difference from 50% of screen
		var mbUDDiff = data.height / 2;    // Message box up/down difference from 50% of screen

		var mbSizeString = "50%-" + mbLRDiff + " 50%-" + mbUDDiff + " 50%+" + mbLRDiff + " 50%+" + mbUDDiff;

		mbMainObj.size = mbSizeString;

		// Texts
		mbTitleObj.caption	= data.title;
		mbTextObj.caption 	= data.message;

		if (data.font)
			mbTextObj.font = data.font;

		// Message box modes
		// There is a number of standard modes, and if none of these is used (mbMode == 0), the button captions will be
		// taken from the array mbButtonCaptions; there currently is a maximum of three buttons.
		switch (data.mode)
		{
		case 1:
			// Simple Yes/No question box
			data.buttonCaptions = ["Yes", "No"];
			break;
		case 2:
			// Okay-only box
			data.buttonCaptions = ["OK"];
			break;
		case 3:
			// Retry/Abort/Ignore box (will we ever need this?!)
			data.buttonCaptions = ["Retry", "Ignore", "Abort"];
		default:
			break;
		}

		// Buttons
		var codes = data.buttonCode;
		if (data.buttonCaptions.length >= 1)
		{
			mbButton1Obj.caption = data.buttonCaptions[0];
			mbButton1Obj.onPress = function () { Engine.PopGuiPage(); if (codes && codes[0]) codes[0](); }
			mbButton1Obj.hidden = false;
		}
		if (data.buttonCaptions.length >= 2)
		{
			mbButton2Obj.caption = data.buttonCaptions[1];
			mbButton2Obj.onPress = function () { Engine.PopGuiPage(); if (codes && codes[1]) codes[1](); }
			mbButton2Obj.hidden = false;
		}
		if (data.buttonCaptions.length >= 3)
		{
			mbButton3Obj.caption = data.buttonCaptions[2];
			mbButton3Obj.onPress = function () { Engine.PopGuiPage(); if (codes && codes[2]) codes[2](); }
			mbButton3Obj.hidden = false;
		}

		switch (data.buttonCaptions.length)
		{
		case 1:
			mbButton1Obj.size = "50%-64 100%-76 50%+64 100%-48";
			break;
		case 2:
			mbButton1Obj.size = "50%-144 100%-76 50%-16 100%-48";
			mbButton2Obj.size = "50%+16 100%-76 50%+144 100%-48";
			break;
		case 3:
			mbButton1Obj.size = "10% 100%-76 30% 100%-48";
			mbButton2Obj.size = "40% 100%-76 60% 100%-48";
			mbButton3Obj.size = "70% 100%-76 90% 100%-48";
			break;
		}
	}
	]]></script>

	<object hotkey="leave">
		<action on="Press">Engine.PopGuiPage();</action>
	</object>

	<object hotkey="chat">
		<action on="Press">getGUIObjectByName("mbButton1").onPress();</action>
	</object>

	<object>
		<object name="mbMain"
			style="StoneDialog"
			type="image"
		>

			<object name="mbTitleBar"
				style="TitleText"
				type="text"
				size="50%-128 0%-16 50%+128 16"
			/>

			<object name="mbText"
				type="text"
				style="CenteredLabelText"
				size="5% 20% 95% 100%-96"
			/>

			<object name="mbButton1"
				style="StoneButton"
				type="button"
				hidden="true"
				size="40 100%-50 33%-30 100%-20"
			/>
			<object name="mbButton2"
				style="StoneButton"
				type="button"
				hidden="true"
				size="33%+30 100%-50 66%-40 100%-20"
			/>
			<object name="mbButton3"
				style="StoneButton"
				type="button"
				hidden="true"
				size="66%+30 100%-50 100%-40 100%-20"
			/>
		</object>
	</object>

</objects>
