/*  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 xmlgroup;
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 sitenames = new Array();
var siteurls = new Array();
var records = new Array();
var sitetypes = new Array();

var highestid = 0;
var fadetime = .75;
var pushtime = 1000;
var rowClass = 'alt1';

function init() {
    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 + '&o=';

    if (document.getElementById("auto")) {
        if (document.getElementById("auto").checked) { querystring = querystring + "a"; }
    }
    if (document.getElementById("business")) {
        if (document.getElementById("business").checked) { querystring = querystring + "b"; }
    }
    if (document.getElementById("culture")) {
        if (document.getElementById("culture").checked) { querystring = querystring + "c"; }
    }
    if (document.getElementById("education")) {
        if (document.getElementById("education").checked) { querystring = querystring + "e"; }
    }
    if (document.getElementById("gambling")) {
        if (document.getElementById("gambling").checked) { querystring = querystring + "g"; }
    }
    if (document.getElementById("gamer")) {
        if (document.getElementById("gamer").checked) { querystring = querystring + "r"; }
    }
    if (document.getElementById("health")) {
        if (document.getElementById("health").checked) { querystring = querystring + "h"; }
    }
    if (document.getElementById("hobby")) {
        if (document.getElementById("hobby").checked) { querystring = querystring + "o"; }
    }
    if (document.getElementById("internet")) {
        if (document.getElementById("internet").checked) { querystring = querystring + "i"; }
    }
    if (document.getElementById("sports")) {
        if (document.getElementById("sports").checked) { querystring = querystring + "s"; }
    }
    if (document.getElementById("travel")) {
        if (document.getElementById("travel").checked) { querystring = querystring + "t"; }
    }
    if (document.getElementById("news")) {
        if (document.getElementById("news").checked) { querystring = querystring + "w"; }
    }
    if (document.getElementById("music")) {
        if (document.getElementById("music").checked) { querystring = querystring + "m"; }
    }
    if (document.getElementById("adult")) {
        if (document.getElementById("adult").checked) { querystring = querystring + "x"; }
    }

    if (xmlgroup > 0) { querystring = querystring + "&xmlgroup=" + xmlgroup; }

    querystring = querystring + '&r=' + Math.random();

    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 polls;
    var pulls;
    var sites;
    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;
    }

    polls = events.getElementsByTagName("polls")[0].firstChild.nodeValue;
    if ( polls ) { document.getElementById("pollstat").innerHTML = polls; }

    pulls = events.getElementsByTagName("pulls")[0].firstChild.nodeValue;
    if ( pulls ) { document.getElementById("pullstat").innerHTML = pulls; }

    sites = events.getElementsByTagName("sites")[0].firstChild.nodeValue;
    if ( sites ) { document.getElementById("sitestat").innerHTML = sites; }

    for (i = 0; i < event.length; i++) {
        try { sitenames[i] = event[i].getElementsByTagName("site")[0].firstChild.nodeValue; }
        catch (e) { sitenames[i] = "Unknown"; }

        try { siteurls[i] = event[i].getElementsByTagName("siteurl")[0].firstChild.nodeValue; }
        catch (e) { siteurls[i] = "Unknown"; }

        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 { 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 { records[i] = event[i].getElementsByTagName("record")[0].firstChild.nodeValue; }
        catch (e) { records[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 { sitetypes[i] = event[i].getElementsByTagName("sitetype")[0].firstChild.nodeValue; }
        catch (e) { sitetypes[i] = ""; }
    }

    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 sitename = sitenames.pop();
    var siteurl = siteurls.pop();
    var record = records.pop();
    var sitetype = sitetypes.pop();

    rowClass = rowClass == 'alt2' ? 'alt1' : 'alt2';
    highestid = Math.max(parseInt(record), highestid);

    if ( what == "RSS" ) {
        what = '<img src="/images/rss.png" alt="RSS Feed" />';

        if(title.length == 0) { clip = '<strong>Unknown</strong>'; }
        else { clip = '<strong><a target="_blank" href="' + postid + '">' + title + '</a></strong>'; }

        if (preview.length > 0) { clip = clip + '<br />' + preview ; }

        if (parseInt(forumname.length) > 0) { where = where + '<strong>' + forumname + '</strong>'; }
        else { where = ''; }

        poster_clip = poster + '<br />' + when;

        where = where + '<br />' + '<a target="_blank" href="' + siteurl + '/index.php">' + sitename + '</a><br />' + sitetype;
    }
    else {
        if (vB_PHP_Emulator.prototype.stripos(what, 'thread')) {
            post_url = 'showthread.php?t=' + threadid;
            what = '<img src="/iSkin/statusicon/thread_new.gif" alt="New Thread" />';
        } else {
            post_url = 'showthread.php?p=' + spyid + '#post' + spyid ;
            what = '<img src="/iSkin/statusicon/post_new.gif" alt="New Post" />';
        }

        if(title.length == 0) { clip = '<strong>Unknown</strong>'; }
        else { clip = '<strong><a target="_blank" href="' + siteurl + '/' + post_url + '">' + title + '</a></strong>'; }

        if (preview.length > 0) { clip = clip + '<br />' + preview ; }

        clip = clip + ' (' + view + ' views, ' + numreplies + ' replies)';

        if (userid.length > 0) { poster_clip = '<a target="_blank" href="' + siteurl + '/member.php?u=' + userid + '">' + poster + '</a>'; }

        poster_clip = poster_clip + '<br />' + when;

        if (parseInt(forumname.length) > 0) { where = where + '<strong><a target="_blank" href="' + siteurl + '/forumdisplay.php?f=' + forumid + '">' + forumname + '</a></strong>'; }
        else { where = ''; }

        where = where + '<br />' + '<a target="_blank" href="' + siteurl + '/index.php">' + sitename + '</a><br />' + sitetype;
    }

    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"><strong>' + what + '</strong></td><td class="' + rowClass + ' smallfont">' + poster_clip + '</td><td class="' + rowClass + 'Active 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"><strong>' + what + '</strong></div>';
        document.getElementById("row1").cells[1].innerHTML = '<div class="smallfont">' + poster_clip + '</div>';
        document.getElementById("row1").cells[2].innerHTML = clip;
        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()", 5000); }
}
