var rate_url = smf_scripturl + "?action=arcade;sa=rate;xml";
var favorite_url = smf_scripturl + "?action=arcade;sa=favorite;xml"
var comment_url = smf_scripturl + "?action=arcade;sa=comment;xml"
var search_url = smf_scripturl + "?action=arcade;sa=search;xml"
var final_url = smf_scripturl + "?action=arcade;sa=final;xml"
var waiting = false;
var imgfav = '';
var divrate = '';
var counter = 0;
var timer = 6000;
var whichskip = '';
var t;

function pause() {
  clearTimeout(t);
}

function resume() {
  t = setTimeout(whichskip, timer);
}

function champskip2() 
{ 
whichskip = champskip2;
counter++;

if (counter == 3){ counter = 1}

switch(counter)
{
case 1:
document.getElementById('play1').style.display = '';
document.getElementById('play2').style.display = 'none';
  break;
 
case 2:
document.getElementById('play1').style.display = 'none';
document.getElementById('play2').style.display = '';
} 
 t = setTimeout("champskip2()", timer); 
}

function champskip() 
{ 
whichskip = champskip;
counter++;

if (counter == 4){ counter = 1}

switch(counter)
{
case 1:
document.getElementById('play1').style.display = '';
document.getElementById('play2').style.display = 'none';
document.getElementById('play3').style.display = 'none';
  break;
 
case 2:
document.getElementById('play1').style.display = 'none';
document.getElementById('play2').style.display = '';
document.getElementById('play3').style.display = 'none';
  break;

case 3:
document.getElementById('play1').style.display = 'none';
document.getElementById('play2').style.display = 'none';
document.getElementById('play3').style.display = '';
} 
 t = setTimeout("champskip()", timer); 
} 

function Arcade_Final(game){

	var x = new Array();

	search_wait = true;
	setTimeout("resetWait();", 800);

	if (waiting)
		return alert('Please wait before new action!');

	x[0] = "game=" + parseInt(game);

	waiting = true;

	setInnerHTML(document.getElementById(search_div), '<b><i>LOADING.......</i></b>');

	sendXMLDocument(final_url, x.join("&"), onArcadeFinal);

}


function onArcadeFinal(XMLDoc){

	if (!XMLDoc)
		document.getElementById(search_div).innerHtml = 'Error';

	var html = '';

	var fav = XMLDoc.getElementsByTagName("fav")[0].firstChild.nodeValue;
	var name = XMLDoc.getElementsByTagName("name")[0].firstChild.nodeValue;
	var thumbnail = XMLDoc.getElementsByTagName("thumbnail")[0].firstChild.nodeValue;
	var play = XMLDoc.getElementsByTagName("play")[0].firstChild.nodeValue;
	var rate = XMLDoc.getElementsByTagName("rate")[0].firstChild.nodeValue;
	var numplays = XMLDoc.getElementsByTagName("numplays")[0].firstChild.nodeValue;
	var highscore = XMLDoc.getElementsByTagName("highscore")[0].firstChild.nodeValue;
	var membername1 = XMLDoc.getElementsByTagName("membername1")[0].firstChild.nodeValue;
	var membername2 = XMLDoc.getElementsByTagName("membername2")[0].firstChild.nodeValue;
	var membername3 = XMLDoc.getElementsByTagName("membername3")[0].firstChild.nodeValue;
	var membername4 = XMLDoc.getElementsByTagName("membername4")[0].firstChild.nodeValue;
	var membername5 = XMLDoc.getElementsByTagName("membername5")[0].firstChild.nodeValue;
	var score1 = XMLDoc.getElementsByTagName("score1")[0].firstChild.nodeValue;
	var score2 = XMLDoc.getElementsByTagName("score2")[0].firstChild.nodeValue;
	var score3= XMLDoc.getElementsByTagName("score3")[0].firstChild.nodeValue;
	var score4= XMLDoc.getElementsByTagName("score4")[0].firstChild.nodeValue;
	var score5= XMLDoc.getElementsByTagName("score5")[0].firstChild.nodeValue;

		html = "<table width=\"100%\"><tr><td width=\"50%\" >";
		html += "<a href=\"" + play + "\" title=\"Play This Game\">";
		html += "<img src=\"" + thumbnail + "\" width=30 height=30 style=\"border: 1px solid silver\"><br>";
		html += "<b>" + name + "</b></a><br>";
		html += "   " + fav + "</a><br>";
		html += "Num Plays [" + numplays + "]<br>";
		html += "<a href=\"" + highscore + "\">" + "View Highscore</a><br>";
		html += " " + rate + "<br>";
		html += "</td><td valign=\"top\">"
		html += "<div class=\"catbg\">Top Scores</div><div style=\"margin: 5px 0px 0px 10px\">"
if(membername1 != 'NULL'){
		html += "1. " + membername1 + " - " + score1 +"<br>";
}else{
		html += "No Records<br>";
}
if(membername2 != 'NULL')
		html += "2. " + membername2 + " - " + score2 +"<br>";
if(membername3 != 'NULL')
		html += "3. " + membername3 + " - " + score3 +"<br>";
if(membername4 != 'NULL')
		html += "4. " + membername4 + " - " + score4 +"<br>";
if(membername5 != 'NULL')
		html += "5. " + membername5 + " - " + score5 +"<br>";

		html += "</div></td></tr></table>"
	waiting = false;
	setInnerHTML(document.getElementById(search_div), html);
}

function scrollObject(main, width, height, direct, pause, speed) {
  var self = this;
  this.main = main;
  this.width = width;
  this.height = height;
  this.direct = direct;
  this.pause = pause;
  this.speed = Math.max(1.001, Math.min((direct == "up" || direct == "down") ? height : width, speed));
  this.slope = (direct == "up" || direct == "left") ? 1 : -1;
  this.prev = this.offset = 0;
  this.curr = 1;
  this.mouse = false;
  this.scroll = function() {
    this.main = document.getElementById(this.main);
    this.main.style.overflow = "hidden";
    this.main.style.position = "relative";
    this.main.style.width = this.width + "px";
    this.main.style.height = this.height + "px";
    var b = [], c;
    while (this.main.firstChild) if ((c = this.main.removeChild(this.main.firstChild)).nodeName == "DIV") b.push(c);
    for (var x = 0; x < b.length; x++) {
      var table = document.createElement('table');
          table.cellPadding = table.cellSpacing = table.border = "0";
          table.style.position = "absolute";
          table.style.left = table.style.top = "0px";
          table.style.width = table.style.height = "100%";
          table.style.overflow = table.style.visibility = "hidden";
        var tbody = document.createElement('tbody');
          var tr = document.createElement('tr');
            var td = document.createElement('td');
              while (b[x].firstChild)
                  td.appendChild(b[x].removeChild(b[x].firstChild));
              tr.appendChild(td);
            tbody.appendChild(tr);
          table.appendChild(tbody);
      this.main.appendChild(table);
    } b = c = null;
    if (this.main.childNodes.length > 1) {
      this.main.onmouseover = function() { self.mouse = true; };
      this.main.onmouseout = function() { self.mouse = false; };
      setInterval(function() {
        if (!self.offset && self.scrollLoop()) self.main.childNodes[self.curr].style.visibility = "visible";
      }, this.pause);
    } this.main.childNodes[this.prev].style.visibility = "visible";
  };
  this.scrollLoop = function() {
    if (!this.offset) {
      if (this.mouse) return false;
      this.offset = (this.direct == "up" || this.direct == "down") ? this.height : this.width;
    } else this.offset = Math.floor(this.offset / this.speed);
    if (this.direct == "up" || this.direct == "down") {
      this.main.childNodes[this.curr].style.top = (this.offset * this.slope) + "px";
      this.main.childNodes[this.prev].style.top = ((this.offset - this.height) * this.slope) + "px";
    } else {
      this.main.childNodes[this.curr].style.left = (this.offset * this.slope) + "px";
      this.main.childNodes[this.prev].style.left = ((this.offset - this.width) * this.slope) + "px";
    }
    if (!this.offset) {
      this.main.childNodes[this.prev].style.visibility = "hidden";
      this.prev = this.curr;
      if (++this.curr >= this.main.childNodes.length) this.curr = 0;
    } else setTimeout(function() { self.scrollLoop(); }, 30);
    return true;
  };
  if (window.addEventListener) {
    window.addEventListener('load', function() { self.scroll(); }, false); 
  } else if (window.attachEvent)
    window.attachEvent('onload', function() { self.scroll(); });
}


// Rating

function arcade_rate(rating, game)
{
	var i, x = new Array();
	
	if (waiting)
		return alert('Please wait before new action!');
	
	waiting = true;
	x[0] = "game=" + parseInt(game);
	x[1] = "rate=" + parseInt(rating);

	ajax_indicator(true);		
	sendXMLDocument(rate_url, x.join("&"), onArcadeRate);
}

function onArcadeRate(XMLDoc)
{
	//alert(XMLDoc.getElementsByTagName("txt")[0].firstChild.nodeValue);	
	
	var rating = XMLDoc.getElementsByTagName("rating")[0].firstChild.nodeValue;
	var i = 0;
	
	for (i = 1; i <= 5; i++)
	{
		if (i <= rating)
			document.getElementById('imgrate' + i).src = smf_images_url + '/star.gif';
		else
			document.getElementById('imgrate' + i).src = smf_images_url + '/star2.gif';			
	}
	
	waiting = false;
	ajax_indicator(false);
}

// Favorite

function arcade_favorite(game)
{
	var i, x = new Array();
	
	if (waiting)
		return alert('Please wait before new action!');
	
	waiting = true;
		
	x[0] = "game=" + parseInt(game);
	imgfav = 'favgame' + parseInt(game);
	
	ajax_indicator(true);
	
	sendXMLDocument(favorite_url, x.join("&"), onArcadeFavorite);
}


function onArcadeFavorite(XMLDoc)
{
	
	if (parseInt(XMLDoc.getElementsByTagName("state")[0].firstChild.nodeValue) == 0)
		document.getElementById(imgfav).src = smf_images_url + '/favorite.gif';

	else
		document.getElementById(imgfav).src = smf_images_url + '/favorite2.gif';
	
	ajax_indicator(false);
	waiting = false;
}

// Comment

var editing = false;
var editscore = 0;

function arcadeCommentEdit(score, game, save)
{
	var divcomment = "comment" + parseInt(score);
	var divedit = "edit" + parseInt(score);
	
	editscore = score;
	
	if (editing || save == 1)
		arcadeCommentSave(score)
		
	editing = true;
	
	document.getElementById(divcomment).style.display = 'none';
	document.getElementById(divedit).style.display = 'block';
}

function arcadeCommentSave(score, game)
{
	var x = new Array();
	var textbox = "c"  + parseInt(score); 
	var comment = document.getElementById(textbox).value;
	
	if (waiting)
		return alert('Please wait before new action!');
	
	waiting = true;
		
	x[0] = "game=" + parseInt(game);
	x[1] = "score=" + parseInt(score);
	x[2] = "comment=" + escape(textToEntities(comment.replace(/&#/g, "&#38;#"))).replace(/\+/g, "%2B");
			
	ajax_indicator(true);
	
	sendXMLDocument(comment_url, x.join("&"), onArcadeCommentSave);
}

function onArcadeCommentSave(XMLDoc)
{
	ajax_indicator(false);
	waiting = false;
	editing = false;
	
	var divcomment = "comment" + parseInt(editscore);
	var divedit = "edit" + parseInt(editscore);
	
	setInnerHTML(document.getElementById(divcomment), XMLDoc.getElementsByTagName("txt")[0].firstChild.nodeValue);
	document.getElementById(divcomment).style.display = 'block';
	document.getElementById(divedit).style.display = 'none';
}

// Search

var results;
var search_can = true;
var search_wait = false;
var search_div = 'quick_div';
var search_textbox = 'quick_name';

function ArcadeQuickSearch()
{

	if (search_wait) // Wait before new search.
	{
		setTimeout("ArcadeQuickSearch();", 800);
		return 1;
	}
	
	search_wait = true;
	setTimeout("resetWait();", 800);
	
	var i, x = new Array();
	
	var n = document.getElementById(search_textbox).value;
	
	x[0] = "name=" + escape(textToEntities(n.replace(/&#/g, "&#38;#"))).replace(/\+/g, "%2B");

	if(document.qsearch){

		if(document.qsearch.lookfor[0].checked==true) x[1] = "parser=starts";

		if(document.qsearch.lookfor[1].checked==true) x[1] = "parser=contains";

	}

	
	sendXMLDocument(search_url, x.join("&"), onArcadeSearch);
}

function resetWait()
{
	search_wait = false;
}

function onArcadeSearch(XMLDoc)
{
	if (!XMLDoc)
		document.getElementById(search_div).innerHtml = 'Error';
	
	search_wait = false;
		
	var i;
	var html = '';
	
	var games = XMLDoc.getElementsByTagName("game");
	var more = XMLDoc.getElementsByTagName("more")[0];
	
	for (i = 0; i < games.length; i++)
	{
		html += "<div><a href=\"" + games[i].getElementsByTagName("url")[0].firstChild.nodeValue + "\">" + games[i].getElementsByTagName("name")[0].firstChild.nodeValue + "</a></div>";
	}
	
	if (more.getElementsByTagName("is")[0].firstChild.nodeValue == 1)
		html += "<div><a href=\"" + more.getElementsByTagName("url")[0].firstChild.nodeValue  + "\">Show all</a></div>";
	
	if(!html) html = 'No Matches Found!';
	
	setInnerHTML(document.getElementById(search_div), html);
	
}

function QactionChange()
{
	document.getElementById('qcategory').style.display = 'none';
	document.getElementById('qset').style.display = 'none';
	
	if (document.getElementById('qaction').value == 'change')
	{
		document.getElementById('qcategory').style.display = '';
		document.getElementById('qset').style.display = '';
	}
	else if (document.getElementById('qaction').value == 'clear_scores')
	{
		document.getElementById('qset').style.display = '';
	}
	else
	{
		
	}
	
		
}