var jqN = jQuery.noConflict();
var nbcHideMe = Array();

// BEGIN NBCU FRAMEWORK CONFIGURATION
try
{
	switch(document.domain)
	{
		case "nbc.com":
		case "www.nbc.com":
		case "www.geminidivision.com":
			nbcu.config.addParam("nbcuEnvironment", "production");
			break;    
		case "stage.nbc.com":
		case "stage.geminidivision.com":
			nbcu.config.addParam("nbcuEnvironment", "stage");
			break;
		default:
			nbcu.config.addParam("nbcuEnvironment", "dev");
	}

	nbcu.config.addParam("frameworkUrl", "/assets/nbcu");
	nbcu.config.addParam("frameworkApiUrl", "/app/api");
	nbcu.config.addParam("snasSiteName", "nbc.com");
	nbcu.config.addParam("snasSiteDomainName", "my.nbc.com");
	nbcu.config.addParam("siteName", "NBC.com");
	nbcu.config.addParam("socialNetworkName", "myNBC");
		
	if (nbcu.config.getParam("nbcuEnvironment") == "dev")
	{
		nbcu.config.addParam("snasRestUrl", "http://snasdev1.nbcuni.com")
		nbcu.config.addParam("socialNetworkUrl", "http://qa.my.nbc.com");
	}
	else
	{
		nbcu.config.addParam("snasRestUrl", "http://snas.nbcuni.com");
		nbcu.config.addParam("socialNetworkUrl", "http://my.nbc.com");
	}
}
catch(err){}
// END FRAMEWORK CONFIGURATION

jqN(function(){
	jqN('#A-mast-header').after('<div id="isPNG"></div>');
	jqN(document).pngFix();
	jqN('#A-searchform input').hint();
	jqN('input#globalLoginEmail, #globalLoginPass').hint();
	loadMyNBCLogin();
	nbcAccordion('#A-news-inner', '.A-newsContent', '.newsTitle', 'activeNewsTitle', '.def-listener');
	nbcAccordion('#myCommAccord', '.myCommContent', '.myCommTitle', 'activeTitle', '.def-listener-comm');
	hoverEffectDirect();
});
function nbcDropDown(id){
	jqN(function(){
		jqN(id).superfish({
			pathClass : 'current',
			animation : {height: 'toggle'},
			delay : 0,
			speed : "fast"
		})
	})
}
function nbcMainDrop (id){
	// jqN("ul#A-mast-nav li div.sub-navi").css({top: "20px"})
	jqN(id+"> li").hover(function() {
		jqN(this+" div.sub-navi").css({top: "20px"})
	},
	function() {
		jqN("div.sub-navi").css({top: "-999em"})
	})
}
function hideVisible (hideThis, trig){
	if(trig == 1){
	jqN(hideThis).css('visibility','hidden');
	}else{
		jqN(hideThis).css('visibility','visible');
	}
}
function nbcAccordion (containDiv, panelDiv, handle, activeClass, closePanel){
		jqN(containDiv+'>'+panelDiv).hide();
		jqN(panelDiv+':first').show();
		jqN(containDiv+'> '+handle).css('cursor', 'pointer');
		jqN(containDiv+'> '+handle).click(function(){
			jqN(containDiv).find(panelDiv+':visible').hide();
			jqN(this).next().show().fadeIn('fast');
				jqN(containDiv).find('.'+activeClass).removeClass(activeClass)
			jqN(this).addClass(activeClass).fadeIn('fast');
			//Jakes stuff
			// jqN(this).text()
			linkHunt(jqN(containDiv).attr('id')+'|'+jqN(this).text())
		});
		jqN(closePanel).click(function(){
				jqN(containDiv+'>'+panelDiv).hide();		
				jqN(panelDiv+':first').show();
				jqN(containDiv).find('.'+activeClass).removeClass(activeClass);
			});
}
function loadMyNBCLogin(){
	jqN('#mynbc_login_out').click(function(){
		if(jqN(this).attr('class') != 'logout'){
			jqN('#mynbcLoginForm').fadeIn('fast').show();
		}
	});
	jqN('#globalLoginclose').click(function(){
		jqN('#mynbcLoginForm').hide('slow');
	})
	if(jqN.cookie('sn_nbc_b')){
		var t = jqN.cookie('sn_nbc_b').split('|');
		// Log out old uuid users
		if (t[1].indexOf(",") >= 0 && document.domain == "www.nbc.com")	{
			jqN.cookie('sn_nbc_a', '', { expires: -1, domain: ".nbc.com" });
			jqN.cookie('sn_nbc_b', '', { expires: -1, domain: ".nbc.com" });
			jqN.cookie('sn_nbc_c', '', { expires: -1, domain: ".nbc.com" });
			jqN.cookie('snas', '', { expires: -1, domain: ".nbc.com" });
		} else {
			jqN('#mynbc-login').append('<p><a href=\"http://my.nbc.com/'+t[6]+'\" title=\"'+t[6]+'\">Hello, '+t[6]+'</a></p>');
			jqN('#mynbc_login_out').addClass('logout');
			jqN('.logout').click(function(){
				jqN(this).attr('href', 'http://my.nbc.com/accounts/logout')

				// jqN.ajax({
				// 			type:"POST",
				// 			url:"/app/sn/api/sso/",
				// 			data:"remember=0",
				// 			dataType:"xml",
				// 			error: function() {alert("logout not happening")},
				// 			success: function() {alert("logged out")},
				// 		})
				// jqN.post({
				// 		url:"http://my.nbc.com/accounts/logout?success=1",
				// 		callback: function(){alert('loggit out')},
				// 		type: "http"
				// 		})
			});
		}
	}

	jqN('#globalLoginSubmitBtn').click(function(){
		
		var loginForm = jqN('#mynbcLoginForm form');
		var emailSub = jqN('#globalLoginEmail').val();
		var passSub = jqN('#globalLoginPass').val();
		// var theQuery = "method=login&email="+emailSub+".com&password="+passSub+"&remember=0"
		var theQuery = "method=login&email="+emailSub+"&password="+passSub+"&remember=0";
		var logState = 1;
			jqN.ajax({
				type:"POST",
				url:"/app/sn/api/sso/",
				data: theQuery,
				dataType:"xml",
				error: function(){
					jqN('#mynbcLoginForm').append('<div id=\"response-text\">Sorry cant login from here.</div>');
					var currentLocation = window.location;
					window.location = 'http://my.nbc.com/accounts/login?redirectUrl='+currentLocation+'';
				},
				success: function(msg){
					if(jqN('status', msg).text() == '0'){
						var response = jqN('msg', msg).text();;
					jqN('#mynbcLoginForm').append('<div id=\"response-text\">'+response+'</div>');
					jqN('#response-text').fadeIn('slow').animate({opacity:1.0},3000).fadeOut('slow');
					}
					
					if(jqN('status', msg).text() == '1'){
						if(logState==1){
							jqN('#mynbcLoginForm').hide('slow');
							var userName = jqN('userName', msg).text();
							jqN('#mynbc-login').append('<p><a href=\"http://my.nbc.com/'+userName+'\" title=\"'+userName+'\">Hello, '+userName+'</a></p>');
							jqN('#mynbc_login_out').addClass('logout');
							logState = 1;
						}else{return false;}
					}
				}
			})
	})
}
function nbcHideItem(anArray) {
	for (var i=0; i < anArray.length; i++) {
		nbcHideMe[i] = anArray[i];
	};
};
function showsDropDown(hoverEl, id){
	var el = jqN(hoverEl);
	jqN(id).hide();
	var theID = jqN(id);
	el.hover(function(){theID.toggle();
		nbcToggleEl(nbcHideMe, "hide")
		},
		function(){
			var renderOut = theID.hide();
			nbcToggleElShow(nbcHideMe)
			}
	);
}
function nbcToggleEl (arr, set){
	if(set = "hide"){
		for (var i=0; i < arr.length; i++) {
			document.getElementById(arr[i]).style.visibility = 'hidden';
			// document.getElementById(arr[i]).style.display = 'none';
		};
	}
}
function nbcToggleElShow (arr){
		for (var i=0; i < arr.length; i++) {
			document.getElementById(arr[i]).style.visibility = 'visible';
			// document.getElementById(arr[i]).style.display = 'block';
		}
}
function loadShowNav(){
	jqN.ajax({
	type:"GET",
	url:"/www.assets/xml/nav_shows.xml",
	dataType:"xml",
	timeout: 40000,
	error:function(){
		jqN('body').append("<b>Shows nav failed to load</b>")
		},
	success:function(xml){
		var isShow = jqN('show', xml);	
			var htmlUL = '<ul class=\"showlistlink\"></ul>';
			var htmlULLast = '<ul class=\"showlistlink\" style=\"margin:0; width:160px; background:none\"></ul>';
			jqN('#A-sub-show').append(htmlUL+htmlUL+htmlUL+htmlULLast);
		isShow.each(function(i){
			var isTitle = jqN('name', this).text();
			var isUrl = jqN('link', this).text();
			var ifFull = jqN('full', this).text();
			var htmlLI = '<li><a href=\"'+isUrl+'\" title=\"'+isTitle+'\">'+isTitle+'</a></li>';
				if(i<=8){	
				jqN('ul.showlistlink:eq(0)').append(htmlLI);
				}
				if(i>=9 && i<=17){
					jqN('ul.showlistlink:eq(1)').append(htmlLI);				
				}
				if(i>=18 && i<=26){
					jqN('ul.showlistlink:eq(2)').append(htmlLI);
				}
				if(i>=27 && i<=35){
					jqN('ul.showlistlink:eq(3)').append(htmlLI);
				}
				if(i>=36 && i<=48){
					jqN('ul.showlistlink:eq(4)').append(htmlLI);
				}
			})	
				
		}
	});
}
function hoverEffectDirect(){
	jqN('.hasFullEpisode').hover(function() {
		jqN(this).css('color','#FDB913')
	}, function() {
		jqN(this).css('color','#fcffff')
	})
	jqN('.nbc_directable').hover(function() {
		jqN(this).siblings().css('color','#FDB913')
	},
	function() {
		jqN(this).siblings().css('color','#fcffff');
	}
	);
}
function newWin(){
	jqN("a.moreToit").setAttribute("target","_blank");
}
function browserSniff(){
	var browserSpec = navigator.userAgent;
	return browserSpec;
		// if(jqN.browser.msie){
		// 	jqN('body').append(navigator.userAgent)
		// }
		// if(jqN.browser.safari){
		// 	jqN('body').append(navigator.userAgent)
		// }
		// if(jqN.browser.mozilla){
		// 	jqN('body').append(navigator.userAgent);
		// }
		// if(jqN.browser.opera){
		// 	jqN('body').append(navigator.userAgent)
		// }
}
// Jake Garcia's function
function linktrack(myname) { 
        var s=s_gi(s_account); s.tl(true,'o',myname+'|'+ document.location) ;
} 
function linkHunt(myname) { 
        var s=s_gi(s_account); s.tl(true,'o','FrontDoor|'+myname);
	//	return false;
}

// Legacy crap --------->
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{	// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 	// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]
};
BrowserDetect.init();
// -- GET URL STRING INFORMATION -- //
function QueryString(key)
{
	var value = null;
	for (var i=0;i<QueryString.keys.length;i++)
	{
		if (QueryString.keys[i]==key)
		{
			value = QueryString.values[i];
			break;
		}
	}
	return value;
	
}
QueryString.keys = new Array();
QueryString.values = new Array();
function QueryString_Parse()
{
	var query = window.location.search.substring(1);
	var pairs = query.split("&");
	
	for (var i=0;i<pairs.length;i++)
	{
		var pos = pairs[i].indexOf('=');
		if (pos >= 0)
		{
			var argname = pairs[i].substring(0,pos);
			var value = pairs[i].substring(pos+1);
			QueryString.keys[QueryString.keys.length] = argname;
			QueryString.values[QueryString.values.length] = value;		
		}
	}

}
// Steady on states for drop downs
function switchNav(nav,action){
	sNav = document.getElementById(nav);
	
	switch(nav){
		case "showsImg": //Shows
			switch(action){
				case "show":	
					sNav.src="/www.assets/images/nav/nav_shows_on.jpg";
				break
				case "hide":	
					sNav.src="/www.assets/images/nav/nav_shows_off.jpg";
				break
			}
		break
		case "fansImg": //For Fans
			switch(action){
				case "show":
					sNav.src="/www.assets/images/nav/nav_for_fans_on.jpg";
				break
				case "hide":					
					sNav.src="/www.assets/images/nav/nav_for_fans_off.jpg";
				break
			}
		break
		case "fullepisodesImg": //Full Episodes
			switch(action){
				case "show":
					sNav.src="/www.assets/images/nav/nav_watch_episodes_on.jpg";
				break
				case "hide":					
					sNav.src="/www.assets/images/nav/nav_watch_episodes_off.jpg";
				break
			}
		break
	}
	mfbSwitch(action);
}
function mfbSwitch(ac){
	try{
	if(navigator.appVersion.indexOf("Mac")!=-1){ // for mac flash/DHTML issues.
		if(ac == "show"){
			document.getElementById('mfb').style.visibility="hidden";		
		}else{
			document.getElementById('mfb').style.visibility="visible";
		}
	}	
	}catch(e){/*ignore*/}
}
// Sub-Nav rollovers and MyNBC Add selector viewer for the list..
function vis(loc, act, sid){
	try{
		var tag = loc;
		var addTag = "Add"+sid;
		addTag = document.getElementById(addTag);
		if(act == 'show'){
			tag.style.backgroundColor = "#666666";
			addTag.style.backgroundImage = "url('/www.assets/images/nav/selector.jpg')";		
		}else{
			tag.style.backgroundColor = "";
			addTag.style.backgroundImage = "";	
		}
	}catch(e){/* ignore */}
}
// Global DropDown Script
function navDD(dd){

	jqN(function(){
			jqN(dd+'> li').hover(function(){
				jqN(this).addClass('over');
			},function(){
				jqN(this).removeClass('over')
			})
	})
}
function navPop(div){
	Effect.Appear(div, {duration:0.5, from:0.0, to:1.0});	
}

function navFade(div){
	Effect.Fade(div, {duration:0.5, from:1.0, to:0.0});	
}
function thisMovie(movieName,id) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName]
    }
    else {
        return document[movieName]
    }
}
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function eraseCookie(name) {
	createCookie(name,"",-1);
}
function hideUnhideVideo(state)
{
	if(state)
	{
		try
		{
			embeddedPlayerManager.getPlayer().hidePlayer()
		} catch (e) {}
	} else {
		try
		{
			embeddedPlayerManager.getPlayer().unHidePlayer()
		} catch (e) {}
	}
		
}
// preload images
var myimages=new Array()
function preloadimages(){
	for (i=0;i<preloadimages.arguments.length;i++){
		myimages[i]=new Image();
		myimages[i].src=preloadimages.arguments[i];
	}
}
var randDARTNumber=0;
function genSetRandDARTNumber()
{
 randDARTNumber = Math.round(Math.random()*1000000000000);
}
genSetRandDARTNumber();
