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);


function CNN_goTo( url ) {
	window.location.href = url;
}

function CNN_roofBar( tableCellRef, hoverFlag ) {
	if ( hoverFlag ) {
		tableCellRef.style.backgroundImage = 'url("http://i.cnn.net/cnn/.element/img/1.0/main/roofbar_bg2.gif")';
		if ( document.getElementsByTagName ) {
			tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#c00';
		}
	} else {
		tableCellRef.style.backgroundImage = 'url("http://i.cnn.net/cnn/.element/img/1.0/main/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:
				if ( document.getElementsByTagName ) {
					tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#c00';
				}
		}
	} else {
		switch ( navStyle ) {
			case 1:
				tableCellRef.style.backgroundColor = '#036';
				break;
			default:
				if ( document.getElementsByTagName ) {
					tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#000';
				}
		}
	}
}

function CNN_navBarClick( tableCellRef, navStyle, url ) {
	CNN_navBar( tableCellRef, 0, navStyle );
	CNN_goTo( url );
}


// this function is used to redirect the search form if necessary
function validate( theFormValidate ) { return CNN_validateSearchForm( theFormValidate ); }
function CNN_validateSearchForm( theForm )
{
	var site = 'cnn';
	var queryString = '';
	
	if ( theForm.sites )
	{
		if ( theForm.sites.options ) {		//	"sites" should be a select
			site = theForm.sites.options[theForm.sites.selectedIndex].value;
		} else {
			if ( theForm.sites.length )
			{
				for ( i = 0; i < theForm.sites.length; i++ )
				{
					if ( theForm.sites[i].checked ) {
						site = theForm.sites[i].value;
					}
				}
			}
			else
			{
				site = theForm.sites.value;
			}
		}
	}
	
	if ( theForm.qt ) {
		queryString = theForm.qt.value;
	} else {
		if ( theForm.key ) {
			queryString = theForm.key.value;
		} else {
			if ( theForm.query ) {
				queryString = theForm.query.value;
			}
		}
	}
	
	if ( !queryString ) {
		return false;
	}
	
	switch ( site.toLowerCase() ) {
		case "google":
			theForm.action = ( location.hostname.indexOf( 'edition' ) != -1 ) ? "http://websearch.edition.cnn.com/search/search" : "http://websearch.cnn.com/search/search";
			theForm.query.value = queryString;
			return true;
		
		case "internet":
		case "cnnasiaweb":
		case "cnneuropeweb":
			theForm.action = "http://search.netscape.com/nscp_results.adp";
			theForm.query.value = queryString;
			return true;
		
		case "cnn":
			theForm.action = "http://search.cnn.com/cnn/search";
			theForm.query.value = queryString;
			theForm.source.value = 'cnn';
			return true;
		
		case "cnnasia":
			theForm.action = "http://search.cnn.com/asia/search";
			theForm.query.value = queryString;
			theForm.source.value = 'cnn';
			return true;
		
		case "cnneurope":
		case "cnneuropeir":
		case "cnneuropeit":
		case "cnneuropenl":
		case "cnneuropeswz":
		case "cnneuropeuk":
			theForm.action = "http://search.cnn.com/europe/search";
			theForm.query.value = queryString;
			theForm.source.value = 'cnn';
			return true;
		
		case "cnnsi":
			theForm.action = "http://search.si.cnn.com/si/search";
			theForm.query.value = queryString;
			theForm.source.value = 'si';
			return true;
		
		case "cnnfn":
		case "cnnmoney":
			theForm.action = "http://search.money.cnn.com/money/search";
			theForm.query.value = queryString;
			theForm.source.value = 'money';
			return true;
		
		case "time":
			theForm.action = "http://www.pathfinder.com/time/daily/searchresults/1,2645,,00.html";
			theForm.keyword.value = queryString;
			theForm.col.value = 'time';
			return true;
		
		case "cnnfyi":
			theForm.action = "/SEARCH";
			return true;
		
		case "cnnlaw":
		default:
			return true;						//	unsupported site?
	}
}


// used to open popup windows from the dateline
function CNN_openMap( location )
{
	CNN_openPopup( location, '620x430', "width=620,height=430,scrollbars=no,resizable=no" );
}


// 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 email()
{
	address=document.emailform.emailinput.value;
	location='http://www.cnn.com/EMAIL/index.html?'+address;
}

function asiaEmail()
{
	address=document.emailform.emailinput.value;
	location='http://asia.cnn.com/EMAIL/asia.index.html?'+address;
}

function euroEmail()
{
	address=document.emailform.emailinput.value;
	location='http://europe.cnn.com/EMAIL/europe_index.html?'+address;
}

function italiaEmail()
{
	address=document.emailform.emailinput.value;
	location='http://www.cnnitalia.it/EMAIL/index.html?'+address;
}

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', 'value', 'text', 'value', ... }
	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 );
		}
	}
}


// _________________________________________________________________________
// select your edition popup
var EditionURL = '/virtual/editions/europe/2000/roof/change.pop/frameset.exclude.html';  // URL for editions popup HTML
var EdPopWidth = 300;	// Width of popup window
var EdPopHeight = 300;	// Height for popup window
var cnnDomainArray = location.hostname.split( '.' );
var EditionDomain = ( cnnDomainArray.length > 1 ) ? '.' + cnnDomainArray[cnnDomainArray.length-2] + '.' + cnnDomainArray[cnnDomainArray.length-1] : '';

if ( document.cookie && ( document.cookie.indexOf( 'SelectedEdition' ) == -1010101 ) ) {
	CNN_openPopup( EditionURL, "AdInterstitial", "scrollbars=auto,width="+EdPopWidth+",height="+EdPopHeight );
}


// _________________________________________________________________________
// 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.
function launchEditionPopup() {
	if ( ! WM_browserAcceptsCookies() ) {
		alert( "In order to set your default edition you must accept cookies." );
	} else {
		CNN_openPopup( EditionURL, 'defaultpopup', 'scrollbars=auto,width=' + EdPopWidth + ',height=' + EdPopHeight );
	}
}

function clickEdLink() {
	if ( document.cookie && ( document.cookie.indexOf( 'SelectedEdition' ) == -1 ) ) {
		launchEditionPopup();
	}
}


// _____________________________________________________________ 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


// ________________________________________________________________ LaunchVideo

document.write( '<OBJECT ID="IERPCtl" WIDTH=0 HEIGHT=0 CLASSID="CLSID:FDC7A535-4070-4B92-A0EA-D9994BCC0DC5"><\/OBJECT>' );
	
function LV_getRealOneStatus() {	// returns ("undetermined"|"installed"|"notinstalled"|"using")
	var nPlayerInstalled = false;
	var RealOneInst = 'undetermined';
	var agt = navigator.userAgent.toLowerCase();
	var is_nav = ((agt.indexOf('mozilla') != -1) && (agt.indexOf('spoofer') == -1)
					&& (agt.indexOf('compatible') == -1) && (agt.indexOf('opera') == -1)
					&& (agt.indexOf('webtv') == -1) && (agt.indexOf('hotjava') == -1));
	if (is_nav) {
		IERPCtl = 0;
	}
	
	if ( navigator.plugins ) {
		if ( navigator.plugins['RealOne Player Version Plugin'] ) {
			nPlayerInstalled = true;
		} else if ( document.getElementById ) {
			realPlugin = document.getElementById( 'IERPCtl' );
			if ( realPlugin && realPlugin.RealPlayerVersion ) {
				nPlayerInstalled = true;
			}
		} else if ( IERPCtl && IERPCtl.RealPlayerVersion ) {
			nPlayerInstalled = true;
		}
		if ( nPlayerInstalled ) {
			RealOneInst = 'installed';
		} else {
			RealOneInst = 'notinstalled';
		}
	}
	
	if ( RealOneInst == 'installed' ) {
		if ( agt.indexOf( " (r1 " ) != -1 ) {
			RealOneInst = 'using';
		}
	}
	
	return RealOneInst;
}

function LV_getVideoUrl( videoUrlPath, format, realOneStatus ) {
	var fullUrl;
	var preferredEdition = "www";
	var selectedEdition = WM_readCookie( "SelectedEdition" );
	var currentEdition = WM_readCookie( "CurrentEdition" );
	var premiumUrlPrefix = "http://premium.cnn.com/pr/video";
	var premiumEdition = "premium.cnn.com";
	
	if ( selectedEdition ) {
		preferredEdition = selectedEdition;
	} else if ( currentEdition ) {
		preferredEdition = currentEdition;
	}
	
	if ( preferredEdition == "asia" || preferredEdition == "europe" ) {
		preferredEdition = "edition";
	}
	
	if ( preferredEdition != "www" ) {
		premiumEdition = "premium." + preferredEdition + ".cnn.com";
		premiumUrlPrefix = "http://" + premiumEdition + "/pr/video";
	}
	
	switch( realOneStatus ) {
		case "using":
			fullUrl = premiumUrlPrefix + "/meta" + videoUrlPath + "r1.smil"; 
			break;
		case "installed":
			fullUrl = premiumUrlPrefix + "/meta" + videoUrlPath + "np.smil"; 
			break;
		case "notinstalled":
		default:
			fullUrl = premiumUrlPrefix + videoUrlPath + "exclude.html";
			if ( format == "public" ) {
				fullUrl = "http://premium.cnn.com/video" + videoUrlPath + "exclude.html";
			}
			break;
	}
	
	return ( fullUrl );
}

function LaunchVideo( videoPath, videoFormat ) {
	var realOneStatus = LV_getRealOneStatus();
	var videoUrl;

	if ( realOneStatus == 'using' ) {
		videoUrl = LV_getVideoUrl( videoPath, videoFormat, realOneStatus );
		top.location.href = videoUrl;
	} else {
		var playerPref = WM_readCookie( "player" );
		
		if ( playerPref ) {
			switch ( playerPref.toUpperCase() ) {
				case "REALONE":
					videoUrl = LV_getVideoUrl( videoPath, videoFormat, 'installed' );
					break;
				case "REAL":
					if (( realOneStatus == "installed" ) && !( is_aol )) {
						videoUrl = LV_getVideoUrl( videoPath, videoFormat, realOneStatus );
					} else {
						videoUrl = LV_getVideoUrl( videoPath, videoFormat, 'notinstalled' );
					}
					break;
				case "WINDOWS MEDIA":
				case "QUICKTIME":
				default:
					videoUrl = LV_getVideoUrl( videoPath, videoFormat, 'notinstalled' );
					break;
			}
		} else {
			if (( realOneStatus == "installed" ) && !( is_aol )) {
				videoUrl = LV_getVideoUrl( videoPath, videoFormat, realOneStatus );
			} else {
				videoUrl = LV_getVideoUrl( videoPath, videoFormat, 'notinstalled' );
			}
		}
		
		if ( videoUrl.indexOf( ".exclude.html" ) > 0 ) {
			CNN_openPopup( videoUrl, '620x480', 'scrollbars=no,resizable=no,width=620,height=480' );
		} else {
			top.location.href = videoUrl;
		} 
	}
}


function med_vod( vidlocation ) {
	if ( ( agt.indexOf( "r1" ) != -1 ) && ( vidlocation.indexOf( "med.exclude.html" ) != -1 ) ) {
		var url = vidlocation.replace( "med.exclude.html", "r1.smi" );
		location.href = url;
	} else {
		CNN_openPopup( vidlocation, '620x460', 'width=620,height=460' );
	}
}


// end

