var d = { DEBUG: true, act: function (s) { // $('#msg').append(''+s+'
') // d.scrollToBottom("#msg") if (d.DEBUG) console.log(s) return false }, joy: function (s) { // $('#msg').append(''+s+'
') // d.scrollToBottom("#msg") if (d.DEBUG) console.log(s) return false }, warn: function (s) { // $('#msg').append(s+'
') // d.scrollToBottom("#msg") if (d.DEBUG) console.log(s) return false }, error: function (s) { // $('#msg').append('ERROR: '+s+'
') // d.scrollToBottom("#msg") console.log(s) return false }, noop: function () {}, scrollToTop: function (elem) { $(elem).scrollTop( 0 ) }, scrollToBottom: function (elem) { try { $(elem).scrollTop( $(elem)[0].scrollHeight ) } catch (err) { } }, pageUp: function (div) { var st = $(div).scrollTop() var h = $(window).height() d.warn("PAGEUP: "+st+" "+h) $(div).scrollTop( st - (2/3) * h ) var st = $(div).scrollTop() d.warn("ST NOW: "+st+" "+h) }, pageDown: function (div) { var st = $(div).scrollTop() var h = $(window).height() $(div).scrollTop( st + (2/3) * h ) }, choice: function (list) { return list[Math.floor (Math.random () * list.length)] }, trim: function (s) { if (s) return s.replace(/^\s+|\s+$/g,"") else return "" }, sanitizeWithNewlines: function (s) { if (s) return d.trim( s ).replace(//g,">").replace(/\"/g,""").replace(/\0/g,"") return "" }, sanitize: function (s) { if (s) return d.trim( s ).replace(//g,">").replace(/\"/g,""").replace(/\n/g,"").replace(/\r/g,"").replace(/\0/g,"") return "" }, linkify: function (s) { var words = s.split(" ") var checked = [] for (i in words) { var word = words[i] if (words[i].indexOf("http") === 0) { var poffset = word.indexOf('//') var linktext = word.substr(poffset+2, word.indexOf('/', poffset+2)) checked.push(''+linktext+'') } else checked.push(word) } return checked.join(" ") }, enableStylesheet: function (style) { $("link[@rel*=style][title]").each(function (i) { if (this.getAttribute('title') == style) this.disabled = false }) }, disableStylesheet: function (style) { $("link[@rel*=style][title]").each(function (i) { if (this.getAttribute('title') == style) this.disabled = true }) }, buildLookup: function (list) { var lookup = {} for (var i = 0; i < list.length; i++) lookup[list[i]] = true return lookup } }