var lastTournamentId;

function loadXMLDoc(dname)
{
	if (window.XMLHttpRequest) {xhttp=new XMLHttpRequest();}
	else {xhttp=new ActiveXObject("Microsoft.XMLHTTP");	}
	xhttp.open("GET",dname,false);
	xhttp.send("");
	return xhttp.responseXML;
}

function getSelectedValue(id)
{
	var w = document.getElementById(id).selectedIndex;
	var selected_value = document.getElementById(id).options[w].value;
	return selected_value;
}

function setSelectedValue(name, value)
{
	$(name).val(value);
}

function showDetails(id)
{
	var oldObj= document.getElementById(lastTournamentId);
	if (oldObj != null) oldObj.style.display = "none";
	var newObj= document.getElementById(id);
	newObj.style.display = "block";
	lastTournamentId = id;
}

function hideDetails(id)
{
	var obj= document.getElementById(id);
	obj.style.display = "none";
}

function showRadar()
{
	var objCalendar = document.getElementById("tournamentCalendar");
	objCalendar.style.display = "none";
	var objRadar = document.getElementById("tournamentRadar");
	objRadar.style.display = "block";
}

function showCalendar()
{
	var objRadar= document.getElementById("tournamentRadar");
	objRadar.style.display = "none";
	var objCalendar = document.getElementById("tournamentCalendar");
	objCalendar.style.display = "block";
	displayResult();
}

function clearTournamentCalenderOutput(n)
{
	if ( n.hasChildNodes() )
	{
		while ( n.childNodes.length >= 1 ) {n.removeChild( n.firstChild );} 
	}
}

function showUpcomingEvents()
{
	var date = new Date();
	var dayStart = date.getDate();
	dayStart += '';
	if (dayStart.length == 1) {dayStart = '0' + dayStart}
	var dayEnd = dayStart;

	var monthStart = date.getMonth() + 1;
	var monthEnd;
	if (monthStart != 12) {monthEnd = monthStart + 1;}
	else {monthEnd = 1;}
	
	var yearStart = date.getFullYear();
	var yearEnd;
	if (monthStart != 12) {yearEnd = yearStart}
	else {yearEnd = yearStart + 1;}
	
	monthStart += '';
	monthEnd += '';		
	if (monthStart.length == 1) {monthStart = '0' + monthStart}
	if (monthEnd.length == 1) {monthEnd = '0' + monthEnd}
	
	setSelectedValue("#tournamentYearStart", yearStart);
	setSelectedValue("#tournamentMonthStart", monthStart);
	setSelectedValue("#tournamentDayStart", dayStart);
	setSelectedValue("#tournamentYearEnd",  yearEnd);
	setSelectedValue("#tournamentMonthEnd", monthEnd);
	setSelectedValue("#tournamentDayEnd", dayEnd);
	showCalendar();
}

function displayResult()
{
	// code for IE
	if (window.ActiveXObject)
	{
		var objXSLT = new ActiveXObject("MSXML2.FreeThreadedDomDocument")
		objXSLT.async = false
		objXSLT.load("tournaments.xsl")

		// create a compiled XSL-object
		var objCompiled = new ActiveXObject("MSXML2.XSLTemplate")
		objCompiled.stylesheet = objXSLT.documentElement
				
		// create XSL-processor
		var objXSLProc = objCompiled.createProcessor()

		// Load XML
		var objXML = new ActiveXObject("MSXML2.FreeThreadedDomDocument")
		objXML.async = false
		objXML.load("tournaments.xml")

		// input for XSL-processor
		objXSLProc.input = objXML;
		objXSLProc.addParameter("tournamentYearStart", getSelectedValue("tournamentYearStart"));
		objXSLProc.addParameter("tournamentMonthStart", getSelectedValue("tournamentMonthStart"));
		objXSLProc.addParameter("tournamentDayStart", getSelectedValue("tournamentDayStart"));
		objXSLProc.addParameter("tournamentYearEnd", getSelectedValue("tournamentYearEnd"));
		objXSLProc.addParameter("tournamentMonthEnd", getSelectedValue("tournamentMonthEnd"));
		objXSLProc.addParameter("tournamentDayEnd", getSelectedValue("tournamentDayEnd"));
		objXSLProc.addParameter("tournamentRateOfPlay", getSelectedValue("tournamentRateOfPlay"));

		// transform
		objXSLProc.transform()  
		
		var n = document.getElementById("tournamentCalendarOutput");

		clearTournamentCalenderOutput(n);
		
		data = n.innerHTML; 
		n.innerHTML = data + objXSLProc.output; 
	}
	
	// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation && document.implementation.createDocument)
	{
		xml=loadXMLDoc("tournaments.xml");
		xsl=loadXMLDoc("tournaments.xsl");
	
		xsltProcessor=new XSLTProcessor();
		xsltProcessor.importStylesheet(xsl);
		xsltProcessor.setParameter("", "tournamentYearStart", getSelectedValue("tournamentYearStart"));
		xsltProcessor.setParameter("", "tournamentMonthStart", getSelectedValue("tournamentMonthStart"));
		xsltProcessor.setParameter("", "tournamentDayStart", getSelectedValue("tournamentDayStart"));
		xsltProcessor.setParameter("", "tournamentYearEnd", getSelectedValue("tournamentYearEnd"));
		xsltProcessor.setParameter("", "tournamentMonthEnd", getSelectedValue("tournamentMonthEnd"));
		xsltProcessor.setParameter("", "tournamentDayEnd", getSelectedValue("tournamentDayEnd"));
		xsltProcessor.setParameter("", "tournamentRateOfPlay", getSelectedValue("tournamentRateOfPlay"));
		resultDocument = xsltProcessor.transformToFragment(xml,document);
		
		var n = document.getElementById("tournamentCalendarOutput");

		clearTournamentCalenderOutput(n);
		
		n.appendChild(resultDocument);
	}
}

