/*  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 statusicons = new Array();
var rowClass = 'alt1';

/* Effect delay of fade-in */
var fadetime = .25;

/* Time delay between updates to table while scrolling */
var pushtime = 1000;

/*--

This must include both slashes: i.e.

var vburl='/forum/';

Use this is you integrate outside /forum with a portal or other product

*/
var vburl = '';

/* Delay between polls to the XML feed for new updates to page */
var xmldelay = 7000;

function spyinit() {
        getXML();
}

function getXML() {
        if (highestid > 0) {
                var querystring = "do=xml&last=" + highestid;
        } else {
                var querystring = "do=xml";
        }

        querystring = querystring + '&r=' + Math.random();

    if (document.getElementById("subscribe")) {
        if (document.getElementById("subscribe").checked) { querystring = querystring + "&subscribe=1"; }
    }

        var url = vburl + "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()", xmldelay);
                        return;
                }
        }

        catch (e) {
                setTimeout("getXML()", xmldelay);
                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("lastpost")[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 {
                        statusicons[i] = event[i].getElementsByTagName('statusicon')[0].firstChild.nodeValue;
                }
                catch (e) {
                    statusicons[i] = 1;
                }
        }

        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 lastpost = lastposts.pop();
        var statusicon = statusicons.pop();

        rowClass = rowClass == 'alt2' ? 'alt1' : 'alt2';
        highestid = Math.max(parseInt(spyid), highestid);

        if (vB_PHP_Emulator.prototype.stripos(what, 'thread')) {
                post_url = vburl + 'showthread.php?t=' + threadid;
        } else {
                post_url = vburl + 'showthread.php?p=' + spyid + '#post' + spyid;
        }

        if(title.length == 0) {
                clip = '<strong>Unknown</strong>';
        } else {
                clip = '<img src="' + statusicon + '" alt="" /><strong><a target="_blank" href="' + post_url + '">' + title + '</a></strong>';
        }

        if (preview.length > 0) {
            clip = clip + '<br />' + preview ;
        }

    clip = clip + ' (' + view + ' مشاهده, ' + numreplies + ' ردود)';

        if (userid.length > 0) {
                poster_clip = '<a target="_blank" href="' + vburl + 'member.php?u=' + userid + '">' + poster + '</a>';
        }

    poster_clip = poster_clip + '<br />' + when;

        if (parseInt(forumname.length) > 0) {
                where = where + '<strong><a target="_blank" href="' + vburl + 'forumdisplay.php?f=' + forumid + '">' + forumname + '</a></strong>';
        } 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()", xmldelay);
        }
}
