var ncaa = new function() {
 	this.ajax = new Ajax();
	this.saveOpacity = 0;
	this.tim;
	this.divisions = {
		"1":["Midwest","St. Louis"],
		"2":["West","Salt Lake City"],
		"3":["East","Syracuse"],
		"4":["South","Houston"]
	};
	
	this.teams = {
		"1":{
			"1":"Kansas",
			"2":"Ohio St.",
			"3":"Georgetown",
			"4":"Maryland",
			"5":"Michigan St.",
			"6":"Tennessee",
			"7":"Oklahoma St.",
			"8":"UNLV",
			"9":"N. Iowa",
			"10":"Georgia Tech",
			"11":"San Diego St.",
			"12":"New Mexico St.",
			"13":"Houston",
			"14":"Ohio",
			"15":"UC Santa Barb.",
			"16":"Lehigh"
		},
		"2":{
			"1":"Syracuse",
			"2":"Kansas St.",
			"3":"Pittsburgh",
			"4":"Vanderbilt",
			"5":"Butler",
			"6":"Xavier",
			"7":"BYU",
			"8":"Gonzaga",
			"9":"Florida St.",
			"10":"Florida",
			"11":"Minnesota",
			"12":"UTEP",
			"13":"Murray St.",
			"14":"Oakland",
			"15":"North Texas",
			"16":"Vermont"
		},
		"3":{
			"1":"Kentucky",
			"2":"West Virginia",
			"3":"New Mexico",
			"4":"Wisconsin",
			"5":"Temple",
			"6":"Marquette",
			"7":"Clemson",
			"8":"Texas",
			"9":"Wake Forest",
			"10":"Missouri",
			"11":"Washington",
			"12":"Cornell",
			"13":"Wofford",
			"14":"Montana",
			"15":"Morgan St.",
			"16":"East Tenn. St."
		},
		"4":{
			"1":"Duke",
			"2":"Villanova",
			"3":"Baylor",
			"4":"Purdue",
			"5":"Texas A&M",
			"6":"Notre Dame",
			"7":"Richmond",
			"8":"California",
			"9":"Louisville",
			"10":"St. Mary's (CA)",
			"11":"Old Dominion",
			"12":"Utah St.",
			"13":"Siena",
			"14":"Sam Houston",
			"15":"Robert Morris",
			"16":"Play-In Winner"
		}
	};
	
	this.winners = {
		"1":{
			"1":{
				"1":false,
				"2":false,
				"3":false,
				"4":false,
				"5":false,
				"6":false,
				"7":false,
				"8":false
				},
			"2":{
				"1":false,
				"2":false,
				"3":false,
				"4":false
				},
			"3":{
				"1":false,
				"2":false
				},
			"4":{
				"1":false
				}
			},
		"2":{
			"1":{
				"1":false,
				"2":false,
				"3":false,
				"4":false,
				"5":false,
				"6":false,
				"7":false,
				"8":false
				},
			"2":{
				"1":false,
				"2":false,
				"3":false,
				"4":false
				},
			"3":{
				"1":false,
				"2":false
				},
			"4":{
				"1":false
				}
			},
		"3":{
			"1":{
				"1":false,
				"2":false,
				"3":false,
				"4":false,
				"5":false,
				"6":false,
				"7":false,
				"8":false
				},
			"2":{
				"1":false,
				"2":false,
				"3":false,
				"4":false
				},
			"3":{
				"1":false,
				"2":false
				},
			"4":{
				"1":false
				}
			},
		"4":{
			"1":{
				"1":false,
				"2":false,
				"3":false,
				"4":false,
				"5":false,
				"6":false,
				"7":false,
				"8":false
				},
			"2":{
				"1":false,
				"2":false,
				"3":false,
				"4":false
				},
			"3":{
				"1":false,
				"2":false
				},
			"4":{
				"1":false
				}
			},
		"semifinals":{
			"1":false,
			"2":false
			},
		"finals":{
			"1":false
			},
		"tiebreaker":{
			"1":false,
			"2":false
			}
	};
	
	this.d = 1;
	
	this.pick = function(r, g, winner) {
	 // only do something if a winner is chosen from other game or round is 1
	 	var other_team = false;
		if(ncaa.d > 0 && ncaa.d < 5) {
		 	if(r > 1) { 
				var tmp = (winner)%2;
				other_team = ncaa.winners[ncaa.d][(r-1)][((g*2)-tmp)];
				
				var tmp = (winner+1)%2;
				winner = ncaa.winners[ncaa.d][(r-1)][(g*2)-tmp];
			} else {
				other_team = 17-winner;
			}
			
		 	if(r == 1 || (r > 1 && winner)) {
				var tmp_g = g;
				for(rnd = r+1; rnd<5; rnd++) {
					// clear out data for future rounds for the other team
					tmp_g = Math.ceil(tmp_g/2);
					if(ncaa.winners[ncaa.d][rnd][tmp_g] == other_team) {
						ncaa.winners[ncaa.d][rnd][tmp_g] = false;
						
						var c = document.getElementById("r"+rnd+"g"+tmp_g);
						c.innerHTML = "<p><span></span></p>";
					}
				}
				
				var c = document.getElementById("r"+r+"g"+g);
				c.innerHTML = "<p><span>"+ncaa.teams[ncaa.d][winner]+"</span></p>";
				
				ncaa.winners[ncaa.d][r][g] = winner;
				
				ncaa.checkWinners();
			}
		} else {
			switch(r) {
				case 5:
					// check finals
					var other_team = (winner)%2;
					other_team++;
					if(g == 2) other_team+=2;
					
					if(ncaa.winners["finals"][1] == other_team) {
						ncaa.winners["finals"][1] = false;
						var c = document.getElementById("finals1");
						c.innerHTML = "<p><span></span></p>";
					}
					
					ncaa.winners["semifinals"][g] = winner;
					var c = document.getElementById("semifinals"+g);
					c.innerHTML = "<p><span>"+ncaa.teams[winner][ncaa.winners[winner][4][1]]+"</span></p>";
					break;
				case 6:
					if(ncaa.winners["semifinals"][winner]) {
						ncaa.winners["finals"][1] = ncaa.winners["semifinals"][winner];
						var c = document.getElementById("finals1");
						c.innerHTML = "<p><span class=\"finals\">"+ncaa.teams[ncaa.winners["semifinals"][winner]][ncaa.winners[ncaa.winners["semifinals"][winner]][4][1]]+"</span></p>";
					}
					break;
			}
		}
	};
	
	this.checkWinners = function() {
		for(var d = 1; d <= 4; d++) {
			var mybool = 1;
			for(var r in ncaa.winners[d]) {
				for(var g in ncaa.winners[d][r]) {
//					alert("d"+d+"r"+r+"g"+g+": "+ncaa.winners[d][r][g]);
					if(ncaa.winners[d][r][g] == false) {
						mybool = 0;
					}
				}
			}
			
			if(mybool==1) {
				var c = document.getElementById("ncaa_check_"+d);
				c.className="ncaa_check_on";
			} else {
//				alert("ncaa_check_"+d);
				var c = document.getElementById("ncaa_check_"+d);
				c.className="ncaa_check_off";
			}
		}
		var mybool = 1;
		for(var g = 1; g <= 2; g++) {
			if(ncaa.winners["semifinals"][g] == false) {
				mybool=false;
			}
		}
		if(ncaa.winners["finals"][1] == false) {
			mybool=0;
		}
		
		if(mybool==1) {
			var c = document.getElementById("ncaa_check_final4");
			c.className="ncaa_finals_on";
		} else {
			var c = document.getElementById("ncaa_check_final4");
			c.className="ncaa_finals_off";
		}
	};
	
	this.save = function() {
		var out = "";
		for(var d = 1; d <= 4; d++) {
			for(var r in ncaa.winners[d]) {
				for(var g in ncaa.winners[d][r]) {
					out += "&d"+d+"r"+r+"g"+g+"="+ncaa.winners[d][r][g];
				}
			}
		}
		
		for(var i = 1; i <= 2; i++) {
			out+= "&semifinals"+i+"="+ncaa.winners["semifinals"][i];
			out+= "&tiebreaker"+i+"="+document.getElementById("tiebreaker"+i).value;
		}
		
		out += "&finals="+ncaa.winners["finals"][1];
		
		ncaa.ajax.setMimetype="text/html";
		ncaa.ajax.responseFormat="xml";
		ncaa.ajax.doGet("/includes/ncaa/src/index.php?xaction=update+picks"+ out, ncaa.finishSave, "xml"); 
	};
	
	this.finishSave = function(ajax_xml) {
		if(ncaa.d < 5) {
			ncaa.showSave();
			ncaa.d++;
		} else {
			ncaa.showSave();
		}
		
		ncaa.d = ncaa.checkNext(ncaa.d);
		
		ncaa.finishGet(ajax_xml);
	};
	
	this.showSave = function() {
		var c = document.getElementById("ncaa_save");
		if(ncaa.saveOpacity > 0) {
			ncaa.saveOpacity--;
			c.className="fade_"+ncaa.saveOpacity;
			if(ncaa.saveOpacity > 0) {
				ncaa.tim = setTimeout("ncaa.showSave()", 100);
			}
		} else {
			ncaa.saveOpacity=10;
			c.className="fade_"+ncaa.saveOpacity;
			ncaa.tim = setTimeout("ncaa.showSave()", 100);
		}
	};
	
	this.checkNext = function(next) {
		for(var d = 1; d <= 4; d++) {
			for(var r in ncaa.winners[d]) {
				for(var g in ncaa.winners[d][r]) {
					if(ncaa.winners[d][r][g] == false && d < next) {
						return d;
					}
				}
			}
		}
		
		return next;
	};
	
	this.switchBracket = function(d) {
		if(d == 5) {
			var bool = 0;
			for(var div = 1; div <= 4; div++) {
				if(!ncaa.winners[div][4][1]) bool = div;
			}
			
			if(bool > 0) { 
				ncaa.d=bool;
			} else {
				ncaa.d=d;
			}
			ncaa.populateBracket();
		} else {
			ncaa.d=d;
			ncaa.populateBracket();
		}
		return false;
	};
	
	this.populateBracket = function() {
		if(ncaa.d == 5) { // finals
			for(var div = 1; div <= 4; div++) {
				var c = document.getElementById("d"+div+"_winner");
				c.innerHTML = "<p><span>("+ncaa.winners[div][4][1]+") "+ncaa.teams[div][ncaa.winners[div][4][1]]+"</span></p>";
			}
			
			for(var i = 1; i < 3; i++) {
				if(ncaa.winners["semifinals"][i]) {
					var	c = document.getElementById("semifinals"+i);
					c.innerHTML = "<p><span>"+ncaa.teams[ncaa.winners["semifinals"][i]][ncaa.winners[ncaa.winners["semifinals"][i]][4][1]]+"</span></p>";
				}
			}
			
			if(ncaa.winners["finals"][1]) {
				var	c = document.getElementById("finals1");
				c.innerHTML = "<p><span class=\"finals\">"+ncaa.teams[ncaa.winners["finals"][1]][ncaa.winners[ncaa.winners["finals"][1]][4][1]]+"</span></p>";
			}
			
			for(var i = 1; i < 3; i++) {
				if(ncaa.winners["tiebreaker"][i]) {
					var	c = document.getElementById("tiebreaker"+i);
					c.value = ncaa.winners["tiebreaker"][i];
				}
			}
			
			var c = document.getElementById("loading_container");
			c.style.display = "none";
			
			var c = document.getElementById("ncaa_region_container");
			c.style.display = "none";
			
			var c = document.getElementById("finals_container");
			c.style.display = "block";

		} else {
			for(var r = 1; r <= 4; r++) {
				for(var g = 1; g <= Math.pow(2, (4-r)); g++) {
					var c = document.getElementById("r"+r+"g"+g);
					if(ncaa.winners[ncaa.d][r][g]) {
						c.innerHTML = "<p><span>"+ncaa.teams[ncaa.d][ncaa.winners[ncaa.d][r][g]]+"</span></p>";					
					} else {
						c.innerHTML = "<p><span></span></p>";
					}
				}
			}
			
			for(var j in ncaa.teams[ncaa.d]) {
				var c = document.getElementById("team_"+j);
				c.innerHTML = "<p><span>("+j+") "+ncaa.teams[ncaa.d][j]+"</span></p>";
			}
			
			var c = document.getElementById("ncaa_div");
			c.innerHTML = "<h4>"+ncaa.divisions[ncaa.d][0]+"</h4><p>"+ncaa.divisions[ncaa.d][1]+"</p>";
			
			var c = document.getElementById("finals_container");
			c.style.display = "none";
			
			var c = document.getElementById("loading_container");
			c.style.display = "none";
			
			var c = document.getElementById("ncaa_region_container");
			c.style.display = "block";
		}
	};
	
	this.getBracket = function(d) {
		
		var c = document.getElementById("ncaa_region_container");
		c.style.display="none";
		var c = document.getElementById("finals_container");
		c.style.display="none";
		
		var c = document.getElementById("loading_container");
		c.style.display="block";
		
		ncaa.ajax.setMimetype="text/xml";
		ncaa.ajax.responseFormat="xml";
		ncaa.ajax.doGet("/includes/ncaa/src/index.php?xaction=get+picks", ncaa.finishGet, "xml"); 
		
		return false;
	};
	
	this.finishGet = function(ajax_xml) {
		var xmlDom=ajax_xml;
		var root=xmlDom.documentElement;
		
		for(var i=0; i<root.childNodes.length; i++) {
			switch(root.childNodes[i].nodeName) {
				case "game":
					if(root.childNodes[i].getAttribute("winner")) {
						ncaa.winners[root.childNodes[i].getAttribute("d")][root.childNodes[i].getAttribute("r")][root.childNodes[i].getAttribute("g")] = root.childNodes[i].getAttribute("winner");
					}
					break;

				case "semifinals":
				case "finals":
					if(root.childNodes[i].getAttribute("winner")) {
						ncaa.winners[root.childNodes[i].nodeName][root.childNodes[i].getAttribute("g")] = root.childNodes[i].getAttribute("winner");
					}
					break;
				case "tiebreaker":
					if(root.childNodes[i].getAttribute("value")) {
						var c = document.getElementById("tiebreaker"+root.childNodes[i].getAttribute("id"));
						c.value = root.childNodes[i].getAttribute("value");
					}
					break;
				case "pick_name":
					var c = document.getElementById("pick_name");
					c.innerHTML = "<span>"+root.childNodes[i].firstChild.nodeValue+"</span>";
					break;

			}
		}
		ncaa.checkWinners();
		ncaa.populateBracket();
	};
}