﻿function iCustomDialog()
{
	this.Null = 0;
	this.OK = 1;
	this.Cancel = 2;
	this.Continue = 3;
	this.No = 4;
	this.Yes = 5;
	this.Checkout = 6;
	
	this.Result = 0;
	this.Style = {
		"YesNo" : 0, 
		"OKCancel" : 1, 
		"YesNOCancel" : 2, 
		"YesCancel" : 4, 
		"NoCancel" : 5, 
		"ContinueCancel" : 7, 
		"ContinueCheckout" : 9};
	
	this.Closed = function()
	{
	}
	
	this.RemoveCustomDialog = function(pResult) 
	{
		document.getElementsByTagName("body")[0].removeChild(document.getElementById("CustomModalContainer"));
		
		this.Result = pResult;
		this.Closed();
	}
	
	this.CreateBaseObject = function(pHeader, pMessage, pClassName)
	{
		pClassName = (pClassName == null) ? "" : pClassName;
		
		var ModalObject = document.getElementById("CustomModalContainer");
		if (ModalObject == null)
		{
			var ContentObject = document.createElement("div");
			ModalObject = document.getElementsByTagName("body")[0].appendChild(ContentObject);
			ModalObject.id = "CustomModalContainer";
		}
		else
		{
			return null;
		}
		ModalObject.style.height = document.documentElement.scrollHeight + "px";
	
		var OpaqueObject = ModalObject.appendChild(document.createElement("div"));
		OpaqueObject.id = "CustomOpaqueBox";
		OpaqueObject.className = "CustomOpaqueBox";
		
		WallArtCore.SetOpacity(50, "CustomOpaqueBox");
		
		var DialogObject = ModalObject.appendChild(document.createElement("div"));
		DialogObject.className = "CustomDialogBox" + (pClassName != "" ? " " + pClassName : "");
		
		if ((pHeader == null ? "" : pHeader) != "")
		{
			var HeaderObject = DialogObject.appendChild(document.createElement("h1"));
			HeaderObject.appendChild(document.createTextNode(pHeader));
		}
		
		var MessageObject = DialogObject.appendChild(document.createElement("div"));
		MessageObject.className = "Parent";
//		var MessageArray = pMessage.split("</"); window.status = MessageArray[0];
//		for (var iMessage = 0; iMessage < MessageArray.length; iMessage++)
//		{
//			MessageObject.innerHTML += MessageArray[iMessage]
//			if (iMessage < MessageArray.length - 1)
//			{
//				MessageObject.innerHTML += "</";
//			}
//		}
		MessageObject.innerHTML = pMessage;
		MessageObject.id = "MessageObjectP";
		
		DialogObject.style.left = (document.documentElement.scrollWidth - DialogObject.offsetWidth) / 2 + "px";
		DialogObject.style.top = (WallArtCore.Window.WindowSize().height - (DialogObject.offsetHeight + 200)) / 2 + "px";
		
		if (IE == 1 && IEVersion < 7)
		{
			DialogObject.style.top = DialogObject.offsetTop + WallArtCore.Window.GetScrollPosition().Top + "px";
		}
		
		return DialogObject;
	}

	this.GetHeader = function(pHeader)
	{
		pHeader = (pHeader == null ? "Custom WallScapes" : (pHeader == "" ? "Custom WallScapes" : pHeader));
		
		return pHeader;
	}
	
	this.CustomAlert = function(pMessage, pHeader, pClassName)
	{
		pHeader = this.GetHeader(pHeader);
		
		var NewObject = this.CreateBaseObject(pHeader, pMessage, pClassName);
		if (NewObject != null && pHeader.toLowerCase() != "progress...")
		{
			var ButtonObject = NewObject.appendChild(document.createElement("a"));
			ButtonObject.className = "CustomDialogButton";
			ButtonObject.appendChild(document.createTextNode("OK"));
			ButtonObject.onclick = function()
			{
				CustomDialog.RemoveCustomDialog(1);
			}
		}
	}
	
	this.CustomConfirm = function(pMessage, pHeader, pClassName, pType)
	{
		var NewObject = this.CreateBaseObject(this.GetHeader(pHeader), pMessage, pClassName);
		if (NewObject != null)
		{	
			pType = (pType == null) ? pType = this.Style.YesNo : pType;
			
			function CreateButton(pText, pResult)
			{
				var ButtonNoObject = NewObject.appendChild(document.createElement("a"));
				ButtonNoObject.className = "CustomDialogButton";
				ButtonNoObject.appendChild(document.createTextNode(pText));
				ButtonNoObject.onclick = function()
				{
					CustomDialog.RemoveCustomDialog(pResult);
				}
			}
			
			if (pType % 2 == 0)
			{
				CreateButton("Yes", this.Yes);
			}
			if (pType == 1)
			{
				CreateButton("OK", this.OK);
			}
			if (pType == 6 || pType == 9)
			{
				CreateButton("Continue", this.Continue);
			}
			if (pType == 0 || pType == 2 || pType == 5)
			{
				CreateButton("No", this.No);
			}
			if (pType == 9)
			{
				CreateButton("Checkout", this.Checkout);
			}
			if (pType > 0 && pType < 7)
			{
				CreateButton("Cancel", this.Cancel);
			}
		}
	}
}

var CustomDialog = new iCustomDialog;

if(document.getElementById) 
{
	window.alert = function(pMessage, pHeader, pClassName) 
	{
		CustomDialog.CustomAlert(pMessage, pHeader, pClassName);
	}

	window.confirm = function(pMessage, pHeader, pClassName, pAlertType)
	{
		CustomDialog.CustomConfirm(pMessage, pHeader, pClassName, pAlertType);
	}
}
