$(function(){

	
	$('input[type=text].hasdefault').focus(function(){ 
		if($(this).val() == $(this).attr('defaultValue'))
		{
			$(this).val('');
		}
	});
	
	$('input[type=text].hasdefault').blur(function(){
		if($(this).val() == '')
		{
			$(this).val($(this).attr('defaultValue'));
		} 
	});
	
	$('input[type=text].required, select.required').each(function() {
		$(this).parent('.field-row').children('label').prepend(document.createTextNode('* '));
	});
	
	$('form.validate').submit(function() {
		var returnVal = true;
		$('.field-row', this).removeClass('error');

		$('input[type=text].required', this).each(function() {
			
			var value = $(this).val();
			if(	
				$(this).is(":visible") && (
					(value == '' || value == $(this).attr('defaultValue')) ||
					($(this).hasClass('email') && !validEmail(value))
				)
			) 
			{	
				$(this).parent('.field-row').addClass('error');
				returnVal = false;
			}

		});
		
		$('input[type=checkbox].required', this).each(function() {
			if(!$(this).is(":checked")) {
				$(this).parent('.field-row').addClass('error');
				returnVal = false;
			}
		});
		
		$('select.required', this).each(function() {
			var value = $(this).val();

			if(	
				(value == '') && $(this).is(":visible")
			) 
			{
				$(this).parent('.field-row').addClass('error');
				returnVal = false;
			}
			
		});
		
		if(returnVal) {
			// clear default values from non-required fields
			$('input[type=text]', this).not('.required').each(function() {
				if($(this).val() == $(this).attr('defaultValue') && !$(this).attr('disabled')) $(this).val('');
			});

		} else {
			/// put placeholders back..
			$('input[type=text]', this).not('.required').each(function() {
				$(this).blur();				
			});
			
		}
		
		return returnVal;
	});
	
});