$().ready(function() {


$.validator.addMethod("checkinput", function(value,label) {
		return !value.match(/[^-a-zA-Z0-9', ]/);
}, 'illegal characters');


$.validator.addMethod("checktel", function(value, element) {
	return this.optional(element) || (!value.match(/[^-0-9 .+\(\)]/));
},'enter valid telephone number');


$.validator.addMethod("checkoptional", function(value,element) {
	return this.optional(element) || (!value.match(/[^-a-zA-Z0-9', ]/));
}, 'illegal characters');

$.validator.addMethod("checkurl", function(value,element) {
	return this.optional(element) || /http:\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(value);
}, 'enter a valid URL');

$.validator.addMethod("checkmessage", function(value,label) {
		return !value.match(/[^-a-zA-Z0-9'",.\!\?\/\\+\$\&\(\)@:;%_ ]/);
}, 'illegal characters');


var validator = $("#contactForm").validate({

		rules: {
			name:{
				required:true,
				checkinput:true
			},
			email: {
				required: true,
				email: true
			},
			tel:{
				required:true,
				checktel:true
			},
			subject: {
				required:true,
				checkinput:true
				},	
			message: {
				required: true,
				checkmessage: true
			}
			},
		messages: {
			name: {
				required: "required",
				checkinput: "illegal characters"
				},			
			email: {
				required: "required",
				email: "Enter a valid email"
				},
			tel: {
				required: "required",
				tel: "illegal characters"
			    },
			subject: {
				required: "required",
				checkinput: "illegal characters"
				},		
			message: {
				required: "required",
				checkmessage: "illegal characters"
				}
			},
			errorElement: "label",
			errorPlacement: function(error, element) {
				element.next("label").remove();
				error.insertAfter( element );
				element.next().addClass("error");				
			},

			success: function(error) {
				error.removeClass('error');
				error.addClass('success');
				error.html('&nbsp;');
		},
		submitHandler: function(form) {
		jQuery("#contactForm").ajaxSubmit({
  			 		url:"ajax/contacts-mailer.php",
  			 		type:"post",
  			 		success: showResponse
  			 		});
		return false;
		}
		});



});


function showResponse(responseText, statusText,validator) {

$(".success").hide();

//alert('status:' + statusText + 'responseText: ' + responseText);

if (responseText == 'ok') {
	validator.resetForm();
	var responseMessage = '<div class="promptheader">Thank you for emailing Jorg Gray Watches</div><div class="prompt-ok">Your email has been successfully sent and we will respond to your message as soon as possible.</div>';
} else {
	var responseMessage = '<div class="promptheader">Message Failed</div><div class="prompt-warn">Your email could not be sent. Please try to send your message again.</div>';
}

$.prompt(responseMessage,{show:'fadeIn',prefix:'sec'}); 

return false;
}
			
