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_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_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 = '#8bc6fe';
				break;

			default:
//				tableCellRef.style.backgroundColor = '#ccc';
				if ( document.getElementsByTagName ) {
					tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#c00';
				}
		}
	} else {
		switch ( navStyle ) {
			case 1:
				tableCellRef.style.backgroundColor = '#78b1f4';
				break;
			case 2:
				tableCellRef.style.backgroundColor = '#6098e3';
				break;
			default:
//				tableCellRef.style.backgroundColor = '#ddd';
				if ( document.getElementsByTagName ) {
					tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#000';
				}
		}
	}
}
// ny tsf-functions;
// menyfarger skiftes her;
// en verdi hver for mouseover, u_meny og h_meny nedenfor;
// pluss 2x mouseover og 2xmouseout  i fil devsm_06.css;
// pluss 2x undermeny i fil devsm.css;
// pluss farge-gif i _header.asp;
function tsf_navBar( tableCellRef, hoverFlag, navStyle ) {
	if ( hoverFlag ) {
		switch ( navStyle ) {
			case 1:
				tableCellRef.style.backgroundColor = '#8bc6fe';
				break;

			default:
//				tableCellRef.style.backgroundColor = '#ccc';
				if ( document.getElementsByTagName ) {
					tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#c00';
				}
		}
	} else {
		switch ( navStyle ) {
			case 1:
				tableCellRef.style.backgroundColor = '#78b1f4';
				break;
			case 2:
				tableCellRef.style.backgroundColor = '#6098e3';
				break;
			default:
//				tableCellRef.style.backgroundColor = '#ddd';
				if ( document.getElementsByTagName ) {
					tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#000';
				}
		}
	}
}

function tsf_navBarClick( tableCellRef, navStyle, url ) {
	tsf_navBar( tableCellRef, 0, navStyle );
	CNN_goTo( url );
}



function CNN_navBarClick( tableCellRef, navStyle, url ) {
	CNN_navBar( tableCellRef, 0, navStyle );
	CNN_goTo( url );
}

// nr 3
function CNN_nav3Bar( tableCellRef, hoverFlag, navStyle ) {
	if ( hoverFlag ) {
		switch ( navStyle ) {
			case 1:
				tableCellRef.style.backgroundColor = '#3399CC';
				break;
			default:
//				tableCellRef.style.backgroundColor = '#ccc';
				if ( document.getElementsByTagName ) {
					tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#c00';
				}
		}
	} else {
		switch ( navStyle ) {
			case 1:
				tableCellRef.style.backgroundColor = '#336699';
				break;
			default:
//				tableCellRef.style.backgroundColor = '#ddd';
				if ( document.getElementsByTagName ) {
					tableCellRef.getElementsByTagName( 'a' )[0].style.color = '#000';
				}
		}
	}
}

function CNN_nav3BarClick( 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;
	
	if ( theForm.sites.options ) {		//	"sites" should be a select
		site = theForm.sites.options[theForm.sites.selectedIndex].value;
	} else {
		if ( theForm.sites ) {
			site = theForm.sites.value;
		} else {
			return true;
		}								//	error, but don't show the user
	}
	
	switch ( site.toLowerCase() ) {
		case "internet":
			theForm.action = "http://cnn.looksmart.com/r_search"
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zcb';
			return true;
		
		case "cnn":
			theForm.action = "http://cnn.looksmart.com/r_search"
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zch';
			return true;
		
		case "cnnasia":
			theForm.action = "http://cnn.looksmart.com/r_search"
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zee';
			return true;
		
		case "cnnasiaweb":
			theForm.action = "http://cnn.looksmart.com/r_search"
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zeg';
			return true;
		
		case "cnneurope":
			theForm.action = "http://cnn.looksmart.com/r_search"
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zcn';
			return true;
		
		case "cnneuropeweb":
			theForm.action = "http://cnn.looksmart.com/r_search"
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zcp';
			return true;

		case "cnneuropeir":
			theForm.action = "http://cnn.looksmart.com/r_search"
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zcu';
			return true;

		case "cnneuropeit":
			theForm.action = "http://cnn.looksmart.com/r_search"
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zcv';
			return true;

		case "cnneuropenl":
			theForm.action = "http://cnn.looksmart.com/r_search"
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zcw';
			return true;

		case "cnneuropeswz":
			theForm.action = "http://cnn.looksmart.com/r_search"
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zda';
			return true;

		case "cnneuropeuk":
			theForm.action = "http://cnn.looksmart.com/r_search"
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zdb';
			return true;
		
		case "cnnsi":
			theForm.action = "http://cnnsi.looksmart.com/r_search";
			theForm.qp.value = "url:http://www.cnnsi.com/";
			theForm.col.value = 'cnnsi';
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zcm';
			return true;
			
		case "cnnfn":
		case "cnnmoney":
			theForm.action = "http://cnn.looksmart.com/r_search"
			theForm.key.value = theForm.qt.value;
			theForm.isp.value = 'zce';
			return true;
		
		case "time":
			theForm.action = "http://www.pathfinder.com/time/daily/searchresults/1,2645,,00.html";
			theForm.keyword.value = theForm.qt.value;
			theForm.col.value = 'time';
			return true;
		
		case "cnnfyi":
		case "cnnlaw":
		default:
			return true;						//	unsupported site?
	}
}


// 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 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', '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!
EditionURL = 'http://www.cnn.com/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 LaunchVideo_s( url, format )
{
	se = WM_readCookie('SelectedEdition');
	ce = WM_readCookie('CurrentEdition');
	if ((se == 'asia') || (se == 'europe')) {
		a = '.' + se;
	} else {
		a = '';
	}
	
	fullurl = 'http://premium' + a + '.cnn.com/pr/video/indepth/2002/04/25/authtest2.html?' + url + "\;" + format;
	authwin = window.open(fullurl,'authwin','toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no,width=620,height=480');
}

