var tickers = new Array()
var wholemessage='';
var sspeed = 1;
var restart = 1;
var congrv = 0;
var scrollerspause = 1500;
var klk = 0;
var jjj = 0;
var ikj = 0;
var fstv = new Array();
var ti;
var operbr = navigator.userAgent.toLowerCase().indexOf('opera');

function startscroll() {

        wholemessage='';
        klk = 0;
        jjj = 0;
        ikj = 0;
        congrv = 0;
        clearTimeout(ti);
        for( pp=0; pp < tickers.length; pp++)
                wholemessage = wholemessage + tickers[pp];
        wholemessage = wholemessage + tickers[0]+ tickers[1];

	if(document.all && operbr == -1) {
		for(pp = 0; pp < tickers.length; pp++) {
			hidslider.innerHTML = tickers[pp];
			fstv[pp] = hidslider.offsetHeight;
		}
		iemarquee(slider);
	} else if(document.getElementById) {
		for(pp = 0; pp < tickers.length; pp++) {
			document.getElementById('hidslider').innerHTML = tickers[pp];
			fstv[pp] = document.getElementById('hidslider').offsetHeight;
		}

		ns6marquee(document.getElementById('slider'));
	}
}

function iemarquee(whichdiv) {
	iediv = eval(whichdiv);
	iediv.style.pixelTop = 0;
	iediv.innerHTML = wholemessage;
	ti = setTimeout("ieslide()",scrollerspause);
}

function ieslide() {
	if(ikj >= fstv[jjj]) {
		ikj = 0;
		jjj++;
		ti = setTimeout("ieslide()",scrollerspause);
		return;
	} else if(jjj < tickers.length) {
		if(sspeed > 0) {
			congrv = (fstv[jjj]-ikj) % sspeed;
			if(congrv == 0) {
				iediv.style.pixelTop -= sspeed;
				ikj += sspeed;
			} else {
				iediv.style.pixelTop -= congrv;
				ikj += congrv;
				congrv = 0;
			}
		}
		ti = setTimeout("ieslide()",20);
	} else if(jjj == tickers.length) {
		jjj = 0;
		ikj = 0;
		iediv.style.pixelTop = 0;
		ieslide();
	}
}

function ns6marquee(whichdiv) {
	ns6div = eval(whichdiv);
	ns6div.style.top = 0+'px';
	ns6div.innerHTML = wholemessage;
	ti = setTimeout("ns6slide()",scrollerspause);
}

function ns6slide() {
	if(ikj >= fstv[jjj]) {
 		ikj = 0;
		jjj++;
 		ti = setTimeout("ns6slide()",scrollerspause);
 		return;
	} else if(jjj < tickers.length) {
		if(sspeed > 0) {
  			congrv = (fstv[jjj] - ikj) % sspeed;
			if(congrv == 0) {
				ns6div.style.top = (parseInt(ns6div.style.top) - sspeed)+'px';;
				ikj += sspeed;
			} else {
				ns6div.style.top = (parseInt(ns6div.style.top) - congrv)+'px';;
				ikj += congrv;
				congrv = 0;
			}
		}
		ti = setTimeout("ns6slide()",20);
	} else if(jjj == tickers.length) {
		jjj = 0;
		ikj = 0;
		ns6div.style.top = 0+'px';;
		ns6slide();
	}
}

/* Speed up scroll */

function goup() {
	if(congrv == 0 && sspeed > 0 && sspeed < 27) {
		sspeed *= 3;
		restart = sspeed;
	}
	if(congrv == 0 && sspeed == 0) {
		sspeed = restart;
	}
	return;
}

/* Stop Scroll */

function gost(){
	if(congrv == 0 && sspeed > 0)
		sspeed = 0;
	return;
}

/* Slow down scroll */

function godn() {
	if(congrv == 0 && sspeed > 1) {
		sspeed /= 3;
		restart = sspeed;
	}
	if(congrv == 0 && sspeed == 0 ) {
		sspeed = 1;
		restart = sspeed;
	}
	return;
}

/* Replace all occurances of a string
  (Parameters) totalValue:'complete string' oldValue:'value to be replaced' newValue:'value used for replace' */

function Replace(totalValue,oldValue,newValue) {
	while(totalValue.indexOf(oldValue) > -1)
		totalValue=totalValue.replace(oldValue,newValue);
			return totalValue;
}

/* Get XML Node
   (Parameters) TagName:'XML Element' node:'Element row number' */

function getNode(TagName, node) {
	var currentNode = (node == null) ? xmlDoc.getElementsByTagName(TagName) : 
					items[node].getElementsByTagName(TagName);
	if(currentNode.length > 0)
		return currentNode[0].firstChild.nodeValue;
}

/* Load XML Object
   (Parameters) rssFeed:'RSS File' Body:'Layer for RSS Body' Title:'Layer for RSS Title' */

function ReadRSS(rssFeed, Body, Title) {

	if(tickers.length > 0)
		return;

	rssTitle = document.getElementById(Title);	
	rssBody = document.getElementById(Body);

	try
	{
		if (document.all)
		{
			var errorHappendHere = "Check Browser and security settings";
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		}
		else
		{
			var errorHappendHere = "Apparently one cant read remote xml via firefox, please copy the file to your server";
			xmlDoc = document.implementation.createDocument("","",null);
		}
	
		xmlDoc.async=false;
		xmlDoc.load(rssFeed);
	
		items=xmlDoc.getElementsByTagName('item');
		SetRSSTemplates();
	}
	
	catch(e)
	{
		rssTitle.innerHTML = 'Error occured';
		rssBody.innerHTML = 'Thrown Error:'+e.message+"<br/>Note: "+errorHappendHere;
	}
}

/* Set HTML Template
	Did it this way to make the look and feel of the feed easy customizable, dont like mixing
	layout with code. */

function SetRSSTemplates() {
    tickers[0] = "<HR><H3>"+getNode('title')+"</H3><HR><BR>";
	for(var i=0; i < items.length; i++) {
		tickers[tickers.length] = "<a href='"+getNode('link',i).replace("http://www.rememberme4ever.co.uk/", "")+"' class='newslink'><div class='newstitle'>"+getNode('title',i)+"</div><div class='newsdesc'>"+getNode('description',i)+"</div></A><HR><BR>"
	}
}


/*

// The loaders array will contain a   
// list of event handlers  
if(!window.loaders) {  
   window.loaders = new Array(0);  
}  
// Save the current event handler  
if(window.onload) {  
   window.loaders.push(window.onload);  
}  
// Attach new onload event handler  
window.onload = function() {  
   // Execute previous cached event handlers.  
   for(var i=0; i < window.loaders.length; i++) {  
     var func = window.loaders[i];  
     func();  
   }  
   
   // New event handler code goes here...  
   ReadRSS('http://www.rememberme4ever.co.uk/rss.php','rssBodyTemplate','rssTitleTemplate');
   startscroll();
}

*/

window.onload = function() {
	ReadRSS('http://www.rememberme4ever.co.uk/rss.php','rssBodyTemplate','rssTitleTemplate');
	startscroll();
}
