function Validator(){	

	this.trim = function (validatedStr){
		if(validatedStr==null || validatedStr.length == 0){
			return validatedStr;
		}
		while(validatedStr.charAt(0) == " "||validatedStr.charAt(0) == " "){
			validatedStr = validatedStr.substr(1);
		}
		while(validatedStr.charAt(validatedStr.length-1) == " "||validatedStr.charAt(validatedStr.length-1) == " "){
			validatedStr = validatedStr.substr(0,validatedStr.length-1);
		}
		return validatedStr;
	}

	this.isNull = function (validatedStr) {
		validatedStr = this.trim(validatedStr);
		if(validatedStr==null || validatedStr.length == 0){
			return true;
		}
		return false;
	};

	this.isAlpha = function (validatedStr) {
		if(this.isNull(validatedStr)){
			return false;
		}
		for(var i=0;i<validatedStr.length;i++){
			if((validatedStr.charAt(i) < 'a' || validatedStr.charAt(i) > 'z\uffff')
			&& (validatedStr.charAt(i) < 'A' || validatedStr.charAt(i) > 'Z\uffff'))
				return false;
		}
		return true;
	};

	this.isNumber = function (validatedStr) {
		if(this.isNull(validatedStr)){
			return false;
		}
		for(var i=0;i<validatedStr.length;i++){
			if(validatedStr.charAt(i) < '0' || validatedStr.charAt(i) > '9')
				return false;
		}
		return true;
	};

	this.isString = function (validatedStr) {
		if(this.isNull(validatedStr)){
			return false;
		}
		for(var i=0;i<validatedStr.length;i++){
			if((validatedStr.charAt(i) < '0' || validatedStr.charAt(i) > '9')
			 &&(validatedStr.charAt(i) < 'a' || validatedStr.charAt(i) > 'z\uffff')
			 &&(validatedStr.charAt(i) < 'A' || validatedStr.charAt(i) > 'Z\uffff')
			 &&(validatedStr.charAt(i).indexOf("_") == -1))
				return false;
		}
		return true;
	};

	this.isEmail = function (validatedStr){
		if(this.isNull(validatedStr)){
			return false;
		} 
		var length=validatedStr.length; 
		var atIndex = validatedStr.indexOf('@'); 
		var dotIndex = validatedStr.indexOf('.'); 
		if (
		validatedStr.charAt(0)=="." 
		||validatedStr.charAt(0)=="@"
		||validatedStr.lastIndexOf("@")==length-1 
		||validatedStr.lastIndexOf(".")==length-1
		||atIndex == -1 
		||dotIndex == -1 ) 
		{
			return false;
		}
		if (atIndex > 1) { 
			if ((length-atIndex) > 3){ 
				if ((length-dotIndex)>1){
					return true; 
				} 
			} 
		} 
		return false; 
	}

	this.isPhone = function(validatedStr){
		if(this.isNull(validatedStr)){
			return false;
		}	
		var strTemp ="0123456789-()"; 
		for (var i=0;i<validatedStr.length;i++){ 
			if (strTemp.indexOf(validatedStr.charAt(i))==-1) 
			{ 
				return false; 
			} 
		} 
		return true; 
	}
	
	this.isMobile = function(validatedStr){
		if(this.isNull(validatedStr)){
			return false;
		}	
		if(!this.isNumber(validatedStr) || validatedStr.length != 11){
			return false;
		}
		
		if(validatedStr.charAt(0) !="1" || (validatedStr.charAt(1)!="3" && validatedStr.charAt(1)!="5")){
			return false;
		}
		return true;
	}
}
