function isEmpty(val) { 
   return !/\S/.test(val); 
} 
function isInt(val) {
   return /^\d{1,10}$/.test(val);
};
function isValidEmail(str) { 
	// http://www.devpro.it/php4_id_2.html 
    return Boolean(str.match(/^([a-z0-9]+[\._\-]?){1,3}([a-z0-9])*\@([a-z0-9]+[\.\-]?){1,3}([a-z0-9])*\.[a-z]{2,6}$/i)); 
}; 
function isUserData(val) { 
   return /^[a-zA-Z0-9_\-]{6,32}$/.test(val); 
}
function isData(val) { 
   return /^[^0-9\.<>{};:@"£$%\/^&\*()_\+\-=\]\[]{1,255}$/.test(val); 
}
function isDataWithNumber(val) { 
   return /^[^\.<>{};:@"£$%\/^&\*()_\+\-=\]\[]{1,255}$/.test(val); 
}
function isEmptyV(id,errMsg){ 
    this.el= $(id); 
	this.isValid= function(){ 
		var isValid= true; 
		if(isEmpty(this.el.val())){ 
			this.error= errMsg; 
			isValid= false; 
		} 
		return isValid; 
    } 
}; 
function isIntV(id,errMsg){
	 this.el= $(id); 
	this.isValid= function(){
		var isValid= true;
		if(!isInt(this.el.val())){
			this.error= errMsg;
			isValid= false;
		}
		return isValid;
	}
};
function isValidEmailV(id,errMsg){ 
    this.el= $(id); 
    this.isValid= function(){ 
        var isValid= true; 
        if(!isValidEmail(this.el.val())){ 
            this.error= errMsg; 
            isValid= false; 
        } 
        return isValid; 
    } 
}; 
function isUserDataV(id,errMsg){ 
    this.el= $(id); 
	this.isValid= function(){ 
		var isValid= true; 
		if(!isUserData(this.el.val())){ 
			this.error= errMsg; 
			isValid= false; 
		} 
		return isValid; 
    } 
}; 
function isDataV(id,errMsg){ 
    this.el= $(id); 
	this.isValid= function(){ 
		var isValid= true; 
		if(!isData(this.el.val())){ 
			this.error= errMsg; 
			isValid= false; 
		} 
		return isValid; 
    } 
}; 
function isDataWithNumberV(id,errMsg){ 
    this.el= $(id); 
	this.isValid= function(){ 
		var isValid= true; 
		if(!isDataWithNumber(this.el.val())){ 
			this.error= errMsg; 
			isValid= false; 
		} 
		return isValid; 
    } 
}; 
function isTheSameV(id,id2,errMsg){ 
    this.el= $(id); 
 	this.el2= $(id2); 
	this.isValid= function(){ 
		var isValid= true; 
		if($.trim(this.el.val())!==$.trim(this.el2.val())){ 
			this.error= errMsg; 
			isValid= false; 
		} 
		return isValid; 
    } 
}; 
function Validator() { 
    var validators= []; 
    this.errors= []; 
    this.values= {}; 
    this.add= function(objV){ 
        validators.push(objV); 
    } 
    this.isValid= function(){ 
        var isValidFlag= true; 
        for(var i=0, len= validators.length;i< len;i++){ 
            if(!validators[i].isValid()){ 
                this.errors.push({error:validators[i].error,el:validators[i].el}); 
                isValidFlag= false; 
            } 
            else{
				this.values[validators[i].el.attr('name')]= validators[i].el.val(); 
            } 
        } 
        return isValidFlag; 
    }
	this.showError= function (target){
		if(target!=undefined){
			hideError();
			var box = $('<div id="show-error"><p>'+this.errors[0].error+'</p></div>');
			target.prepend(box);
			target.find('input').css({ border: "1px solid #ABC6DD"});
			target.find('textarea').css({ border: "1px solid #ABC6DD"});
		}
		$(this.errors[0].el).css({ border: "1px solid #FD9999"}); 
	} 
	function hideError(){
		if ($('#show-error').length > 0){
			$('#show-error').remove();
		}
	}
	this.sweeper= function(target){
		if ($('#error').length > 0){
			$('#error').remove();
		}
		target.find('input').css({ border: "1px solid #D2271D"});
		target.find('textarea').css({ border: "1px solid #D2271D"});
	}
} 