// JavaScript Document

function valid_email_check(str){

	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if(filter.test(str))
		return true;
	else{
		return false;
	}

}


//=====================================================================
// Javascript library to handle instantiation of HTTP object
//=====================================================================

function get_http_object(mime_type) {

	var xhr = false; 

	if(window.XMLHttpRequest){

		xhr = new XMLHttpRequest();
		if (xhr.overrideMimeType){
			xhr.overrideMimeType(mime_type);
		}
	} 
	else if (window.ActiveXObject) {

		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}catch (e)	{
			
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				xhr = false;	
			}
		}
	}
	
	return xhr;
}



function check_su_fields(){
	
	var bad = "N";
	if(document.getElementById('su_email').value == "" || document.getElementById('su_email').value == "your email"){bad = "Y";}
	if(document.getElementById('su_name').value == "" || document.getElementById('su_name').value == "your name"){bad = "Y";}
	if(document.getElementById('su_telephone').value == "" || document.getElementById('su_telephone').value == "your telephone number"){bad = "Y";}

	if(bad == "Y"){
		document.getElementById('su_form_response').style.display = "block";
		document.getElementById("su_form_response").innerHTML = "Please complete all required (*) fields";
		return false;
	}
	if(!valid_email_check(document.getElementById('su_email').value)){
		document.getElementById('su_form_response').style.display = "block";
		document.getElementById("su_form_response").innerHTML = "Please enter a valid email address.";
		return false;
	}
	
	return true;
}


function send_su_form(){
	
	if(check_su_fields()){
			
		var request = get_http_object('text/xml');
		if(request){
			request.onreadystatechange = function(){
				if(request.readyState == 4){
					if(request.status == 200 || request.status == 304){
						
						// Capture/manipulate XML data returned from HTTP call
						var doc = request.responseXML.documentElement;
						var status = doc.getElementsByTagName('trans_status');
						var msg = doc.getElementsByTagName('trans_msg');
						
						document.getElementById('su_form_response').style.display = "block";
						document.getElementById('su_email').style.display = "none";
						document.getElementById('su_name').style.display = "none";
						document.getElementById('su_telephone').style.display = "none";
						document.getElementById('su_newsletter').style.display = "none";
						document.getElementById('su_comments').style.display = "none";
						document.getElementById('su_submit').style.display = "none";
						document.getElementById('su_req1').style.display = "none";
						document.getElementById('su_req2').style.display = "none";
						document.getElementById('su_req3').style.display = "none";
						
						if(status[0].firstChild.data == 'success'){
							document.getElementById('su_form_response').innerHTML = msg[0].firstChild.data;
							return true;
						}
						else if(status[0].firstChild.data == 'fail'){
							document.getElementById('su_form_response').innerHTML = msg[0].firstChild.data;
							return false;
						}
						else{
							document.getElementById('su_form_response').innerHTML = "Sorry, there was a problem sending your request. Please refresh and try again.";
							return false;
						}
					}
					else{
						// Captures error in trying to talk to server-side script
						alert("Error: returned status code " + request.status + " " + request.statusText);
					}
				}	
			};
			request.open("POST", "/sign-up.php", true);
	
			// Compile form parameters
			var params = "whichaction=send";
			params += "&email=" + document.getElementById('su_email').value;
			params += "&name=" + document.getElementById('su_name').value;
			params += "&telephone=" + document.getElementById('su_telephone').value;
			params += "&comments=" + document.getElementById('su_comments').value;
			params += "&signup=" + document.getElementById('su_signup').value;
	
			//Send the proper header information along with the request
			request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			request.setRequestHeader("Content-length", params.length);
			request.send(params);
		
		}
	}
}



function clearText(field){
 
	if (field.defaultValue == field.value) field.value = '';
	else if (field.value == '') field.value = field.defaultValue;

}
