String.prototype.merge = function (hash) {
	var str = this;
	if (hash.length==undefined) // single hash
		for (var i in hash) {
			var regexp = new RegExp('\\$'+i,'g');
			str = str.replace(regexp,hash[i]);
		}
	else
		for (var i=0;i<hash.length;i++) // array of hashes
			for (var j in hash[i]) {
				//var regexp = new RegExp('\\['+j+'\\]','g');
				var regexp = new RegExp('\\$'+j,'g');
				str = str.replace(regexp,hash[i][j]);
			}
	return str;
};		
