var draftBoard = {
	activeTab: 1,
	livePick: 0,
	jsonData: {},
	blnFirstRun: true,
	prevUpdate: [],
	
	init: function() {
		draftBoard.jsonData = draftConfig.jsonData;
		if (draftBoard.jsonData && draftBoard.jsonData.picks && draftBoard.jsonData.picks.length == 60) {

			if (this.blnFirstRun == true) {
				//set active tab
				if (draftConfig.livePick <= 15) { draftBoard.activeTab = 1; }
				else if (draftConfig.livePick <=30) { draftBoard.activeTab = 2; }
				else if (draftConfig.livePick <=45) { draftBoard.activeTab = 3; }
				else if (draftConfig.livePick <= 61) { draftBoard.activeTab = 4; }

				this.initPreviousUpdateArray();
				this.blnFirstRun = false;
				this.switchTab(draftBoard.activeTab);
			} else {
				this.update();
			}
			
			$('nbaBoardNoPicks').innerHTML = this.getTeamsNoPicks();
		}
	},

	initPreviousUpdateArray: function() {
		for (var i=0; i < 60; i++) {
			this.prevUpdate[i] = {id: i + 1, ts:'0'}
		}
	},

	
	switchTab: function(tabId) {
		var currentUpdate = draftBoard.jsonData.picks;
		var html = [];	
		
		// start & end picks for tab
		var startPick = ((tabId-1) * 15);
		var endPick = (tabId * 15) - 1;
		
		for (var i = startPick; i <= endPick; i++) {
			html.push('<div id="nbadraftPick_' + i + '" class="nbaPickPod">' + this.getRowHtml(currentUpdate[i], i) + '</div>');
			this.prevUpdate[i]['ts'] = currentUpdate[i]['ts'];
		}
		
		//tab body - set contents
		var tabBodyPrefix = 'nbaPick';
		var numStr = '';
		if (tabId == 1) { numStr = '1st' }
		else if (tabId == 2) { numStr = '2nd' }
		else if (tabId == 3) { numStr = '3rd' }
		else if (tabId == 4) { numStr = '4th' }
		var tabBodyDiv = tabBodyPrefix + numStr;
		$(tabBodyDiv).innerHTML = html.join('');
		
		// show/hide active tab nav and body
		var tabNavDiv = 'nbaPickNav' + tabId;
		ActiveMenu(tabNavDiv, tabBodyDiv);

		//reset active tab
		this.livePick = 0;
		this.setActivePick();
	},
	
	setActivePick: function() {
		var pickey = draftConfig.livePick - 1;
		if (pickey != this.livePick) {
			if ($('nbadraftPick_' + this.livePick)) {
				$('nbadraftPick_' + this.livePick).removeClassName('upNext');
			}
			if ($('nbadraftPick_' + pickey)) {
				$('nbadraftPick_' + pickey).addClassName('upNext');
			}
		}
		this.livePick =  pickey;
	},
	
	update: function() {
		var currentUpdate = draftBoard.jsonData.picks;
		for (var i=currentUpdate.length; i--; ) {
			if (currentUpdate[i]['ts'] != this.prevUpdate[i]['ts']) {
				if ($('nbadraftPick_' + i)) {
					$('nbadraftPick_' + i).innerHTML = this.getRowHtml(currentUpdate[i], i);
				}
				this.prevUpdate[i]['ts'] = currentUpdate[i]['ts'];
			}
		}
		this.setActivePick();
	},
	
	getVideoLinks: function(vidArray, ct) {
		var html = [];
		if (vidArray.length < ct) {
			ct = vidArray.length;
		}

		for (var i=0; i<ct; i++) {
			if (vidArray[i].url.search(/\-nba\d+\-\d+\.jpg$/i) > -1) {
				var thumbnail = vidArray[i].url.replace('i.cdn.turner.com', 'i2.cdn.turner.com');
				var vidLinkId = vidArray[i].url.replace(/\-nba\d+\-\d+\.jpg$/i, '');
				vidLinkId = vidLinkId.replace(/http:\/\/i2?\.cdn\.turner\.com\/nba\/nba/, '');
			} else if (vidArray[i].url.search(/\-nba\d+\.jpg$/i) > -1) {
				var thumbnail = vidArray[i].url.replace('i.cdn.turner.com', 'i2.cdn.turner.com');
				var vidLinkId = vidArray[i].url.replace(/\-nba\d+\.jpg$/i, '');
				vidLinkId = vidLinkId.replace(/http:\/\/i2?\.cdn\.turner\.com\/nba\/nba/, '');
			} else if (vidArray[i].url.search(/\.\d+x\d+\.jpg$/i) > -1) {
				var thumbnail = vidArray[i].url.replace('i.cdn.turner.com', 'i2.cdn.turner.com');
				var vidLinkId = vidArray[i].url.replace(/\.\d+x\d+\.jpg$/i, '');
				vidLinkId = vidLinkId.replace(/http:\/\/i2?\.cdn\.turner\.com\/nba\/nba/, '');
			} else if (vidArray[i].url.search(/index\.html$/i) > -1) {
				var vidLinkId = vidArray[i].url.replace(/^http:\/\/www.nba.com\/video/, '/video');
				var vidLinkId = vidLinkId.replace(/\/index\.html$/, '');
				var thumbnail = 'http://i2.cdn.turner.com/nba/nba' + vidLinkId + '.70x53.jpg';
			} else {
				var vidLinkId = vidArray[i].url.replace(/^http:\/\/www.nba.com\/video/, '/video');
				var thumbnail = 'http://i2.cdn.turner.com/nba/nba' + vidLinkId + '.70x53.jpg';
			}

			html.push(
				'<div class="nbaVidPod">',
				'<div class="nbaVidThumbItem">',
				'<a href="#" onclick="draftBoard.openT1Video(); NBAStandalonePlayer.playVideo(\''+vidLinkId+'\'); return false;">',
				'<img src="'+thumbnail+'" width="70" height="53" alt="">',
				'</a>',
				'</div>',
				'<a href="#" onclick="draftBoard.openT1Video(); NBAStandalonePlayer.playVideo(\''+vidLinkId+'\'); return false;">'+vidArray[i].text+'</a>',
				'</div>'
				);
			
		}
		if (ct > 1) {
			html.push('<div class="nbaAllVideos">',
				'<a href="/video/draft2010/">All Draft Video</a>',
				'</div>');
		}
		return html.join('');
	},
	
	openT1Video: function() {
	new Effect.ScrollTo('T1Video');
        if (!$('T1Video').visible()){
        	$('T1Video').show();
            $('T1Video-listen').update('<img src="http://i.cdn.turner.com/nba/nba/.element/img/2.0/sect/draft/2010/main/t1.header.on.jpg" alt="Close the feature box" />');
        }
	},
	
	showOneVideo: function(divId) {
		var vidDiv = $('nbaPicksVideo_' + divId);
		vidDiv.removeClassName('plusOne');
		if ($('nbaPicksVideoSingle_' + divId)) {
			$('nbaPicksVideoSingle_' + divId).show();				
		}
		if ($('nbaPicksVideoMulti_' + divId)) {
			$('nbaPicksVideoMulti_' + divId).hide();
		}
	},
	
	showAllVideo: function(divId) {
		var ct = draftBoard.jsonData.picks[divId].videos.length;
		if (ct > 1) {
			var vidDiv = $('nbaPicksVideo_' + divId);
			vidDiv.addClassName('plusOne');
			$('nbaPicksVideoSingle_' + divId).hide();
			$('nbaPicksVideoMulti_' + divId).show();
		}
	},
	
	getRowHtml: function(rowObj, displayId) {
		var html = [];
		if (rowObj.player != '') {
			var headline = rowObj.player.replace('/draft/draft2010/', '/draft2010/');
			if (rowObj.tradedto != '') {
				headline += '<span class="changes">(traded to '+draftConfig.getTeamName(rowObj.tradedto, 'short').capitalize()+')</span>'
			}
		} else {
			var headline = '<a href="/draft2010/teams/' + rowObj.nbateam.toLowerCase() + '/index.html">' + draftConfig.getTeamName(rowObj.nbateam, 'long') + '</a>';
		}
		
		var tease = rowObj.tease.replace(/\&lt\;/g, '<');
		tease = tease.replace(/\&gt\;/g, '>');

		if (rowObj.player != '') {
			var top_playerPos = rowObj.position;
			var top_draftedFrom = (rowObj.from) ? rowObj.from : rowObj.country;
			tease = '<i>' + top_playerPos + ', ' + top_draftedFrom + '</i><br />'+  tease;
		}

		html.push('<div class="nbaPickNumber">'+rowObj.id+'</div>',
			'<div class="nbaPickLogo"><a href="/draft2010/teams/' + rowObj.nbateam.toLowerCase() + '/index.html"><img src="'+draftConfig.logoPath+rowObj.nbateam.toLowerCase()+'.png" /></a></div>',
			'<div class="nbaPickText">',
			'<h4>'+headline+'</h4>',
			'<p>'+tease+'</p>');
		//links
		if (rowObj.links.length > 0) {
			html.push('<ul>');
			var ct = rowObj.links.length;
			for (var i=0; i<ct; i++) {
				if (i > 0) {
					html.push('<li>|</li>');
				}
				html.push('<li><a href="'+rowObj.links[i].url+'">'+rowObj.links[i].text+'</a></li>')
			}
			html.push('</ul>');
		}
		html.push('</div>');

		//vids		
		html.push('<div id="nbaPicksVideo_' + displayId + '" class="nbaPicksVideo" onmouseover="draftBoard.showAllVideo('+displayId+');" onmouseout="draftBoard.showOneVideo('+displayId+');">');
		if (rowObj.videos.length > 0) {
			html.push('<div id="nbaPicksVideoSingle_' + displayId + '" class="nbaPicksVideoContainer">' + this.getVideoLinks(rowObj.videos, 1) + '</div>');
			html.push('<div id="nbaPicksVideoMulti_' + displayId + '" class="nbaPicksVideoContainer" style="display:none">' + this.getVideoLinks(rowObj.videos, rowObj.videos.length) + '</div>');
			//html.push(this.getVideoLinks(rowObj.videos, 1));
		}
		html.push('</div>');
		html.push('</div>');
		
		return html.join('');
	},
	
	getTeamsNoPicks: function() {
		var html = [];
		var noPicks = [], withPicks = [];
		var allPicks = this.jsonData.picks;
		
		for (var i=0, ct=allPicks.length; i < ct; i++) {
			if (allPicks[i].nbateam != '') {
				withPicks.push(allPicks[i].nbateam.toUpperCase());
			}
		}
		
		var withPicksStr = '|' + withPicks.uniq().sort().join('|') + '|';
		for (var i=0, ct=nbaLeagueTeams.length; i < ct; i++) {
			if (withPicksStr.indexOf('|'+nbaLeagueTeams[i].teamCode+'|') == -1) {
				noPicks.push(nbaLeagueTeams[i].teamCode);
			}
		}
		
		if (noPicks.length > 0) {
			html.push('<h3>Teams without a draft pick</h3>');
			html.push('<ul>');
			for (var i=0, ct=noPicks.length; i < ct; i++) {
				html.push('<li>',
					'<a href="/draft2010/teams/'+noPicks[i].toLowerCase()+'/index.html">',
					draftConfig.getTeamName(noPicks[i], 'short').capitalize(),
					'</a></li>');
			}
			html.push('</ul>');
		}
		
		return html.join('');
	}
}

