// Ajax JS file for viewer

var lastPoster = "";

function ajaxManager() {
    var args = arguments;

    switch(args[0]) {
    case "Load":
	var client = createClient();
	if (client) {
	    lockClicks = true;
	    playLoading();
	    var poster = "action=Load&type=" + args[1] + "&id=" + args[2];
	    lastPoster = poster;
	    client.onreadystatechange = function() {
		if (client.readyState == 4 && client.status == 200) {
		    //alert(client.responseText); 
		    var xml = client.responseXML;
		    if (! tags(xml, "sql_fields").length) return;
		    var fields = tags(xml, "sql_fields")[0].firstChild.nodeValue.split(',');
		    var nodes = tags(xml, args[1]);
		    //alert("Iterating nodes");
		    for (var i=0; i<nodes.length; i++) {
			var data = new Array();
			var id = tags(nodes[i], 'id')[0].firstChild.nodeValue;
			for (var j=0; j<fields.length; j++) {
			    var n = nodes[i].getElementsByTagName(fields[j])[0];
			    var name = n.nodeName;
			    var value = n.firstChild.nodeValue.replace(/undefined/, "");
			    data[fields[j]] = value;
			}
			switch(args[1]) {
			case "Tournaments":
			    tournamentIDs.push(id);
			    tournaments[id] = new Tournament(id, fields, data);
		            //alert("Created tournament " + id);
			    break;
			case "Events":
			    _tournament.eventIDs.push(id);
			    events[id] = new Event(id, fields, data);
			    break;
			case "Days":
			    _event.dayIDs.push(id);
			    days[id] = new Day(id, fields, data);
			    break;
			default:
			    break;
			}
			lockClicks = false;
			playLoading();
		    }
		    eval("list" + args[1] + "();");
		    if (args[1] == "Tournaments") selectTournament();
		} else if(client.readyState == 4) {
	    		client.open('POST', "/tournament_viewer/viewer2009/ajax.php", true);
	    		client.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    		client.setRequestHeader("Content-length", lastPoster.length);
	    		client.setRequestHeader("Connection", "close");

	    		client.send(lastPoster);
		}
	    };
	    client.open('POST', "/tournament_viewer/viewer2009/ajax.php", true);
	    client.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    client.setRequestHeader("Content-length", poster.length);
	    client.setRequestHeader("Connection", "close");

	    //alert("Posting " + poster);
	    client.send(poster);
	}
	break;
    case "Set blogDate":
	var client = createClient();
	if (client) {
	    var call = "/tournament_viewer/viewer2009/ajax.php?action=Convert Time&time=" + args[1];
	    client.onreadystatechange = function() {
		if (client.readyState == 4 && client.status == 200) {
		     $('blogDate').innerHTML = client.responseText;
		}
	    };
	    client.open("GET", call, true);
	    client.send(null);
	}
	break;
    case "Get Stats":
	$('lb_leaders').innerHTML = "Please wait...";
	var client = createClient();
	if (client) {
	    var call = "/tournament_viewer/viewer2009/ajax.php?action=Get Stats&board=" + args[1] + "&year=" + args[2];
	    client.onreadystatechange = function () {
		if (client.readyState == 4 && client.status == 200) {
		    $('lb_leaders').innerHTML = client.responseText;
		}
	    };
	    client.open("GET", call, true);
	    client.send(null);
	}
	break;
    case "Impression":
	var client = createClient();
	if (client) {
	    var call = "/tournament_viewer/viewer2009/out.php?id=" + args[1];
	    client.onreadystatechange = function () {
		if (client.readyState == 4 && client.status == 200) {
		}
	    };
	    client.open("GET", call, true);
	    client.send(null);
	}
	break;
    case "Startup":
	// Adding mouse events to show/hide the events scroll bar
	//eventer($('eventList'), "mouseover", function() { if (_tournament.eventIDs.length > 21) $('eventHolder').style.zIndex = 1; }, false);
	eventer($('eventList'), "mouseover", showSB, false);
	eventer($('eventList'), "mouseout", function() { clearTimeout(hsbTO); hsbTO = setTimeout("hideSB()", 200); }, false);

	eventer($('sponsorPanel'), "load", function() { showSponsor(3); }, false);

	// Resetting the opacity because it's uncaught by Firefox from the CSS for some reason unknown
	setOpacity($('leaderImg1'), 0);
	setOpacity($('leaderImg2'), 0);
	//setOpacity($('dayHolder'), .8);
	//setOpacity($('galleryImg_1'), 0);
	//setOpacity($('galleryImg_2'), 0);
	//setOpacity($('galleryLink'), .7);
	
	// Adding onload functions to images
	$('leaderImg1').onload = function() {
	    clearInterval(li1TI);
	    li1TI = setInterval("fadeIn('leaderImg1', 'li1TI', .1)", 40);
	    $('loadingImg').style.display = "none";
	};
	$('galleryImg_1').onload = function() {
	    galleryStart();
	};
	
	//showSponsor(6);
	ajaxManager("Load", "Tournaments");
	break;
    }
}

function showSB(e) { 
    if ($('eventList').scrollWidth > getOW($('eventList'))) {
	$('evHolder').style.zIndex = 2; 
	clearTimeout(hsbTO);
    }
}

var hsbTO = null;
function hideSB(e) {
    $('evHolder').style.zIndex = 0;
}



