diff options
Diffstat (limited to 'js-maybe-remove/roomlist.js')
| -rwxr-xr-x | js-maybe-remove/roomlist.js | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/js-maybe-remove/roomlist.js b/js-maybe-remove/roomlist.js new file mode 100755 index 0000000..1b6c6d8 --- /dev/null +++ b/js-maybe-remove/roomlist.js @@ -0,0 +1,166 @@ +var Keyboard = + { + enter: false, + textareaMap: function (event) + { + var kc = event.keyCode + if (kc === 13) + { + if (Keyboard.enter) + Keyboard.enter() + return false + } + return true + }, + } +var Poll = + { + room: "main", + delay: 5000, + init: function () + { + if (document.cookie) + { + var cookies = document.cookie.split(";") + for (i in cookies) + { + var cookie = cookies[i].split("=") + if (cookie[0].indexOf("room") !== -1) + { + if (cookie[1] !== 'false' && cookie[1] !== 'undefined') + { + Poll.room = cookie[1] + break + } + } + } + } + Poll.poll() + }, + poll: function () + { + $.post(API.URL.room.poll, + { + room: Poll.room, + session: Auth.session, + last: 1, + }).success(Poll.pollCallback).error(Poll.pollErrorCallback) + }, + pollErrorCallback: function () + { + Poll.timer = setTimeout(Poll.poll, Poll.delay) + }, + pollCallback: function (raw) + { + Poll.timer = setTimeout(Poll.poll, Poll.delay) + }, + } +var Roomlist = + { + minwidth: 200, + width: 200, + list: function () + { + var roomz = {} + var keys = [] + var sorted = [] + var presortOrder = + [ + "main", + "nightschool", + "waterfall", + "feederbleeder", + "diornights", + "classical", + "jonomilo", + "dump", + "tang", + "avatar", + "glitter", + "yhvh", + "los7angele55", + //"sjd", + "frederick", + "icons", + // "gorgeoustaps", "psychichandbook", + // "tense", + ] + var presortMap = {} + for (var i = 0; i < presortOrder.length; i++) + presortMap[presortOrder[i]] = true + //roomz['sjd'] = Roomlist.newRecord([0,"sjd",0,0,"http://scannerjammer.com/img/sjd.jpg"]) + for (var i = 0; i < ROOM_LIST.length; i++) + { + var row = ROOM_LIST[i] + if (row.length < 4) + continue + roomz[row[1]] = Roomlist.newRecord(row) + if (! (presortMap.hasOwnProperty(row[1]))) + keys.push(row[1]) + } + for (var i = 0; i < presortOrder.length; i++) + { + sorted.push(roomz[presortOrder[i]]) + } + for (i in keys.sort()) + { + // console.log(keys[i]) + sorted.push(roomz[keys[i]]) + } + $("#roomlist").html(sorted.join("")) + }, + newRecord: function (row) + { + var rotation = function(x) { + var pre = " -moz- -webkit- -o-".split(" "); + var r = ""; + var d = Math.floor(Math.random()*2 * x - x); + //console.log(d); + for (var i in pre) { + r += pre[i] + "transform:rotate(" + d + "deg);" + } + r += "\">"; + return r; + }; + //console.log(rotation); + var s = "" + //if (row[1] === "sjd") + // s += "<a href='http://lolz.biz/sjd/' class='roomdiv' style=\"width: "+Roomlist.width+"px;" + rotation(5); + if (row[1] === "main") + s += "<a href='/"+row[1]+"' class='roomdiv' style=\"width: "+Roomlist.width*2+"px;" + rotation(5); + else + s += "<a href='/"+row[1]+"' class='roomdiv' style=\"width: "+Roomlist.width+"px;" + rotation(5); + if (parseInt(row[3]) > 0) + s += "<span class='count'>" + row[3] + "</span>" + s += "<span class='roomname'>" + row[1] + "</span>" + s += "<div class=\"roombg\" style=\"background-image: url('"+row[4]+"'); " + rotation(5) + "</div>" + s += "</a>" + return s + }, + init: function () + { + if (Auth.loaded) + Auth.unload() + Poll.init() + }, + } +var Main = + { + resize: function () + { + var w = $(window).width() + var cols = 4 // Math.floor(w / Roomlist.minwidth) + Roomlist.width = Math.floor(w / cols) + }, + init: function () + { + $(window).resize(Main.resize) + Main.resize() + Roomlist.list() + Auth.success = Roomlist.init + if (! Auth.init()) + Auth.load() + }, + } +Main.init() + |
