var RecaptchaOptions = {
   theme : 'clean'
};
function validate_form(form){
	var req = create_request();
	var formAction = form.formAction.value;
	form.formAction.value = "validate";
	var formID;
	//alert(form.formAction.value);
	if(req){
		url = form.validateURL.value;
		formID = form.id;

		//alert("url ("+url+")");
		// open the connection
		req.open("POST", url, true);

		/* when the data has been completely loaded back into the browser
		  * and the status is OK, it puts the text string that was returned
		  * into the tag specified in curDiv, and shows the div (if specified)
		  */
		req.onreadystatechange = function(){
			if (req.readyState == 4 && req.status == 200) {
				//alert("got response");
				var response = req.responseText;
				//alert(response);
				form.formAction.value = formAction;
				
				//alert("before Json");
				var errorObj = Json.evaluate(response);
				//alert("after Json");
				
				//alert(Json.toString(errorObj));
				// if there are errors
				if(errorObj.errors.length > 0){
					show_form_errors(form, errorObj);
					window.location = "#errors";
				}
				else if(response.indexOf("{'errors'") > -1){
					// call the correct form submitions based on the type
					form.submit();
				}
				else{
					alert("Form did not validate");
					//alert(response);
				}
			}	
		}
		req.setRequestHeader('User-Agent','XMLHTTP/1.0');
		// set the header
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		var str = "";
		
		/* if(form.file != undefined){
			str = "&file=" + form.file.value
		} */
		
		//collect any files
		if(form.elements != undefined){
			for (var key in form.elements){
				if (form.elements[key] != undefined && form.elements[key].type == 'file' && form.elements[key].value){
					str += "&"+form.elements[key].name+"="+form.elements[key].value;
				}
			}
		}
		var formID = form.id;
		// get the form values string
		qString = $(formID).toQueryString();

		// send the request
		//alert(qString + "; str = " + str);
		req.send(qString + str);
	}
}

