var colors=["green","blue"];var colorsStr=colors.join(" ");var unreadHash=new Hash();var originalTitle="";Event.observe(window,"load",function(){initUnreadHash();initSortables();initAllOptions();initFrontpageElements();initBalloon();initRSSReaders();initRandomQuote();applyTooltips()});function initSortables(){Sortable.create("column-1",{dropOnEmpty:true,containment:["column-1","column-2","column-3"],constraint:false,tag:"div",only:"block",handle:"handle",onUpdate:saveSettings});Sortable.create("column-2",{dropOnEmpty:true,containment:["column-1","column-2","column-3"],constraint:false,tag:"div",only:"block",handle:"handle",onUpdate:saveSettings});Sortable.create("column-3",{dropOnEmpty:true,containment:["column-1","column-2","column-3"],constraint:false,tag:"div",only:"block",handle:"handle",onUpdate:saveSettings})}function initFrontpageElements(){$$("#add-frontpage-content .addbutton").each(function(A){A.observe("click",function(){removeIntroBalloon();A.hide();$("frontpage-elements").show()})});$$("#add-frontpage-content .closebutton").each(function(A){A.observe("click",function(){$$("#add-frontpage-content .addbutton").each(function(B){B.show()});$("frontpage-elements").hide()})});if($("addNewFeed")!=null){$("addNewFeed").observe("click",function(A){var B=generateBlockId();element=Builder.node("div",{id:B,className:"block blue feed",type:"feed",url:"",amount:""},[Builder.node("div",{className:"btopen"}),Builder.node("div",{className:"btclose"}),Builder.node("h1",{className:"handle"},[Builder.node("span",{className:"unread"}),Builder.node("span",{className:"title"},"Nieuwe Feed")]),Builder.node("div",{className:"fpoptions feedoptions",style:"display: none;"}),Builder.node("ul")]);$("column-1").insertBefore(element,$("column-1").firstChild);Sortable.create("column-1",{dropOnEmpty:true,containment:["column-1","column-2","column-3"],constraint:false,tag:"div",only:"block",handle:"handle",onUpdate:saveSettings});initOptions(B);$(B).select(".fpoptions").first().toggle();$$("#add-frontpage-content .addbutton").each(function(C){C.show()});$("frontpage-elements").hide()});enableAddForumTracker();if($$(".forumtracker").length>0){disableAddForumTracker()}enableAddCalendar();if($$(".calendarblock").length>0){disableAddCalendar()}enableAddTeamspeak();if($$(".teamspeakblock").length>0){disableAddTeamspeak()}enableAddCafePoints();if($$(".cafepointsblock").length>0){disableAddCafePoints()}}}function initAllOptions(){$$(".block").each(function(A){initOptions(A.id)})}function initOptions(B){var E=$(B).readAttribute("type");var C=$(B).select(".fpoptions").first();$(B).select(".btclose").each(function(H){H.observe("click",function(){$(B).remove();saveSettings();if(E=="forumtracker"){enableAddForumTracker()}if(E=="calendar"){enableAddCalendar()}if(E=="teamspeak"){enableAddTeamspeak()}if(E=="cafepoints"){enableAddCafePoints()}})});$(B).select(".btopen").each(function(H){H.observe("click",function(){C.toggle()})});C.insert("<table><tbody><tr><td><label>Kleur:</label></td><td></td></tr></tbody></table>");var A=C.select("td:nth-child(2)").first();colors.each(function(H){A.insert('<div class="'+H+'"></div>');A.select("."+H).first().observe("click",function(I){colors.each(function(J){C.parentNode.removeClassName(J)});C.parentNode.addClassName(H);saveSettings()})});if(E=="feed"||false){var G='<tr><td><label>Url:</label></td><td><input type="text" name="rssUrl" value="" /><input class="button" type="button" name="rssUrlBtn" value="Opslaan"/></td></tr>';C.select("tbody").first().insert(G);$$("#"+B+" input[name=rssUrl]").first().value=$(B).readAttribute("url");$(B).select("input[name=rssUrlBtn]").first().observe("click",function(H){$(B).writeAttribute("url",$$("#"+B+" input[@name=rssUrl]").first().value);if(E=="feed"){callAjaxRSS(B)}saveSettings()})}if(E=="feed"||E=="forumtracker"||E=="calendar"){var F='<tr><td><label>Aantal:</label></td><td><select name="rssAmount">';for(i=1;i<=20;i++){F+="<option>"+i+"</option>"}F+="</select></td></tr>";C.select("tbody").first().insert(F);var D=$(B).readAttribute("amount");D=D==null?"7":D;$$("#"+B+" select[name=rssAmount]").first().select("option").each(function(H){if(H.value==D){H.selected=true}});$$("#"+B+" select[name=rssAmount]").first().observe("change",function(){$(B).writeAttribute("amount",this.options[this.selectedIndex].value);if(E=="feed"){callAjaxRSS(B)}if(E=="forumtracker"){callAjaxForumTracker(B)}if(E=="calendar"){callAjaxCalendar(B)}saveSettings()})}}function initRSSReaders(){$$(".feed").each(function(A){if(A.readAttribute("url")!=null){startAjaxRSS(A.readAttribute("id"))}});$$(".forumtracker").each(function(A){if(A.readAttribute("url")!=null){startAjaxForumTracker(A.readAttribute("id"))}});$$(".calendarblock").each(function(A){if(A.readAttribute("url")!=null){startAjaxCalendar(A.readAttribute("id"))}});$$(".teamspeakblock").each(function(A){if(A.readAttribute("url")!=null){startAjaxTeamspeak(A.readAttribute("id"))}});$$(".cafepointsblock").each(function(A){if(A.readAttribute("url")!=null){startAjaxCafePoints(A.readAttribute("id"))}})}function startAjaxRSS(A){new Ajax.PeriodicalUpdater($(A).select("ul").first(),"ajax/rss",{method:"post",parameters:{url:encodeURIComponent($(A).readAttribute("url")),max:$(A).readAttribute("amount"),title:encodeURIComponent($(A).select(".title").first().innerHTML)},insertion:function(B,C){B.update(C);updateRSSBlock(A)},frequency:60,decay:2})}function callAjaxRSS(A){var B="/ajax/rss";new Ajax.Request(B,{method:"post",parameters:{url:encodeURIComponent($(A).readAttribute("url")),max:$(A).readAttribute("amount"),title:encodeURIComponent($(A).select(".title").first().innerHTML)},onSuccess:function(C){updateRSSBlock(A)}})}function updateRSSBlock(A){$(A).select("h1").first().update($(A).select(".channeltitle").first().innerHTML);applyTooltip(A)}function startAjaxCalendar(A){var B=$(A).readAttribute("url")+$(A).readAttribute("amount");new Ajax.PeriodicalUpdater("dummy",B,{method:"get",frequency:60,decay:2,onSuccess:function(D){var C=D.responseText.evalJSON();updateCalendarBlock(A,C)}})}function callAjaxCalendar(A){var B=$(A).readAttribute("url")+$(A).readAttribute("amount");new Ajax.Request(B,{onSuccess:function(D){var C=D.responseText.evalJSON();updateCalendarBlock(A,C)}})}function updateCalendarBlock(B,C){$(B).select("ul").first().remove();$(B).insert("<ul/>");var A=$(B).readAttribute("amount");A=A==null?7:A;C.each(function(E,D){if(D>=A){return E}$(B).select("ul").first().insert("<li onclick=\"window.location.href='"+E.link+'\'"><span class="date">'+E.date+'</span><a href="'+E.link+'">'+E.title+'</a><span class="time">'+E.time+"</span></li>")});$(B).select("li:nth-child(odd)").each(function(D){D.addClassName("even")});$(B).select("li:nth-child(even)").each(function(D){D.addClassName("odd")})}function startAjaxTeamspeak(A){new Ajax.PeriodicalUpdater($(A).select("ul").first(),"ajax/teamspeak",{method:"post",insertion:function(B,C){B.update(C)},frequency:60,decay:2})}function callAjaxTeamspeak(A){var B="/ajax/teamspeak";new Ajax.Request(B,{method:"post",onSuccess:function(C){updateTeamspeakBlock(A)}})}function updateTeamspeakBlock(A){$(A).select("h1").first().update($(A).select(".channeltitle").first().innerHTML)}function startAjaxCafePoints(A){new Ajax.PeriodicalUpdater($(A).select("ul").first(),"ajax/muntjes",{method:"post",insertion:function(B,C){B.update(C)},frequency:60,decay:2})}function callAjaxCafePoints(A){var B="/ajax/muntjes";new Ajax.Request(B,{method:"post",onSuccess:function(C){updateCafePointsBlock(A)}})}function updateCafePointsBlock(A){}function startAjaxForumTracker(A){var B=$(A).readAttribute("url")+$(A).readAttribute("amount");new Ajax.PeriodicalUpdater("dummy",B,{method:"get",frequency:60,decay:2,onSuccess:function(D){var C=D.responseText.evalJSON();updateForumTrackerBlock(A,C)}})}function callAjaxForumTracker(A){var B=$(A).readAttribute("url")+$(A).readAttribute("amount");new Ajax.Request(B,{onSuccess:function(D){var C=D.responseText.evalJSON();updateForumTrackerBlock(A,C)}})}function updateForumTrackerBlock(B,D){$(B).select("ul").first().remove();$(B).insert("<ul/>");var A=$(B).readAttribute("amount");A=A==null?7:A;var C=0;D.headlines.each(function(F,E){if(E>=A){return F}if(F.read=="unread"){C++}$(B).select("ul").first().insert('<li class="'+F.read+'"><p><a href="'+F.link+'">'+F.subject+'</a></p><p class="sub"><b>'+F.poster_name+"</b> - "+F.date+"</p></li>")});$(B).select("li:nth-child(odd)").each(function(E){E.addClassName("even")});$(B).select("li:nth-child(even)").each(function(E){E.addClassName("odd")});updateUnread(B,C)}function updateUnread(A,B){unreadHash.set(A,B);$(A).select("h1 span.unread").each(function(C){if(B>0){C.update("("+B+")")}else{C.update("")}});updatePageTitle()}function initUnreadHash(){originalTitle=document.title;$$(".block").each(function(A){updateUnread(A.id,A.select("li.unread").size())});updatePageTitle()}function updatePageTitle(){var A=0;unreadHash.values().each(function(B){A+=B});if(A>0){A=" ("+A+")"}else{A=""}document.title=originalTitle+A}function saveSettings(){var A='{"frontpage":[';$$(".column").each(function(D,B){var C=D.id;A+="[";$(C).select(".block").each(function(L,I){var E=L.id;var K=L.readAttribute("type");var J=L.readAttribute("url");var F=L.readAttribute("amount");var M=L.select("h1").first().innerHTML;if(L.select("h1 span").size()>0){M=L.select("h1 span").last().innerHTML}var G=L.readAttribute("class").split(" ");var H=colors[0];G.each(function(N){if(colors.inArray(N)){H=N}});A+="{";A+='"type": "'+K+'", ';A+='"feedurl": "'+J+'", ';A+='"amount": "'+F+'", ';A+='"color": "'+H+'", ';A+='"title": "'+M+'"';A+="}";if(I<$(C).select(".block").length-1){A+=","}});A+="]";if(B<$$(".column").length-1){A+=","}});A+="]}";new Ajax.Request("/ajax/savefrontpage",{method:"post",parameters:{settings:A}})}function addCalendarBlock(){var B=generateBlockId();var A='<div id="'+B+'" class="block green calendarblock" url="/ajax/calendar/" type="calendar" amount="5"><div class="btopen"></div><div class="btclose"></div><h1 class="handle"><span class="unread"/><span class="title">Kalender</span></h1><div class="fpoptions kalenderoptions" style="display: none;"></div><ul></ul></div>';Element.insert($("column-1"),{top:A});Sortable.create("column-1",{dropOnEmpty:true,containment:["column-1","column-2","column-3"],constraint:false,tag:"div",only:"block",handle:"handle",onUpdate:saveSettings});initOptions(B);callAjaxCalendar(B);saveSettings();disableAddCalendar()}function addForumTrackerBlock(){var B=generateBlockId();var A='<div id="'+B+'" class="block green forumtracker" url="/ajax/forumheadlines/" type="forumtracker" amount="5"><div class="btopen"></div><div class="btclose"></div><h1 class="handle"><span class="unread"/><span class="title">Vers van het forum</span></h1><div class="fpoptions forumtrackeroptions" style="display: none;"></div><ul></ul></div>';Element.insert($("column-1"),{top:A});Sortable.create("column-1",{dropOnEmpty:true,containment:["column-1","column-2","column-3"],constraint:false,tag:"div",only:"block",handle:"handle",onUpdate:saveSettings});initOptions(B);callAjaxForumTracker(B);saveSettings();disableAddForumTracker()}function addTeamspeakBlock(){var B=generateBlockId();var A='<div id="'+B+'" class="block green teamspeakblock" url="/ajax/teamspeak/" type="teamspeak"><div class="btopen"></div><div class="btclose"></div><h1 class="handle"><span class="unread"/><span class="title">Online op TeamSpeak</span></h1><div class="fpoptions teamspeakoptions" style="display: none;"></div><ul></ul></div>';Element.insert($("column-1"),{top:A});Sortable.create("column-1",{dropOnEmpty:true,containment:["column-1","column-2","column-3"],constraint:false,tag:"div",only:"block",handle:"handle",onUpdate:saveSettings});initOptions(B);startAjaxTeamspeak(B);saveSettings();disableAddTeamspeak()}function addCafePointsBlock(){var B=generateBlockId();var A='<div id="'+B+'" class="block green cafepointsblock" url="/ajax/muntjes/" type="cafepoints"><div class="btopen"></div><div class="btclose"></div><h1 class="handle"><span class="unread"/><span class="title">Muntjes</span></h1><div class="fpoptions cafepointsoptions" style="display: none;"></div><ul></ul></div>';Element.insert($("column-1"),{top:A});Sortable.create("column-1",{dropOnEmpty:true,containment:["column-1","column-2","column-3"],constraint:false,tag:"div",only:"block",handle:"handle",onUpdate:saveSettings});initOptions(B);startAjaxCafePoints(B);saveSettings();disableAddCafePoints()}function enableAddForumTracker(){$("addForumTracker").observe("click",addForumTrackerBlock);$("addForumTracker").removeClassName("disabled")}function disableAddForumTracker(){$("addForumTracker").stopObserving("click",addForumTrackerBlock);$("addForumTracker").addClassName("disabled")}function enableAddCalendar(){$("addCalendar").observe("click",addCalendarBlock);$("addCalendar").removeClassName("disabled")}function disableAddCalendar(){$("addCalendar").stopObserving("click",addCalendarBlock);$("addCalendar").addClassName("disabled")}function enableAddTeamspeak(){$("addTeamspeak").observe("click",addTeamspeakBlock);$("addTeamspeak").removeClassName("disabled")}function disableAddTeamspeak(){$("addTeamspeak").stopObserving("click",addTeamspeakBlock);$("addTeamspeak").addClassName("disabled")}function enableAddCafePoints(){$("addCafePoints").observe("click",addCafePointsBlock);$("addCafePoints").removeClassName("disabled")}function disableAddCafePoints(){$("addCafePoints").stopObserving("click",addCafePointsBlock);$("addCafePoints").addClassName("disabled")}function applyTooltips(){$$(".block").each(function(A){applyTooltip(A.readAttribute("id"))})}function applyTooltip(A){if(A==null){return false}}function initBalloon(){if($("add-frontpage-content-intro")==null){return false}$("add-frontpage-content-intro").observe("click",removeIntroBalloon)}function removeIntroBalloon(){if($("add-frontpage-content-intro")==null){return false}document.cookie=escape("no_instructions")+"="+escape("true")+"";$("add-frontpage-content-intro").remove()}function initRandomQuote(){new Ajax.PeriodicalUpdater("random-quote","ajax/quote",{method:"get",frequency:60,})}function generateBlockId(){var A=1;$$(".block").each(function(B){A=A<B.readAttribute("id").substr(5)?B.readAttribute("id").substr(5):A});A++;return"block"+A}Array.prototype.inArray=function(B){var A;for(A=0;A<this.length;A++){if(this[A]==B){return true}}return false};