var validation_data = '';
var login_require = false;
var register_require = false;
var reminder_require = false;
var myinfo_require = false;
var feedback_require = false;
var passwordchange_require = false;
var order_require = false;
var friend_require = false;

function SC_Validate(oForm) {
//top level validation function supporting multiple user controls

//login control
if (login_require) {
	if (!login_validate(oForm))
		return false;
}

//register control
if (register_require) {
	if (!register_validate(oForm))
		return false;
}

//password reminder
if (reminder_require) {
	if (!ValidateEMail(oForm.txtEMail,"Please enter a valid e-mail address!")) {
		reminder_require = false;
		return false;
	}
}

//MyInfo
if (myinfo_require) {
	if (!myinfo_validate(oForm))
		return false;
}

//feedback control
if (feedback_require) {
	if (!feedback_validate(oForm))
		return false;
}

//register/password control
if (passwordchange_require) {
	if (!passwordchange_validate(oForm))
		return false;
}

//order control
if (order_require) {
	if (!order_validate(oForm))
		return false;
}

//friend validation
if (friend_require) {
	if (!ValidateEMail(oForm.txtYour,"Please enter a valid e-mail address!")) {
		friend_require = false;
		return false;
	}
	if (!ValidateEMail(oForm.txtFriend,"Please enter a valid e-mail address!")) {
		friend_require = false;
		return false;
	}
}

}

function login_validate(oForm)	{
	if (validation_data != '') {
		var email_box = document.getElementById(validation_data + '_txtEMail');
		if (!ValidateEMail(email_box,"Please enter a valid e-mail address!")) {
			login_require = false;
			return false; }

		var password_box = document.getElementById(validation_data + '_txtPassword');
		if (!ValidateText(password_box,"Please enter your password!")) {
			login_require = false;
			return false; }
		return true;
	}
}

function register_validate(oForm)	{
	if (validation_data != '') {
		var email_box = document.getElementById(validation_data + '_txtEMail');
		if (!ValidateEMail(email_box,"Please enter a valid e-mail address!")) {
			register_require = false;
			return false; }

		var password1_box = document.getElementById(validation_data + '_txtPassword1');
		var password2_box = document.getElementById(validation_data + '_txtPassword2');
		if (!ValidateText(password1_box,"Please enter your password!")) {
			register_require = false;
			return false; }
		if (!ValidateText(password2_box,"Please re-enter your password!")) {
			register_require;
			return false; }
		if (Trim(password1_box.value) != Trim(password2_box.value)) {
			password1_box.focus();
			alert("Passwords must match! Please try again!");
			register_require = false;
			return false; }
		return true;
	}
}

function passwordchange_validate(oForm)	{
	if (validation_data != '') {
		var password1_box = document.getElementById(validation_data + '_txtPassword1');
		var password2_box = document.getElementById(validation_data + '_txtPassword2');
		if (!ValidateText(password1_box,"Please enter your password!")) {
			passwordchange_require = false;
			return false; }
		if (!ValidateText(password2_box,"Please re-enter your password!")) {
			passwordchange_require = false;
			return false; }
		if (Trim(password1_box.value) != Trim(password2_box.value)) {
			password1_box.focus();
			alert("Passwords must match! Please try again!");
			passwordchange_require = false;
			return false; }
		return true;
	}
}

function myinfo_validate(oForm) {
//MyInfo validation

var email_box = oForm.txtEMail;
if (!ValidateEMail(email_box,"Please enter a valid e-mail address!"))
	return false; 

var password1_box = oForm.txtPassword1;
var password2_box = oForm.txtPassword2;
if (!ValidateText(password1_box,"Please enter your password!"))
	return false;
if (!ValidateText(password2_box,"Please re-enter your password!"))
	return false; 
if (Trim(password1_box.value) != Trim(password2_box.value)) {
	password1_box.focus();
	alert("Passwords must match! Please try again!");
	return false; }
return true;
}

function feedback_validate(oForm)	{
	if (validation_data != '') {
		var email_box = document.getElementById(validation_data + '_txtEMail');
		if (!ValidateEMail(email_box,"Please enter a valid e-mail address!")) {
			feedback_require = false;
			return false; }

		var comments_box = document.getElementById(validation_data + '_txtComments');
		if (!ValidateText(comments_box,"Please enter your question/comment!")) {
			feedback_require = false;
			return false; }
		return true;
	}
}

function order_validate(oForm) {
//Order validation

	if (validation_data != '') {
		var box;

		box = document.getElementById(validation_data + '_txtFName');
		if (!ValidateText(box,"Please enter your First Name!")) {
			order_require = false;
			return false; }
		
		box = document.getElementById(validation_data + '_txtLName');
		if (!ValidateText(box,"Please enter your Last Name!")) {
			order_require = false;
			return false; }
		
		box = document.getElementById(validation_data + '_txtAddress');
		if (!ValidateText(box,"Please enter your Address!")) {
			order_require = false;
			return false; }
		
		box = document.getElementById(validation_data + '_txtCity');
		if (!ValidateText(box,"Please enter your City!")) {
			order_require = false;
			return false; }
		
		box = document.getElementById(validation_data + '_lstState');
		if (!ValidateText(box,"Please select your State!")) {
			order_require = false;
			return false; }
		
		box = document.getElementById(validation_data + '_txtZip');
		if (!ValidateText(box,"Please enter your Zip Code!")) {
			order_require = false;
			return false; }
		
		box = document.getElementById(validation_data + '_txtEMail');
		if (!ValidateEMail(box,"Please enter a valid e-mail address!")) {
			order_require = false;
			return false; }

		box = document.getElementById(validation_data + '_txtCardNumber');
		if (!ValidateText(box,"Please enter your Credit Card Number!")) {
			order_require = false;
			return false; }
		
		box = document.getElementById(validation_data + '_txtExpDate');
		if (!ValidateText(box,"Please enter Expiration Date of your Credit Card!")) {
			order_require = false;
			return false; }
		
		document.getElementById('divWait').style.visibility = 'visible';
		return true;
	}
}

//common validation functions
function Trim(s) {
    var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (m == null) ? "" : m[1];
}

function ValidateEMail(control,msg) {
var e1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
var e2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
var reg1 = new RegExp(e1str);
var reg2 = new RegExp(e2str);

if (reg1.test(control.value) || !reg2.test(control.value)) {
	control.focus();
	alert(msg);
	return false;
}
return true;
}

function ValidateText(control,msg) {
if (Trim(control.value) == '') {
	control.focus();
	alert(msg);
	return false; 
}
return true;
}