var Template = (function  () {
    var self = this;
    self.vars = {};

    self.assign = function (name, value) {
        if (is_scalar(value)) {
            self.vars[name] = value;
        } else if (typeof value == 'object') {
            for (var i in value) {
                if (is_scalar(value[i])) {
                    self.vars[name + '.' + i] = value[i];
                }
            }
        } else {
            alert(typeof value + ' is not supported');
        }
    }

    self.transform = function (text) {
        for (var i in self.vars) {
            text = text.replace(new RegExp('\\{%' + preg_quote(i) + '\\}', 'g'), self.vars[i]);
        }
        return text;
    }

    return this;
})();
