// constants to define the title of the alert and button text.
var ALERT_TITLE = "Missing Data";
var ALERT_BUTTON_TEXT = "OK";

// over-ride the alert method only if this a newer browser.
// Older browser will see standard alerts
function alertUser(msg,formname,elementname,ndex,offset) {

	if(document.getElementById) {   
		createCustomAlert(msg,formname,elementname,ndex,offset);			
	} else {
	  alert(msg);
	  var moveto = "#input" + offset;
	  document.location=moveto;
	  if (ndex == true) {
	  	document.forms[formname].elements[elementname][0].focus();
	  } else {
	  	document.forms[formname].elements[elementname].focus();
	  }	  
	}
	return false;
}

function createCustomAlert(txt, formname, elementname, ndex, offset) {	
	var d = document;
	var w = 0;
    var h = 0;
    if (self.innerWidth) {
      w = self.innerWidth;
      h = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientWidth) {
	      w = document.documentElement.clientWidth +17;
	      h = document.documentElement.clientHeight;
	}
	else if (document.body) {
	      w = document.body.clientWidth + 17;
	      h = document.body.clientHeight;
	}	
	
	// if the modalContainer object already exists in the DOM, bail out.
	if(d.getElementById("alertDiv")) return;

	// create the alertDiv div as a child of the BODY element
	mObj = d.getElementsByTagName("body")[0].appendChild(d.createElement("div"));
	mObj.id = "alertDiv";
	 // 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 
	alertObj = mObj.appendChild(d.createElement("div"));
	alertObj.id = "alertBox";
	// 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";
    alertObj.style.top=(h/4) +'px';
	alertObj.style.left=((w/2)-225) +'px';
	// create an H1 element as the title bar
	h1 = alertObj.appendChild(d.createElement("h1"));
	//h1.style.background=#ff0000;
	h1.appendChild(d.createTextNode(ALERT_TITLE));

	// create a paragraph element to contain the txt argument
	msg = alertObj.appendChild(d.createElement("p"));
	msg.appendChild(d.createTextNode(txt));

	// create an anchor element to use as the confirmation button.
	btn = alertObj.appendChild(d.createElement("a"));
	btn.id = "closeBtn";
	btn.appendChild(d.createTextNode(ALERT_BUTTON_TEXT));
	//btn.href = "#";
	// set up the onclick event to remove the alert when the anchor is clicked
	btn.onclick = function() { removeCustomAlert(formname,elementname,ndex,offset); return false;}

	
}

// removes the custom alert from the DOM
function removeCustomAlert(formname, elementname, ndex, offset) {
	document.getElementsByTagName("body")[0].removeChild(document.getElementById("alertDiv"));	
	var moveto = "#input" + offset;
	document.location=moveto;	
	if (ndex == true) {
	  	document.forms[formname].elements[elementname][0].focus();
	} else {
	  	document.forms[formname].elements[elementname].focus();
	}
}
