String.prototype.s_trimLeft = s_trimLeft;
String.prototype.s_trimRight = s_trimRight;
String.prototype.s_trim = s_trim;
String.prototype.s_trimAll = s_trimAll;
String.prototype.escapeXML = escapeXML;
String.prototype.quoteSingle = quoteSingle;
String.prototype.quoteDouble = quoteDouble;
String.prototype.quote = quote;
String.prototype.truncate = truncate;
String.prototype.remove = remove;

String.prototype.isEmpty = isEmpty;
String.prototype.isDigit = isDigit;
String.prototype.isInteger = isInteger;
String.prototype.isIntegerCount = isIntegerCount;
String.prototype.isIntegerInRange = isIntegerInRange;
String.prototype.digitsOnly = digitsOnly;
String.prototype.isEmail = isEmail;

function s_trimLeft()
{
	s = this;
	while(s.substring(0,1) == ' ') 
	        s = s.substring(1, s.length);
	return s;
}

function s_trimRight()
{
	s = this;
	while(s.substring(s.length - 1, s.length) == ' ')
        s = s.substring(0, s.length-1);
	return s;
}

function s_trim()
{
	return this.s_trimLeft().s_trimRight();
}

function s_trimAll()
{
	return this.replace(/\s+/g, " ").s_trim();
}

function escapeXML()
{
	return this.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
}

function quoteSingle()
{
	return this.replace(/'/g, "&#039;");
}

function quoteDouble()
{
	return this.replace(/"/g, " &quot;");
}

function quote()
{
	return this.quoteSingle().quoteDouble();
}

function truncate(l)
{
	l = l ? l : 12;
	return (this.length > l ? this.substr(0, l) + '...' : this);
}


function isEmpty() { 
	return ( (this == null) || (this.length == 0) ) 
}

function isDigit() { 
	return ( (this >= "0") && (this <= "9") )
}

function isInteger() { 
	var i;
	var s = this;
	
	if ( s.isEmpty() ) {
		return false;
	}

    	for(i=0;i<s.length;i++) {
		if ( !(s.charAt(i)).isDigit() ) {
			return false;
		}
	}
    return true;
}

function isIntegerCount(a,b) { 
	var i, k=0;
	var s = this;
	
	if ( s.isEmpty() ) {
		return false;
	}

    	for(i=0;i<s.length;i++) {
		if ( !(s.charAt(i)).isDigit() ) {
			
			if ( (s.charAt(i)!='-') && (s.charAt(i)!='+') && (s.charAt(i)!=' ') )
				return false;
		}
		
		k=k+1;
	}
	
	if ((k>a) && (k<b))
		return true;
	else return false;
}

function isIntegerInRange(a, b) {
	var s = this;

	if ( !s.isInteger() ) {
		return false;
	}
	var num = parseInt(s,10);
	return ( (num >= a) && (num <= b) );
}

function digitsOnly()
{
	var sSub;
	var sOut = "";
	for ( j=0;j<this.length;j++ ) {
		sSub = this.substring(j,j+1);
		if ( sSub.isDigit() ) sOut += sSub;
	}
	return sOut;	
}

function remove(sRemove)
{
	var sOut = this;
	if (this.indexOf(sRemove) != -1) {
		sOut = this.substring(0, this.indexOf(sRemove)) + this.substring(this.indexOf(sRemove) + sRemove.length, this.length);
	}	
	return sOut;	
}

function isEmail()
{
 	if (this.isEmpty()) return false;
	str = this.s_trim();	
	re = /(^[A-Za-z0-9_]{1,})((([\.\-]{0,1})([A-Za-z0-9_]{1,})){0,1})([A-Za-z0-9_]*)@((([A-Za-z0-9_-]{2,})\.){1,3})(([A-Za-z]{2,5})$)/;
	return re.test(str);
}


