var pbs_cookie = "chunkyprobowl";
var isvalid=true;
var fieldtofocus;
var rtnvalue = true;

function validateCaptcha(captchaid) {
	var sed = Math&&Math.random?Math.floor(Math.random()*10000000000000):(new Date()).getTime();
	var url = "http://pacesalsa.promotionexpert.com/PaceHandPickAndWin2/captcha?action=validate&scrid=" + captchaid + "&udata=" + document.reg.captcha.value;
	url += "&rand=" + sed;

	var captchahttprequest = createRequest();
	captchahttprequest.onreadystatechange = captchaResponse;

	captchahttprequest.open('GET', url, true);
	captchahttprequest.send(null);

	function captchaResponse() {
		if (captchahttprequest.readyState == 4) {
			if (captchahttprequest.status == 200) {
				var crslt = captchahttprequest.responseText;
				if (crslt == 'mismatch') {
					rtnvalue = false;
				}
				else {
					rtnvalue = true;
				}
				isvalid = isvalid && rtnvalue;
				fieldtofocus = updatestatus(rtnvalue, document.reg.captcha, document.reg.captcha.name, fieldtofocus);
				checkCode();
			}
		}
	}
}

function validateCode() {
	var sed = Math&&Math.random?Math.floor(Math.random()*10000000000000):(new Date()).getTime();
	var url = "http://pacesalsa.promotionexpert.com/PaceHandPickAndWin2/CodeServlet?code=" + document.reg.code.value;
	url += "&rand=" + sed;

	var captchahttprequest = createRequest();
	captchahttprequest.onreadystatechange = captchaResponse;

	captchahttprequest.open('GET', url, true);
	captchahttprequest.send(null);

	function captchaResponse() {
		if (captchahttprequest.readyState == 4) {
			if (captchahttprequest.status == 200) {
				var crslt = captchahttprequest.responseText;
				if (crslt == 'invalid') {
					rtnvalue = false;
					fieldtofocus = updatestatus(rtnvalue, document.reg.code, document.reg.code.name, fieldtofocus);
					isvalid = isvalid && rtnvalue;
				}
				if (isvalid) {
					document.reg.submit();
				}
				else {	
					document.getElementById("errormsgdiv").innerHTML = document.getElementById("badfielderrmsg").innerHTML;
					if (fieldtofocus) {
						fieldtofocus.focus();
					}
				}
			}
		}
	}
}


function checkCode() {
	var field = document.reg.code;
	rtnvalue = !isEmpty(field);
	fieldtofocus = updatestatus(rtnvalue, field, field.name, fieldtofocus);
	isvalid = isvalid && rtnvalue;
	if (rtnvalue) {
		validateCode();
	}
	else {	
		document.getElementById("errormsgdiv").innerHTML = document.getElementById("badfielderrmsg").innerHTML;
		if (fieldtofocus) {
			fieldtofocus.focus();
		}
	}
}

function checkAll(form) {
	isvalid=true;
	var field = form.fn;
	rtnvalue = !isEmpty(field);
	fieldtofocus = updatestatus(rtnvalue, field, field.name, fieldtofocus);
	isvalid = isvalid && rtnvalue;

	field = form.ln;
	rtnvalue = !isEmpty(field);
	fieldtofocus = updatestatus(rtnvalue, field, field.name, fieldtofocus);
	isvalid = isvalid && rtnvalue;

	field = form.a1;
	rtnvalue = !isEmpty(field);
	fieldtofocus = updatestatus(rtnvalue, field, field.name, fieldtofocus);
	isvalid = isvalid && rtnvalue;

	field = form.c;
	rtnvalue = !isEmpty(field);
	fieldtofocus = updatestatus(rtnvalue, field, field.name, fieldtofocus);
	isvalid = isvalid && rtnvalue;

	field = form.s;
	rtnvalue = hasSelectedAValue(field);
	fieldtofocus = updatestatus(rtnvalue, field, field.name, fieldtofocus);
	isvalid = isvalid && rtnvalue;

	field = form.zc;
	rtnvalue = !isEmpty(field);
	fieldtofocus = updatestatus(rtnvalue, field, field.name, fieldtofocus);
	isvalid = isvalid && rtnvalue;

	field = form.e;
	rtnvalue = checkEmail(field);
	var bade = !rtnvalue;
	fieldtofocus = updatestatus(rtnvalue, field, field.name, fieldtofocus);
	isvalid = isvalid && rtnvalue;

	field = form.confirme;
	rtnvalue = checkEmail(field);
	var badconfirme = !rtnvalue;
	fieldtofocus = updatestatus(rtnvalue, field, field.name, fieldtofocus);
	isvalid = isvalid && rtnvalue;

        if (!bade && !badconfirme) {
                t1 = form.e.value; t1 = t1.toLowerCase();
                t2 = form.confirme.value; t2 = t2.toLowerCase();
                if (t1 != t2) {
			fieldtofocus = updatestatus(false, form.e, form.e.name, fieldtofocus);
			fieldtofocus = updatestatus(false, form.confirme, form.confirme.name, fieldtofocus);
			isvalid = false;
                }
        }

	if (!isEmpty(form.pn1) || !isEmpty(form.pn2) || !isEmpty(form.pn3)) {
		field = form.pn1;
		rtnvalue = isNumeric(field);
		rtnvalue = rtnvalue && field.value.length == 3;
		fieldtofocus = updatestatus(rtnvalue, field, "pn", fieldtofocus);
		isvalid = isvalid && rtnvalue;

		field = form.pn2;
		rtnvalue = isNumeric(field);
		rtnvalue = rtnvalue && field.value.length == 3;
		fieldtofocus = updatestatus(rtnvalue, field, "pn", fieldtofocus);
		isvalid = isvalid && rtnvalue;

		field = form.pn3;
		rtnvalue = isNumeric(field);
		rtnvalue = rtnvalue && field.value.length == 4;
		fieldtofocus = updatestatus(rtnvalue, field, "pn", fieldtofocus);
		isvalid = isvalid && rtnvalue;
	}

	field = form.mm;
	rtnvalue = hasSelectedAValue(field);
	var validdob = rtnvalue;
	fieldtofocus = updatestatus(rtnvalue, field, "dob", fieldtofocus);
	isvalid = isvalid && rtnvalue;

	field = form.yyyy;
	rtnvalue = hasSelectedAValue(field);
	validdob = validdob && rtnvalue;
	fieldtofocus = updatestatus(rtnvalue, field, "dob", fieldtofocus);
	isvalid = isvalid && rtnvalue;

	field = form.readrules;
	rtnvalue = isChecked(field);
	fieldtofocus = updatestatus(rtnvalue, field, field.name, fieldtofocus);
	isvalid = isvalid && rtnvalue;

	rtnvalue = isChecked(form.pacelid) || isChecked(form.onlineblog) || isChecked(form.coupon) || isChecked(form.friend) || isChecked(form.newsletter) || isChecked(form.signage) || isChecked(form.pacefoods);
	fieldtofocus = updatestatus(rtnvalue, form.pacelid, "hearabout", fieldtofocus);
	fieldtofocus = updatestatus(rtnvalue, form.onlineblog, "hearabout", fieldtofocus);
	fieldtofocus = updatestatus(rtnvalue, form.coupon, "hearabout", fieldtofocus);
	fieldtofocus = updatestatus(rtnvalue, form.friend, "hearabout", fieldtofocus);
	fieldtofocus = updatestatus(rtnvalue, form.newsletter, "hearabout", fieldtofocus);
	fieldtofocus = updatestatus(rtnvalue, form.signage, "hearabout", fieldtofocus);
	fieldtofocus = updatestatus(rtnvalue, form.pacefoods, "hearabout", fieldtofocus);
	isvalid = isvalid && rtnvalue;
 
	if (isvalid) {
		var dobyy = form.yyyy.options[form.yyyy.options.selectedIndex].value;
		var d = new Date();
		var curyy = d.getFullYear();
		var yyapart = curyy - dobyy;
		var inerror = false;
		if (yyapart == 18) {
			var curmm = d.getMonth();
			var dobmm = form.mm.options[form.mm.options.selectedIndex].value;
			if (curmm < dobmm) {
				inerror = true;
			}
			else {
				inerror = false;
			}
		}
		else {
			if (yyapart < 18) {
				inerror = true;
			}
			else {
				inerror = false;
			}
		}
		if (inerror) {
			isvalid = false;
			location.href='http://pacesalsa.promotionexpert.com/handpickandwin2/underage.html';
			return false;
		}
		else {
			isvalid = true;
		}
	}

	field = form.captcha;
	rtnvalue = !isEmpty(field);
	fieldtofocus = updatestatus(rtnvalue, field, field.name, fieldtofocus);
	isvalid = isvalid && rtnvalue;
	if (rtnvalue) {
		validateCaptcha(form.scrid.value);
	}
	else {	
		checkCode();
	}
}
