var ncaa = new function() {
 	this.ajax = new Ajax();
	this.saveOpacity = 0;
	this.tim;
	this.divisions = {
		"1":["East",""],
		"2":["West",""],
		"3":["Southwest",""],
		"4":["Southeast",""]
	};
	
	this.teams = {
		"1":{
			"1":"Ohio St.",
			"16":"UTSA/AL ST",

			"8":"G Mason",
			"9":"Villanova",
			
			"5":"W Virginia",
			"12":"UAB/Clem",

			"4":"Kentucky",
			"13":"Princeton",
			
			"6":"Xavier",
			"11":"Marquette",
			
			"3":"Syracuse",
			"14":"Indiana St.",
			
			"7":"Washington",
			"10":"Georgia",
			
			"2":"UNC",
			"15":"LIU-Brook"
		},
		"2":{
			"1":"Duke",
			"16":"Hampton",

			"8":"Michigan",
			"9":"Tennessee",
			
			"5":"Arizona",
			"12":"Memphis",

			"4":"Texas",
			"13":"Oakland",
			
			"6":"Cincy",
			"11":"Missouri",
			
			"3":"UConn",
			"14":"Bucknell",
			
			"7":"Temple",
			"10":"Penn State",
			
			"2":"SDSU",
			"15":"N Colorado"
		},
		"3":{
			"1":"Kansas",
			"16":"Boston U",

			"8":"UNLV",
			"9":"Illinois",
			
			"5":"Vanderbilt",
			"12":"Richmond",

			"4":"Louisville",
			"13":"Morehead St",
			
			"6":"Georgetown",
			"11":"USC/VCU",
			
			"3":"Purdue",
			"14":"St. Peter's",
			
			"7":"Texas A&M",
			"10":"Florida St.",
			
			"2":"Notre Dame",
			"15":"Akron"
		},
		"4":{
			"1":"Pittsburgh",
			"16":"UNCA/ARLR",

			"8":"Butler",
			"9":"ODU",
			
			"5":"Kansas St",
			"12":"Utah St",

			"4":"Wisconsin",
			"13":"Belmont",
			
			"6":"St. John's",
			"11":"Gonzaga",
			
			"3":"BYU",
			"14":"Wofford",
			
			"7":"UCLA",
			"10":"Michigan St",
			
			"2":"Florida",
			"15":"UCSB"
		}
	};
	
	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();
	};
}
