//on page load
addLoadListener(initContact);

//form display & validation
function initContact() {
	var type = document.getElementById("type");
	attachEventListener(type, "change", displayFilters, false);		
	var filters = getElementsByClassName(document.getElementById("filters"), "p", "show-form"); 
	for (var i = 0; i < filters.length; i++) {
		var current = document.getElementById(filters[i].id);
		attachEventListener(current, "click", displayFullForm, false);		
	}		
	document.getElementById("contact-form").onsubmit = contactValidateAll;
}

function displayFilters() {
	closeFilters();
	var type = getFormValue("type");
	if ((type == 'feedback') || (type == 'general')) {
		displayFullForm();
	} else {
		Effect.Appear(type + '-filter');
	}		
	
	if ((type == 'status') || (type == 'detailing')) {
		Effect.Appear(type + '-extra');
	}
}

function closeFilters() {
	var fullForm = document.getElementById('final-section');
	fullForm.style.display = "none";
	var filters = getElementsByClassName(document.getElementById("filters"), "div", "filters-div"); 	
	for (var i = 0; i < filters.length; i++) {
		var current = document.getElementById(filters[i].id);
		current.style.display = "none";		
	}
	document.getElementById('status-extra').style.display = "none";
	document.getElementById('detailing-extra').style.display = "none";	
}

function displayFullForm() {
	Effect.Appear('final-section');
}


function contactValidateAll() {	
	var name = getFormValue("name");
	var email = getFormValue("email");	
	var spam = getFormValue("spam");	
	var question = getFormValue("question");	
	if ( (validateLength(name, 1, 100)) && (validateEmail(email)) && (validateNumerical(spam)) && (validateLength(question, 1, 1000000)) ) {
		return true;
	} else {
		var ErrorDiv = document.getElementById("error");
		ErrorDiv.innerHTML = 'Please complete the entire form';	
		new Effect.Highlight('error');
		return false;
	}	
}
