var ERROR_MSG_FIELD = "Please fill out the entire form.";
var ERROR_MSG_EMAIL = "Please fill out your email address.";
var INFO_MSG_FORM_SENT = "Your information request has been sent and we will answer you within 24 hours. Thank you!";

function initInformationForm() {
	var i = 0;
	var formElement = null;
	var topicDefault = 0;
	var allTopics = ["<select>", "Comment", "Suggestion", "Bug report", "Complaint"];

	// insert topics in list
	formElement = document.forms['informationForm'].topic;

	for (i = 0; i < allTopics.length; i++) {
		formElement.options[i] = new Option(allTopics[i], i);
	}
}

function changeBorder(formElement, highlight) {
	if (highlight) {
		formElement.style.border = '2px solid #F1880B';
	} else {
		formElement.style.border = '1px solid #A5B58C';
	}
	return true;
}

function emailIsValid(formElement) {
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	var valid = false;

	// preg_match = true if value HasNoNewlines
	valid != preg_match("/(%0A|%0D|\n|\r)/i", formElement.value);

	if (valid) {
		if (formElement.value.match(emailExp)) {
			changeBorder(formElement, false);
			valid = true;
		}	else {
			alert(ERROR_MSG_EMAIL);
			changeBorder(formElement, true);
			formElement.focus();
			valid = false;
		}
	} else {
		formElement.value = '';
		alert('Please do not abuse this email !');
	}

	return valid;
}

function fieldHasValue(formElement) {
	var error = 0;        // error 0 = all ok

	switch (formElement.type) {
		case 'text':        // errors 1 and 2
		case 'textarea':
						if (formElement.value) { break } else { error = 2; break };
		case 'select-one':  // error 3
						if (formElement.selectedIndex > 0) { break } else { error = 3; break };
		case 'radio':       // error 4
						var radios = formElement.form[formElement.name];
						for (var i=0; i < radios.length; i++) {
									if (radios[i].checked) { break } else { error = 4; break }
						};
		case 'checkbox':    // error 5
						if (formElement.checked) { break } else { error = 5; break };
	}

	if (error > 0) {
		alert(ERROR_MSG_FIELD);
		changeBorder(formElement, true);
		formElement.focus();
		return false;
	} else {
		changeBorder(formElement, false);
		return true;
	}
}

function checkInformationForm() {
	var form = document.forms['informationForm'];

	if (!fieldHasValue(form.elements['firstname'])) { return false };
	if (!fieldHasValue(form.elements['lastname']) ) { return false };
	if (!fieldHasValue(form.elements['email'])    ) {
		return false;
	} else {
		if (!emailIsValid(form.elements['email'])) { return false };
	};
	if (!fieldHasValue(form.elements['topic'])    ) { return false };
	if (!fieldHasValue(form.elements['comment'])  ) { return false };

	var formElementTopic = form.topic;

	form.elements['subject'].value = formElementTopic.options[formElementTopic.selectedIndex].text;
	//alert(form.elements['subject'].value);
	form.elements['submit'].disabled = true;
	return true;
}

function checkSubscriptionForm() {
	var form = document.forms['subscriptionForm'];

	if (!fieldHasValue(form.elements['email'])) {
		return false;
	} else {
		if (!emailIsValid(form.elements['email'])) { return false };
	}

	//alert(INFO_MSG_FORM_SENT);
	form.elements['submit'].disabled = true;
	return true;
}