function validate(form) {
	var firstName = form.firstName.value;
	var lastName = form.lastName.value;
	var emailAddress = form.emailAddress.value;
	var paymentAmount = form.paymentAmount.value;
	var nameRegex = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
	var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
	//var emailRegex = /^[\w-\.]+@([\w-]+\.)?([\w-]+\.)[\w-]{2,4}$/;	
	var amountRegex = /^[0-9]*$|^[0-9]*\.[0-9]{1,2}$/;

	if(firstName == "") {
		inlineMsg('firstName','Please enter your first name.',2);
		return false;
	}
	if(!firstName.match(nameRegex)) {
		inlineMsg('firstName','You have entered an invalid first name.',2);
		return false;
	}

	if(lastName == "") {
		inlineMsg('lastName','Please enter your last name.',2);
		return false;
	}
	if(!lastName.match(nameRegex)) {
		inlineMsg('lastName','You have entered an invalid last name.',2);
		return false;
	}

	if(emailAddress == "") {
		inlineMsg('emailAddress','Please enter your email address.',2);
		return false;
	}
	if(!emailAddress.match(emailRegex)) {
		inlineMsg('emailAddress','You have entered an invalid email address.',2);
		return false;
	}

	if(paymentAmount == "") {
		inlineMsg('paymentAmount','Please enter a payment amount.',2);
		return false;
	}
	if(!paymentAmount.match(amountRegex)) {
		inlineMsg('paymentAmount','You have entered an invalid payment amount.',2);
		return false;
	}

	return true;
}

// START OF MESSAGE SCRIPT //

var MSGTIMER = 20;
var MSGSPEED = 5;
var MSGOFFSET = 3;
var MSGHIDE = 3;

// build out the divs, set attributes and call the fade function //
function inlineMsg(target,string,autohide) {
	var msg;
	var msgcontent;
	if(!document.getElementById('msg')) {
		msg = document.createElement('div');
		msg.id = 'msg';
		msgcontent = document.createElement('div');
		msgcontent.id = 'msgcontent';
		document.body.appendChild(msg);
		msg.appendChild(msgcontent);
		msg.style.filter = 'alpha(opacity=0)';
		msg.style.opacity = 0;
		msg.alpha = 0;
	} else {
		msg = document.getElementById('msg');
		msgcontent = document.getElementById('msgcontent');
	}
	msgcontent.innerHTML = string;
	msg.style.display = 'block';
	var msgheight = msg.offsetHeight;
	var targetdiv = document.getElementById(target);
	targetdiv.focus();
	var targetheight = targetdiv.offsetHeight;
	var targetwidth = targetdiv.offsetWidth;
	var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
	var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
	msg.style.top = topposition + 'px';
	msg.style.left = leftposition + 'px';
	clearInterval(msg.timer);
	msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
	if(!autohide) {
		autohide = MSGHIDE;	
	}
	window.setTimeout("hideMsg()", (autohide * 1000));
}

// hide the form alert //
function hideMsg(msg) {
	var msg = document.getElementById('msg');
	if(!msg.timer) {
		msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
	}
}

// face the message box //
function fadeMsg(flag) {
	if(flag == null) {
		flag = 1;
	}
	var msg = document.getElementById('msg');
	var value;
	if(flag == 1) {
		value = msg.alpha + MSGSPEED;
	} else {
		value = msg.alpha - MSGSPEED;
	}
	msg.alpha = value;
	msg.style.opacity = (value / 100);
	msg.style.filter = 'alpha(opacity=' + value + ')';
	if(value >= 99) {
		clearInterval(msg.timer);
		msg.timer = null;
	} else if(value <= 1) {
		msg.style.display = "none";
		clearInterval(msg.timer);
	}
}

// calculate the position of the element in relation to the left of the browser //
function leftPosition(target) {
	var left = 0;
	if(target.offsetParent) {
		while(1) {
			left += target.offsetLeft;
			if(!target.offsetParent) {
				break;
			}
			target = target.offsetParent;
		}
	} else if(target.x) {
		left += target.x;
	}
	return left;
}

// calculate the position of the element in relation to the top of the browser window //
function topPosition(target) {
	var top = 0;
	if(target.offsetParent) {
		while(1) {
			top += target.offsetTop;
			if(!target.offsetParent) {
				break;
			}
			target = target.offsetParent;
		}
	} else if(target.y) {
		top += target.y;
	}
	return top;
}

// preload the arrow //
if(document.images) {
	arrow = new Image(7,80); 
	arrow.src = "images/msg_arrow.gif"; 
}