
var schedule = {
	
	tabs: [],
	tab: false,
	table: false,
	id: 0,
	own: 0,

	init: function() {
		
		$("div.schedule-tab").each(function(i) {
			
			schedule.tabs[i] = this;
			
			if (i == 0) {
				schedule.set(this);
			}
			schedule.makeTable(this);
		});
		
		schedule.changeList();
		schedule.tablist();
	},
	
	changeList: function() {
		
		$("div.table-switcher-calender").bind("click", function() {
			
			$(schedule.tab).hide();
			
			var new_tab = false;
			for(var i=0; i<schedule.tabs.length; i++) {
				if (schedule.tabs[i] != schedule.tab) {
					new_tab = schedule.tabs[i];
					$(new_tab).fadeIn(650);
				}
			}
			
			schedule.set(new_tab);
			return false;
		});
	},
	
	set: function(tab) {
		
		schedule.tab 	= tab;
		schedule.table	= $(tab).find("table.schedule");
		schedule.own 	= $(schedule.table).attr("own");
		schedule.id		= $(schedule.table).attr("id");
	},
	
	tablist: function() {
		
		$("ul.pager li").bind("focus", function() {if(this.blur) this.blur();});
		
		$("ul.pager li").bind("click", function() {
			if ($(this).attr("class") == "active")
				return false;

			schedule.show_preload(schedule.tab);
			
			var li = this;
			$(this.parentNode).find("li").each(function() {
				
				if (this == li) {
					$(this).addClass("active");
					$(this).find("a").text($(this).find("a").attr("full"));
				} else {
					$(this).removeClass("active");
					$(this).find("a").text($(this).find("a").attr("short"));
				}
			});
			
			schedule.get($(this).attr("id"));
		 	return false;
		});
	},
	
	makeTable: function(tab) {

		if(tab == undefined)
			var tab = schedule.tab;

		$(tab).find("table.schedule tr[@class != 'caption']").each(function(){
			
			if($(this).hasClass("shaded") && $(this).attr("id") > 0) {
				schedule.mouseover(this);
				schedule.mouseout(this);
				
				if($(this).attr("id") > 0 && $(this).attr("date") != '') {
					schedule.onclick(this);
				}
			}
		});
	},
	
	mouseover: function(element) {
		$(element).bind("mouseover", function() {
			$(element).addClass("played");
		});
	},
	
	mouseout: function(element) {
		$(element).bind("mouseout", function() {
			$(element).removeClass("played");
		});
	},
	
	onclick: function(element) {
		
		var date	= $(element).attr("date");
		var id		= $(element).attr("id");
		
		$(element).bind("click", function(){
			//document.location.href = '/season/schedule/'+date+'-'+id+'/';
		});
		
		$(element).find("a").bind("click", function(){
			//document.location.href = '/season/schedule/'+date+'-'+id+'/';
			return false;
		});
	},
	
	get: function(id) {
		
		if ($("table.schedule[@id = "+id+"][@own = "+schedule.own+"]").length) {
			
			$(schedule.table[0].parentNode).hide();
			schedule.id		= id;
			schedule.table	= $("table.schedule[@id = "+id+"][@own = "+schedule.own+"]");
			
			$(schedule.table[0].parentNode).fadeIn(650);
			schedule.hide_preload(schedule.tab);
			
		} else {
			$.ajax({
				type: "GET",
		  		url: "/season/schedule/get/",
		  		data: "month="+id+"&own="+schedule.own,
		  		async: true,
				success:
					function(data) {
						if (data.length > 0) {
							$(schedule.table[0].parentNode).after(data);
							$(schedule.table[0].parentNode).hide();
							
							schedule.id		= id;
							schedule.table	= $("table.schedule[@id = "+id+"][@own = "+schedule.own+"]");
							
							$(schedule.table[0].parentNode).fadeIn(650);
							
							schedule.makeTable();
							schedule.hide_preload(schedule.tab);
						}
					}
		 	});
		}
	},
	
	show_preload: function(element) {
		
		var preload = document.createElement("div");
		$(preload).addClass("schedule-preloader");
		
		var img = document.createElement("img");
		$(img).attr("src", "/_img/template/preloader.gif");
		$(preload).append(img);
		
		$(element).append(preload);
	},
	
	hide_preload: function(element) {
		$(element).find(".schedule-preloader").remove();
	}
}

var tournament = {
	
	tabs: [],
	tab: false,
	
	init: function() {
		
		$("div.schedule-tab").each(function(i) {
			
			tournament.tabs[i] = this;
			
			if (i == 0) {
				tournament.tab = this;
			} else {
				$(this).hide();
			}
		});
		
		tournament.changeList();
	},
	
	changeList: function() {
		
		$("div.table-switcher").bind("click", function() {
			
			$(tournament.tab).hide();
			
			var new_tab = false;
			for(var i=0; i<tournament.tabs.length; i++) {
				if (tournament.tabs[i] != tournament.tab) {
					new_tab = tournament.tabs[i];
					$(new_tab).fadeIn(650);
				}
			}
			
			tournament.tab = new_tab;
			return false;
		});
	}
}
