﻿function showFeedback(title, message, buttonList){
    var feedback = $('#feedback');
    if (feedback.length == 0)
    {
        feedback = $('<div id="feedback"></div>');
        feedback.appendTo('form');
    }
    
    $('#feedback').html(message);
    $('#feedback').dialog({ width: 400, closeOnEscape: false, modal: true, title: title, buttons: buttonList});
}

var _tmplCache = {}

parseTemplate = function(str, data) {
    var err = "";
    try {
        var func = _tmplCache[str];
        if (!func) {
            var strFunc =
            "var p=[],print=function(){p.push.apply(p,arguments);};" +
                        "with(obj){p.push('" +

            str.replace(/[\r\t\n]/g, " ")
               .replace(/'(?=[^#]*#>)/g, "\t")
               .split("'").join("\\'")
               .split("\t").join("'")
               .replace(/<#=(.+?)#>/g, "',$1,'")
               .split("<#").join("');")
               .split("#>").join("p.push('")
               + "');}return p.join('');";

            func = new Function("obj", strFunc);
            _tmplCache[str] = func;
        }
        return func(data);
    } catch (e) { alert(e.message); }
    return "< # ERROR: " + e.message + " # >";
}