var months = null;
var items = null;
var user = null;

var myGlobalHandlers = {
	onCreate: function(){
		Effect.Appear('systemWorking');
	},

	onComplete: function() {
		if(Ajax.activeRequestCount == 0){
			Effect.Fade('systemWorking');
		}
	},
	
	onFailure: reportError
};

Ajax.Responders.register(myGlobalHandlers);

function reportError(request)
{
	alert('Sorry. There was an error.');
}

//event handler for XMLHttpRequest
function getTournaments() {

	var url = 'xml/getTournamentInfos.php';

	new Ajax.Request(
		url,
		{
			method: 'get',
			onComplete: createTournamentTable,
		  onFailure: reportError
	});

}

function getAdminTournaments() {
	var url = 'xml/getTournamentInfos.php';

	var myAjax = new Ajax.Request(
		url,
		{
			method: 'get',
			onComplete: function() {
				if(Ajax.activeRequestCount == 0){
					Effect.Fade('systemWorking');
					createAdminTournamentTable;
				} 
		}
	});	
}

function getTournamentOverview() {   
	var url = 'xml/getTournamentInfos.php';

	var myAjax = new Ajax.Request(
		url,
		{
			method: 'get',
			onComplete: createTournamentOverview,
			onFailure: reportError
		}
	);	
}

function showTournaments(year) {

	var url = 'xml/getTournamentInfos.php';
	var pars = 'id='+year;

	var myAjax = new Ajax.Request(
		url,
		{
			method: 'get',
			parameters: pars,
			onComplete: createTournamentOverview
		});	
}

function createTournamentTable(originalRequest){
  var doc = originalRequest.responseXML;
  //Effect.Fade('systemWorking');
	
	var idx = 0, idx2 = 0;
	var bufferHTML = new Array( );
	var bufferCount = 0;

	bufferHTML[bufferCount++] = "<table><tbody>";

  var items = doc.getElementsByTagName("tournament");

	if(items.length==0) {
		bufferHTML[bufferCount++] = "<tr><td colspan=\"2\"><i>Keine Turniere gefunden</i></td></tr>";
	} else {
		if(items.length > 5)
			var show = 5;
		else
			var show = items.length;	
		
		for(idx; idx < show; idx++) {
			bufferHTML[bufferCount++] = "<tr>\n";
			bufferHTML[bufferCount++] = "<td>"+DatumsWandler(items[idx].getElementsByTagName("startdate")[0].firstChild.data)+"</td>";
			if(items[idx].getElementsByTagName("link")[0].hasChildNodes())
				bufferHTML[bufferCount++] = "<td><a href=\""+decodeURIComponent(items[idx].getElementsByTagName("link")[0].firstChild.data)+"\">"+items[idx].getAttribute('name')+"</a></td>";
			else
				bufferHTML[bufferCount++] = "<td>"+items[idx].getAttribute('name')+"</td>";
	
			bufferHTML[bufferCount++] = "</tr>\n";
		}
	}
  		  
	bufferHTML[bufferCount++] = "</tbody></table>";
	$('tournaments').innerHTML = bufferHTML.join("");
};

function createTournamentOverview(originalRequest){
	var doc = originalRequest.responseXML;

  var idx = 0, idx2 = 0;
  var bufferHTML = new Array( );
  var bufferCount = 0;
  var now = new Date();
  var curyear = now.getYear();
  if (curyear < 999)
    curyear += 1900;
  for(y = 2001;y <= (curyear+1); y++) {
    bufferHTML[bufferCount++] = "<a href=\"#\" onClick=\"showTournaments('"+y+"')\">"+y+"</a> - "; 
  }
  bufferHTML[bufferCount++] = "<a href=\"#\" onClick=\"showTournaments('all')\">alle</a><br>\n";
  
  bufferHTML[bufferCount++] = "\n<table id=\"tournamentlist\" class=\"tournamentlist\" border=\"0\"><tbody>\n";
 
  var now = new Date();
  var startMonth = now.getMonth();
  var startYear = now.getYear();
  var month = new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni",
                      "Juli", "August", "September", "Oktober", "November", "Dezember");
  var procMonth = 0;
  var procYear = 0;
  var curYear = startYear;
  var curMonth = startMonth;
  
  var root = doc.documentElement;
  items = doc.getElementsByTagName("tournament");
  var show = items.length;	

  user = root.getAttribute("user");

  if(items.length==0) {
    bufferHTML[bufferCount++] = "<tr><td colspan=\"6\"><h3>Keine Turniere gefunden</h3></td></tr>";
  } else
  
  for(idx; idx < show; idx++) {
    testDate = items[idx].getElementsByTagName("startdate")[0].firstChild.data;
    procMonth = parseInt(testDate.substr(5,2),10);
    procYear = parseInt(testDate.substr(0,4),10);

    if(curMonth!=procMonth) {
      bufferHTML[bufferCount++] = "<tr><td colspan=\"8\"><h2 style=\"border-bottom: 1px solid;\">"+month[procMonth-1];
      if(curYear!=procYear) {
        bufferHTML[bufferCount++] = " "+procYear;
        curYear = procYear;
      }
      bufferHTML[bufferCount++] = "</h2></td></tr>\n";
      curMonth = procMonth;
    }
    if(idx%2==0) {
      bufferHTML[bufferCount++] = "<tr id=\"head_"+idx+"\" onMouseOver=\"\"><a name=\"id_"+items[idx].getAttribute('id')+"\"/>\n";
    } else {
      bufferHTML[bufferCount++] = "<tr id=\"head_"+idx+"\" style=\"background-color: #F7F7F7;\" onMouseOver=\"\"><a name=\"id_"+items[idx].getAttribute('id')+"\"/>\n";
    }
    if(items[idx].getElementsByTagName("status")[0]) {
      if(items[idx].getElementsByTagName("status")[0].firstChild.data=="bestaetigt") {
        bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 1px;\"><div class=\"accepted\">&nbsp;</div></td>\n";
      } else 
      if((items[idx].getElementsByTagName("status")[0].firstChild.data=="geplant")||(items[idx].getElementsByTagName("status")[0].firstChild.data=="gemeldet")) {
        bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 1px;\"><div class=\"planned\">&nbsp;</div></td>\n";
      } else {
        bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 1px;\"><div class=\"unknown\">&nbsp;</div></td>\n";
      }  
    } else {
      bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 1px;\"><div class=\"unknown\">&nbsp;</div></td>\n";
    } 
    bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 25px;\">"+DatumsWandler2(items[idx].getElementsByTagName("startdate")[0].firstChild.data,items[idx].getElementsByTagName("enddate")[0].firstChild.data)+"</td>\n";
     if(items[idx].getElementsByTagName("status")[0]) {
      if(items[idx].getElementsByTagName("status")[0].firstChild.data=="bestaetigt") {   
        bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"font-weight: bold; width: 125px;\">"+items[idx].getAttribute('name');
      } else {
        bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 125px;\">"+items[idx].getAttribute('name');
      }
    } else {
      bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 125px;\">"+items[idx].getAttribute('name');
    }
//    if(items[idx].getElementsByTagName("link")[0].hasChildNodes()) {
//      bufferHTML[bufferCount++] = "<a href=\""+decodeURIComponent(items[idx].getElementsByTagName("link")[0].firstChild.data)+"\"></a>";
//    }
    bufferHTML[bufferCount++] = "</td>\n";
    if(items[idx].getElementsByTagName('location')[0].getAttribute("country"))
      bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 25px;\"><img src=\"img/flags/"+items[idx].getElementsByTagName('location')[0].getAttribute("country")+".png\" alt=\"\" border=\"0\">&nbsp;&nbsp;"+items[idx].getElementsByTagName('location')[0].firstChild.data+"</td>";
    else
      bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 25px;\">"+items[idx].getElementsByTagName('location')[0].firstChild.data+"</td>"; 
    bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 30px;\">";
    if(items[idx].getElementsByTagName("category1")[0].hasChildNodes()) {
      bufferHTML[bufferCount++] = items[idx].getElementsByTagName("category1")[0].firstChild.data;
      if(items[idx].getElementsByTagName("category2")[0].hasChildNodes()) {
        bufferHTML[bufferCount++] = ","+items[idx].getElementsByTagName("category2")[0].firstChild.data;
      } 
    } else {
      if(items[idx].getElementsByTagName("category2")[0].hasChildNodes()) {
        bufferHTML[bufferCount++] = items[idx].getElementsByTagName("category2")[0].firstChild.data;
      }     
    }
    bufferHTML[bufferCount++] = "</td>\n";
    if(items[idx].getElementsByTagName("teamphoto")[0])
      bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 16px;\"><a href=\""+items[idx].getElementsByTagName("teamphoto")[0].firstChild.data+"\"><img src=\"img/photo.png\" border=\"0\" onMouseOver=\"showThumb();\"></a></td>\n";
    else
      bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 16px;\">&nbsp;</td>\n";
//    bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 16px;\"><a href=\"#id_"+items[idx].getAttribute('id')+"\" onClick=\"appendDetails('"+idx+"')\"><img id='zoom_"+idx+"' border=\"0\" src=\"img/zoom_in.png\" alt=\"Details\"></a></td>\n";
    bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 16px;\"><span onClick=\"appendDetails('"+idx+"')\"><img id='zoom_"+idx+"' border=\"0\" src=\"img/zoom_in.png\" alt=\"Details\"></span></td>\n";
    // Details
    bufferHTML[bufferCount++] = "</tr>\n";
  }
  
  bufferHTML[bufferCount++] = "</tbody></table>\n";
  
  if(items.length>0)
   bufferHTML[bufferCount++] = "<p>"+root.getAttribute('count')+" Turniere gefunden.</p>\n";

  $('tournaments').innerHTML = bufferHTML.join("");
};

function createAdminTournamentTable(doc){
  var idx = 0, idx2 = 0;
  var bufferHTML = new Array( );
  var bufferCount = 0;

  bufferHTML[bufferCount++] = "\n<table id=\"tournaments\" class=\"tournamentlist\" border=\"0\" width=\"100%\"><tbody>\n";
 
  var now = new Date();
  var startMonth = now.getMonth();
  var startYear = now.getYear();
  var month = new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni",
                      "Juli", "August", "September", "Oktober", "November", "Dezember");
  var procMonth = 0;
  var procYear = 0;
  var curYear = startYear;
  var curMonth = startMonth;
  
  var root = doc.documentElement;
  items = doc.getElementsByTagName("tournament");
  var show = items.length;	
  
  if(items.length==0) {
    bufferHTML[bufferCount++] = "<tr><td colspan=\"6\"><h3>Keine Turnier gefunden</h3></td></tr>";
  } else
  
  for(idx; idx < show; idx++) {
    testDate = items[idx].getElementsByTagName("startdate")[0].firstChild.data;

    if(idx%2==0) {
      bufferHTML[bufferCount++] = "<tr id=\"head_"+idx+"\" onMouseOver=\"\"><a name=\"id_"+items[idx].getAttribute('id')+"\"/>\n";
    } else {
      bufferHTML[bufferCount++] = "<tr id=\"head_"+idx+"\" style=\"background-color: #F7F7F7;\" onMouseOver=\"\"><a name=\"id_"+items[idx].getAttribute('id')+"\"/>\n";
    }
    if(items[idx].getElementsByTagName("status")[0]) {
      if(items[idx].getElementsByTagName("status")[0].firstChild.data=="bestaetigt") {
        bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 1px;\"><div class=\"accepted\">&nbsp;</div></td>\n";
      } else 
      if((items[idx].getElementsByTagName("status")[0].firstChild.data=="geplant")||(items[idx].getElementsByTagName("status")[0].firstChild.data=="gemeldet")) {
        bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 1px;\"><div class=\"planned\">&nbsp;</div></td>\n";
      } else {
        bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 1px;\"><div class=\"unknown\">&nbsp;</div></td>\n";
      }  
    } else {
      bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"width: 1px;\"><div class=\"unknown\">&nbsp;</div></td>\n";
    } 
    bufferHTML[bufferCount++] = "<td class=\"tournamententry\">"+DatumsWandler2(items[idx].getElementsByTagName("startdate")[0].firstChild.data,items[idx].getElementsByTagName("enddate")[0].firstChild.data)+"</td>\n";
     if(items[idx].getElementsByTagName("status")[0]) {
      if(items[idx].getElementsByTagName("status")[0].firstChild.data=="bestaetigt") {   
        bufferHTML[bufferCount++] = "<td class=\"tournamententry\" style=\"font-weight: bold;\">"+items[idx].getAttribute('name');
      } else {
        bufferHTML[bufferCount++] = "<td class=\"tournamententry\">"+items[idx].getAttribute('name');
      }
    } else {
      bufferHTML[bufferCount++] = "<td class=\"tournamententry\">"+items[idx].getAttribute('name');
    }
//    if(items[idx].getElementsByTagName("link")[0].hasChildNodes()) {
//      bufferHTML[bufferCount++] = "<a href=\""+decodeURIComponent(items[idx].getElementsByTagName("link")[0].firstChild.data)+"\"></a>";
//    }
    bufferHTML[bufferCount++] = "</td>\n";
    if(items[idx].getElementsByTagName('location')[0].getAttribute("country"))
      bufferHTML[bufferCount++] = "<td class=\"tournamententry\"><img src=\"img/flags/"+items[idx].getElementsByTagName('location')[0].getAttribute("country")+".png\" alt=\"\" border=\"0\">&nbsp;&nbsp;"+items[idx].getElementsByTagName('location')[0].firstChild.data+"</td>";
    else
      bufferHTML[bufferCount++] = "<td class=\"tournamententry\">"+items[idx].getElementsByTagName('location')[0].firstChild.data+"</td>"; 
    bufferHTML[bufferCount++] = "<td class=\"tournamententry\">";
    if(items[idx].getElementsByTagName("category1")[0].hasChildNodes()) {
      bufferHTML[bufferCount++] = items[idx].getElementsByTagName("category1")[0].firstChild.data;
      if(items[idx].getElementsByTagName("category2")[0].hasChildNodes()) {
        bufferHTML[bufferCount++] = ","+items[idx].getElementsByTagName("category2")[0].firstChild.data;
      } 
    } else {
      if(items[idx].getElementsByTagName("category2")[0].hasChildNodes()) {
        bufferHTML[bufferCount++] = items[idx].getElementsByTagName("category2")[0].firstChild.data;
      }     
    }
    bufferHTML[bufferCount++] = "</td>\n";
    bufferHTML[bufferCount++] = "  <td class=\"tournamententry\"><a href=\"admin.php?content=tournament&action=show&tid="+items[idx].getAttribute("id")+"\"><img src=\"img/date.png\" border=\"0\"></a> <a href=\"admin.php?content=tournament&action=edit&uid="+items[idx].getAttribute("id")+"\"><img src=\"img/date_edit.png\" border=\"0\"></a> <a href=\"admin.php?content=tournament&action=delete&uid="+items[idx].getAttribute("id")+"\"><img src=\"img/date_delete.png\" border=\"0\"></a></td>\n";
    bufferHTML[bufferCount++] = "</tr>\n";
  }
  
  bufferHTML[bufferCount++] = "</tbody></table><br/>\n";

  bufferHTML[bufferCount++] = items.length+" Turniere gefunden.<br/><br/>\n";
  
  bufferHTML[bufferCount++] = "<div>";
  bufferHTML[bufferCount++] = "<div style=\"float: left; width: 65px; border: 1px solid rgb(224,224,224); background-color: #F7F7F7;\"><a href=\"#\"><img src=\"img/resultset_first.png\" border=\"0\"></a>";
  bufferHTML[bufferCount++] = "<a href=\"#\"><img src=\"img/resultset_previous.png\" border=\"0\"></a>";
  bufferHTML[bufferCount++] = "<a href=\"#\"><img src=\"img/resultset_next.png\" border=\"0\"></a>";
  bufferHTML[bufferCount++] = "<a href=\"#\"><img src=\"img/resultset_last.png\" border=\"0\"></a></div>";
  bufferHTML[bufferCount++] = "<div style=\"float: right; width: 17px; border: 1px solid rgb(224,224,224); background-color: #F7F7F7;\"><a href=\"#\"><img src=\"img/date_add.png\" border=\"0\"></a>";  
  bufferHTML[bufferCount++] = "</div><br  style=\"float: none;\">";

  return bufferHTML.join("");
};

function appendDetails(id) {
    var bufferHTML = new Array( );
    var bufferCount = 0;
    var t_player = false;

    bufferHTML[bufferCount++] = "<td colspan=\"8\" style=\"border-bottom: 1px solid #000;\">\n";
    bufferHTML[bufferCount++] = "<strong>"+items[id].getAttribute('name')+"</strong><br/>\n";
    if(items[id].getElementsByTagName("link")[0].hasChildNodes()) {
      bufferHTML[bufferCount++] = "<a href=\""+decodeURIComponent(items[id].getElementsByTagName('link')[0].firstChild.data)+"\">"+decodeURIComponent(items[id].getElementsByTagName('link')[0].firstChild.data)+"</a><br/>\n";
    }
    if(items[id].getElementsByTagName("remark")[0].hasChildNodes()) {
      bufferHTML[bufferCount++] = "<br/>"+items[id].getElementsByTagName('remark')[0].firstChild.data+"<br/>\n";
    }
        
    if(items[id].getElementsByTagName("team")[0]) {
//      bufferHTML[bufferCount++] = "Teams: <br/>\n";
      for (i = 0; i < items[id].getElementsByTagName("team").length; i++) {
        bufferHTML[bufferCount++] = "<br/>\n<strong>"+items[id].getElementsByTagName("team")[i].getAttribute("name")+"</strong>";
        bufferHTML[bufferCount++] = " ("+items[id].getElementsByTagName("team")[i].getElementsByTagName("status")[0].firstChild.data+")\n";
        if(items[id].getElementsByTagName("team")[i].getElementsByTagName("participants")[0]) {
          bufferHTML[bufferCount++] = items[id].getElementsByTagName("team")[i].getElementsByTagName("participants")[0].getAttribute("number")[0]+" Spieler<br/>\n";
          for (j = 0; j < items[id].getElementsByTagName("team")[i].getElementsByTagName("player").length; j++) {
            bufferHTML[bufferCount++] = "<a href=\"playerDetails.php?id="+items[id].getElementsByTagName("team")[i].getElementsByTagName("player")[j].getAttribute("id")+"\">";
            bufferHTML[bufferCount++] = items[id].getElementsByTagName("team")[i].getElementsByTagName("player")[j].getAttribute("name")+"</a> ";
            bufferHTML[bufferCount++] = "<span id=\"editPlayer_"+items[id].getElementsByTagName("team")[i].getElementsByTagName("player")[j].getAttribute("id")+"\">"+items[id].getElementsByTagName("team")[i].getElementsByTagName("player")[j].getElementsByTagName("presumption")[0].firstChild.data+"</span>% ";
            if(items[id].getElementsByTagName("team")[i].getElementsByTagName("player")[j].getAttribute("id")==user) {
              t_player = true;
              bufferHTML[bufferCount++] = "<a href=\"#\"><img src=\"img/pencil.png\" align=\"top\" border=\"0\"></a>";
            }  
            if(items[id].getElementsByTagName("team")[i].getElementsByTagName("player")[j].getElementsByTagName("remark")[0].hasChildNodes())
              bufferHTML[bufferCount++] = items[id].getElementsByTagName("team")[i].getElementsByTagName("player")[j].getElementsByTagName("remark")[0].firstChild.data;
            bufferHTML[bufferCount++] = "<br/>\n";
          }
        }
        bufferHTML[bufferCount++] = "<br/>\n";
        if((!t_player)&&(user!="")) {
          bufferHTML[bufferCount++] = "<br/><a href=\"tournaments.php?action=registerPlayer&team="+items[id].getElementsByTagName("team")[i].getAttribute("id")+"&id="+items[id].getAttribute('id')+"\"><img src=\"img/user_add.png\" border=\"0\" title=\"als Spieler eintragen\"> als Spieler eintragen</a><br/>";
        }
      }
    } else {
      bufferHTML[bufferCount++] = "<br/>Teilnahme bisher noch nicht geplant<br/>\n";
    }
      if(user!="") {
        bufferHTML[bufferCount++] = "<br/><a href=\"tournaments.php?action=registerTeam&id="+items[id].getAttribute('id')+"\"><img src=\"img/group_add.png\" border=\"0\" title=\"Team melden\"> Team melden</a><br/>\n";
      }  
    
    bufferHTML[bufferCount++] = "<p align=\"right\">eingetragen am "+DatumsWandler(items[id].getElementsByTagName("created")[0].firstChild.data)+" von <a href=\"playerDetails.php?id="+items[id].getElementsByTagName("author")[0].getElementsByTagName("id")[0].firstChild.data+"\">"+items[id].getElementsByTagName("author")[0].getElementsByTagName("name")[0].firstChild.data+"</a></p>\n";
//    bufferHTML[bufferCount++] = "<br/>ge&auml;ndert: "+items[id].getElementsByTagName("modified")[0].firstChild.data+"\n";
    bufferHTML[bufferCount++] = "</td>\n";
    
    if(!document.getElementById("details_"+id)) {

	  new Insertion.After('head_'+id, '<tr id=\"details_'+id+'\"></tr>');
	        
      document.getElementById("zoom_"+id).src = "img/zoom_out.png";
      document.getElementById("details_"+id).innerHTML = bufferHTML.join("");
      
    } else {
      // entferne Details
      var node = document.getElementById("details_"+id); 
      document.getElementById("details_"+id).parentNode.removeChild(node);
      document.getElementById("zoom_"+id).src = "img/zoom_in.png";
    }

}

function showThumb() {

}

function getMap() {
  GDownloadUrl("data.xml", function(data, responseCode) {
    var xml = GXml.parse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++) {
      var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                              parseFloat(markers[i].getAttribute("lng")));
      map.addOverlay(new GMarker(point));
    }
  });  
}

