﻿// simple token replace 
// $.tokenReplace('<a href="${href}">${link}</a>', { href:'#', link:'test' }) returns '<a href="#">test</a>'

jQuery.token = function(src, obj) {
    // regex replace tokens
    return src.replace(/\$\{([\w\.\,]*)\}/gm, function (s, token) {
        var p = token.split(',');
        // parse token name
        var t = p[0].split('.');
        // get value
        var v = obj; //[t.shift()];
        $.each(t, function() {
            v = v[this];
        });
        if(v != null && p.length > 1) {
            if(!isNaN(parseInt(v, 10))) {
                v = 'val_' + v;
            }
            v = eval(p[1] + '[v]');
        }
        v = (v == null) ? '' : v;
        // return encoded value
        return $('<div/>').text(v).html(); 
    });
};
