var CompetitionFunctions = {
	seizoen:	null,
	action:		null,
	teamid:     null,
	wid:		null,
	id:			null,
	updatepage: null,

	poule_box:	null,
	
	last_settings: null,

	load: function(seizoen) { 
		this.seizoen = seizoen != "" ? seizoen : PageFunctions.getURLParamValue("seizoen");
		this.action = PageFunctions.getURLParamValue("action");
		this.teamid = PageFunctions.getURLParamValue("teamid");

		setTimeout('CompetitionFunctions.loadPouleBox()', 200);
	},

	pouleChanged: function( value ) {
		if (this.last_settings != null) {
			var settings = this.last_settings;
			settings.set('pouleid', value);
			this.loadPage( settings.get('action'), settings );
		} else {
			location.href= "?action=" + this.action + "&teamid=" + this.teamid + "&pouleid=" + value + "&seizoen=" + this.seizoen;
		}
	},

	loadPage: function( page, params ) {
		var seizoen;
		var pouleid;
		var teamid;
		var wid;
		var id;

		var updatepage;

		if (typeof params != "undefined") {
			seizoen = (typeof params.get('seizoen') != "undefined") ? params.get('seizoen') : this.seizoen;
			pouleid = (typeof params.get('pouleid') != "undefined") ? params.get('pouleid') : 0;
			teamid = (typeof params.get('teamid') != "undefined") ? params.get('teamid') : 0;
			action = (typeof params.get('action') != "undefined") ? params.get('action') : "";
			wid = (typeof params.get('wid') != "undefined") ? params.get('wid') : "";
			id =  (typeof params.get('id') != "undefined") ? params.get('id') : "";
			updatepage = (typeof params.get('updatepage') != "undefined") ? params.get('updatepage') : "competitie.php";
		} else {
			seizoen = this.seizoen;
			pouleid = this.seizoen;
			teamid = this.teamid;
			wid = this.wid;
			id = this.id;
			updatepage = "competitie.php";
		}

		// Reset teaminfo
		if (teamid == 0) { 
			setTimeout("TeaminfoFunctions.clearTeaminfo(); TeaminfoFunctions.activateTeamMenu()", 100);
		} else {
			TeaminfoFunctions.last_settings = new Hash({ seizoen: seizoen, pouleid: pouleid, teamid: teamid });
			setTimeout("TeaminfoFunctions.activateTeamMenu()", 100);
		}

		switch (page) {
			case "home":
				if ($('home_div').innerHTML == "") {
					new Ajax.Updater('home_div', 'main_home.php', {
						method: 'get'
					});
				}
				$('home_div').show();
				$('main_content_div').update('');
				$('main_div').hide();
				break;
			case "programma":
			case "uitslagen":
			case "standen":
			case "uitslagenlijst":
				$('home_div').hide();
				$('main_div').show();

				// Show loading thing
				$('ajax_loading').show();

				// For showing VR standen
				if (page == "standen" && pouleid == -1) return;
			
				new Ajax.Updater('main_content_div', updatepage, {
					method: 'get',
					parameters: {
						action:		page,
						seizoen:	seizoen,
						pouleid:	pouleid,
						teamid:		teamid
					},
					
					onSuccess: function(transport) { 
						CompetitionFunctions.last_settings = new Hash({ action: page, seizoen: seizoen, pouleid: pouleid, teamid: teamid, wid: 0, updatepage: updatepage });
						setTimeout("CompetitionFunctions.load( '" + seizoen + "' );", 100);

						$('ajax_loading').hide();
					},

					onComplete: function(transport) {
						if ((pouleid > 0) && (page == "uitslagen" || page == "uitslagenlijst") && ($('page_kop_text').innerHTML.include(' comp') == true)) {
							if (page == "uitslagen") {
								all_txt = "Weergave:&nbsp;[Alle uitslagen]&nbsp;[<a href=\"#\" onClick=\"CompetitionFunctions.loadPage('uitslagenlijst', $H({seizoen: '" + seizoen + "', pouleid: " + pouleid + ", teamid: " + teamid + "}));\">Totaallijst</a>]";
								setTimeout("$('weergave_txt_div').update( all_txt );", 150);
							}
							if (page == "uitslagenlijst") {
								all_txt = "Weergave:&nbsp;[<a href=\"#\" onClick=\"CompetitionFunctions.loadPage('uitslagen', $H({seizoen: '" + seizoen + "', pouleid: " + pouleid + ", teamid: " + teamid + "}));\">Alle uitslagen</a>]&nbsp;[Totaallijst]";
								setTimeout("$('weergave_txt_div').update( all_txt );", 150);
							}
						}
					},

					onFailure: function(transport) {
						alert('Er is een fout ontstaan tijdens het laden van content.');
						$('ajax_loading').hide();
					}
				}); 

				break;
			case "wedstrijdinfo": 
				$('home_div').hide();
				$('main_div').show();

				// Show loading thing
				$('ajax_loading').show();

				new Ajax.Updater('main_content_div', 'wedstrijdinfo.php', {
					method: 'get',
					parameters: {
						wid:		wid,
						teamid:		teamid
					},
					
					onSuccess: function(transport) { 
						CompetitionFunctions.last_settings = new Hash({ action: page, seizoen: seizoen, pouleid: pouleid, teamid: teamid, wid: wid, updatepage: updatepage });
						setTimeout("CompetitionFunctions.load( '" + seizoen + "' );", 100);

						$('ajax_loading').hide();
					},

					onFailure: function(transport) {
						alert('Er is een fout ontstaan tijdens het laden van content.');
						$('ajax_loading').hide();
					}
				}); 

				break;

			case "teaminfo":
				TeaminfoFunctions.loadPage("teaminfo", new Hash( { teamid: teamid, seizoen: seizoen } ) );
				break;
			
			case "nieuwsdetail":
			case "nieuws":
			case "nieuwsoverzicht":
				$('home_div').hide();
				$('main_div').show();

				// Show loading thing
				$('ajax_loading').show();

				new Ajax.Updater('main_content_div', 'nieuws.php', {
					method: 'get',
					parameters: {
						action:		page,
						id:			id,
						seizoen:	seizoen
					},
					
					onSuccess: function(transport) { 
						CompetitionFunctions.last_settings = new Hash({ action: page, seizoen: seizoen, id: id, pouleid: null, teamid: null, wid: null, updatepage: null });
						setTimeout("CompetitionFunctions.load( '" + seizoen + "' );", 100);

						$('ajax_loading').hide();
					},

					onFailure: function(transport) {
						alert('Er is een fout ontstaan tijdens het laden van content.');
						$('ajax_loading').hide();
					}
				}); 
		}
	},

	loadPouleBox: function(type) { 
		this.poule_box = $('poule');

		if (typeof type == "undefined") {
			type = "competitie";
		}

		if ($(this.poule_box)) {
			if (type == "competitie") {
				this.poule_box.observe('change', function(event) {
					me = Event.element(event);
					value = $F('poule');
					CompetitionFunctions.pouleChanged(value);
				});
			} 
			if (type == "teaminfo") {
				this.poule_box.observe('change', function(event) {
					me = Event.element(event);
					value = $F('poule');
					TeaminfoFunctions.pouleChanged(value);
				});
			}
		}
	}

}
