//find all the required classes
var formCheck = new function() {
	this.init = function() {
		var submitBtn = document.getElementById("submit_contact");
/*		submit.onclick = formCheck.validate;*/
	}
	
	this.validate = function() {
		//window.event.cancelBubble = true;
		var errorsArray = new Array();
		var requiredFields = document.getElementsByClassName("required","label");
		for(var i=0;i<requiredFields.length;i++){
			var input = document.getElementById(requiredFields[i].htmlFor);
			switch(input.id) {
				case "subject":
					if(!formCheck.checkSubject(input)) {
						errorsArray[errorsArray.length] = requiredFields[i].title;
					} 
					break;
				case "email":
					if(!formCheck.checkEmail(input)) {
						errorsArray[errorsArray.length] = requiredFields[i].title;
					}
					break;
				case "zipcode":
					if(!formCheck.checkZip(input)) {
						errorsArray[errorsArray.length] = requiredFields[i].title;
					}
					break;
				case "phone":
					if(!formCheck.checkPhone(input)) {
						errorsArray[errorsArray.length] = requiredFields[i].title;
					}
					break;
				default:
					if(!formCheck.requiredField(input)) {
						errorsArray[errorsArray.length] = requiredFields[i].title;
					}	
				}
			}

				//if there is more than one error
				var errorsBox = document.getElementById("errorsBox");

				if(errorsArray.length>0) {
					//init the box for use with script
					errorsBox.style.display = "block";
					
					//remove everything
					errorsBox.innerHTML = "";
					
					errorsTitle = document.createElement("h3");
					errorsTitle.innerHTML = "Errors:";

					errorsBox.appendChild(errorsTitle);
					
					errorsList = document.createElement("ul");
					
					for(var i=0;i<errorsArray.length;i++) {
						var newError = document.createElement("li");
						newError.innerHTML = errorsArray[i];
						errorsList.appendChild(newError);
					}
					errorsBox.appendChild(errorsList);
					return false;
			} else {
				document.contentform.submit();
			}
	}
	
	/*VALIDATION FUNCTIONS*/
	this.checkEmail = function(email) {
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email.value)){
			return true;
		} else {
			return false;
		}
	}

	this.checkPhone = function(phone) {
		if (/^((\(\d{3}\) ?)|(\d{3}-))\d{3}-\d{4}$/.test(phone.value)){
			return true;
		} else {
			return false;
		}
	}
	
	this.requiredField = function(field) {
		if(!field.value) {
			return false;
		} else {
			return true;
		}
	}
	
	this.checkZip = function(zipcode) {
		if(/(^\d{5}$)|(^\d{5}-\d{4}$)/.test(zipcode.value)) {
			return true;
		} else {
			return false;
		}
	}
	
	this.checkSubject = function(subject) {
		if(subject.selectedIndex == 0) {
			return false;
		} else {
			return true;
		}
	}
}

var countrySwitcher = new function() {
	this.init = function() {
		var countrySelector = document.getElementById("countryform").getElementsByTagName("A");
		countrySelector[0].onclick = countrySwitcher.swap;
	}
	this.swap = function() {
		var countryForm = document.getElementById("countryform");		
		var countryOptions = countryForm.getElementsByTagName("select");
		if(countryOptions[0].selectedIndex>0) {
			window.location = countryOptions[0].options[countryOptions[0].selectedIndex].value;			
		}
	}
}

/*Event.addEvent(window,"load",countrySwitcher.init);*/
Event.addEvent(window,"load",formCheck.init);