TR.contact = function() {
    function init() {
	$(document).ready(function() {
	    initContact();
	});
    }

    function initContact() {
	if ($("#input-senderName").attr("type") == "hidden") {
	    $("#input-message").focus();
	}
	else {
	    $("#input-senderName").focus();
	}

	// initContactValidation();
    }

    function initContactValidation() {
	TR.validation.initNameValidation("senderName");
	TR.validation.initEmailValidation("senderEmail");
	TR.validation.initFieldValidation("message", messageValidator);

	var formName = "contact";
	var form = $("form[name='" + formName + "']");
	$(form).submit(function() {
	    return validateContactForm();
	});
    }

    function validateContactForm() {
	var valid = true;
	// in reverse order to set the relevant focus
	valid = messageValidator("message") && valid;
	valid = TR.validation.validateEmail("senderEmail") && valid;
	valid = TR.validation.validateName("senderName") && valid;
	return valid;
    }

    function messageValidator(name, skipempty) {
	var message = TR.validation.getValue(name, "").trim();
	if (message.length == 0) {
	    if (skipempty) {
		TR.validation.resetError(name);
		return true;
	    }
	    else {
		TR.validation.setError(name, "mandatory field");
		$("#input-" + name).focus();
		return false;
	    }
	}
	return true;
    }


    return {
	init: init
    };
}();


