﻿
String.prototype.Ltrim = function(){
	return this.replace(/^\s+/,"");
}

String.prototype.Rtrim = function(){
	return this.replace(/\s+$/,"");
}

String.prototype.Trim = function(){
	//return this.Ltrim().Rtrim();
	//return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); worjking
	return this.Rtrim().Ltrim();
}

String.prototype.isRepeatedCharacterOnly = function(){
	
	if(this.length==0)
		return;
	if(this.length ==1) 
		return false;

	var character_array = this.split('');	
	character_array.sort(a-b);

	if(character_array[0]===character_array[character_array.length])
		return true;

	return false;
}

String.prototype.Left = function(n){

	if(n<=0)
		return '';
	if(n==1&&n>=this.length)
		return this;

	return this.substring(0,n);
}

String.prototype.Right = function(n){
    
	var string_length = this.length;

	if(n<=0)
		return '';
   	if(n==1&&n>=string_length)
	    return this;
  
       return this.substring(string_length,string_length-n);
}

String.prototype.Capitalise = function(all){
	var str = '';
	var arr = [];
	
	if(arguments[0]==true)
        {
		    arr  = this.split(' ');
	
			for(var i=0;i<=arr.length-1;i++)
				str = str + arr[i].substring(0,1).toUpperCase() + arr[i].substring(1,arr[i].length) + ' '; 
		}
	else
		{
			str = this.substring(0,1).toUpperCase() + this.substring(1,this.length); 
		}
	return str;
}

String.prototype.containsDigit = function(){
		return /\d/.test(this);
}

String.prototype.isLowerCase = function(){
	/*var characterCode = this.charCodeAt(0);
	return (characterCode>=97&&characterCode<=122)?true:false;*/
	var characterReg = "[a-z]";
    var regex        = new RegExp(characterReg);
	return regex.test(this);
}

String.prototype.isUpperCase = function(){
	/*var characterCode = this.charCodeAt(0);
	return (characterCode>=65&&characterCode<=90)?true:false;*/
	var characterReg = "[A-Z]";
    var regex        = new RegExp(characterReg);
	return regex.test(this);
}

String.prototype.isSymbol = function(){
    /*var characterReg = "[^A-Z]";
    var regex        = new RegExp(characterReg);
	return regex.test(this);*/
	var characterCode = this.charCodeAt(0);
	return !(characterCode>=65&&characterCode<=90)&&!(characterCode>=97&&characterCode<=122)&&!(characterCode>=48&&characterCode<=57)&&!(characterCode>=0&&characterCode<=32)&&(characterCode!=39)&&(characterCode!=127)&&(characterCode!=34)?true:false;
}

String.prototype.is_CSA_Password_Valid_In_Format = function(){

    var symbolCharacterFound    = false;
    var lowerCaseCharacterFound = false;
    var digitCharacterFound     = false;
    var password_length         = this.length;
    
    for(var character_index=0;character_index<=password_length-1;character_index++)
    {
        if(!symbolCharacterFound)
            if(this.charAt(character_index).isSymbol())
                symbolCharacterFound = true;
                
        if(!lowerCaseCharacterFound)    
            if(this.charAt(character_index).isLowerCase())
                lowerCaseCharacterFound = true;
                
        if(!digitCharacterFound)
            if(this.containsDigit())
             digitCharacterFound = true;
    } 
    
    return (password_length>=9 && symbolCharacterFound && lowerCaseCharacterFound && digitCharacterFound);
}

