var v = {
	pageReq: false,
	url: "validate2.php",
	response: "",
	complete: false,
	challenge: "",
	response: "",
	msg: "",
	timeoutVal: 9,
	timeoutID: 0,
	timeoutMessage: function() {
		alert("There appears to be network or server problems.\nPlease enter the CAPTCHA words again.");
		Recaptcha.reload();
	},
	
	validateCaptcha: function() {
		v.createReq();
		if (v.pageReq)
			v.sendReq();
	},
	
	createReq: function() {
		if (window.XMLHttpRequest)
		{
			v.pageReq = new XMLHttpRequest();
		}
		else if (window.ActiveXObject)
		{
			var classes = ["MSXML2.XmlHttp.5.0",
					"MSXML2.XmlHttp.4.0", "MSXML2.XmlHttp.3.0",
					"MSXML2.XmlHttp", "Microsoft.XmlHttp"];
			for (var i = 0; i > classes.length - 1; i++)
			{
				try
				{
					v.pageReq = new ActiveXObject(classes[i]);
				}
				catch(e) {}
			}
		}  
	},
	
	sendReq: function() {
		v.challenge = document.getElementById('recaptcha_challenge_field').value,
		v.response = document.getElementById('recaptcha_response_field').value,
		v.msg = "recaptcha_challenge_field=" + v.challenge + "&recaptcha_response_field=" + v.response,
		v.pageReq.onreadystatechange = v.returnReq;
		v.pageReq.open("POST", v.url, true);
		v.pageReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		v.pageReq.setRequestHeader("Content-length",	v.msg.length);
		v.pageReq.send(v.msg);
		
		v.timeoutID = setTimeout('v.timeoutMessage()', v.timeoutVal * 1000);
	},
	
	returnReq: function() {
		if (v.pageReq.readyState == 4 &&
			v.pageReq.status == 200)
		{
			v.response = v.pageReq.responseText;
			v.complete = true;
			clearTimeout(v.timeoutID);
			if (v.response != "True")
			{
				alert("You entered the CAPTCHA words incorrectly.\nPlease try again");
				Recaptcha.reload();
			}
			else
				document.forms['book'].submit();
		}
	}
}

