/* copyright 2000-2006 Trezorix BV */

var requiredFields = new Array();
var cookieFields = new Array();
var formPosting = new Array();
var regExpNull = "";
var regExp2Digit = "[0-9]{2}";
var regExp4Digit = "[0-9]{4}";
var regExpNonEmpty = "\\S+";
var regExpEmail = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$"
var regExpPostcode = "^[1-9][0-9]{3}\\s?[a-zA-Z]{2}$";

function GetCookie(sName) {
	var cookiePair;
	var cookieArray = unescape(document.cookie).split(";");
	//alert(document.cookie);
	for (var i = 0; i < cookieArray.length; i++) {
		cookiePair = cookieArray[i].split("=");
		iFound = cookiePair[0].indexOf(sName);
		if (iFound >= 0) { 
			return (cookiePair[1]) ? cookiePair[1] : ""; 
		}
	}
	return "";
}

function SetCookie(sName, sValue, days) {
	var sExpires;
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		sExpires = "; expires="+date.toGMTString();
	}
	else {
		sExpires = "";
	}
	document.cookie = sName+"="+sValue+sExpires+"; path=/";
	
}

function checkForm(formName) {
	if (requiredFields[formName] == null) return true;

	if (!formPosting[formName]) {
		formPosting[formName] = true;
		check = true;
		var message = "";
		var classBase = "";
		for (var i = 0; i < requiredFields[formName].length; i += 3) {
			if (document.forms[formName].elements[requiredFields[formName][i]] != null) {
				// test to see whether field is an array
				if (typeof(document.forms[formName].elements[requiredFields[formName][i]][0]) == "object") {
					teststring = "";
					var x = 0;
					while (typeof(document.forms[formName].elements[requiredFields[formName][i]][x]) == "object") {
						if (document.forms[formName].elements[requiredFields[formName][i]][x].checked) {
							teststring += document.forms[formName].elements[requiredFields[formName][i]][x].value;
						}
						x++;
					}
				}
				else {
					teststring = document.forms[formName].elements[requiredFields[formName][i]].value;
				}
				classBase = document.forms[formName].elements[requiredFields[formName][i]].className.split("_")[0] + "_";
				//alert(requiredFields[formName][i] + ": " + teststring + typeof(document.forms[formName].elements[requiredFields[formName][i]][0]));
				re = new RegExp(requiredFields[formName][i+1], "gi");
				if (!re.test(teststring)) {
					check = false;
					document.forms[formName].elements[requiredFields[formName][i]].className = classBase + "error";
					message = (message == "")? "- " + requiredFields[formName][i+2]:message + "\n " + "- " + requiredFields[formName][i+2];
				}
				else {
					document.forms[formName].elements[requiredFields[formName][i]].className = classBase;
				}
			}
		}
		if (message!="") alert(messageRequired + "\n "	+ message);
		if (!check) formPosting[formName] = false;
		return check;
	}
	else return false;

}

