/*
 * Customs rules and methods for the jQuery validation plugin
 * Author : RichCongress
 */
/*
/*
 * 
 */
jQuery.validator.addMethod("check_registered_mail", function(value, element){
	if(value == "") return true;
	var datas = 'champ_name=Email&q=' + value;
	var ajax_success = true;
	$.ajax({	
	   type: "POST",
	   url: 'search_mail.php',
	   data: datas+'&_random='+Math.random(),
	   async:false,
	   success: function(exist){
	   		if (exist == "true") {
	   			ajax_success = false;
			}
	 	}
	});
	return ajax_success;
	
});

jQuery.validator.addMethod("check_extensions", function(value, element){
	var extArray = new Array(".gif", ".jpg", ".png", ".jpeg");
	var allowSubmit = false;
	if (value != "") {
		while (value.indexOf("\\") != -1) 
			value = value.slice(value.indexOf("\\") + 1);
			ext = value.slice(value.indexOf(".")).toLowerCase();
			for (var i = 0; i < extArray.length; i++) {
				if (extArray[i] == ext) { allowSubmit = true; break; }
			}
		if (!allowSubmit) {
			//alert("Utilisez les suivantes extensions:  " +
			//(extArray.join("  ")) + ".\nMerci"); 
			 return false;
		 }
	 }
	return true;
	
});
jQuery.validator.addMethod("minilength_digit", function(value, element){
	var datas = 'champ_name=Email&q=' + value;
	var ajax_success = true;
	$.ajax({
	   type: "POST",
	   url: 'search_mail.php',
	   data: datas+'&_random='+Math.random(),
	   async:false,
	   success: function(exist){
	   		if (exist == "true") {
	   			ajax_success = false;
			}
	 	}
	});
	return ajax_success;
	
});

jQuery.validator.addMethod("minlength_digit", function(value, element, params){
	if (value != "") {
		if (value.length <params)
		return false;
	}
	return true;
});

jQuery.validator.addMethod("maxlength_digit", function(value, element, params){
	if (value != "") {
		if (value.length >params) 
		return false;
	}
	return true;
});

jQuery.validator.addMethod("max_posters", function(value, element, params){
	if (value > 10) {
		return false;
	}
	return true;
});
jQuery.validator.addMethod("decimal_number", function(value, element, params){
	if (value != "") {
		
		var expr = /^[0-9]+(.[0-9]+)?$/;
		if (!value.match(expr))
			return false;
	 }
	return true;
});

jQuery.validator.addMethod("max_balloon", function(value, element, params){
	if (value > 1) {
		return false;
	}
	return true;
});
jQuery.validator.addMethod("max_flag", function(value, element, params){
	if (value > 2) {
		return false;
	}
	return true;
});
jQuery.validator.addMethod("max_banner", function(value, element, params){
	if (value > 3) {
		return false;
	}
	return true;
});
jQuery.validator.addMethod("positive", function(value, element, params){
	if (value < 1) {
		return false;
	}
	return true;
});
jQuery.validator.addMethod("min_suface_stand", function(value, element, params){
	if (value < 6) {
		return false;
	}
	return true;
});
jQuery.validator.addMethod("yacht_length_tender", function(value, element, params){
	return false;
});
jQuery.validator.addMethod("yacht_length", function(value, element, params){
	return false;
});
jQuery.validator.addMethod("dialling_code", function(value, element, params){
	if (value == "" || value >= 0 ) {
		return true;
	}
	return false;
});
jQuery.validator.addMethod("phone_number", function(value, element, params){
	if (value == "" || value >= 0 ) {
		return true;
	}
	return false;
});
jQuery.validator.addMethod("year_of_launch", function(value, element, params){
	if (value == "" || value <= 0 ) {
		return false;
	}
	return true;
});
jQuery.validator.addClassRules({
	postcode : {
		/*minlength_digit : 5,
		maxlength_digit : 5,
		digits : true*/
	},
	address : {
		minlength : 5
	},
	year_of_launch : {
		year_of_launch : true
	},
	city : {
		minlength : 3
	},
	unregistred_mail:{
		email:true,
		check_registered_mail:true
	},
	extension_allowed:{
		check_extensions:true
	},
	max_posters:{
		max_posters:true
	},
	dialling_code : {
		maxlength_digit : 5,
		dialling_code : true
	},
	phone_number : {
		phone_number : true
	},
	decimal_number : {
		decimal_number:true
	},
	balloon : {
		max_balloon: true,
		digits : true
	},
	flag : {
		max_flag: true,
		digits : true
	},
	banner : {
		max_banner: true,
		digits : true
	},
	min_suface_stand : {
		min_suface_stand: true,
		digits : true
	},
	positive : {
		positive: true,
		digits : true
	},
	yacht_length_tender : {
		yacht_length_tender : true
	},
	yacht_length : {
		yacht_length : true
	}
	
});
