/* 
 * Thanks to steve@slayeroffice.com
 * http://slayeroffice.com/code/custom_alert/
 * <script language="JavaScript" type="text/javascript" src="{url}js/custom_elements/custom_alert.js"></script>
 * <link rel="stylesheet" href="{url}js/custom_elements/custom_alert.css" type="text/css" />
 */
// constants to define the title of the alert and button text.
var ALERT_TITLE = "Oops!";
var ALERT_BUTTON_OK_TEXT = "Ok";
var ALERT_BUTTON_CANCEL_TEXT = "Cancel";
var ALERT_FORM_ONLY = false;
var ALERT_CONFIRM_FORM = true;
// holders for confirm box
var actionFunc;
// over-ride the alert method only if this a newer browser.
// Older browser will see standard alerts
if(document.getElementById) {
	window.alert = function(txt) {
		createCustomAlert(txt, ALERT_FORM_ONLY);
	}
	var customConfirm = function(txt, action) {
		return createCustomAlert(txt, ALERT_CONFIRM_FORM, action);
	}
}
function createCustomAlert(txt, confirmBtn, actionFn) {
	var CONFIRM_BOX_SUBMIT = false;
	// shortcut reference to the document object
	var d = document;
	// if the modalContainer object already exists in the DOM, bail out.
	if(d.getElementById("modalContainer")) return;
	// create the modalContainer div as a child of the BODY element
	var mObj = d.getElementsByTagName("body")[0].appendChild(d.createElement("div"));
	mObj.id = "modalContainer";
	 // make sure its as tall as it needs to be to overlay all the content on the page
	mObj.style.height = document.documentElement.scrollHeight + "px";
	// create the DIV that will be the alert 
	var alertObj = mObj.appendChild(d.createElement("div"));
	alertObj.id = "alertBox";
	if (confirmBtn) alertObj.className  = "alertBox";
	else alertObj.className  = "confirmBox";
	// MSIE doesnt treat position:fixed correctly, so this compensates for positioning the alert
	if(d.all && !window.opera) alertObj.style.top = document.documentElement.scrollTop + "px";
	// center the alert box
	alertObj.style.left = (d.documentElement.scrollWidth - alertObj.offsetWidth)/2 + "px";
	// create an H1 element as the title bar
	var head1 = alertObj.appendChild(d.createElement("h2"));
	head1.appendChild(d.createTextNode(ALERT_TITLE));
	// create a paragraph element to contain the txt argument
	var msg = alertObj.appendChild(d.createElement("p"));
	msg.appendChild(d.createTextNode(txt));
	
	if (confirmBtn){
		// create an anchor element to use as the confirmation button.
		var btnObj = alertObj.appendChild(d.createElement("div"));
		btnObj.id = "btnBox";
		
		var btn = btnObj.appendChild(d.createElement("a"));
		btn.id = "okBtn";
		btn.appendChild(d.createTextNode(ALERT_BUTTON_OK_TEXT));
		btn.href = "#";
		// set up the onclick event to remove the alert when the anchor is clicked
		actionFunc = actionFn;
		btn.onclick = function() { removeCustomAlert(); if (actionFunc) actionFunc(); return confirmBtn; }

		var btnCm = btnObj.appendChild(d.createElement("a"));
		btnCm.id = "closeBtn";
		btnCm.appendChild(d.createTextNode(ALERT_BUTTON_CANCEL_TEXT));
		btnCm.href = "#";
		// set up the onclick event to remove the alert when the anchor is clicked
		btnCm.onclick = function() { removeCustomAlert(); return false; }
	} else {
		// create an anchor element to use as the confirmation button.
		var btn = alertObj.appendChild(d.createElement("a"));
		btn.id = "alertBtn";
		btn.appendChild(d.createTextNode(ALERT_BUTTON_OK_TEXT));
		btn.href = "#";
		// set up the onclick event to remove the alert when the anchor is clicked
		actionFunc = actionFn;
		btn.onclick = function() { removeCustomAlert(); return false; }
	}
	/**/
}
// removes the custom alert from the DOM
function removeCustomAlert() {
	document.getElementsByTagName("body")[0].removeChild(document.getElementById("modalContainer"));
}
