String.prototype.startsWith = function( STRING, CASE_SENSITIVE ) {
	if ( CASE_SENSITIVE ) {
		return ( this.search( new RegExp( STRING, "" ) ) == 0 );
	} else {
		return ( this.search( new RegExp( STRING, "i" ) ) == 0 );
	}
}

//kwasiConvertUnicodeToBaseLatin
/*String.prototype.kwasiCUTBL = function() {
	var outputString = new String();
	var charCode;
	var strippedCharacters = "                                                                a                                                                                                !cL Y|  Ca  -R-  23   .,1o    ?AAAAAA CEEEEIIIIDNOOOOOxOUUUUY  aaaaaa ceeeeiiiidnooooo/ouuuuy yAaAaAaCcCcCcCcDdDdEeEeEeEeEeGgGgGgGgHhHhIiIiIiIiIi  JjKkkLlLlLlLlLlNnNnNnnNnOoOoOo  RrRrRrSsSsSsSsTtTtTtUuUuUuUuUuUuWwYyYZzZzZzsbBBbBbCCcDDDddEeEFfGG IIKkllmNnOOo  PpRSsSstTtTUuUVYyZzZZzz255  | |!Ǳǲǳ      AaIiOoUuUuUuUuUueAaAaÆæGgGgKkOoOoZzj   Gg  NnAaÆæOoAaAaEeEeIiIiOoOoRrRrUuUuSsTtZzHhNd  ZzAaEeOoOoOoOoYylntj  ACcLTsz  BUVEeJjQqRrYy";
	
	for ( var i = 0; i < this.length; i++ ) {
		charCode = this.charCodeAt( i );
		
		if ( ( charCode < 592 ) && ( strippedCharacters.charAt( charCode ) != " " ) ) {
			outputString += strippedCharacters.charAt( charCode );
		} else {
			outputString += this.charAt( i );
		}
	}
	
	return outputString;
}*/

String.prototype.strippedCharacters = "                                                                a                                                                                                !cL Y|  Ca  -R-  23   .,1o    ?AAAAAA CEEEEIIIIDNOOOOOxOUUUUY  aaaaaa ceeeeiiiidnooooo/ouuuuy yAaAaAaCcCcCcCcDdDdEeEeEeEeEeGgGgGgGgHhHhIiIiIiIiIi  JjKkkLlLlLlLlLlNnNnNnnNnOoOoOo  RrRrRrSsSsSsSsTtTtTtUuUuUuUuUuUuWwYyYZzZzZzsbBBbBbCCcDDDddEeEFfGG IIKkllmNnOOo  PpRSsSstTtTUuUVYyZzZZzz255  | |!Ǳǲǳ      AaIiOoUuUuUuUuUueAaAaÆæGgGgKkOoOoZzj   Gg  NnAaÆæOoAaAaEeEeIiIiOoOoRrRrUuUuSsTtZzHhNd  ZzAaEeOoOoOoOoYylntj  ACcLTsz  BUVEeJjQqRrYy".split( "" );

String.prototype.kwasiCUTBL = function() {
	var outputString = new String();
	var charCode;
	
	for ( var i = 0; i < this.length; i++ ) {
		charCode = this.charCodeAt( i );
		
		if ( ( charCode < 592 ) && ( String.prototype.strippedCharacters[ charCode ] != " " ) ) {
			outputString += String.prototype.strippedCharacters[ charCode ];
		} else {
			outputString += this.charAt( i );
		}
	}
	
	return outputString;
}

//kwasiStripNonLatinCharacters
String.prototype.kwasiSNLC = function() {
	//return this.replace( /[\x00-\x2F\x3A-\x40\x5B-\x60\x7B-\xA0]/g, " " ); //* makes
	//return this.replace( /[^0-9a-zA-Z§©«®±»¼½¾ÆßæĲĳŒœƕƢƣǁǄǅǆǇǈǉǊǋǌǢǣǱǲǳǶǼǽȢȣȸȹ]/g, " " );
	return this.replace( /[^0-9a-zA-ZÆßæĲĳŒœƕƢƣǁǇǈǉǊǋǌǱǲǳǶȢȣȸȹ]/g, " " );
	//return this.replace( /\W/g, " " );
}

//kwasiStripNonTextCharacters
String.prototype.kwasiSNTC = function() {
	return this.replace( /\W/g, " " );
}

/*
String.prototype.mkiiStrip = function() {
	var outputString = new String();
	var charCode;
	var strippedCharacters = "                                                                 ABCDEFGHIJKLMNOPQRSTUVWXYZ      abcdefghijklmnopqrstuvwxyz                                               a               o     AAAAAA CEEEEIIII NOOOOO  UUUUY ßaaaaaa ceeeeiiii nooooo  uuuuy yAaAaAaCcCcCcCcDd  EeEeEeEeEeGgGgGgGgHh  IiIiIiIiI IiJjKk LlLlLlLl  NnNnNn   OoOoOo  RrRrRrSsSsSsSsTtTt  UuUuUuUuUuUuWwYyYZzZzZzs                                Oo             Uu                   DDdLLlNNnAaIiOoUu                 GgKkOo    jDDdGg  Nn      AaAaEeEeIiIiOoOoRrRrUuUuSsTt  Hh      AaEe    Oo  Yy                                                                                                                            ";
	
	for ( var i = 0; i < this.length; i++ ) {
		charCode = this.charCodeAt( i );
		
		if ( charCode < 688 ) {
			outputString += strippedCharacters.charAt( charCode );
		}
	}

	return outputString;
}
*/

//strip leading and tailing whitespace
String.prototype.strip = function() {
	return this.replace(/^\s+/, "").replace(/\s+$/, "");
}

//replaces all multiple whitespaces with one whitespace
String.prototype.consolideWhiteSpace = function() {
	return this.replace( /\s+/g, " " );
}
