// ==UserScript==
// @name AUTO DRFE
// @namespace thesickthsense@gmail.com
// @description Makes dailyrotten threads auto-update... refresh is obselete.
// @include http://forums.dailyrotten.com/*
// @author TSS
// ==/UserScript==
var xmlhttp,buffer='',append=false,updateTimer=0,updateSecs=0,updateAdj=30,pulseMod=0,pulseByte=0;
function postClick(evt){if (evt.target.className!='mess') return;evt.target.style.backgroundColor="#FFFFFF";this.removeEventListener("click", function (event) postClick(event),false);}
function update(){if (updateSecs<1){update_check();updateSecs=updateAdj;append=true;}else{updateSecs--;}}
function update_check(){
var moded=xmlhttp_modified(document.location.href);
if (moded!=pulseMod){
buffer=xmlhttp_buffer(pulseByte,'',document.location.href);
update_extract();
buffer='';
pulseMod=moded;
}else{
if (updateAdj<180) updateAdj=(updateAdj+15);
updateSecs=updateAdj;}}
function update_extract(){
var dA=0,dZ=0,dZ2=pulseByte;
do{
dA=buffer.indexOf("
",dZ);
if (dA!=-1){
dZ=buffer.indexOf("
",dA);
if (dZ!=-1){
pulseByte=dZ2+dZ;
if (append) update_append(buffer.substring(dA+18,dZ));
}else{break;}
}else{break;}
}while ((dZ!=-1)&&(dZ>dA));
updateAdj=30;
updateSecs=updateAdj;}
function update_append(content){
var post=document.createElement("div");
post.className='mess';post.innerHTML=content;post.style.backgroundColor="#ECF1EF";
post.addEventListener("click", function (event) postClick(event),false);
anchordiv.parentNode.insertBefore(post,anchordiv);}
function xmlhttp_buffer(start,stop,url){xmlhttp.open("GET",url,false);xmlhttp.setRequestHeader("RANGE","bytes="+start+"-"+stop);xmlhttp.send(null);return xmlhttp.responseText;}
function xmlhttp_modified(url){xmlhttp.open("HEAD",url,false);xmlhttp.send("");return xmlhttp.getResponseHeader("Last-Modified");}
function main(){
try{xmlhttp=new XMLHttpRequest;} catch (e) {return;}
var divs=document.getElementsByTagName("div");
if (divs.length<=3) return;
anchordiv=divs[divs.length-2];
var theClass=new Array();
theClass=document.styleSheets[0].cssRules;
theClass[12].style.display='block';
theClass[12].style.overflow='hidden';
theClass[12].style.width='705px';
hsInt = setInterval(function(){update();},1000);}
window.addEventListener("load",main,false);