From a20a6377277a985fa596b0ea460d91b97f79b4a5 Mon Sep 17 00:00:00 2001 From: friendica Date: Fri, 13 Jul 2012 07:09:29 -0700 Subject: merge upstream, slider work, refactor ping module, language selection work --- library/jslider/js/tmpl.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 library/jslider/js/tmpl.js (limited to 'library/jslider/js/tmpl.js') diff --git a/library/jslider/js/tmpl.js b/library/jslider/js/tmpl.js new file mode 100644 index 000000000..36eadf28a --- /dev/null +++ b/library/jslider/js/tmpl.js @@ -0,0 +1,35 @@ +// Simple JavaScript Templating +// John Resig - http://ejohn.org/ - MIT Licensed +(function(){ + var cache = {}; + + this.tmpl = function tmpl(str, data){ + // Figure out if we're getting a template, or if we need to + // load the template - and be sure to cache the result. + var fn = !/\W/.test(str) ? + cache[str] = cache[str] || + tmpl(document.getElementById(str).innerHTML) : + + // Generate a reusable function that will serve as a template + // generator (and which will be cached). + new Function("obj", + "var p=[],print=function(){p.push.apply(p,arguments);};" + + + // Introduce the data as local variables using with(){} + "with(obj){p.push('" + + + // Convert the template into pure JavaScript + str + .replace(/[\r\t\n]/g, " ") + .split("<%").join("\t") + .replace(/((^|%>)[^\t]*)'/g, "$1\r") + .replace(/\t=(.*?)%>/g, "',$1,'") + .split("\t").join("');") + .split("%>").join("p.push('") + .split("\r").join("\\'") + + "');}return p.join('');"); + + // Provide some basic currying to the user + return data ? fn( data ) : fn; + }; +})(); \ No newline at end of file -- cgit v1.2.3