
$E = document.getElement.bind(document);
$ES = document.getElements.bind(document);

String.extend({
	
	startsWith: function(str) {
		return this.substr(0, str.length) == str ;
	},
	
	endsWith: function(str) {
		return this.substr(this.length - str.length, this.length) == str ;
	},
	
	repeat: function(num) {
		var h = "" ;
		for (var i = 0 ; i < num ; i++) {
			h += this ;
		}
		return h ;
	},
	
	supplant: function(o) {
		return this.replace(/{([^{}]*)}/g, function (a, b) {
			var r = o[b];
			return typeof r === 'string' || typeof r === 'number' ? r : a;
		});
	},
	
	stripTags: function(s){
		return this.replace(/<\/?[^>]+>/gi, (s?s:'')) ;
	},
	
	s2u: function(bln) {
		var uniString = "", hexVal, uniChar ;
		for(var i = 0; i < this.length; ++i) {
			//Convert char to hex
			hexVal = Number(this.charCodeAt(i)).toString(16) ;
			//Convert to unicode by making sure hex is 4 chars long, padding with 0's if less
			uniChar = "\\u" + ("000" + hexVal).match(/.{4}$/)[0] ;
			uniString += uniChar ;
		}
		return bln ? uniString : eval('"' + uniString + '"') ;
	}
	
});

