var generic = generic || {};
generic.rb = generic.rb || {};
var rb = rb || {};

/**
	* This method provides access to resource bundle values that have been 
	* written to the HTML in JSON format. The file that outputs these values
	* must be included in the .html as a script tag with the desired RB name
	* as a query string paramter.
	* It returns an object that exposes one method: get()
	* @example
	* // var myBundle = generic.rb("account");
	* // myBundle.get("err_please_sign_in");
	* @example
    * <script src="/js/shared/v2/internal/resource.tmpl?rb=account"></script>
	* @param {String} rbGroupName name of resource bundle needed
	* @methodOf generic
*/
generic.rb = function(rbGroupName) {
	var findResourceBundle = function(groupName) {
		if (groupName && rb) {
			var rbName = groupName;
			var rbHash = $H(rb[rbName]);
			if (rbHash) {
				return rbHash;
			} else {
				return $H({});
			}
		} else {
			return $H({});
		}
	};
	
	var resourceBundle = findResourceBundle(rbGroupName);
	
	var returnObj = {
    	/**
        * This method will return the value for the requested Resource Bundle key.
        * If the key is not found, the key name will be returned.
    	* @example
    	* // var myBundle = generic.rb("account");
    	* // myBundle.get("err_please_sign_in");
    	* @param {String} keyName key of desired Resource Bundle value
    	*/
		get: function(keyName) {
		    if ( ! Object.isString(keyName) ) {
		        return null;
		    }
			var val = resourceBundle.get(keyName);
			if (val) {
				return val;
			} else {
				return keyName;
			}
		}
	};
	
	return returnObj;
	
};
