$(document).ready(function(){

	$('input.input_normal').focus(function(){
		if( $(this).hasClass('dim') ){
			$(this).val('').removeClass('dim');
		}
	});
	
	$('input.input_normal').blur(function(){
		if( $(this).val() == '' ) {
			$(this).addClass('dim').val( $(this).attr("title") );
		}
	});

	$("#send").click(function(){
		$('input.input_normal').each(function(){
			if( $(this).hasClass('dim') ) {
				$(this).val('');
			};
		});
	});

	$("#wishlist form").validate({
		groups: {
			nameto: "firstnameto lastnameto",
			namefrom: "firstnamefrom lastnamefrom"
		},
		rules: {
			firstnameto: "required",
			lastnameto: "required",
			emailto: { 
				required: true, 
				email: true 
			},
			firstnamefrom: "required",
			lastnamefrom: "required",
			emailfrom: { 
				required: true, 
				email: true 
			}
		},
		messages: {
			firstnameto: "Please enter the full name of the recipient",
			lastnameto: "Please enter the full name of the recipient",
			emailto: "Please enter  a valid email address",
			firstnamefrom: "Please enter your full name",
			lastnamefrom: "Please enter your full name",
			emailfrom: "Please enter a valid email address"
		},
		errorElement: "p",
		errorPlacement: function(error, element) {
			error.prependTo( element.parent().parent() );	
		},
		highlight: function(element, errorClass) {
			$(element).addClass('hasError').parent().parent("div").addClass(errorClass);
			// restore default value
			if( $(element).hasClass('dim') ){
				$(element).val( $(element).attr('title') );
			}
		},
		unhighlight: function(element, errorClass) {
			$(element).removeClass('hasError');
			if( !$(element).siblings().hasClass('hasError') ) {
				$(element).parent().parent("div").removeClass(errorClass);
			}
		},
		onfocusout: false,
		onkeyup: false
	});
});