function formValidator(form) {
	error = new Array();
	formInput = form.getElementsByTagName('INPUT');
	formarea = form.getElementsByTagName('TEXTAREA');

	for (var i=0;i < formInput.length; i++) {
		match = /validate\-(.*)([\-error]?)/i.exec(formInput[i].className);
		if (match != null && match[1]) {
			if (!validation(formInput[i], match[1])) {
				error[error.length] = formInput[i];
			}
		}
	}
	
	for (var i=0;i < formarea.length; i++) {
		match = /validate\-(.*)([\-error]?)/i.exec(formarea[i].className);
		if (match != null && match[1]) {
			if (!validation(formarea[i], match[1])) {
				error[error.length] = formarea[i];
			}
		}
	}
	
	if (error.length > 0) { // focus on first error
		for (var er=0;er < error.length; er++) {
			if (er==0) {
				error[er].focus();
			}
		}
		return false;
	}
	
	return true;
}

function validation(el, match) {
		
		if (match.indexOf('error') > 0) {
			match = /(.*)(\-error)/i.exec(match);
			match = match[1];
		}
		switch(match) {
			case 'text':
			  if (!(/[A-Za-z0-9]/i.exec(el.value))) {
					el.removeClass('validate-text');	
					el.addClass('validate-text-error');	
			  	return false;
			  } else {
					el.removeClass('validate-text-error');	
					el.addClass('validate-text');	
			  	return true;
			  }
			  break;  
			    
			case 'email':
			  if (!(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i.exec(el.value))) {
					el.removeClass('validate-email');	
					el.addClass('validate-email-error');
			  	return false;
			  } else {
					el.removeClass('validate-email-error');	
					el.addClass('validate-email');
			  	return true;
			  }
			  break;
			default:			  
			}
	return true;
	
}

