$(document).ready(function() {
	$("#data-form").validate({
		onkeyup:false,
		onsubmit:true,
		rules: {
			firstName: {
				strTrim:true,
				required:true,
				minlength:2,
				validChars:true,
				usernameCheck:false    // remote check for duplicate username
			},
			lastName: {
				strTrim:true,
				required:true,
				minlength:2,
				validChars:true,
				usernameCheck:false    // remote check for duplicate username
			},			
			email: {
				strTrim:true,
				required:true,
				email:true,
				emailCheck:true    // remote check for duplicate email address
			},
            country: {
				strTrim:true,
				required:true
			}
		},
		messages: {
			firstName: {
				required: "Enter at least 2 characters.",
				minlength: jQuery.format("Enter at least {0} characters"),
				validChars: "Enter your Name using letters only."
			},
			lastName: {
				required: "Enter at least 2 characters",
				minlength: jQuery.format("Enter at least {0} characters"),
				validChars: "Enter your Last Name using letters only."
			},			
			email: {
				required: "Enter at least 6 characters.",
				email: "Enter a valid email address.",
				emailCheck:"Email address already used!",
				checkDns:"Enter a valid email address."
			},
            country: {
				required: "Enter your location."
			}
		}
	});
});

jQuery.validator.addMethod('usernameCheck', function(username) {
	var result = true;
	var postURL = "jq/json_username_check.php";
	$.ajax({
		cache:false,
		async:false,
		type: "POST",
		data: "username=" + username,
		url: postURL,
		success: function(msg) {
			result = (msg=='TRUE') ? true : false;
		}
	});
	return result;
}, '');

jQuery.validator.addMethod('emailCheck', function(email) {
	var result = true;
	var postURL = "/scripts/email_check.php";
	$.ajax({
		cache:false,
		async:false,
		type: "POST",
		data: "check=if_exists&email=" + email,
		url: postURL,
		success: function(msg) {
		   result = (msg=='TRUE') ? true : false;
		}
	});
	return result;
}, '');

// check for unwanted characters
$.validator.addMethod('validChars', function (value) {
	var result = true;
	// unwanted characters
	var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";
	for (var i = 0; i < value.length; i++) {
		if (iChars.indexOf(value.charAt(i)) != -1) {
			return false;
		}
	}
	return result;
}, '');

jQuery.validator.addMethod('strTrim', function(str, el) {
	el.value = jQuery.trim(str);
	return true;
}, '');

jQuery.validator.addMethod('checkDns', function(email) {
	var result = true;
	var postURL = "/scripts/email_check.php";
	$.ajax({
		cache:false,
		async:false,
		type: "POST",
		data: "check=dns&email=" + email,
		url: postURL,
		success: function(msg) {
		   result = (msg=='TRUE') ? true : false;
		}
	});
	return result;
}, '');

var RecaptchaOptions = {
   theme : 'clean'
};