/**
 *  VisuMass support javascript functions
 *
 *  supportConst()				Page constructor
 *  attachSupportListeners()	Attach click events
 *  validateForm()				Validate before sending, then send ajax request
 *  makeRequest()				Ajax request
 *  alertContents()				Get status of request
 *  showAlert()					Hide submission buttons and disable form
 *
 *  last modified: May 25, 2007 [jb]
 *  
 */

// 
var support_url = '/ajax/send.php';

function supportConst() {
	attachSupportListeners();
}

function attachSupportListeners() {
	var objSubmit = ge('submit_form');
	if (window.addEventListener) { // mozilla
		objSubmit.addEventListener('click', validateForm, false);
	}
	else { // ie
		objSubmit.attachEvent('onclick', validateForm);
	}
}

function validateForm() {
	var frm = ge('contact_form');
	var fullname = frm.elements['fullname'].value;
	var email = frm.elements['email'].value;
	var question = frm.elements['question'].value;
	var security_code = frm.elements['security_code'].value;

	
	if (!isAlpha(fullname)) {
		alert('Error: Please provide a valid name.');
		frm.elements['fullname'].focus();
	}
	else if (!isValidEmail(email)) {
		alert('Error: Please provide a valid email.');
		frm.elements['email'].focus();
	}
	else if (question == '') {
		alert('Error: Please enter your question.');
		frm.elements['question'].focus();
	}
	else if (security_code == '') {
		alert('Error: Please enter the security code.');
		frm.elements['security_code'].focus();
	}
	else {

		// send email
		var opts = support_url + '?fullname='+fullname+'&email='+email+'&question='+question+'&security_code='+security_code;
		makeRequest(opts);
	}
}



function makeRequest(send_url) {
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} 
	else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) {
			try {
			http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {
				alert ('Error connecting!');
			}
		}
	}
	if (!http_request) {
		alert('Error: Cannot create an XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = alertContents;
	http_request.open('GET', send_url, true);
	http_request.send(null);
}

function alertContents() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			
			var xmldoc = http_request.responseXML;

			// check if valid security code
			var secure_response_parent = xmldoc.getElementsByTagName('captcha')[0];
			var is_secure = secure_response_parent.firstChild.data;

			if (is_secure == 'yes') {

				// get mail status
				var mail_status = xmldoc.getElementsByTagName('successful')[0];
				var is_sent = mail_status.firstChild.data;
				if (is_sent == 'yes') {
					showAlert();
				}
				else {
					alert('Error: Server error attempting to send your question');
				}
			}
			else {
				alert('Error: Your security code is invalid. Please try again.');
			}
		} 
		else {
			alert('Error: There was a problem with the request.');
		}
	}

}


function showAlert() {
	var objAlertBox = ge('container_alert');
	var objButtons = ge('action_input');
	var objSecurity = ge('security_input');

	objButtons.style.display = 'none';
	objSecurity.style.display = 'none';
	objAlertBox.style.display = '';

	var objFrmFullname = ge('fi_fullname');
	var objFrmEmail = ge('fi_email');
	var objFrmQuestion = ge('fi_question');

	objFrmFullname.disabled = true;
	objFrmFullname.style.backgroundColor = 'EEEEEE';

	objFrmEmail.disabled = true;
	objFrmEmail.style.backgroundColor = 'EEEEEE';

	objFrmQuestion.disabled = true;
	objFrmQuestion.style.backgroundColor = 'EEEEEE';

}
