var LeagueTables									= {
	sLinkID : 'leagueTableLink',
	nInitialHeight : 800,
	nInitialWidth : 535,
	nBuffer : 60,
	sContainerID : 'leagueTables',
	sContainerPadding : 20,
	
	initLink : function() {
		if(!document.getElementById||!document.createTextNode){return;}
		
		if (!document.getElementById(LeagueTables.sLinkID)) {return;}
		
		var eLink									= document.getElementById(LeagueTables.sLinkID);
		
		eLink.onclick								= function() {
			return LeagueTables.openTableWindow(this.href);
		}
	},
	
	openTableWindow : function(sLink) {
		var wLeagueTable							= window.open(sLink, 'leagueTable', 'height=LeagueTables.nInitialHeight, width=LeagueTables.nInitialWidth, scrollbars=1, menubar=1, toolbar=1, resizable=1');
		return false;
	},
	
	initTableResize : function() {
		if(!document.getElementById||!document.createTextNode){return;}
		
		// TODO: This needs to be smarter
		var aTables									= document.getElementsByTagName('table');
		if (aTables.length == 0) {return;}
		
		LeagueTables.resizeWindow(aTables[0]);
		
		LeagueTables.addLinkEvents(aTables[0]);
		
		window.onresize								= function () {
			LeagueTables.resizeContainer(aTables[0]);
		}
	},
	
	addLinkEvents : function(eTable) {
		var aLinks									= eTable.getElementsByTagName('a');
		
		for (var i = 0; i < aLinks.length; i++) {
			aLinks[i].onclick						= function() {
				LeagueTables.makeFullScreen();
			}
		}
	},
	
	makeFullScreen : function() {
		window.resizeTo(screen.availWidth, screen.availHeight);
		window.moveTo(0, 0);
	},
	
	resizeWindow : function(eTable) {
		var nTableSize								= Number(LeagueTables.numbersOnly(LeagueTables.getStyle(eTable, 'width')));
		
		LeagueTables.resizeContainer(eTable);
		
		window.resizeTo(nTableSize + LeagueTables.nBuffer, LeagueTables.nInitialHeight);
	},
	
	resizeContainer : function(eTable) {
		var nTableSize								= Number(LeagueTables.numbersOnly(LeagueTables.getStyle(eTable, 'width')));
		var eContainer								= document.getElementById(LeagueTables.sContainerID);
		
		// increase width of container to fit around table
		eContainer.style.width						= nTableSize + LeagueTables.sContainerPadding + 'px';
	},
	
	numbersOnly : function(sText) {
		return sText.replace(/\D/gi, '');
	},
	
	getStyle : function(el,att){
		var sAttribute								= null;
		if (document.defaultView && document.defaultView.getComputedStyle) {
			var cs									= document.defaultView.getComputedStyle(el,null);
			if (cs && cs.getPropertyValue) {
				sAttribute							= cs.getPropertyValue(att);
			}
		}
		if(!sAttribute && el.currentStyle){
			sAttribute								= el.currentStyle[LeagueTables.camelCase(att)];	
		}
		return sAttribute;
	},
	
	camelCase : function (s){
		for (var exp=/-([a-z])/; exp.test(s); s = s.replace(exp,RegExp.$1.toUpperCase()));
		return s;
	}
}

WindowListener.add("load","LeagueTables.initLink()");
WindowListener.add("load","LeagueTables.initTableResize()");