var xmlFile;var validateObj = new Array();function refreshForm(varName, varValu) {    var newURL = window.location.pathname + "?" + varName + "=" + varValu;	document.forms[0].action = newURL;	document.forms[0].submit()}function importXML(file, func) {	if(document.implementation && document.implementation.createDocument) {		xmlFile = document.implementation.createDocument("", "", null);		xmlFile.onload = func;	} else if(window.ActiveXObject) {		xmlFile = new ActiveXObject("Microsoft.XMLDOM");		xmlFile.onreadystatechange = function () {			if(xmlFile.readyState == 4) {func();};		};	}	xmlFile.load(file);}function parseFormXml() {	form = document.getElementById(xmlFile.documentElement.getAttribute("id"));	addEvent(form, "submit", onsubmitCheck, false);	inputs = xmlFile.getElementsByTagName("inputbox");	for(var i = 0; i < inputs.length; i++) {		val = new inputValidate(inputs[i]);		validateObj[val.id] = val;		addEvent(val.inputf, "blur", onblurCheck, false);	};}function getXmlUrl() {	var url = window.location.href;	url = url.split("?")[0];	url = url.match(/\w+\.[a-zA-Z0-9]+$/).toString();	var dot = url.lastIndexOf(".");	url = url.substring(0, dot);	url = url + ".xml";	return url;}function inputValidate(node) {	this.id = node.getAttribute("id");	this.inputf = document.getElementById(this.id);	this.valid = true;	this.sreq = (node.getAttribute("req") == "true");	this.regs = new Array();	curNode = node.getElementsByTagName("regex");	for(i = 0; i < curNode.length; i++ ) {		if(curNode[i] != null) {this.regs[i] = new RegExp(curNode[i].childNodes[0].nodeValue);};	};	err = node.getElementsByTagName("errmsg")[0];	if(err != null) {		this.error = err.childNodes[0].nodeValue;	} else {		this.error = null;	};	this.parentClass = this.inputf.parentNode.className;		this.markInvalid = function(errMsg) {  		this.inputf.parentNode.className = this.parentClass + " errorarea";  		if(this.valid == false) {  			errorNode = document.getElementById(this.id + "errmsg");  			textNode = document.createTextNode(errMsg);  			errorNode.replaceChild(textNode, errorNode.childNodes[0]);  		} else {			errp = document.createElement("p");			errp.className = "error txtr";			errp.setAttribute("id", this.id + "errmsg");			textNode = document.createTextNode(errMsg);			errp.appendChild(textNode);			this.inputf.parentNode.appendChild(errp);  		};  		this.valid = false;	};		this.markValid = function() {  		if(this.valid == false) {  			errorNode = document.getElementById(this.id + "errmsg");  			this.inputf.parentNode.removeChild(errorNode);  		};  		this.valid = true;  		this.inputf.parentNode.className = this.parentClass;	};		this.check = function() {		var fldValue = this.inputf.value;		var getError = "";		if(fldValue == "") {			getError = "You must fill out this field.";			if(this.sreq == false) {				this.markValid();				return;			};		} else {			if(this.regs.length > 0) {				var formatOK = false;				for(var i = 0; i < this.regs.length; i++) {					if(this.regs[i].test(fldValue)) {						formatOK = true;						break;					};				};				if(formatOK == false) {getError = this.error;};			};		};		if(getError == "") {			this.markValid();		} else {			this.markInvalid(getError);		};	};}function addEvent(obj, etyp, elis, ucap) {	if(obj.addEventListener) {		obj.addEventListener(etyp, elis, ucap);		return true;	} else if(obj.attachEvent) {		var objAttach = obj.attachEvent("on"+etyp, elis);		return objAttach;	} else {		return false;	};}function onblurCheck(event) {	if(document.all) {		id = event.srcElement.getAttribute("id");	} else {		id = this.getAttribute("id");	};	validateObj[id].check();}function onsubmitCheck(event) {	var formOk = true;	for(var i in validateObj) {		validateObj[i].check();		if(validateObj[i].valid == false) {formOk = false;};	};	if(formOk == false) {		message = "Please review the fields in red and provide the correct information.";		alert(message);		if(document.all) {			event.returnValue = false;		} else {			event.preventDefault();		};	};}