/******************************************************
 * Global Variables goes here
 ******************************************************/
window.t1PodObj			= null;
window.nbaMainTabMgr	= null;

window.nbaLastVidPageId	= 0;
window.nbaSubTabLastElm	= null;
window.nbaCSIVidTimer	= null;
window.nbaCSIHeadTimer	= null;

window.nbaCSITMilliSec	= 10000;
window.nbaCSIVidDirty	= false;
window.nbaCSIHeadDirty	= false;
//window.nbaT2InitLoad	= true;
window.nbaT2InitLoad	= false;
window.nbaT2Config		= null;
window.cnnad_adUrls		= new Array();
 
window.nbaHomepage		= function(){};
/******************************************************
 * Initialization function - will trigger after DOM 
 * load event. All code requiring initializatin shoud be 
 * included as part of this function
 ******************************************************/
function nbaHomepageAdsInit(){

	/*Ads hash initialization: various ads displayed on tab selection*/
	cnnad_adUrls['newsVideo'] = '/nba_adspaces/2.0/homepage/marketing/nba_league/spon.300x150.ad';
	cnnad_adUrls['BOS'] = '/nba_adspaces/2.0/homepage/marketing/celtics/spon.300x150.ad';
	cnnad_adUrls['NJN'] = '/nba_adspaces/2.0/homepage/marketing/nets/spon.300x150.ad';
	cnnad_adUrls['NYK'] = '/nba_adspaces/2.0/homepage/marketing/knicks/spon.300x150.ad';
	cnnad_adUrls['PHI'] = '/nba_adspaces/2.0/homepage/marketing/76ers/spon.300x150.ad';
	cnnad_adUrls['TOR'] = '/nba_adspaces/2.0/homepage/marketing/raptors/spon.300x150.ad';
	cnnad_adUrls['CHI'] = '/nba_adspaces/2.0/homepage/marketing/bulls/spon.300x150.ad';
	cnnad_adUrls['CLE'] = '/nba_adspaces/2.0/homepage/marketing/cavaliers/spon.300x150.ad';
	cnnad_adUrls['DET'] = '/nba_adspaces/2.0/homepage/marketing/pistons/spon.300x150.ad';
	cnnad_adUrls['IND'] = '/nba_adspaces/2.0/homepage/marketing/pacers/spon.300x150.ad';
	cnnad_adUrls['MIL'] = '/nba_adspaces/2.0/homepage/marketing/bucks/spon.300x150.ad';
	cnnad_adUrls['ATL'] = '/nba_adspaces/2.0/homepage/marketing/hawks/spon.300x150.ad';
	cnnad_adUrls['CHA'] = '/nba_adspaces/2.0/homepage/marketing/bobcats/spon.300x150.ad';
	cnnad_adUrls['MIA'] = '/nba_adspaces/2.0/homepage/marketing/heat/spon.300x150.ad';
	cnnad_adUrls['ORL'] = '/nba_adspaces/2.0/homepage/marketing/magic/spon.300x150.ad';
	cnnad_adUrls['WAS'] = '/nba_adspaces/2.0/homepage/marketing/wizards/spon.300x150.ad';
	cnnad_adUrls['DAL'] = '/nba_adspaces/2.0/homepage/marketing/mavericks/spon.300x150.ad';
	cnnad_adUrls['HOU'] = '/nba_adspaces/2.0/homepage/marketing/rockets/spon.300x150.ad';
	cnnad_adUrls['MEM'] = '/nba_adspaces/2.0/homepage/marketing/grizzlies/spon.300x150.ad';
	cnnad_adUrls['NOH'] = '/nba_adspaces/2.0/homepage/marketing/hornets/spon.300x150.ad';
	cnnad_adUrls['SAS'] = '/nba_adspaces/2.0/homepage/marketing/spurs/spon.300x150.ad';
	cnnad_adUrls['DEN'] = '/nba_adspaces/2.0/homepage/marketing/nuggets/spon.300x150.ad';
	cnnad_adUrls['MIN'] = '/nba_adspaces/2.0/homepage/marketing/timberwolves/spon.300x150.ad';
	cnnad_adUrls['OKC'] = '/nba_adspaces/2.0/homepage/marketing/thunder/spon.300x150.ad';
	cnnad_adUrls['POR'] = '/nba_adspaces/2.0/homepage/marketing/trailblazers/spon.300x150.ad';
	cnnad_adUrls['UTA'] = '/nba_adspaces/2.0/homepage/marketing/jazz/spon.300x150.ad';
	cnnad_adUrls['GSW'] = '/nba_adspaces/2.0/homepage/marketing/warriors/spon.300x150.ad';
	cnnad_adUrls['LAC'] = '/nba_adspaces/2.0/homepage/marketing/clippers/spon.300x150.ad';
	cnnad_adUrls['LAL'] = '/nba_adspaces/2.0/homepage/marketing/lakers/spon.300x150.ad';
	cnnad_adUrls['PHX'] = '/nba_adspaces/2.0/homepage/marketing/suns/spon.300x150.ad';
	cnnad_adUrls['SAC'] = '/nba_adspaces/2.0/homepage/marketing/kings/spon.300x150.ad';
}
function nbaHomepageT1Init()
{
	/*T1 initialization: start rotation*/
	t1PodObj = new nbaHomepage.t1PodNav("nbaT1PodNav", "nbaT1PC");
	t1PodObj.setT1Timer(4000);
	t1PodObj.startRotation();
}
function nbaHomepageT2Init()
{
	/*T2 initialization*/
	nbaT2Config 	= new nbaHomepage.t2Config();
	nbaMainTabMgr	= new nbaHomepage.TabManager();	
	nbaMainTabMgr.tabInit("nbaTabsMain", "nbaT2Content");	
	Event.observe( document, 'unload', Event.unloadCache );
}
function nbaHomepageCalInit()
{
	/*Above T1 - initialize month calendar*/
	initializeCalendar();	
	nbaHomepageAdsInit();
}

/*******************************************************************************
 * T2 Add-A-Team overlay hide/show
 *******************************************************************************/
nbaHomepage.toggleT2overlay = function(oDiv, onOff)
{
	var t2Overlay = $(oDiv);
	var isShow = true;
	if (onOff){
		if (t2Overlay.id == "nbaT2Overlay" && nbaMainTabMgr.getTabCount() >= 4){
			$("nbaT2Msg1").show();
		}else{		
			t2Overlay.show();
		}
	}else{
		t2Overlay.hide();
	}
}
/*******************************************************************************
 * T2 Pagination pass-through: determins left or right
 *******************************************************************************/
nbaHomepage.vidPageScroll = function(oPage, oDirection)
{
	/*
	if (oDirection == "lt"){
		nbaHomepage.switchPage(oPage)
	};if (oDirection == "rt"){
		nbaHomepage.switchPage(oPage)
	}*/
	nbaHomepage.switchPage(oPage)
}
/*******************************************************************************
 * T2 pagination: video page navigation back and forth
 *******************************************************************************/
nbaHomepage.switchPage = function(oPage){
	var lastElm = $(("nbaRnd" + nbaLastVidPageId));
	var nextElm = $(("nbaRnd" + oPage));
	if (nbaLastVidPageId != oPage){
		lastElm.style.display = "none";
		nextElm.style.display = "block";		
	}
	nbaLastVidPageId = oPage;
}
/*******************************************************************************
 * Timer callback to provide fake CSI error reporting
 *******************************************************************************/
nbaHomepage.nbaCSITimer = function(oElmId, oEntity){
	if (oEntity == "video"){
		if (nbaCSIVidDirty){
			$(oElmId).innerHTML = nbaT2Config.nbaCSIErrorMsg.badFileJson;
			nbaCSIVidDirty = false;
		}
	}else{
		if (nbaCSIHeadDirty){
			$(oElmId).innerHTML = nbaT2Config.nbaCSIErrorMsg.badFileJson;
			nbaCSIHeadDirty = false;
		}
	}	
}
/*******************************************************************************
 * Get current domain to remain independent of the test environments
 *******************************************************************************/
nbaHomepage.getNBABaseUrl = function()
{
    var server = window.location.hostname;
    if (server.match(/webdev|payp1/i)) {
        return 'http://nba-webdev-preview.turner.com';
    }else if (server.match(/ref|ite/)) {
		return 'http://nba-ref-preview.nba.com';
    }else if (server.match(/beta/)) {
		return 'http://beta.nba.com';
    }else if (server.match(/qa/)){
    	return 'http://nba-qa-preview.nba.com';
    }else {
		return 'http://www.nba.com';
    }
}

/*******************************************************************************
 * Determine Video Age
 *******************************************************************************/
 
nbaHomepage.getVideoAge = function(dateUTS)
 {
 	var today = new Date();
 	var vidDate = new Date((dateUTS*1000));
 	var diffDate = new Date(today - vidDate);  
 	var dayDiff = Math.round((diffDate.getTime() / 24 / 60 / 60 / 1000));

 	if (dayDiff == 0) {
  		return 'today';
 	} else if (dayDiff < 28) {
  		return dayDiff + ((dayDiff > 1) ? ' days' : ' day') + ' ago';  
  	} else if (dayDiff < 365) {
 		var months = Math.round(dayDiff / 30);
  		return months + ((months > 1) ? ' months' : ' month') + ' ago';  
  	} else {
        var dateUnitsString = vidDate.toDateString();
        var arrDate = dateUnitsString.split(' ');
  		return arrDate[1] + (arrDate[1] != 'May' ? '. ' : ' ') + arrDate[2] + ', '+ arrDate[3];
 	}
}

/*******************************************************************************
 * Truncate Video Title
 *******************************************************************************/
nbaHomepage.truncateString = function(longStr, maxLength)
{
	var oTxt =  new String(longStr);
		oTxt = (oTxt.length > maxLength) ? (oTxt.substring(0, maxLength) + " ...") : oTxt;
	return oTxt;
}	
/******************************************************
 * T1 - Nav/Rotate Object
 ******************************************************/
nbaHomepage.t1PodNav = function(t1ThumbContainer, t1ContPrefix)
{        		
	var nbaT1PodNav 	= $(t1ThumbContainer);	
	var nbaT1ContPrefix	= t1ContPrefix;
	var nbaT1Timeout	= 7000;
	var navArry			= [];
	var lastPosition	= 0;
	var t1PodTimer		= null;
	var isErr			= false; //this is to prevent timer loop in case anything goes wrong.
		
	this.startRotation 	= _startRotation;
	this.doRotate		= _doRotate;
	this.stopRotate		= _stopRotate;
	this.doThumbOver	= _doThumbOver;
	this.showHideT1		= _showHideT1;
	this.setT1Timer		= _setT1Timer;
	
	
	function _startRotation()
	{
		try{
			navArry = nbaT1PodNav.getElementsBySelector('li');	
			_getOverlayDiv(navArry[lastPosition]).addClassName("nbaSpanOverlay");	
			_setMouseOverEvents();
			_doRotate();
		}catch(eRR){
			//Need to push this alert out to somewhere
			//alert("Unexpected Error: Unable to initialize T1!");	
		}
	} 
	function _setT1Timer(timeVal){
		nbaT1Timeout = timeVal
	}
	function _setMouseOverEvents()
	{
		for (var i = 0; i < navArry.length; i++)
		{
			try{
				var iElement = nbaT1ContPrefix + i;
				//I have to setup this way for thumb so I can pass in the index
				navArry[i].observe('mouseover', _thumbHandler.bindAsEventListener(Event, true, i));
				navArry[i].observe('mouseout', _thumbHandler.bindAsEventListener(Event, false, i));			
				$(iElement).observe('mouseover', function(e){_stopRotate();});
				$(iElement).observe('mouseout', function(e){_doRotate(); });
			}catch(e){
				isErr = true;
				alert("setMouseOverEvents(): Content element with ID [ " + iElement + "] was not found in the DOM");	
				break;
			}
		}
	}
	function _thumbHandler(e) {
		var argArry = $A(arguments);
		argArry.shift();
		if (argArry[0]){
			_doThumbOver(argArry[1])
		}else{
			_doRotate();
		}
	}
	function _doRotate(){
		if(!isErr){
			t1PodTimer = setTimeout(function(){_showHideT1()},nbaT1Timeout);
		}
	}
	function _stopRotate(){
		clearTimeout(t1PodTimer);
		t1PodTimer = null;
	}
	function _doThumbOver(thumbId){
		_stopRotate();		
		try{
			//hide the last position
			$(nbaT1ContPrefix + lastPosition).hide();	
			_getOverlayDiv(navArry[lastPosition]).removeClassName("nbaSpanOverlay");
			
			//show current position
			$(nbaT1ContPrefix + thumbId).show();
			_getOverlayDiv(navArry[thumbId]).addClassName("nbaSpanOverlay");
				
			//set the last position
			lastPosition = thumbId;
		}catch(e){
			alert("doThumbOver(): Content element with ID [ " + (nbaT1ContPrefix + lastPosition) + "] or [ " + (nbaT1ContPrefix + thumbId) + "] was not found in the DOM");	
		}
	}
	function _showHideT1()
	{
		var nextPosition 	= ((lastPosition + 1) > navArry.length-1) ? 0 : (lastPosition + 1);
		var currContent 	= nbaT1ContPrefix + lastPosition;
		var nextContent 	= nbaT1ContPrefix + nextPosition;
			
		try{
			//Switch overlay here
			_getOverlayDiv(navArry[lastPosition]).removeClassName("nbaSpanOverlay");
			_getOverlayDiv(navArry[nextPosition]).addClassName("nbaSpanOverlay");
			
			//Switch the content here
			$(currContent).hide();
			$(nextContent).show();
			_doRotate();
		}catch(e){
			isErr = true;s
			alert("t1PodNav._showHideT1(): Content element with ID [ " + currContent + "] or [ " + nextContent + "] was not found in the DOM");	
		}
		lastPosition = nextPosition;
	}
	
	function _getOverlayDiv(liElement)
	{
		var liFirstChild 	 = liElement.firstDescendant();
		var liFirstChildDivs = liFirstChild.getElementsBySelector('div')
		return liFirstChildDivs[0];
	}
} 	
/*******************************************************************************
 * T2 Tab manager object, which is created once the DOM is loaded 
 *******************************************************************************/
nbaHomepage.TabManager = function()
{
	var mAgent 				= navigator.appName;
	var lastTab				= null;
	var maxTabs			= 4;
	var tabHighlightIndx	= 0;
	var tabsArray			= null;
	var dataContainerDiv	= null;
	var tabsContainerDiv 	= null;
	var cacheLoadDirty		= true;
	var storage				= null;
	
	this.tabInit 		= _tabInit;
	this.show	 		= _show;
	this.showTabByIndex = _showTabByIndex;
	this.showTabByName	= _showTabByName;
	this.getTabCount	= _getTabCount;
	
	function _getTabCount(){
		return tabsArray.length;
	}
	function _tabInit(oTabsContainer, oVideoContainer) 
	{
		try	{
			
			//store the containers for later
			tabsContainerDiv = $(oTabsContainer);
			dataContainerDiv = $(oVideoContainer);
			
			tabsArray = tabsContainerDiv.getElementsBySelector('li');
			_show(0); //show the first tab
			
			cacheLoadDirty = false;	
		}
		catch(eRR){
			_setPageError("Unexpected Error: While initialzing T2 tabs!");	
		}
			
	}
	function _loadCacheTabs()
	{	
		var tabsTot = 0;
		var tabIdent = "";
		var tabName  = "";

		//Errors will bubble up in which case do nothing
		//if (storage.get('tabsASTot') != null)
		if (storage.get('tabsTot') != null)
		{
		 	tabsTot = parseInt(storage.get('tabsTot'));
		 	//tabsTot = parseInt(storage.get('tabsASTot'));
		 	for (var i = 1; i <= tabsTot; i++)
		 	{
		 		tabIdent = 'nbaTab' + i + 'ident'
				tabName  = 'nbaTab' + i + 'name';
		 		//tabIdent = 'nbaASTab' + i + 'ident'
				//tabName  = 'nbaASTab' + i + 'name';

		 		if (storage.get(tabIdent) != null) {
		 			tabIdent = storage.get(tabIdent);
		 		}else{
		 			tabIdent = "";
		 		}
		 		if (storage.get(tabName) != null) {
		 			tabName = storage.get(tabName);
		 		}else{
		 			tabName = "";
		 		}
		 		if (tabIdent && tabName){
		 			//_addTeamTab(tabIdent, tabName)
		 		}
		 	}
		}	
		cacheLoadDirty = false;	
	}	
	function _nextTabHighlight(oTabIndex)
	{
		var newIndx = 0;		
		if (oTabIndex == tabHighlightIndx){
			newIndx = (oTabIndex-1);
		}else if (oTabIndex < tabHighlightIndx){
			newIndx = tabHighlightIndx-1;
		}else if (oTabIndex > tabHighlightIndx){
			newIndx = tabHighlightIndx;
		}return newIndx;
	}
	function _setTabOnClick(oElm, oTabIndex)
	{
		oElm.observe('click', _tabOnClickHandler.bindAsEventListener(Event, oTabIndex));
	}
	function _setRemoveClick(oElm, oTabIndex)
	{
		oElm.observe('click', _tabRemoveHandler.bindAsEventListener(Event, oTabIndex));
	}
	function _tabOnClickHandler(e) {
		var argArry = $A(arguments);
		argArry.shift();
		_show(argArry[0]);
	}
	function _show(oTabIndex) 
	{
		if ( (oTabIndex >= 0) && (oTabIndex < tabsArray.length) )
		{
			
			var elm = tabsArray[oTabIndex];
			var elmFirstChild = elm.firstDescendant();
			var elmIdArry   = (String(elmFirstChild.id)).split("#");
			var elmIdent 	= elmIdArry[0]; //strip out tab Identity
			var elmName 	= elmIdArry[1]; //strip out tab Name
			
			//deactivate the current tab
			_hideLastClicked();
			
			//activate the new tab
			_setClassName(elm, 'active');
			
			//set new to be the current tab
			lastTab = elm;
			tabHighlightIndx = oTabIndex;
			
			//switch ads
			//cnnad_showAdByKey(elmIdent, 1313);
			
			//hand off to subtab handler
			nbaHomepage.subTabHandler(oTabIndex, elmIdent, elmName);
		}else{
			_setPageError("_show(): invalid tab index [ " + oTabIndex + " ]!");	
		}			
	}	
	function _showTabByName(oTabName)
	{
		var isFound = false;
		for (var i = 0; i < tabsArray.length; i++)
		{
			var elmIDArry = (String(tabsArray[i].id)).split("#");
			if( (String(elmIDArry[0])).toUpperCase() == (String(oTabName)).toUpperCase()){
				isFound = true;
				_show(i);
				break;
			}
		}
		if (!isFound){
			_setPageError("_showTabByName(): Tab name [ " + oTabName + " ] not found!");	
		}
	}
	function _showTabByIndex(tabIndex){
		_show(tabIndex)
	}
	function _hideLastClicked() {
		if(lastTab != null){
			lastTab.removeClassName('active');
		}
	}
	function _setClassName(elm, oClassVal){
		elm.addClassName(oClassVal)
	}
	
	function _setPageError(oMsg){
		dataContainerDiv.innerHTML = '<div class="nbaT2Messages">' + oMsg + '</div>';
	}
}
/*******************************************************************************
 * T2 sub-category click handler
 *******************************************************************************/
nbaHomepage.subTabHandler = function(oTabIndex, oTabIdent, oTabName)
{
	var navHTML				= "";
	var nbaSubTabContainer	= $("nbaSubTabContainer");
	var nbaVideoContainer	= $("nbaVideoContainer");
	var tabIdentity		= (String(oTabIdent)).toUpperCase();
	var tabName		= (String(oTabName)).toLowerCase();
	var tabDisplayName	= (tabName.substring(0,1)).toUpperCase() + tabName.substring(1,tabName.length);
	
	//show/write sub navigation
	nbaSubTabContainer.innerHTML = nbaHomepage.buildSubNav(oTabIndex, tabIdentity, tabName, tabDisplayName);
	nbaSubTabContainer.show();

	if (oTabIndex == 0){
		
		if (!nbaT2InitLoad){
			//alert('no');
			nbaHomepage.subTabOnClick('nbaPrvRndnav0','allstar', 'What&#39;s New?', 'league', tabName);
		}else{
			var leagueFirstNav = $('nbaPrvRndnav0')			
			leagueFirstNav.addClassName('nbaPrvRndNavSelected');
			nbaSubTabLastElm = leagueFirstNav;
			nbaT2InitLoad = false;
			alert('yes');
		}
	}
	else if( oTabIndex == 1)
	{
		nbaHomepage.subTabOnClick('nbaPrvRndnav0','allstar_slam_dunk', 'Slam Dunk', 'league', tabName);
	}
	else if( oTabIndex == 2)
	{
		nbaHomepage.subTabOnClick('nbaPrvRndnav0','allstar_rookie', 'Rookie Challenge', 'league', tabName);
	}else{
		nbaHomepage.subTabOnClick('nbaPrvRndnav0','mostrecent', 'Most Recent', tabIdentity, tabName)
	}
}

/*******************************************************************************
 * T2 dynamically build sub-nav from configuration settings
 *******************************************************************************/
nbaHomepage.buildSubNav = function(oIndex, oIdent, oName, oDisplayName){
	var navHTML = "";
	var subNavArry = null;
	if (oIndex == 0)
	{
		subNavArry = nbaT2Config.tabSubCategory.league;
		for (var i = 0; i < subNavArry.length; i++)	{
			navHTML +='<div id="nbaPrvRnd1"><a id="nbaPrvRndnav' +i+'" class="nbaPrvRndNavItem" onclick=\'javascript:nbaHomepage.subTabOnClick(this,"'+subNavArry[i].section+'", "'+subNavArry[i].displayName+ '", "'+subNavArry[i].entity+'", "'+oName+'");\' alt="Round 1">' +subNavArry[i].displayName+ '</a></div>';
		}		
		navHTML +='<div id="nbaT2VidAll"><a href="' + nbaHomepage.getNBABaseUrl() + '/allstar2010/video/">All All-Star Videos</a></div>';
	}
	else
	{
		if( oIndex == 1 )
		{
			subNavArry = nbaT2Config.tabSubCategory.saturday;
		}
		else if( oIndex == 2 )
		{
			subNavArry = nbaT2Config.tabSubCategory.more;
		}
		for (var i = 0; i < subNavArry.length; i++)	{
			var iDispName = (subNavArry[i].section == "originals") ? (oDisplayName + " " + subNavArry[i].displayName) : subNavArry[i].displayName
			navHTML +='<div id="nbaPrvRnd2"><a id="nbaPrvRndnav'+i+'" class="nbaPrvRndNavItem" onclick=\'javascript:nbaHomepage.subTabOnClick(this,"'+subNavArry[i].section+'","'+subNavArry[i].displayName+'","' + oIdent + '","' + oName+ '");\' alt="Round 1">'+iDispName+'</a></div>';
		}
		navHTML +='<div id="nbaT2VidAll"><a href="' + nbaHomepage.getNBABaseUrl() + '/allstar2010/video/">All All-Star Videos</a></div>';
	}
	nbaSubTabLastElm = null;
	return navHTML;
}
/*******************************************************************************
 * T2 Sub-nav click-through 
 *******************************************************************************/
nbaHomepage.subTabOnClick = function(oElm, oSection, oSecName, oIdent, oName, oIDOL)
{
	var contentHTML			= "";
	var jsonfilePath		= "";
	var vidfilename			= ""; 
	var vidFullPath			= "";
	var headFilename		= "";
	var headfullPath		= "";
	var IDOL_Category		= null;
	
	var nbaSubTabContainer	= $("nbaSubTabContainer");
	var nbaVideoContainer	= $("nbaVideoContainer");
	var activeElm 			= $(oElm);
	
	//set tab highlight
	if (activeElm != nbaSubTabLastElm){
		activeElm.addClassName('nbaPrvRndNavSelected');
		if (nbaSubTabLastElm){nbaSubTabLastElm.removeClassName('nbaPrvRndNavSelected');}
	}
	nbaSubTabLastElm = activeElm;
	
	//if (oIdent == "league" || oIdent){
		jsonfilePath 	= nbaT2Config.leagueVidJSONPath;
		oIdent = 'league';
		if(oIdent !== 'NEWSVIDEO') {
			vidfilename 	= oIdent + "." + oSection + ".4across.json.html"; 
		}
		else
		{
			vidfilename 	= oSection + ".4across.json.html"; 
		}
	/*}else{
		
		//check to see if IDOL
		for (var i = 0; i < nbaT2Config.tabSubCategory.team.length; i++)
		{
			if (nbaT2Config.tabSubCategory.team[i].section == oSection && nbaT2Config.tabSubCategory.team[i].IDOL){
				IDOL_Category = nbaT2Config.tabSubCategory.team[i].IDOL;
			}
		}
		if (IDOL_Category)
		{
			jsonfilePath = nbaT2Config.IDOLSearchPath;
			vidfilename = "";
		}else{		
			jsonfilePath = nbaT2Config.teamVidJSONPath + oSection + "/";
			vidfilename 	= oIdent + "_" + oSection + ".4across.json.html"; 
		}
	}*/
	
	vidFullPath	 = jsonfilePath + vidfilename;
	
	//show loading image
	if (!nbaT2InitLoad){nbaVideoContainer.innerHTML = nbaT2Config.nbaCSIErrorMsg.loading;}
	
	//Delay processing slightly to allow image animation to display
	var loadImageTimer = setTimeout(function() 
		{
			if (!nbaT2InitLoad)	{
				//get the json
				nbaHomepage.getVideoJSON(vidFullPath, nbaVideoContainer.id, oSection, oSecName, oIdent, oName, IDOL_Category);
			}
			//now show the subtabs
			clearTimeout(loadImageTimer);
		}, 1);
		
}
/*******************************************************************************
 * T2 get and process video JSONs
 *******************************************************************************/
nbaHomepage.getVideoJSON = function(oFilePath, oElmId, oSection, oSecName, oIdent, oName, oIDOLCategory)
{
	var qStringParam = null;
	var configData = new Object();
		configData.parent 		= this;
		configData.activeElm	= oElmId;
		configData.section		= oSection;
		configData.sectionName	= oSecName;
		configData.ident		= oIdent;
		configData.fullName		= oName;
		configData.isIDOL		= (oIDOLCategory);
		
	
	//If IDOL append search criteria
	if (configData.isIDOL){
		qStringParam = "type="+oIDOLCategory.type+"&start="+oIDOLCategory.start+ "&npp="+oIDOLCategory.npp+"&site="+oIDOLCategory.site+"&section="+(oIDOLCategory.section + oName) + "&sort="+oIDOLCategory.sort;
		//alert(qStringParam);
	}	
	if (nbaCSIVidTimer){
		clearTimeout(nbaCSIVidTimer);
		nbaCSIVidTimer = null;
	}
	nbaCSIVidDirty = true;
	nbaCSIVidTimer = setTimeout(function(){nbaHomepage.nbaCSITimer(oElmId, "video")}, nbaCSITMilliSec);
	CSIManager.getInstance().setConfigForId(oElmId,configData);
	CSIManager.getInstance().call(oFilePath,qStringParam,oElmId,function(objJson, strDomId, objConfig) 
	{
		nbaCSIVidDirty = false; //if I'm here means CSI came back
		
		var vidOuter = "";
		var vidInner = "";
		var firstOne = true;
		var scrollCounter = 0;
		var vidObj = (objConfig.isIDOL) ? objJson.results[0] : objJson.videos;
		var vidCount = vidObj.length;
		
		if(vidCount > 0)
		{
			for (var i = 0; i < vidCount; i++)
			{
				if(i%4 == 0 & i != 0){
					vidOuter += 	nbaHomepage.getVideoHTMLWrapper(vidInner, vidCount, objConfig.section, objConfig.sectionName, objConfig.ident, objConfig.fullName, objConfig.isIDOL, firstOne, scrollCounter)
					scrollCounter++;
					vidInner = "";
					firstOne = false;
				}	
				var thumbnail 	= (objConfig.isIDOL) ? vidObj[i].metadata.media.thumbnail.url : vidObj[i].thumbnail;
				var vidTitle 	= vidObj[i].title;
				var vidUTS		= (objConfig.isIDOL) ? vidObj[i].mediaDateUts : vidObj[i].dateCreated;
				var vidURL		= ""
				if (objConfig.isIDOL){
					//check to see if this video was produced by a team; if so use alternate video url
					if (vidObj[i].id.match(/\/video\/teams/) && vidObj[i].alt_url){
						vidURL = vidObj[i].alt_url + "?ls=iref:nbahpt2";	
					}else{						
				 		vidURL = vidObj[i].url + "?ls=iref:nbahpt2";
				 	}
				}else{
				 	vidURL = vidObj[i].vidUrl;
				}
								
				vidInner += '<li>';
				vidInner += '<div class="nbaVidThumbItem">';
				vidInner += '<div class="nbaVidThumbImg" onclick="javascript:document.location.href=\'' + vidURL + '\';"><img src="' + thumbnail.replace("70x53","136x96") + '"/><div class="nbaSpanOverlay"></div></div>';
				vidInner += '<p class="nbaT2VidAdded">Added ' + nbaHomepage.getVideoAge(vidUTS) + '</p>';
				vidInner += '<p><a href="' + vidURL + '">' + nbaHomepage.truncateString(vidTitle, 40) + '</a></p>';
				vidInner += '</div>';
				vidInner += '</li>';
				
			}
			if (vidInner){
				vidOuter += nbaHomepage.getVideoHTMLWrapper(vidInner, vidCount, objConfig.section, objConfig.sectionName, objConfig.ident, objConfig.fullName, objConfig.isIDOL, firstOne, scrollCounter)
			}
		}else{
			vidOuter = nbaT2Config.nbaCSIErrorMsg.noVideo;
		}
		nbaLastVidPageId = 0;
		return vidOuter;
	});
	
}
/*******************************************************************************
 * T2 video HTML wrapper 
 *******************************************************************************/
nbaHomepage.getVideoHTMLWrapper = function(vidHTML, oVidCount, oSection, oSecName, oIdent, oName, oIsIDOL, oFirstOne, oScrollCounter){
	
	var html = [];
	var wrapURL = "";
	var wrapTmp = "";
	var wrapSection	= "";
	var isLeague = ((String(oIdent)).toLowerCase() == 'league') ? true : false;
	var showHide = (oFirstOne) ? 'style="display:block;"' : 'style="display:none;"';
	var dotMax = parseInt((oVidCount / 4), 10);
	dotMax = (oVidCount % 4) ? (dotMax + 1) : dotMax;
		
	//oSecName  = (oIdent != "league" && oSection == "originals") ? oSecName : oSecName;
	html.push('<div id="nbaRnd' + oScrollCounter + '" class="nbaRnd' + oScrollCounter + '" ' + showHide + '">');
		//'<div class="nbaT2Title">' + oVidCount + ' Most Recent ',
		//(oSecName === 'What&#39;s New?' || oSecName === 'What\'s New?') ? 'All-Star' : oSecName,
		//' Video',
		//(oVidCount != 1) ? 's' : '',
		//'</div>'
	html.push('<div class="nbaT2RSS"><a href="/rss/allstar.rss"><img src="http://i.cdn.turner.com/nba/nba/.element/img/2.0/sect/homepage/rss.gif"> RSS</a></div>');
	html.push('<div class="nbaClear"></div>',
		'<div id="horizontal_carousel' + oScrollCounter + '">');
		
	if (oScrollCounter != 0){
		html.push('<div onclick="nbaHomepage.vidPageScroll(' + (oScrollCounter-1) + ',\'lt\');" class="previous_button"></div>');
	}else{
		html.push('<div onclick="nbaHomepage.vidPageScroll(' + (0) + ',\'lt\');" class="previous_button_disabled"></div>');
	}
	html.push('<div id="nbaRndVids' + oScrollCounter + '" class="container">',
		'<ul>'+vidHTML+'</ul></div>'
	);

	if (oScrollCounter != dotMax-1){
		html.push('<div onclick="nbaHomepage.vidPageScroll(' + (oScrollCounter+1) + ',\'rt\');" class="next_button"></div>');
	}else{
		html.push('<div onclick="nbaHomepage.vidPageScroll(' + (dotMax-1) + ',\'rt\');" class="next_button_disabled"></div>');
	}
	html.push('</div><div class="nbaT2CarBot">',
		'<div onclick="nbaHomepage.vidPageScroll(' + ((oScrollCounter == 0) ? 0 : oScrollCounter-1) + ',\'lt\');" class="left"></div>',
		'<div class="nbaDotPod">'
	);
				
	if (dotMax == 0){
		html.push('<div class="nbaDot selected"></div>');
	}else{
		for (var i = 0; i < dotMax; i++)
		{
			var dotSelected = (i == parseInt(oScrollCounter)) ? "selected" : "";
			html.push('<div onclick="nbaHomepage.vidPageScroll(' + i + ');" class="nbaDot ' + dotSelected + '"></div>');
		}
	}

	html.push('</div>',
		'<div onclick="nbaHomepage.vidPageScroll(' + ((oScrollCounter == dotMax-1) ? dotMax-1 : oScrollCounter+1) + ',\'rt\');" class="right"></div>',
		'</div></div>'
	);
	if (oIdent != "league"){
		var isOriginals = (oSection == "originals")
		wrapURL = (isOriginals) ? (nbaHomepage.getNBABaseUrl() + "/" + oName + "/video/" + oSection) : (nbaHomepage.getNBABaseUrl() + "/video/" + oName);
		wrapTmp = " " + (oName.substring(0,1)).toUpperCase() + oName.substring(1,oName.length);
		wrapSection = (isOriginals) ? "Originals Videos" : "Videos";
	}else{
		var tmpSection = (oSection == 'editorspick') ? (oSection + "s") : oSection
		if( tmpSection.indexOf('allstar') != -1 )
		{
			wrapURL = nbaHomepage.getNBABaseUrl() + tmpSection.replace(/allstar_?/,'/allstar2010/video/');
		}
		else
		{
			wrapURL = nbaHomepage.getNBABaseUrl() + '/video/'+tmpSection
		}
		//wrapURL = (tmpSection == 'allstar') ? nbaHomepage.getNBABaseUrl()+'/allstar2010/video/' : nbaHomepage.getNBABaseUrl() + "/video/" + tmpSection;
		wrapTmp = "";
		wrapSection = (oSecName === 'What&#39;s New?' || oSecName === 'What\'s New?') ? 'All-Star' : oSecName;
		wrapSection += ' Videos';
	}
	//html.push('<div class="nbaHPPodsMore"><a href="' + wrapURL + '">All' + wrapTmp + ' ' + wrapSection + '</a></div>');
	return html.join('');
}
/*******************************************************************************
 * T2 URL and Sub-nav configuation
 *******************************************************************************/
nbaHomepage.t2Config = function()
{
	this.IDOLSearchPath		= "http://searchapp.nba.com/nba-search/query.jsp";	
	this.leagueVidJSONPath 	= "/.element/ssi/auto/2.0/aps/video/mainpage/";
	//this.leagueVidJSONPath 	= "/.element/ssi/auto/2.0/aps/video/allstar2010/";
	this.leaugeHeadJSONPath = "/.element/ssi/auto/2.0/cms/home/";
	//this.teamVidJSONPath 	= "/.element/ssi/auto/2.0/aps/video/mainpage/teams/";
	//this.teamHeadJSONPath	= "/.element/ssi/auto/2.0/aps/mainpage/teams/";
	
	this.tabSubCategory	= {
		league:[
			{section:"allstar", displayName:"What&#39;s New?", entity:"league"},
			{section:"editorspick", displayName:"Editor&#39;s Picks", entity:"league"},
			{section:"allstar_players", displayName:"Players", entity:"league"},
			//{section:"allstar_game", displayName:"All-Star Game", entity:"league"},
			{section:"nbatv", displayName:"NBA TV", entity:"league"},
			{section:"tntot", displayName:"TNT Overtime", entity:"league"}
		],
		saturday:[
			{section:"allstar_slam_dunk", displayName:"Slam Dunk", entity:"league"},
			{section:"allstar_three_point", displayName:"3-Point Shootout", entity:"league"},
			{section:"allstar_skills", displayName:"Skills Challenge", entity:"league"},
			{section:"allstar_shooting_stars", displayName:"Shooting Stars", entity:"league"},
			{section:"allstar_horse", displayName:"H.O.R.S.E.", entity:"league"}
		],
		more:[
			{section:"allstar_rookie", displayName:"Rookie Challenge", entity:"league"},
			{section:"allstar_celebrity", displayName:"Celebrity Game", entity:"league"}
		],
		team:[
			{section:"mostrecent", displayName:"Most Recent", entity:"team"},
			{section:"mostcommented", displayName:"Most Commented", entity:"team", IDOL:{type:"advvideo",start:1, npp:12, site:"all", section:"teams/", sort:"comment"}},
			//{section:"Viewed7days", displayName:"Viwed 7 Days", entity:"team", IDOL:{type:"advvideo",start:1, npp:12, site:"all", section:"teams/", sort:"view_7d"}},
			{section:"highlights", displayName:"Highlights", entity:"team"},
			{section:"originals", displayName:"Originals", entity:"team"}							
		]
	};
							
	this.nbaCSIErrorMsg = {
		noVideo:'<div class="nbaT2Messages">Your search returned 0 results</div>',
		noHeadline:'<div class="nbaT2Messages">No headlines(s) to display!</div>',
	 	badFileJson:'<div class="nbaT2Messages">No information to display!</div>', //an error occurred
		loading:'<div class="nbaT2Messages"><img src="http://i.cdn.turner.com/nba/nba/search_v2/images/loading.gif"></div>'
	};							
}

// PERSONALITIES ACCORDION
function openAccord(n){
	var j = document.getElementsByClassName('nbaAccordHead','nbaAccordion');
	var k = document.getElementsByClassName('nbaAccordBox','nbaAccordion');
	for (var i=0;i<j.length;i++){
		if(n-1==i) {
			j[i].className='nbaAccordHead open';
			k[i].style.display='block';
		}
		else {
			if(j[i].className!='nbaAccordHead') j[i].className='nbaAccordHead';
			k[i].style.display='none';
		}
	}
}	

// MISC NAVIGATION TABS	
function HideLinks2() {
	var MainLinks2 = new Array ("nbaFVRndNav1", "nbaFVRndNav2");
	var SubLinks2 = new Array ("nbaFV1", "nbaFV2");
	for (var i=0; i<MainLinks2.length; i++) {
		document.getElementById(MainLinks2[i]).className = "nbaFVPodNavItem";
		document.getElementById(MainLinks2[i]).hideFocus = true;
	}
	for (var i=0; i<SubLinks2.length; i++) {
		document.getElementById(SubLinks2[i]).className = "nbaFV1 hide";
	}
}
function ShowLink2(MainLinkId, SubLinkId) {
	document.getElementById(MainLinkId).className = "nbaFVPodNavItem nbaFVPodNavSelected";
	document.getElementById(SubLinkId).className = "nbaFV1 show";
}
function ActiveMenu2(MainLinkId, SubLinkId) {
	HideLinks2();
	ShowLink2(MainLinkId, SubLinkId);
}	
	
function HideLinks() {
	var MainLinks = new Array ("nbaTVRndNav1", "nbaTVRndNav2", "nbaTVRndNav3", "nbaTVRndNav4");
	var SubLinks = new Array ("nbaTV1", "nbaTV2", "nbaTV3", "nbaTV4");
	for (var i=0; i<MainLinks.length; i++) {
		document.getElementById(MainLinks[i]).className = "nbaTVPodNavItem";
		document.getElementById(MainLinks[i]).hideFocus = true;
	}
	for (var i=0; i<SubLinks.length; i++) {
		document.getElementById(SubLinks[i]).className = "nbaTV1 hide";
	}
}
function ShowLink(MainLinkId, SubLinkId) {
	document.getElementById(MainLinkId).className = "nbaTVPodNavItem nbaTVPodNavSelected";
	document.getElementById(SubLinkId).className = "nbaTV1 show";
}
function ActiveMenu(MainLinkId, SubLinkId) {
	HideLinks();
	ShowLink(MainLinkId, SubLinkId);
}		

function HideLinks1() {
	var MainLinks1 = new Array ("nbaSMRndNav1", "nbaSMRndNav2", "nbaSMRndNav3");
	var SubLinks1 = new Array ("nbaSM1", "nbaSM2", "nbaSM3");
	for (var i=0; i<MainLinks1.length; i++) {
		document.getElementById(MainLinks1[i]).className = "nbaSMPodNavItem";
		document.getElementById(MainLinks1[i]).hideFocus = true;
	}
	for (var i=0; i<SubLinks1.length; i++) {
		document.getElementById(SubLinks1[i]).className = "nbaSM1 hide";
	}
}
function ShowLink1(MainLinkId, SubLinkId) {
	document.getElementById(MainLinkId).className = "nbaSMPodNavItem nbaSMPodNavSelected";
	document.getElementById(SubLinkId).className = "nbaSM1 show";
}
function ActiveMenu1(MainLinkId, SubLinkId) {
	HideLinks1();
	ShowLink1(MainLinkId, SubLinkId);
}			

