jQuery(function($){

	if (!Modernizr.input.placeholder){
		$('#goldform input[placeholder]').example(function(){return $(this).attr('placeholder');}, {className : 'notfilled'});
	}

	var form = $('#goldform form');

	// showing hidden part of the form if needed by focus on visible inputs
	var visible_inputs = $('#goldform form.collapsible.collapsed > div > .form-item input');
	if (visible_inputs.length > 0) {
		visible_inputs.bind('focus.show_form', function(e) {
			if (!form.hasClass('collapsed')) return;

			form.find('.collapsible-fields').hide();
			form.removeClass('collapsed');
			form.find('.collapsible-fields').slideDown();
		});

		$('body').bind('click.hide_form', function(e) {
			if (!form.hasClass('collapsed') && $(e.target).closest('#goldform').length == 0) {
				form.find('.collapsible-fields').slideUp(function() {
					form.addClass('collapsed');
				});
			}
		});
	}

	$('.focus-gold-form').click(function() {
		$('#goldform input:text:first').focus();
		return false;
	});

	$('#goldform form').validate({
		onkeyup: false,
		rules: {
			first_name: {required:true},
			last_name: {required:true},
			address: {required:true},
			city: {required:true},
			postcode: {required:true, minlength:4},
			state: {required:true},
			phone: {required:true},
			email: {required:true, email: true}
		},
		messages: {
			first_name: 'Please enter your first name',
			last_name: 'Please enter your last name',
			address: 'Please enter your address',
			city: 'Please enter your city',
			postcode: {
				required: 'Please enter your postcode',
				minlength: 'Your postcode must be at least 4 numbers in length'
			},
			state: 'Please enter your state',
			phone: 'Please enter your phone number',
			email: {
				required: 'Please enter your email',
				email: 'Please enter correct email'
			}
		},
		errorPlacement: function(error, element) {
			$(element).after(error);
			$(error).hide();
		},
		//submitHandler: function(form) {
		//  $(form).ajaxSubmit({
		//    success: function(resp){
		//      if (resp.result === 'success') {
		//        if (resp.redirect) {
		//          if (resp.redirect === 'true'){
		//            window.location.href = window.location.href;
		//          }
		//        }
		//      }
		//    },
		//    dataType: 'json'
		//  });
		//},
		//invalidHandler: function(form, validator) {
		//
		//},
		showErrors: function(errorMap, errorList) {
			this.defaultShowErrors();
			$('#goldform form .form-item input').trigger('blur');
			$('#goldform form label.error').hide();
		}
//    highlight: function(element, errorClass) {
//      $(element).fadeOut(function() {
//        $(element).fadeIn();
//      });
//    },
		//success: function(label) {
		//  $(label).remove();
		//}
	});

	$('#goldform form .form-item input')
		.bind('focus', function(e){
			$(this).siblings('.error').fadeIn();
		})
		.bind('blur', function(e){
			$(this).siblings('.error').fadeOut();
		});

	$('#goldform').delegate('form', 'submit', function(e){

		var form = $(this).closest('form');
		if ($(this).closest('form').hasClass('collapsed') && ($('.form-item-first-name input', form).val() == '' || $('.form-item-first-name input', form).val() === $('.form-item-first-name input', form)[0].title)){
			e.preventDefault();
			$('.form-item-first-name input', form).trigger('focus');
			$('.form-item-first-name', form).siblings().find('input').trigger('blur');
		}
		else {

		}
	});

});
