/**
 * String library
 * 
 * extends String object with:
 *  - String.ltrim()
 *  - String.rtrim()
 *  - String.trim()
 *  - String.getSlug() 
 */

/**
 * String.ltrim()
 */
if (!String.prototype.ltrim)
{
	function string_ltrim()
	{
		var s=this;
		s = this.replace(/^\s*/, "");
		return s;
	}
	String.prototype.ltrim = string_ltrim;
}

/**
 * String.rtrim()
 */
if (!String.prototype.rtrim)
{
	function string_rtrim(text)
	{
		var s=this;
		s = this.replace(/\s*$/, "");
		return s;
	}
	String.prototype.rtrim = string_rtrim;
}

/**
 * String.trim()
 */
if (!String.prototype.trim)
{
	function string_trim(text)
	{
		var s=this;
		s = this.replace(/^\s*/, "");
		s = this.replace(/\s*$/, "");
		return s;
	}
	String.prototype.trim = string_trim;
}

/**
 * String.toSQLString()
 */
if (!String.prototype.toSQLString)
{
	function string_toSQLString()
	{
		return this.replace(/'/g, "''");
	}
	String.prototype.toSQLString = string_toSQLString;
}

/**
 * String.truncate(n)
 */
if (!String.prototype.truncate)
{
	function string_truncate(maxLength)
	{
		return (isNaN(maxLength)) ? this : this.substring(0, maxLength);
	}
	String.prototype.truncate = string_truncate;
}


function getSlug(str)
{
	str = str.toLowerCase();
	str = str.replace(/[^a-z0-9]+/g, '-');
	str = str.replace(/^-|-$/g, '');
	return str;
}