var Validate = function () {
	/*--------------------------------------------------------------------------*/
	this.isEqual = function(element1, element2){
		if($(element1).val() == $(element2).val()) return true;
		else return false;
	};
	/*--------------------------------------------------------------------------*/
	this.hasValidChars = function(element, characters, caseSensitive){
		var s = $(element).val();
		function escapeSpecials(s){
			return s.replace(new RegExp("([\\\\-])", "g"), "\\$1");
		}
		return new RegExp("^[" + escapeSpecials(characters) + "]+$",(!caseSensitive ? "i" : "")).test(s);
	};
	/*--------------------------------------------------------------------------*/
	this.isEisu = function(element){
		var string = $(element).val();
		alphaRegExp = /^[0-9a-z]+$/i
		return alphaRegExp.test(string);
	};
	/*--------------------------------------------------------------------------*/
	this.isNotEmpty = function (element){
		var string = $(element).val();
		return /\S/.test(string);
	};
	/*--------------------------------------------------------------------------*/
	this.isEmpty = function(element){
		var string = $(element).val();
		return !/\S/.test(string);
	};
	/*--------------------------------------------------------------------------*/
	this.isTitle = function(element){
		if($(element).val() == $(element).attr('title')) return true;
		else return false;
	};
	/*--------------------------------------------------------------------------*/
	this.isIntegerInRange = function(element,Nmin,Nmax){
		var n = $(element).val();
		var num = Number(n);
		if(isNaN(num)){
			return false;
		}
		if(num != Math.round(num)){
			return false;
		}
		return (num >= Nmin && num <= Nmax);
	};
	/*--------------------------------------------------------------------------*/
	this.isKana = function(element){
		var string = $(element).val();
		return string.match(/^[ァ-ヶー]*$/)
	};
	/*--------------------------------------------------------------------------*/
	this.isNum = function(element){
		var number = $(element).val();
		numRegExp = /^[0-9]+$/
		return numRegExp.test(number);
	};
	/*--------------------------------------------------------------------------*/
	this.isMail = function(element){
		var string = $(element).val();
		emailRegExp = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.([a-z]){2,4})$/
		return emailRegExp.test(string);
	};
	/*--------------------------------------------------------------------------*/
	this.isZip = function(element1 ,element2){
		if (element2 != undefined) {
			var zipcode = $(element1).val() + "-" + $(element2).val();
		} else {
			var zipcode = $(element1).val();
		}
		if(!zipcode) return false;
		return /^\d{3}-\d{4}$/.test(zipcode);
	};
	/*--------------------------------------------------------------------------*/
	this.isPhone = function(element1 ,element2, element3){
		if (element2 != undefined && element3 != undefined) {
			var phone = $(element1).val() + "-" + $(element2).val() + "-" + $(element3).val();
		} else {
			var phone = $(element1).val();
		}
		if(!phone) return false;
		return /^\d{2,4}-\d{2,4}-\d{4}$/.test(phone);
	};
	/*--------------------------------------------------------------------------*/
	this.isDate = function(date){
		if(!date) return false;
		return /\d{4}\/([0]\d|[1][0-2])\/^([0-2]\d|[3][0-1])$/.test(date);
	};
	/*--------------------------------------------------------------------------*/
	this.isURL = function(element){
		var string = $(element).val();
		if(!string) return false;
		var string = string.toLowerCase();
		urlRegExp = /^(((ht|f)tp(s?))\:\/\/)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/
		return urlRegExp.test(string);
	};
	/*--------------------------------------------------------------------------*/
	this.isDecimal = function(element){// positive or negative decimal
		number = $(element).val();
		if(!number) return false;
		decimalRegExp = /^-?(0|[1-9]{1}\d{0,})(\.(\d{1}\d{0,}))?$/
		return decimalRegExp.test(number);
	};
	/*--------------------------------------------------------------------------*/
};

