﻿function iCustomDialog()
{
	this.DefaultCaption = "Feature Films for Families";
	this.IE = (document.all) ? 1 : 0;
	this.wcUserAgent = window.navigator.userAgent;
	this.wcMSIE = this.wcUserAgent.indexOf("MSIE");
	this.IEVersion = (this.IE == 1 ? (this.wcMSIE > 0 ? parseInt(this.wcUserAgent.substring(this.wcMSIE + 5, this.wcUserAgent.indexOf(".", this.wcMSIE))) : 0) : 0);

	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,
		"Continue" : 11};
	
	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";
		
		PageUI.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("p"));
		var MessageObject = document.createElement("div");
		MessageObject.innerHTML = pMessage;
		MessageObject.id = "MessageObject";
		DialogObject.appendChild(MessageObject);
		
		DialogObject.style.left = (document.documentElement.scrollWidth - DialogObject.offsetWidth) / 2 + "px";
		DialogObject.style.top = (PageUI.Window.WindowSize().height - (DialogObject.offsetHeight + 200)) / 2 + "px";
		
		if (this.IE == 1 && this.IEVersion < 7)
		{
			DialogObject.style.top = DialogObject.offsetTop + PageUI.Window.GetScrollPosition().Top + "px";
		}
		
		return DialogObject;
	}

	this.GetHeader = function(pHeader)
	{
		pHeader = (pHeader == null ? this.DefaultCaption : (pHeader == "" ? this.DefaultCaption : 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 || pType == 11)
			{
				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);
	}
}
