function callback(object, returns) {
	if (returns) {
		object.style.backgroundColor = "#ffffff";
		if (object.parentNode.getElementsByTagName("LABEL")[0]) object.parentNode.getElementsByTagName("LABEL")[0].style.color="#ffffff";
		object.isValid = true;
	} else {
		object.style.backgroundColor = "#D97171";
		if (object.parentNode.getElementsByTagName("LABEL")[0]) object.parentNode.getElementsByTagName("LABEL")[0].style.color="#FA3939";
		object.isValid = false;
	}
}

function testIndex (object) {
	if (object.selectedIndex == 0) {
		return false;
	}
	return true;
}

function interpretKeyCode(e) {
	var keynum
	var keychar
	if(window.event) {
		keynum = e.keyCode;
	} else if(e.which) {
		keynum = e.which;
	}
	return keynum;
}

function init() {
	var valid = new Validation();
	var validators = new Array();

	validators.push(new Validator(document.getElementById('contactForm').firstname, callback));
	validators[validators.length - 1].addValidation(valid.isAlpha(true));
	validators[validators.length - 1].addValidation(valid.isBounded(2,100));
	
	validators.push(new Validator(document.getElementById('contactForm').lastname, callback));
	validators[validators.length - 1].addValidation(valid.isAlpha(true));
	validators[validators.length - 1].addValidation(valid.isBounded(2,100));
	
	validators.push(new Validator(document.getElementById('contactForm').email, callback));
	validators[validators.length - 1].addValidation(valid.isEmail());

	validators.push(new Validator(document.getElementById('contactForm').phone1, callback));
	validators[validators.length - 1].addValidation(valid.isNumeric(false));
	validators[validators.length - 1].addValidation(valid.isBounded(3,3));
	
	validators.push(new Validator(document.getElementById('contactForm').phone2, callback));
	validators[validators.length - 1].addValidation(valid.isNumeric(false));
	validators[validators.length - 1].addValidation(valid.isBounded(3,3));
	
	validators.push(new Validator(document.getElementById('contactForm').phone3, callback));
	validators[validators.length - 1].addValidation(valid.isNumeric(false));
	validators[validators.length - 1].addValidation(valid.isBounded(4,4));
	
	validators.push(new Validator(document.getElementById('contactForm').company, callback));
	validators[validators.length - 1].addValidation(valid.isAlpha(true));
	validators[validators.length - 1].addValidation(valid.isBounded(2,100));
	
	valid.add(validators);
	valid.addEventToAll("blur");
	var observer = function() {
		if (valid.validate()) {
			return true;
		} else {
			return false;
		}
	};
	document.getElementById('submit').onclick = observer;
}
