/*
 * Additional methods to JQuery Plugin
 *
 * Copyright (c) 2008 www.afldw.net
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 */

jQuery.validator.addMethod("alphanumericnopunc", function(value, element) {
	return this.optional(element) || /^[a-z0-9]+$/i.test(value);
}, "Letters or numbers only please");

jQuery.validator.addMethod("alpha_dash", function(value, element) {
	return this.optional(element) || /^[a-z0-9_-]+$/i.test(value);
}, "Letters or numbers only please");

jQuery.validator.addMethod("valid_ip", function(value, element) {
	var result = false;
	var reg = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
	var result = reg.test(value);
	if (result) {
		var bytes = value.split('.', 4);
		for (i = 0; i < 4; i++){
			bytes[i] = parseInt(bytes[i], 10);
			if ((i == 0) && (bytes[i] == 0)) {
				result = false;
				break;
			}
			if (bytes[i] > 255) {
				result = false;
				break;
			}
		}
	}
	return this.optional(element) || result;
}, "Valid format is: A.B.C.D - A, B, C and D are integers between 0 and 255");

jQuery.validator.addMethod("valid_yes_no", function(value, element) {
	return this.optional(element) || /^[12]$/.test(value);
}, "Please enter a valid value");

jQuery.validator.addMethod("valid_tel", function(value, element) {
	return this.optional(element) || /^(\(\+[0-9]+\))?([0-9_ \.-])+$/.test(value);
}, "Please enter a valid value");

jQuery.validator.addMethod("valid_decimal", function(value, element, param) {
// param contains the regular expression for decimal format
	return this.optional(element) || param.test(value);
}, "Please enter a valid value");

jQuery.validator.addMethod("valid_float", function(value, element, param) {
// param contains the regular expression for float format
	return this.optional(element) || param.test(value);
}, "Please enter a valid value");

jQuery.validator.addMethod("valid_date", function(value, element, param) {
// param contains the regular expression for date format
	return this.optional(element) || param.test(value);
}, "Please enter a valid value");

jQuery.validator.addMethod("valid_signed_int", function(value, element) {
	return this.optional(element) || /^[-+]?[0-9]+$/.test(value);
}, "Please enter a valid value");

