var agt = navigator.userAgent.toLowerCase();
var versInt = parseInt(navigator.appVersion);
var is_ie	= ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie3    = (is_ie && (versInt < 4));
var is_ie4    = (is_ie && (versInt == 4) && (agt.indexOf("msie 4")!=-1) );
var is_aol   = (agt.indexOf("aol") != -1);
var is_aol3  = (is_aol && is_ie3);
var is_aol4  = (is_aol && is_ie4);
var is_aol5  = (agt.indexOf("aol 5") != -1);
var is_aol6  = (agt.indexOf("aol 6") != -1);
var is_comp   = (agt.indexOf("compuserve") != -1);
var is_comp2000   = (agt.indexOf("cs") != -1);	 
var is_compie = (is_comp && is_ie);
var cnnSiteWideCurrDate = new Date();


// _____________________________________________________________ WebMonkey code
/*
WM_setCookie(), WM_readCookie(), WM_killCookie()
A set of functions that eases the pain of using cookies.

Source: Webmonkey Code Library
(http://www.hotwired.com/webmonkey/javascript/code_library/)

Author: Nadav Savio
*/

// This next little bit of code tests whether the user accepts cookies.
function WM_browserAcceptsCookies() {
	var WM_acceptsCookies = false;
	if ( document.cookie == '' ) {
		document.cookie = 'WM_acceptsCookies=yes'; // Try to set a cookie.
		if ( document.cookie.indexOf( 'WM_acceptsCookies=yes' ) != -1 ) {
			WM_acceptsCookies = true;
		} // If it succeeds, set variable
	} else { // there was already a cookie
		WM_acceptsCookies = true;
	}
	
	return ( WM_acceptsCookies );
}

function WM_setCookie( name, value, hours, path, domain, secure ) {
	if ( WM_browserAcceptsCookies() ) { // Don't waste your time if the browser doesn't accept cookies.
		var numHours = 0;
		var not_NN2 = ( navigator && navigator.appName
					&& (navigator.appName == 'Netscape')
					&& navigator.appVersion
					&& (parseInt(navigator.appVersion) == 2) ) ? false : true;

		if ( hours && not_NN2 ) { // NN2 cannot handle Dates, so skip this part
			if ( (typeof(hours) == 'string') && Date.parse(hours) ) { // already a Date string
				numHours = hours;
			} else if ( typeof(hours) == 'number' ) { // calculate Date from number of hours
				numHours = ( new Date((new Date()).getTime() + hours*3600000) ).toGMTString();
			}
		}
		
		document.cookie = name + '=' + escape(value) + ((numHours)?(';expires=' + numHours):'') + ((path)?';path=' + path:'') + ((domain)?';domain=' + domain:'') + ((secure && (secure == true))?'; secure':''); // Set the cookie, adding any parameters that were specified.
	}
} // WM_setCookie

function WM_readCookie( name ) {
	if ( document.cookie == '' ) { // there's no cookie, so go no further
	    return false;
	} else { // there is a cookie
	    var firstChar, lastChar;
		var theBigCookie = document.cookie;
		firstChar = theBigCookie.indexOf(name);	// find the start of 'name'
		var NN2Hack = firstChar + name.length;
		if ( (firstChar != -1) && (theBigCookie.charAt(NN2Hack) == '=') ) { // if you found the cookie
			firstChar += name.length + 1; // skip 'name' and '='
			lastChar = theBigCookie.indexOf(';', firstChar); // Find the end of the value string (i.e. the next ';').
			if (lastChar == -1) lastChar = theBigCookie.length;
			return unescape( theBigCookie.substring(firstChar, lastChar) );
		} else { // If there was no cookie of that name, return false.
			return false;
		}
	}	
} // WM_readCookie

function WM_killCookie( name, path, domain ) {
	var theValue = WM_readCookie( name ); // We need the value to kill the cookie
	if ( theValue ) {
		document.cookie = name + '=' + theValue + '; expires=Fri, 13-Apr-1970 00:00:00 GMT' + ((path)?';path=' + path:'') + ((domain)?';domain=' + domain:''); // set an already-expired cookie
	}
} // WM_killCookie


// ______________________________________________________________________ Apple
// Copyright © 2000 by Apple Computer, Inc., All Rights Reserved. 



function openWindow (earl,name,widgets) 
{
	host = location.hostname;
	if (host.indexOf('customnews') != -1) 
	{
		var url = 'http://customnews.cnn.com' + earl;
	}
	else
	{
		var url = earl;
	}
	popupWin = window.open (url,name,widgets);
	
	if(!is_aol6 && !is_aol3 && !is_aol4 && !is_aol5 && !is_compie && !is_comp2000)
	{
		popupWin.opener.top.name = "opener";
		popupWin.focus();
	}
     
}

function CNN_setAccessibilityPixelAltText() {
	if ( document.getElementById ) {
		var thePixelRef = document.getElementById( 'accessibilityPixel' );
		var bnewsTitleRef = document.getElementById( 'cnnBreakingNewsTitle' );
		var bnewsTextRef = document.getElementById( 'cnnBreakingNewsText' );
		if ( thePixelRef && ( bnewsTitleRef && bnewsTextRef ) ) {
			var bnewsTitle = '';
			var bnewsText = '';
			if ( bnewsTitleRef.hasChildNodes && bnewsTitleRef.lastChild.hasChildNodes ) {
				bnewsTitle = bnewsTitleRef.lastChild.firstChild.data;
			}
			if ( bnewsTextRef.hasChildNodes ) {
				bnewsText = bnewsTextRef.firstChild.data;
			}
			if ( bnewsTitle && bnewsText ) {
				thePixelRef.setAttribute( 'alt', bnewsTitle + ': ' + bnewsText + ' ' + thePixelRef.getAttribute( 'alt' ) );
			}
		}
	}
}

function CNN_goTo( url ) {
	window.location.href = url;
}

function CNN_roofBar( tableCellRef, hoverFlag ) {
	if ( hoverFlag ) {
		tableCellRef.style.backgroundImage = 'url("roofbar_bg2.gif")';
		if ( document.getElementsByTagName ) {
			tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#c00';
		}
	} else {
		tableCellRef.style.backgroundImage = 'url("roofbar_bg.gif")';
		if ( document.getElementsByTagName ) {
			tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#333';
		}
	}
}

function CNN_roofBarClick( tableCellRef, url ) {
	CNN_roofBar( tableCellRef, 0 );
	CNN_goTo( url );
}

function CNN_navBar( tableCellRef, hoverFlag, navStyle ) {
	if ( hoverFlag ) {
		switch ( navStyle ) {
			case 1:
				tableCellRef.style.backgroundColor = '#69c';
				break;
			default:
//				tableCellRef.style.backgroundColor = '#ccc';
				if ( document.getElementsByTagName ) {
					tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#c00';
				}
		}
	} else {
		switch ( navStyle ) {
			case 1:
				tableCellRef.style.backgroundColor = '#036';
				break;
			default:
//				tableCellRef.style.backgroundColor = '#ddd';
				if ( document.getElementsByTagName ) {
					tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#000';
				}
		}
	}
}

function CNN_navBarHoriz( tableCellRef, hoverFlag, navStyle ) {
	if ( hoverFlag ) {
		switch ( navStyle ) {
			case 1:
				tableCellRef.style.backgroundColor = '#69c';
				break;
			default:
//				tableCellRef.style.backgroundColor = '#ccc';
				if ( document.getElementsByTagName ) {
					tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#c00';
				}
		}
	} else {
		switch ( navStyle ) {
			case 1:
				tableCellRef.style.backgroundColor = '#369';
				break;
			default:
//				tableCellRef.style.backgroundColor = '#ddd';
				if ( document.getElementsByTagName ) {
					tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#000';
				}
		}
	}
}

function CNN_navBarClick( tableCellRef, navStyle, url ) {
	CNN_navBar( tableCellRef, navStyle, 0 );
	CNN_goTo( url );
}



// used to open popup windows from the dateline
function CNN_openMap( location )
{
	var datelineWin = window.open( location, '620x430', "height=430,width=620,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no" );
	datelineWin.focus();
}


// this is for opening pop-up windows
function CNN_openPopup( url, name, widgets, openerUrl )
{
	var host = location.hostname;
	var popupWin = window.open( url, name, widgets );
	
	if ( openerUrl )
	{
		popupWin.opener.location = openerUrl;
	}

	if ( !( is_aol6 || is_aol3 || is_aol4 || is_aol5 || is_compie || is_comp2000) )
	{
		popupWin.opener.top.name = "opener";
		popupWin.focus();
	}
}



function splitWindow(s) 
{
	window.name="_mainWindow";
	var w=127;h=153;
	var v=navigator.appVersion.substring(0,1);
	if (navigator.appName=="Netscape")
	{
		if ((v==3)||(v==4)) {w=127,h=168;} 
		else {w=132,h=179;}
	} 
	else {w=112,h=137;}
	if (!s) s="*itn/ord";
	else if (s.indexOf("*,")!=-1) 
	s = s.substring(0,s.indexOf("*"))+"*itn/ord"+s.substring(s.indexOf(","));
	var f="http://cnn.com/event.ng/Type=click&RunID=17006&ProfileID=749&AdID=11567&GroupID=313&FamilyID=2433&TagValues=4.8.435.487.1098&Redirect=http:%2F%2Fwww.itn.net%2Fcgi%2Fget%3Fjava%2FFlightTicker%2FsplitWindow.html&Stamp="+s;
	var win=window.open(f,"ticker","status=0,scrollbars=0,resizable=0,width="+w+",height="+h);
}

//this is for the dropdowns on the pages like TRAVEL


function napVector (vectorChoice) {
	   location.href = document.nap.vector.options[document.nap.vector.selectedIndex].value;
	   }
function ipVector (vectorChoice) {
	   location.href = document.ip.vector.options[document.ip.vector.selectedIndex].value;
	   }


function CNN_setOptionsFromArray( selectOptions, array ) {
//	selectOptions = options reference -	document.forms['{formname}'].{selectname}.options
//								   or -	document.{formname}.{selectname}.options
//	array = Array - { 'text', 'url', 'text', 'url', ... }
// javascript:if( new Option() ) { alert( "true" ) } else { alert( "false" ) }
//	Mozilla: true
//	IE5/Mac: true
//	NN4/Mac: true
	var length = selectOptions.length;
	if ( new Option() ) {
		length = 2;								//	start at the top
		for ( var i = 0; i < array.length; i+=2 ) {
			selectOptions[length++] = new Option( array[i], array[i+1], false );
		}
	} else if ( document.createElement( "OPTION" ) ) {
		if ( selectOptions.length > 1 ) {
			for ( var i = 2; i < selectOptions.length; i++ ) {
				selectOptions.remove( 2 );		//	strip off options because we add them later
			}
		}
		for ( var i = 0; i < array.length; i+=2 ) {
			var newOption = document.createElement( "OPTION" );
			newOption.text = array[i];
			newOption.value = array[i+1];
			selectOptions.add( newOption );
		}
	}
}


//this is for the edition cookie popup, Jamie Randell author

EditionCookieName = 'EditionPopUp';
EditionCookieExpire = 7;  
EditionValue = 'seen';
EditionLimit = 1;
EditionURL = '/virtual/editions/europe/2000/roof/change.pop/frameset.exclude.html';  // URL for editions popup HTML goes here!
EdPopHeight = 250;	// Height for popup window goes here
EdPopWidth = 260;	 // Width of popup window goes here

EditionDomain = ".cnn.com";

with (navigator) {
	var aN = appName;
	uA = userAgent;
	aV = parseInt(appVersion);
}
ie = uA.indexOf("MSIE") > 0 || aN.indexOf("Microsoft") == 0;
mac = uA.indexOf("Mac") > 0;

if (!mac && ie && aV<4) {
	var msieStart = navigator.appVersion.indexOf("MSIE");
	var msieVer = navigator.appVersion.substring(msieStart+5,navigator.appVersion.length);
	aV = parseInt(msieVer);
}

function setCNNedCookieDate() {
	var cookieDate = new Date();
	var year;
	var month;
	var day;
		month = cookieDate.getMonth();
		year = cookieDate.getYear();
		day = cookieDate.getDate();
		if (year<2000) year += 1900;
	day += EditionCookieExpire;
	if (day > 28) {
		day = 1;
		month++;
		if (month > 11) {
			month = 0;
			year++;
		}
	}
	cookieDate.setYear(year);
	cookieDate.setMonth(month);
	cookieDate.setDate(day);

	var CNNcookieDate = cookieDate.toGMTString();
	return CNNcookieDate;
}

function CNNedCookie() {
	this.sh = 0;
	this.id = 0;
}

function decodeCNNedCookie(cookieValue) {
	var searchString = EditionValue + "(";
	var start = cookieValue.indexOf(searchString);
	var cnnCookie = new CNNedCookie();
	if (start == -1)
		cnnCookie.restString = (cookieValue);
	else {
		var extractStart = start + searchString.length;
		var end = cookieValue.indexOf(")",extractStart);
		if (end == -1)
			end = cookieValue.length;
		var cookieExtract = cookieValue.substring(extractStart,end);
		cnnCookie.restString = cookieValue.substring(0,start);
		cnnCookie.restString += cookieValue.substring(end+1, cookieValue.length);

		start = 0;
		while (start < cookieExtract.length) {
			 end = cookieExtract.indexOf(':',start);
			 if (end == -1) break;
			 var attributeName = cookieExtract.substring(start,end);
			 start = end+1;
			 end = cookieExtract.indexOf('&',start);
			 if (end == -1) end = cookieExtract.length;
			 var attributeVal = unescape(cookieExtract.substring(start,end));
			 start = end + 1;
			 cnnCookie[attributeName] = attributeVal;
		} 
	}
	return cnnCookie;
}

function getCNNedCookie() {
	var cnnCookie = null;
	if (document.cookie.length > 0) {
		var search = EditionCookieName + "=";
		var offset = document.cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = document.cookie.indexOf(";", offset);
			if (end == -1) end = document.cookie.length;
			cnnCookie = decodeCNNedCookie(document.cookie.substring(offset, end));			 
		}
	}
	return cnnCookie;
}

function storeCNNedCookie(cnnCookie) {
	if (cnnCookie == null) return;
	var cookieVal = "";
	for (var prop in cnnCookie) {
		if (prop != "restString") {
			if (cookieVal != "") cookieVal += '&';
			cookieVal += prop + ':' + escape(cnnCookie[prop]);
		}
	}

	var cookieString = EditionCookieName + "=";
	cookieString += EditionValue+"("+cookieVal+")";
	if (cnnCookie.restString != null) cookieString += cnnCookie.restString;
	cookieString += '; expires=' + setCNNedCookieDate();
	if (EditionDomain != "") cookieString += '; domain=' + EditionDomain;
	cookieString += '; path=/';
	document.cookie = cookieString;
}

function setCNNedCookie() {
	var newcnnCookie = new CNNedCookie();
	storeCNNedCookie(newcnnCookie);
}

function getEdMinFromStamp(stamp) {
	var year = stamp.substring(0,4);
	var dotpos = stamp.indexOf(".",5);
	var month = stamp.substring(5,dotpos);
	var dotpos2 = stamp.indexOf(".",dotpos+1);
	var day = stamp.substring(dotpos+1,dotpos2);
	dotpos = stamp.indexOf(".",dotpos2+1);
	var hour = stamp.substring(dotpos2+1,dotpos);
	dotpos2 = stamp.indexOf(".",dotpos+1);
	var minute = stamp.substring(dotpos+1,dotpos2);
	var stampDate = new Date(year, parseInt(month)-1, day, hour, minute, 0);
	var minutes = stampDate.getTime()/60000;
	return minutes;
}

function validateCNNedCookie(cnnCookie) {
	return cnnCookie.sh < EditionLimit  && document.cookie.indexOf('CNNid') > -1 && document.cookie.indexOf('SelectedEdition') < 0;
}

function updateCNNedCookie(cnnCookie) {
	cnnCookie.sh++;
	storeCNNedCookie(cnnCookie);
}

function cnnEditionPopUp() {
	if (aV >= 3) {
		var cnnCookie = getCNNedCookie();
		if (cnnCookie == null) {
			setCNNedCookie();
			cnnCookie = getCNNedCookie();
			if (cnnCookie == null) return; 
		}
		if (cnnCookie != null && validateCNNedCookie(cnnCookie)) {
			open(EditionURL,"AdInterstitial", "scrollbars=yes,height="+EdPopHeight+",width="+EdPopWidth);
			updateCNNedCookie(cnnCookie);
		}
	}
}

if (ie && aV<4  ||  !ie && mac && aV<4) {
	cnnEditionPopUp();
}
if (aV>2 || (!ie && mac && aV >= 4)) {
//window.onload = cnnEditionPopUp;
	cnnEditionPopUp();
}


// _________________________________________________________________________
// The following code was added to launch the 'change editions' popup.
// It checks first if it's able to set a cookie before launching the window.
// M.E. - 2000.09.12
// M.E. - 2001.01.21 - Updated for Asia edition, new popup size
// M.E. - 2001.04.18 - Updated for edition links
function browserAcceptsCookies() {
	var WM_acceptsCookies = false;
	if ( document.cookie == '' ) {
		document.cookie = 'WM_acceptsCookies=yes'; // Try to set a cookie.
	    if ( document.cookie.indexOf( 'WM_acceptsCookies=yes' ) != -1 ) {
			WM_acceptsCookies = true;
	    } // If it succeeds, set variable
	} else { // there was already a cookie
	  WM_acceptsCookies = true;
	}
	return ( WM_acceptsCookies );
}

function launchEditionPopup() {
	if ( ! browserAcceptsCookies() ) {
		alert( "In order to set your default edition you must accept cookies." );
	} else {
		CNN_openPopup(EditionURL,'defaultpopup','scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,width=' + EdPopWidth + ',height=' + EdPopHeight);
	}
}

function clickEdLink() {
	if ((document.cookie.indexOf('SelectedEdition') == -1) && (document.cookie.indexOf('CNNid') != -1)) {
		launchEditionPopup();
	}
}


function LaunchVideo( url, format )
{
	fullurl = '/video/code/sniff.exclude.html?' + url + "\;" + format;
	//fullurl = '/video/code/sniff.exclude.html?' + url;
	window.open(fullurl,'1x1TestWin','toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no,width=1,height=1');
}


function WM_readCookie(name) {
	if(document.cookie == '') { 
		return false;
	} else { 
		var firstChar, lastChar;
		var theBigCookie = document.cookie;
		firstChar = theBigCookie.indexOf(name);	
		var NN2Hack = firstChar + name.length;
		if((firstChar != -1) && (theBigCookie.charAt(NN2Hack) == '=')) { 
			firstChar += name.length + 1; 
			lastChar = theBigCookie.indexOf(';', firstChar); 
			if(lastChar == -1) lastChar = theBigCookie.length;
			return unescape(theBigCookie.substring(firstChar, lastChar));
		} else { 
			return false;
		}
	}	
} 




function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function canDetectPlugins() {
	if ( detectableWithVB || (navigator.plugins && navigator.plugins.length > 0) ) {
		return true;
	}
	return false;
}

function detectFlash() {
	pluginFound = detectPlugin( 'Shockwave', 'Flash' );
	// if not found, try to detect with VisualBasic
	if ( !pluginFound && detectableWithVB ) {
		pluginFound = detectActiveXControl( 'ShockwaveFlash.ShockwaveFlash.1' );
	}
	return pluginFound;
}

function detectDirector() {
	pluginFound = detectPlugin( 'Shockwave', 'Director' );
	// if not found, try to detect with VisualBasic
	if ( !pluginFound && detectableWithVB ) {
		pluginFound = detectActiveXControl( 'SWCtl.SWCtl.1' );
	}
	return pluginFound;
}

function detectQuickTime() {
	pluginFound = detectPlugin( 'QuickTime' );
	// if not found, try to detect with VisualBasic
	if ( !pluginFound && detectableWithVB ) {
		pluginFound = detectQuickTimeActiveXControl();
	}
	return pluginFound;
}

function detectReal() {
	pluginFound = detectPlugin( 'RealPlayer' );
	// if not found, try to detect with VisualBasic
	if ( !pluginFound && detectableWithVB ) {
		pluginFound = ( detectActiveXControl('rmocx.RealPlayer G2 Control') ||
			detectActiveXControl('RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)') ||
			detectActiveXControl('RealVideo.RealVideo(tm) ActiveX Control (32-bit)')
		);
	}
	return pluginFound;
}

function detectRealOne() {
	pluginFound = detectPlugin( 'RealOne Player Version Plugin' ) || detectPlugin( 'RealPlayer Version Plugin' );
	// if not found, try to detect with VisualBasic
	if ( !pluginFound && detectableWithVB ) {
		pluginFound = detectRealOneActiveXControl();
	}
	return pluginFound;
}

function detectWindowsMedia() {
	pluginFound = detectPlugin( 'Windows Media' );
	// if not found, try to detect with VisualBasic
//	if ( !pluginFound && detectableWithVB ) {
//		pluginFound = detectActiveXControl( 'MediaPlayer.MediaPlayer.1' );
//	}
	if ( !pluginFound && detectWMPSupport() ) {
		pluginFound = true;
	}
	return pluginFound;
}

function detectWMPSupport(){

    var wmp64 = "MediaPlayer.MediaPlayer.1";
    var wmp7 = "WMPlayer.OCX.7";
    if((window.ActiveXObject && navigator.userAgent.indexOf('Windows') != -1) || window.GeckoActiveXObject)
    {
        if(createActiveXObject(wmp7)){ 
            return true;

        }else{
            if(createActiveXObject(wmp64)){
                return true;
            }else{
                return false;
            }
        }
    }else{ 
        return false;
    }
}

function createActiveXObject(id){
  var error;
  var control = null;

  try{
    if (window.ActiveXObject){
      control = new ActiveXObject(id);
    }else if (window.GeckoActiveXObject){
      control = new GeckoActiveXObject(id);
    }
  }
  catch (error){;}
  return control;
}

function detectPlugin() {
	// allow for multiple checks in a single pass
	var daPlugins = arguments;
	// consider pluginFound to be false until proven true
	var pluginFound = false;
	// if plugins array is there and not fake
	if ( navigator.plugins && navigator.plugins.length > 0 ) {
		var pluginsArrayLength = navigator.plugins.length;
		// for each plugin...
		for ( var pluginsArrayCounter = 0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) {
			// loop through all desired names and check each against the current plugin name
			var numFound = 0;
			for ( var namesCounter = 0; namesCounter < daPlugins.length; namesCounter++ ) {
				// if desired plugin name is found in either plugin name or description
				if ( (navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCounter]) >= 0) ||
					(navigator.plugins[pluginsArrayCounter].description.indexOf(daPlugins[namesCounter]) >= 0) ) {
					// this name was found
					numFound++;
				}
			}
			// now that we have checked all the required names against this one plugin,
			// if the number we found matches the total number provided then we were successful
			if ( numFound == daPlugins.length ) {
				pluginFound = true;
				// if we've found the plugin, we can stop looking through at the rest of the plugins
				break;
			}
		}
	}
	return pluginFound;
} // detectPlugin


// Here we write out the VBScript block for MSIE Windows
if ( (navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1) ) {
	document.writeln( '<script language="VBscript">' );

	document.writeln( '\'do a one-time test for a version of VBScript that can handle this code' );
	document.writeln( 'detectableWithVB = False' );
	document.writeln( 'If ScriptEngineMajorVersion >= 2 then' );
	document.writeln( '  detectableWithVB = True' );
	document.writeln( 'End If' );

	document.writeln( '\'this next function will detect most plugins' );
	document.writeln( 'Function detectActiveXControl( activeXControlName )' );
	document.writeln( '  on error resume next' );
	document.writeln( '  detectActiveXControl = False' );
	document.writeln( '  If detectableWithVB Then' );
	document.writeln( '     detectActiveXControl = IsObject( CreateObject( activeXControlName ) )' );
	document.writeln( '  End If' );
	document.writeln( 'End Function' );

	document.writeln( '\'and the following function handles QuickTime' );
	document.writeln( 'Function detectQuickTimeActiveXControl()' );
	document.writeln( '  on error resume next' );
	document.writeln( '  detectQuickTimeActiveXControl = False' );
	document.writeln( '  If detectableWithVB Then' );
	document.writeln( '    detectQuickTimeActiveXControl = False' );
	document.writeln( '    hasQuickTimeChecker = false' );
	document.writeln( '    Set hasQuickTimeChecker = CreateObject( "QuickTimeCheckObject.QuickTimeCheck.1" )' );
	document.writeln( '    If IsObject( hasQuickTimeChecker ) Then' );
	document.writeln( '      If hasQuickTimeChecker.IsQuickTimeAvailable( 0 ) Then ' );
	document.writeln( '        detectQuickTimeActiveXControl = True' );
	document.writeln( '      End If' );
	document.writeln( '    End If' );
	document.writeln( '  End If' );
	document.writeln( 'End Function' );

	document.writeln( '\'and the following function handles RealOne' );
	document.writeln( 'Function detectRealOneActiveXControl()' );
	document.writeln( '  on error resume next' );
	document.writeln( '  detectRealOneActiveXControl = False' );
	document.writeln( '  If detectableWithVB Then' );
	document.writeln( '    detectRealOneActiveXControl = False' );
	document.writeln( '    hasRealOneVersionPlugin = false' );
	document.writeln( '    Set hasRealOneVersionPlugin = CreateObject( "IERPCtl.IERPCtl.1" )' );
	document.writeln( '    If IsObject( hasRealOneVersionPlugin ) Then' );
	document.writeln( '      If hasRealOneVersionPlugin.RealPlayerVersion Then ' );
	document.writeln( '        detectRealOneActiveXControl = True' );
	document.writeln( '      End If' );
	document.writeln( '    End If' );
	document.writeln( '  End If' );
	document.writeln( 'End Function' );

	document.writeln( '<\/scr' + 'ipt>' );
}



// ________________________________________________________________ LaunchVideo


function LaunchVideo( videoPath ) {
	var videoDate = "";
	var cnnVideoDatePathRegExp = /(\d{4})\/(\d{2})\/(\d{2})/;
	var cnnVideoDatePathArray = cnnVideoDatePathRegExp.exec( videoPath );
	
	if ( cnnVideoDatePathArray )
	{
		var originalDate = new Date( parseInt( cnnVideoDatePathArray[1] ), parseInt( cnnVideoDatePathArray[2] ) - 1, parseInt( cnnVideoDatePathArray[3] ) );
		var expireDate = new Date( originalDate.getTime() + ( 7 * 24 * 60 * 60 * 1000 ) );
		var expireYear = new String( expireDate.getFullYear() );
		var expireMonth = new String( expireDate.getMonth() + 1 );
		var expireDay = new String( expireDate.getDate() );
		
		if ( expireMonth.length < 2 ) {
			expireMonth = '0' + expireMonth;
		}
		
		if ( expireDay.length < 2 ) {
			expireDay = '0' + expireDay;
		}
		
		videoDate = expireYear + '/' + expireMonth + '/' + expireDay;
	}
	
	cnnVideo( 'play', '/video' + videoPath.substring( 0, ( videoPath.length - 1 ) ), videoDate );
}



function cnnVideo( mode, arg, expiration )
{
	var playerURL    = '/video/player/player.html';
	var detectURL    = '/video/player/detect.exclude.html';
	var predetectURL = '/video/player/predetect.exclude.html';
	var noplugURL    = '/video/player/pages/detection/noplugin.html';
	var expireURL    = '/video/player/player.html';
	var openURL      = detectURL;
	var cnnVideoArgs = '';
	
	if ( detectWindowsMedia() )
	{
		var cnnPassedDetection = new String( WM_readCookie( 'cnnVidPlug' ) ).toLowerCase();
		
		if ( cnnPassedDetection == "activex" || cnnPassedDetection == "native" )
		{
			openURL = playerURL;
		}
	}
	else
	{
		openURL = noplugURL;
	}

	switch ( mode )
	{
		case 'play':

			var cnnExpireDate = new Date( new Date().getTime() - 24*60*60*1000 );
			var dateStringRegExp = /^(\d{4})\/(\d{2})\/(\d{2})$/;
			var dateStringArray = dateStringRegExp.exec( expiration );
						
			if ( dateStringArray && expiration)
			{
				cnnExpireDate = new Date( dateStringArray[1], dateStringArray[2] - 1, dateStringArray[3] );
			} else {
				cnnExpireDate = cnnSiteWideCurrDate;
			}
					
			if ( cnnExpireDate.getTime() < cnnSiteWideCurrDate.getTime() )
			{
				if ( cnnPassedDetection == "activex" || cnnPassedDetection == "native" )
					{
						openURL = expireURL;
				} else {
						openURL = detectURL;
				}				
				cnnVideoArgs = 'url=/video/player/static/404'
			}
			else
			{
				cnnVideoArgs = 'url=' + arg;
			}
			
			break;
		
		case 'browse':
			cnnVideoArgs = 'section=' + arg;
			break;
			
		default:
			cnnVideoArgs = 'section=/ALL';
			break;
			
	}
	if(((window.location.hostname.indexOf('search.cnn.com')>-1)||(window.location.hostname.indexOf('audience.cnn.com')>-1)) && (openURL.indexOf('http://')==-1) )
	{
		openURL='http://www.cnn.com'+openURL;
	}	
	CNN_openPopup( openURL+'?'+cnnVideoArgs, 'CNNVideoPlayer', 'scrollbars=no,resizable=no,width=770,height=525' );

}