var _enableCaptcha = false;

function validateMessageForm()
{
    var form = document.forms["postform"];

    if (form["nickName"].value == "") {
        alert('Please enter your name');
        return false;
    }

    if (!isEmail(form["email"].value)) {
        alert('Please enter valid email address');
        return false;
    }

    if (form["subject"].value == "") {
        alert('Please enter message subject');
        return false;
    }

	if (_enableCaptcha && form["captcha"].value == "") {
		alert('Please enter text displayed on verification image');
		return false;
	}

	return true;
}

function enableFormElements(form, enable)
{
    for (var i = 0; i < form.elements.length; i++) {
        form.elements[i].disabled = !enable;
    };
}

function getQueryString(form)
{
    var qs = '';
    
    for (var i = 0; i < form.elements.length; i++) {    
		element = form.elements[i];
        if (element.name == '') return;
        if (qs != '') qs += '&';
        qs += escape(element.name) + '=' + escape(element.value);
    };
    
    return qs;
}

var _denySubmitReentry = false;

function submitMessageForm()
{
	if (_denySubmitReentry) return;

	if (!validateMessageForm()) return;

	var messageForm = document.forms['postform'];

	var xmlHttp = new XmlHttpJsonLoader()._CreateXmlHttp();
	if (xmlHttp == null) {
		document.forms['postform'].submit();
		return;
	}

	enableFormElements(messageForm, false);

	xmlHttp.onreadystatechange = function() {
		if (xmlHttp.readyState != 4) return;

		_denySubmitReentry = false;
		enableFormElements(messageForm, true);

		var response = xmlHttp.responseText;
		if (response == 'OK') {
			alert('Message has been sent successfully. This window will be closed');
			setTimeout("window.close();",10);
		} else {
			alert('Error: ' + response);
		}
	};
	xmlHttp.open('POST', messageForm.action, true);
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
	xmlHttp.send(getQueryString(messageForm) + '&accept=plaintext');
}

function onCaptchaKeyPress(event)
{
	if (getKeyCode(event) == 13) submitMessageForm();
	return true;
}		

function initUI(enableCaptcha, deptName)
{
	if (deptName != '') {
	    setDialogTitle('Leave a message to ' + deptName);
	}

	document.getElementById('captchaRow').style.display = (_enableCaptcha = enableCaptcha) ? '' : 'none';
	if (enableCaptcha) {
	    document.forms['postform'].captcha.onkeypress = onCaptchaKeyPress;
	}
}

function reloadCaptcha()
{
    document.getElementById('imgCaptcha').src = 'leaveMessage.php?render_verification_image=yes&regenerate_verification_image=yes&dummy=' + new Date().getTime().toString();
}
