// JavaScript Document

function resetForm(){
	document.forms['heirloomForm'].reset();
	return false;
}



var f = null;

/*
 * javascript will handle form checking and submission
 */
 
addLoadEvent( 
	function() {
		f = document.forms['heirloomForm'];
		if ( document.getElementById && document.getElementsByTagName ) {
			f.onsubmit = checkForm;
		}
	}
);

//code check
function makeRequest( url ) {

	var http_request = false;
	
	if ( window.XMLHttpRequest ) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if ( http_request.overrideMimeType ) {
			http_request.overrideMimeType( 'text/plain' );
		}
	} 
	else if ( window.ActiveXObject ) { // IE
		try { http_request = new ActiveXObject( 'Msxml2.XMLHTTP' ); } 
		catch ( e ) {
			try { http_request = new ActiveXObject( 'Microsoft.XMLHTTP' ); } 
			catch ( e ) {}
		}
	}
	
	if ( !http_request ) {
		alert( 'Giving up: Cannot create an XMLHTTP instance' );
		return false;
	}
	http_request.onreadystatechange = function() { getResponse( http_request ); }
	http_request.open( 'GET', url, true );
	http_request.send( null );
	
}

function getResponse( http_request ) {
	if ( http_request.readyState == 4 ) {
		if ( http_request.status == 200 ) { 
			if ( http_request.responseText == 'true' ) { 
				f.submit();
			}
			else {
				alert ('The code you entered did not match. Please re-enter code and submit again.');

				document.getElementById('captchaImage').src = '/scripts/captcha.php?force=' + Math.round( Math.random() * 100 );
			}
		}
		else { alert( 'There was a problem with the request.' ); }
	}
}


//check form
function checkForm(){

	var emailFilter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var fileFilter   = /^.+\.(jpe?g)|(gif)|(png)$/;
	
	if ( !f.first_name.value   || 
		 !f.last_name.value    || 
		 !f.email.value        || 
		 !f.recipe_name.value  ||
		 !f.ingredients.value  ||
		 !f.heirloom.value     ||
		 !f.instructions.value ||
		 !f.serves.value){
		
		alert('Please complete all the required fields.');
		return false;
	}
	else if ( !emailFilter.test( f.email.value ) ) {
		
		alert('Please enter a valid email address.');
		return false;
	}
	else if ( f.imageupload.value != '' && !fileFilter.test( f.imageupload.value ) ) { 
		alert('Only jpegs, pngs and gifs are allowed for upload. Please choose a different image and try again.');
		return false;
	}
	else if ( !f.terms[0].checked) {
		alert('Please agree to the terms in order to submit.');
		return false;
	}
	else { 
		makeRequest( '/scripts/captcha.php?security_code=' + f.security_code.value );
		return false;
	}
	
}