window.expanded_icon = '▾', window.collapsed_icon = '▸'; var ajax_req; window.ajax = function(url, func, async, body) { if(!async && ajax_req) ajax_req.abort(); var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); if(!async) ajax_req = req; req.onreadystatechange = function() { if(!req || req.readyState != 4 || !req.responseText) return; if(req.status != 200) return alert('Whoops, error! :('); func(req); }; if(!body) url += (url.indexOf('?')>=0 ? ';' : '?')+(Math.floor(Math.random()*999)+1); req.open(body ? 'POST' : 'GET', url, true); req.send(body); return req; }; window.setCookie = function(n,v) { var date = new Date(); date.setTime(date.getTime()+(365*24*60*60*1000)); document.cookie = VARS.cookie_prefix+n+'='+v+'; expires='+date.toGMTString()+'; path=/'; }; window.getCookie = function(n) { var l = document.cookie.split(';'); n = VARS.cookie_prefix+n; for(var i=0; i createTextNode * tag('tagname', tag(), 'string', ..) -> createElement(), appendChild(), .. * tag('tagname', { class: 'meh', title: 'Title' }) -> createElement(), setAttribute().. * tag('tagname', { }, ) -> create, setattr, append */ window.tag = function() { if(arguments.length == 1) return typeof arguments[0] != 'object' ? document.createTextNode(arguments[0]) : arguments[0]; var el = typeof document.createElementNS != 'undefined' ? document.createElementNS('http://www.w3.org/1999/xhtml', arguments[0]) : document.createElement(arguments[0]); for(var i=1; i l ? v.substr(0, l-3)+'...' : v; }; window.fmtspoil = function(s) { return ['neutral', 'no spoiler', 'minor spoiler', 'major spoiler'][s+1]; } window.jsonParse = function(s) { return s ? JSON.parse(s) : ''; };