$(function() { codeView.init("#codeView"); externalLinks(); }); function externalLinks() { $("a.external").click(function(e) { window.open(e.currentTarget.href); return(false); }); } var codeView = { obj: null, cur: 0, code: null, length: 0, timer: null, paused: null, animate: function() { if (!codeView.paused) { codeView.cur ++; if (codeView.cur > codeView.length) { window.clearInterval(codeView.timer); codeView.obj.fadeTo(1000, 0, function() { codeView.obj.empty(); codeView.cur = 0; codeView.obj.fadeTo(0, 1); codeView.timer = window.setInterval("codeView.animate()", 100); }); } else { var code = codeView.code.slice(Math.max(0, codeView.cur - 1), codeView.cur); code = code.replace(/\t/g, "  ").replace(/>/g, ">").replace(/"); codeView.obj.append(code); } } }, init: function(arg) { codeView.code = $("html").html().replace(/[\r\t]{2}/g, "\t"); codeView.length = codeView.code.length; codeView.obj = $(arg); codeView.timer = window.setInterval("codeView.animate()", 100); $(document).scroll(codeView.pause); }, pause: function() { codeView.paused = true; window.setTimeout("codeView.play()", 500); }, play: function() { codeView.paused = false; } };