/*  Prototype JavaScript framework, version 1.4.0
 *  (c) 2005 Sam Stephenson <sam@conio.net>
 *
 *  Prototype is freely distributable under the terms of an MIT-style license.
 *  For details, see the Prototype web site: http://prototype.conio.net/
 *
 *  Modified for vBulletin use.
/*--------------------------------------------------------------------------*/

var spymax;
var highestid;
var play = 1;

var whats = new Array();
var titles = new Array();
var previews = new Array();
var posters = new Array();
var threadids = new Array();
var postids = new Array();
var userids = new Array();
var spyids = new Array();
var forumids = new Array();
var forumnames = new Array();
var views = new Array();
var replies = new Array();
var whens = new Array();
var lastposts = new Array();

var forumURLs = new Array();
var threadURLs = new Array();
var memberURLs = new Array();

var statusicons = new Array();
var unreadstatuses = new Array();
var rowClasses = new Array();

var highestid = 0;
var fadetime = .25;

/* Time delay between updates to table while scrolling */
var pushtime = 1000;

var rowClass = 'spylatestpost';

function spyinit() {

	getXML();
}

function pauseSpy() {
	var playimg = document.getElementById("vaplay");
	var pauseimg = document.getElementById("vapause");

	playimg.src = "images/misc/play_up.gif";
	playimg.alt = "Click to Play";
	pauseimg.src = "images/misc/pause_down.gif";
	pauseimg.alt = "Paused...";

	pause();
}

function playSpy() {
	var playimg = document.getElementById("vaplay");
	var pauseimg = document.getElementById("vapause");

	playimg.src = "images/misc/play_down.gif";
	playimg.alt = "Playing...";
	pauseimg.src = "images/misc/pause_up.gif";
	pauseimg.alt = "Click to Pause";

	resume();
}

function pause() {
	play = 0;
}

function resume() {
	play = 1;
}

function getXML() {
	if (highestid > 0) {
		var querystring = "do=xml&last=" + highestid;
	} else {
		var querystring = "do=xml";
	}

	querystring = querystring + '&r=' + Math.random();
	querystring = querystring + '&forumids=' + onlyForums;
	querystring = querystring + '&noChildren=' + noChildren;
	var url = "vaispy.php";
	var myAjax = null;

	myAjax = new Ajax.Request(
	url,
		{
			method: 'get',
			asynchronous: true,
			parameters: querystring,
			onComplete: processXML
		});
}

function processXML(request) {
	var events;
	var event;

	try {
		events = request.responseXML.getElementsByTagName("events")[0];
		event = events.getElementsByTagName("event");
		if (event.length == 0) {
			setTimeout("getXML()", 5000);
			return;
		}
	}

	catch (e) {
		setTimeout("getXML()", 5000);
		return;
	}

	for (i = 0; i < event.length; i++) {
		try {
			whats[i] = event[i].getElementsByTagName("what")[0].firstChild.nodeValue;
		}
		catch (e) {
			whats[i] = "Unknown";
		}

		try {
			whens[i] = event[i].getElementsByTagName("when")[0].firstChild.nodeValue;
		}
		catch (e) {
			whens[i] = "";
		}

		try {
			titles[i] = event[i].getElementsByTagName("title")[0].firstChild.nodeValue;
		}
		catch (e) {
			titles[i] = "";
		}

		try {
			previews[i] = event[i].getElementsByTagName("preview")[0].firstChild.nodeValue;
		}
		catch (e) {
			previews[i] = "";
		}

		try {
			posters[i] = event[i].getElementsByTagName("poster")[0].firstChild.nodeValue;
		}
		catch (e) {
			posters[i] = "Guest";
		}

		try {
			threadids[i] = event[i].getElementsByTagName("threadid")[0].firstChild.nodeValue;
		}
		catch (e) {
			threadids[i] = "";
		}

		try {
			postids[i] = event[i].getElementsByTagName("postid")[0].firstChild.nodeValue;
		}
		catch (e) {
			postids[i] = "";
		}

		try {
			lastposts[i] = event[i].getElementsByTagName("lastpostid")[0].firstChild.nodeValue;
		}
		catch (e) {
			lastposts[i] = "";
		}

		try {
			userids[i] = event[i].getElementsByTagName("userid")[0].firstChild.nodeValue;
		}
		catch (e) {
			userids[i] = "";
		}

		try {
			spyids[i] = event[i].getElementsByTagName("id")[0].firstChild.nodeValue;
		}
		catch (e) {
			spyids[i] = 1;
		}

		try {
			forumids[i] = event[i].getElementsByTagName("forumid")[0].firstChild.nodeValue;
		}
		catch (e) {
			forumids[i] = 1;
		}

		try {
			forumnames[i] = event[i].getElementsByTagName("forumname")[0].firstChild.nodeValue;
		}
		catch (e) {
			forumnames[i] = 1;
		}

		try {
			views[i] = event[i].getElementsByTagName("views")[0].firstChild.nodeValue;
		}
		catch (e) {
			views[i] = 1;
		}

		try {
			replies[i] = event[i].getElementsByTagName("replies")[0].firstChild.nodeValue;
		}
		catch (e) {
			replies[i] = 1;
		}

		try {
			threadURLs[i] = event[i].getElementsByTagName('threadURL')[0].firstChild.nodeValue;	
		}
		catch (e) {
			threadURLs[i] = 1;
		}

		try {
			forumURLs[i] = event[i].getElementsByTagName('forumURL')[0].firstChild.nodeValue;	
		}
		catch (e) {
			forumURLs[i] = 1;
		}
		
		try {
		    memberURLs[i] = event[i].getElementsByTagName('memberURL')[0].firstChild.nodeValue;
		}
		catch (e) {
		    memberURLs[i] = 1;
		}
		
		try {
			statusicons[i] = event[i].getElementsByTagName('statusicon')[0].firstChild.nodeValue;
		}
		catch (e) {
		    statusicons[i] = 1;
		}
		
		try {
			unreadstatuses[i] = event[i].getElementsByTagName('unread')[0].firstChild.nodeValue;
		}
		catch (e) {
		    unreadstatuses[i] = 0;
		}
		
		try {
			rowClasses[i] = event[i].getElementsByTagName('class')[0].firstChild.nodeValue;
		}
		catch (e) {
		    rowClasses[i] = 0;
		}

	}

	push();
}

function push() {
	if (play == 0) {
		setTimeout("push()", 1000);
		return;
	}

	var cell;
	var cellnext;
	var text;
	var clip;
	var poster_clip = '';
	var where = '';
	var post_url;
	var style = '';

	var what = whats.pop();
	var when = whens.pop();
	var title = titles.pop();
	var preview = previews.pop();
	var poster = posters.pop();
	var threadid = threadids.pop();
	var postid = postids.pop();
	var userid = userids.pop();
	var spyid = spyids.pop();
	var forumid = forumids.pop();
	var forumname = forumnames.pop();
	var view = views.pop();
	var numreplies = replies.pop();
	var lastpostid = lastposts.pop();
	var threadURL = threadURLs.pop();
	var forumURL = forumURLs.pop();
	var memberURL = memberURLs.pop();
	var statusicon = statusicons.pop();
	var unreadstatus = unreadstatuses.pop();

	rowClass = rowClass == 'spylatestpost' ? 'spylatestpost1' : 'spylatestpost';
	highestid = Math.max(parseInt(spyid), highestid);


	if (vB_PHP_Emulator.prototype.stripos(what, 'thread')) {
		post_url = threadURL;
	} else {
		post_url = threadURL;
	}

	if(title.length == 0) {
		clip = '<strong>Unknown</strong>';
	} else {
		clip = '<img src="' + statusicon + '" alt="" /><strong><a href="' + post_url + '">' + title + '</a>' + ((unreadstatus == 1) ? '' : '');
	}

    clip = clip + ' (' + view + ' views, ' + numreplies + ' replies)';

	if (userid.length > 0) {
		poster_clip = 'by <a href="' + memberURL + '">' + poster + '</a>';
	}

    poster_clip = poster_clip + ' - ' + when + '<br />';

	if (parseInt(forumname.length) > 0) {
		where = where + '@ <a href="' + forumURL + '">' + forumname + '</a>';
	} else {
		where = '';
	}

    if (is_opera) {
        text = '<table cellpadding="3" cellspacing="0" border="0" width="100%"><tr><td width="20" class="' + rowClass + ' smallfont" nowrap="nowrap" align="center">' + what + '</td><td class="' + rowClass + ' smallfont" width="225" nowrap="nowrap" align="left">' + poster_clip + '</td><td class="' + rowClass + ' smallfont" width="80%">' + clip + '</td><td class="' + rowClass + ' smallfont" width="200" nowrap="nowrap" align="center">' + where + '</td></tr></table>';
	} else {
	    text = '<td class="' + rowClass + ' smallfont" align="center">' + what + '</td><td class="' + rowClass + ' smallfont">' + poster_clip + '</td><td class="' + rowClass + ' smallfont">' + clip + '</td><td align="center" class="' + rowClass + ' smallfont">' + where + '</td>';
    }

	Element.setOpacity('row1', 0.0);

	if (is_ie) {
		for (i = (spymax - 1); i >= 1; i--) {
			cell = document.getElementById("spy_table").rows[i];
			cellnext = document.getElementById("spy_table").rows[i + 1];
			if (cell.innerHTML.length > 31) {
				cellnext.cells[0].innerHTML = cell.cells[0].innerHTML;
				cellnext.cells[1].innerHTML = cell.cells[1].innerHTML;
				cellnext.cells[2].innerHTML = cell.cells[2].innerHTML;
				cellnext.cells[3].innerHTML = cell.cells[3].innerHTML;
				cellnext.style.display = '';
			}
		}

		document.getElementById("row1").cells[0].innerHTML = '<div class="smallfont">' + what + '</div>';
		document.getElementById("row1").cells[1].innerHTML = '<div class="smallfont">' + poster_clip + '</div>';
		document.getElementById("row1").cells[2].innerHTML = '<div class="smallfont">' + clip + '</div>';
		document.getElementById("row1").cells[3].innerHTML = '<div class="smallfont">' + where + '</div>';
	} else {
		for (i = (spymax - 1); i >= 1; i--) {
			cell = document.getElementById("row" + i);
			cellnext = document.getElementById("row" + (i + 1));
			if (cell.innerHTML != "") {
				cellnext.innerHTML = cell.innerHTML;
				cellnext.style.display = '';
			}
		}
		document.getElementById("row1").innerHTML = text;
	}

	Effect.Appear('row1', { duration: fadetime });

	if (whats.length > 0) {
		setTimeout("push()", pushtime);
	}
	else {
		setTimeout("getXML()", 7000);
	}
}