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="/assets/images/nav/nav_shows_on.jpg";
				break
				case "hide":	
					sNav.src="/assets/images/nav/nav_shows_off.jpg";
				break
			}
		break
		case "fansImg": //For Fans
			switch(action){
				case "show":
					sNav.src="/assets/images/nav/nav_for_fans_on.jpg";
				break
				case "hide":					
					sNav.src="/assets/images/nav/nav_for_fans_off.jpg";
				break
			}
		break
		case "fullepisodesImg": //Full Episodes
			switch(action){
				case "show":
					sNav.src="/assets/images/nav/nav_watch_episodes_on.jpg";
				break
				case "hide":					
					sNav.src="/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('http://www.nbc.com/assets/images/nav/selector.jpg')";		
		}else{
			tag.style.backgroundColor = "";
			addTag.style.backgroundImage = "";	
		}
	}catch(e){/* ignore */}
}




// Global DropDown Script
function navDD(dd){
	if (document.all&&document.getElementById) {
		
		navRoot = document.getElementById(dd); // Get a handle to the "nav" id
		/// Count out the number of elements.
	
		for (i=0; i<navRoot.childNodes.length; i++) {
			node = navRoot.childNodes[i]; // set the handle of each element
			/// Check to see if it's a list item
			
			if (node.nodeName=="LI") {
				/// Create and set the mouse over functions
				node.onmouseover=function() {

					this.className+=" over"; // Set the new class for the element moused over
				
				}
				/// Create and set the mouse out functions
				node.onmouseout=function() {
					
					this.className=this.className.replace(" over", "");  //Set the new class for the element mouse out
				 }
			 }
		 }
	}
}


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});	
}



// MyNbc Add to favorite functions Begin
function addfavorite(id, fromPage) {
	
	if(id.id != null){
		pageId = id.id.replace('sAdd', '');	
	}else{
		pageId = id;
		
	}
	
	
	runMessage();
	if(document.getElementById('myNbcApp').style.display == "none"){		
		myNbcSet();		
		window.setTimeout('runIt('+pageId+')',1400);
	}else{
		runIt(pageId);	
	}
	
	
	/* BEGIN: [Onmiture Tracking Code]*/
	try{var s=s_gi(s_account);}catch(e){alert('s_account error: '+e);}
	s.linkTrackVars='prop30';
	s.linkTrackEvents='none';
	
	// check where the request is coming from 
	if(fromPage){ // Actual Site
		trackMe = document.getElementById(fromPage.id); 
		page = document.getElementById(trackMe.id.replace('sAdd', 'dd'));
		
		page = document.getElementById(page.id);
		type = "Page";
		
	}else{ // NBC Navigation
		trackMe = document.getElementById('Add'+id); // NBC Navigation
		page = document.getElementById('dd'+id);
		type = "Nav";
	}
	
	s.prop30 = 'MyNBC | '+page.title+' | '+type;
	s.tl(trackMe,'o', s.prop30);
	
	/* END: [Onmiture Tracking Code] */
	
	
	
	
}


function runIt(id){
	thisMovie("MYNBC").addfav(id);	
}


var origin;
function runMessage(){
	sNavInfo =document.getElementById('show'); 
	sNavInfo.style.zIndex= "0";
	document.getElementById('navMessage').style.zIndex= "10000";
	document.getElementById('navMessage').style.backgroundColor = "#122e44";
	document.getElementById('navMessage').innerHTML = "Saving to your &quot;mySHOWS&quot;...";
	window.setTimeout('resetIt()',1800);
}


function resetIt(){
	document.getElementById('show').style.zIndex ="10000";
	document.getElementById('navMessage').style.zIndex ="-1";
	document.getElementById('navMessage').innerHTML = "";
	document.getElementById('navMessage').style.backgroundColor = "";
	}


function thisMovie(movieName,id) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName]
    }
    else {
        return document[movieName]
    }
}




// MY NBC Cookie Checks  BEGIN //
var cOpen = readCookie('myNbc');
function myNbcRead(){
	//Effect.toggle('myNbcApp','blind',{duration:.5});
	if(cOpen){				
		if(cOpen == "1"){	
			document.getElementById('myNbcApp').style.display="block";
			document.getElementById('myNbcApp').style.height="215px";
			try{var s=s_gi(s_account);}catch(e){alert('s_account error: '+e);}	
			s.linkTrackVars='prop30';
			s.linkTrackEvents='None';
			s.prop30 = 'MyNBC | Exposed';
			trackMe=document.getElementById('myNbcApp');
			s.tl(trackMe,'o', s.prop30);
		}
	}else{	
		document.getElementById('myNbcApp').style.display="none";
	}
}




function myNbcSet(){
	try{
		if(cOpen!=null){
			Effect.toggle('myNbcApp','blind',{duration:.6});			
			eraseCookie('myNbc');	
			cOpen = null;
		}else{
			Effect.toggle('myNbcApp','blind',{duration:.8});
			createCookie('myNbc', '1', 0);		
			cOpen = '1';
			
			var s=s_gi(s_account);	
			s.linkTrackVars='prop30';
			s.linkTrackEvents='None';
			s.prop30 = 'MyNBC | Exposed';
			trackMe=document.getElementById('myNbcApp');
			s.tl(trackMe,'o', s.prop30);
		}
	}catch(e){alert("myNBC SET error: "+e)}
}


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);
}
// MY NBC Cookie Checks  #END //


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];
	}
}


function openWirelessRegisterWindow()  {

	var eventId;
	var userId;
	var url;
	var left;
	var top;
	var iWidth;
	var iHeight;
	var settings;
	var urlName;
	var urlVariables;
	
	
	iWidth=screen.availWidth;
	iHeight=screen.availHeight;
	
	left=(iWidth-610)/2;
	top=(iHeight-420)/2;

	
	eventId= 10083;
	
	settings= "scrollbars=no,menubar=no,width=610,height=420,left="+left+",top="+top;
	
	urlName = "http://wireless.eventmatrix.com/Registration/Register.aspx";
	urlVariables = "?eid=" + eventId + "&uid=" + userId;
	
	url="http://gold.eventmatrix.com/EMCGWebTemplate/main.aspx?ProducerId=10132&EventId=10083";
	window.open(url, "WirelessRegistration", settings);
}


function ad_req(cid, bid, sid, pos) {
	//var rand = rando();
	//ad = new Image();
	//var ad_uri = "http://ads.nbc.com/clear.gif?c=" + cid + "&b=" + bid + "&s=" + s
}

function launchvideo(pathid) 
{
	// test
	//site='http://video-proto.nbcuni.com/player.html';
	// prod
	site='http://video.nbc.com/player.html';
	
	param = '?dlid=';
	newwindow=window.open(site+param+pathid,'sendtofriend','toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=no,width=750,height=550');
	if (window.focus) {newwindow.focus()}
	//return false;
}

function launchvideodir(pathid) 
{
	// test
	//site='http://video-proto.nbcuni.com/player.html';
	// prod
	site='http://video.nbc.com/player.html';
	
	param = '?dl=';
	newwindow=window.open(site+param+pathid,'sendtofriend','toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=no,width=750,height=550');
	if (window.focus) {newwindow.focus()}
	//return false;
}

var randDARTNumber=0;
function genSetRandDARTNumber()
{
 randDARTNumber = Math.round(Math.random()*1000000000000);
}
genSetRandDARTNumber();