<!-- Get browser object for javascript -- >
<!-- Begin
function getobject(obj) {
	if (document.getElementById)
		return document.getElementById(obj)
	else if (document.getElementByName)
		return document.getElementByName(obj)
	else if (document.all)
		return document.all[obj]
}
//  End -->

<!-- Check form for required fields and submit -->
<!-- Begin
function checkForm(of) {
	// Test if DOM is available and there is an element called required
	if(!document.getElementById || !document.createTextNode){return;}
	if(!getobject('required')){return;}

	// Define error messages and split the required fields
	var error = false;
	var errorClass = 'error_field'
	var errorMsg = 'One or more required fields are empty or invalid';
	var reqfields = getobject('required').value.split(',');

	// remove classes from the required fields
	for(var i = 0; i < reqfields.length; i++) {
		var f = getobject(reqfields[i]);
		if(!f){continue;}
		f.className = '';
	}
	
	// loop over required fields
	for(var i = 0; i < reqfields.length; i++) {
		// check if required field is there
		var f = getobject(reqfields[i]);
		
		if(!f){continue;}
		
		// test if the required field has an error, 
		// according to its type
		switch(f.type.toLowerCase()) {
			case 'text':
				if(f.value == '' && f.id != 'email' && f.id != 'email_address'){cf_adderr(f); error = true;}							
				if((f.id == 'email' || f.id == 'email_address') && !cf_isEmailAddr(f.value)){cf_adderr(f); error = true;}							
			break;
			case 'textarea':
				if(f.value == ''){cf_adderr(f); error = true;}							
			break;
			case 'checkbox':
				if(!f.checked){cf_adderr(f); error = true;}							
			break;
			case 'select-one':
				if(!f.selectedIndex && f.selectedIndex == 0){cf_adderr(f); error = true;}							
			break;
		}
	}
	
	if (error == true) {
		alert(errorMsg);
		return false;
	} else {
		return true;
	}

	/* Tool methods */
	function cf_adderr(o) {
		// Switch the focus to the first invalid field
		if (error == false) {
			f.focus();
		}
		
		o.className = errorClass;
	}
	
	function cf_isEmailAddr(str) {
		return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
	}
}

function submitForm(form_name, usecaptcha) {
	var form = getobject(form_name);
	
	if (checkForm(form) == false) {
		return;
	}
	
	if (usecaptcha == true) {
		checkCaptcha(form);
	} else {
		form.submit();
	}
}

function checkCaptcha(form) {
	$.post(
		"/includes/captcha/ajax_reponse.php",
		{captcha_code: $("#captcha_code").val()},
		function (data) {
			if (data == "true") {
				form.submit();
			} else {
				alert("Verification code incorrect, please try again.");
				$("#captcha_image").attr("src", "/includes/captcha/getimage.php?rand=" + Math.random());
			}
		}
	);
}
//  End -->