jQuery.fn.tag = function() {
  	return this[0] ? this[0].tagName : null;
};

function validateForm()
{
	var error = false;
	
	$('label.required').each(function(){
		// get the field the label refers to (the 'for' attribute specifies the id of the field...IE calls it 'htmlFor')
		var attr_for = this.getAttribute('for') ? this.getAttribute('for') : this.getAttribute('htmlFor');
		var field = $( "#"+attr_for );	
		
		if( field ) {
			var fieldType = field.attr("type");
			
			if ( !fieldType ) {				
				fieldType = field.tag();
			}
			fieldType = fieldType.toLowerCase();
	
			if ( ( (fieldType == 'select' || fieldType == 'select-one') && ( field.val() == '0' || field.val() == '' ) )  ||
				 ( fieldType == 'text' && jQuery.trim( field.val() ) == '' )  ||
				 ( fieldType == 'checkbox' && !field.is(':checked') )  ||
				 ( fieldType == 'textarea' && jQuery.trim( field.val() ) == '' ) ) {
					this.className += ' headerColor';
					error = true;
			} else {
				this.className = this.className.replace( /headerColor/ig, '' );
			}
		}
	});
	
	(error) ? $("#requiredMsg").show(): $("#requiredMsg").hide();
	
	// scroll to error message
	if ( error ) {
		window.location.hash = "requiredMsg";
	}
	
	return !error;
}