

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))
var is_major = parseInt(navigator.appVersion)
var HiddenLayers, TriggerName, ActiveLayers = new Array, ActiveButtons = new Array
function ActivateButton(LyrName) {
	var lyrObj = GetLyrObj(LyrName)
	if (lyrObj) {
		if (is_nav && (is_major >= 5)) //Nav 5+
			lyrObj.style.width = "0" //so layer hides

		ActiveButtons[LyrName] = true
		SetLayerVis(LyrName,'visible')
		lyrObj.onmouseover = MOverLayer
		lyrObj.onmouseout = MOutLayer
		
		TriggerName = LyrName
		return true
	}
	return false
}
function DeactivateButton() {
	if (TriggerName) {
		ActiveButtons[ TriggerName ] = false
		setTimeout("HidePopup(\'" + TriggerName + "\')",5)
		TriggerName = null
		
		if (HiddenLayers) setTimeout("ShowHidden('" + HiddenLayers + "')",10)
	}
}
function GetPositionSize(LyrName) {
	var lyrObj = GetLyrObj(LyrName)
	if (lyrObj) {
		if (document.layers) {
			this.x = lyrObj.pageX
			this.y = lyrObj.pageY
			this.width = lyrObj.clip.width
			this.height = lyrObj.clip.height
		}
		else {
			var x = lyrObj.offsetLeft , y = lyrObj.offsetTop , el = lyrObj
			do {
				el = el.offsetParent; x += el.offsetLeft; y += el.offsetTop
			} while (el.tagName != "BODY")
			this.x = x
			this.y = y
			this.width = lyrObj.offsetWidth
			this.height = lyrObj.offsetHeight
		}
	}
}
//hideLyrNames list delimd by |
function ActivateWithHide(LyrName,hideLyrNames) {
	if (ActivateButton(LyrName) //layer exists
		&& ! (is_nav && (is_major >= 5)) ) { //Nav5+, unnecessary
		var hideLayers = hideLyrNames.split("|")
		var layerInfo = new GetPositionSize(LyrName)
		HiddenLayers = hideLyrNames
		for (x=0; x<hideLayers.length;x++) {
			var lyrObj = GetLyrObj(hideLayers[x])
			if (lyrObj) {
				hidelayerInfo = new GetPositionSize(hideLayers[x])

				if ((hidelayerInfo.x < layerInfo.x && hidelayerInfo.x+hidelayerInfo.width < layerInfo.x) ||
				(layerInfo.x < hidelayerInfo.x && layerInfo.x+layerInfo.width < hidelayerInfo.x) ||
				(hidelayerInfo.y < layerInfo.y && hidelayerInfo.y+hidelayerInfo.height < layerInfo.y) ||
				(layerInfo.y < hidelayerInfo.y && layerInfo.y+layerInfo.height < hidelayerInfo.y) )
				{ //layers don't overlap
				} else {
					SetLayerVis(hideLayers[x],'hidden')
					lyrObj.trigger = LyrName
				}
			}
		}
	}
}
function MOverLayer() {
	ActiveLayers[this.id] = true
}
function MOutLayer() {
	ActiveLayers[this.id] = false
	setTimeout("HidePopup(\'" + this.id + "\')",5)
	if (HiddenLayers) {
		setTimeout("ShowHidden('" + HiddenLayers + "')",10)
	}
}
function SetLayerVis(LyrName,setting) {
	var lyrObj = GetLyrObj(LyrName)
	if (lyrObj )
		if (lyrObj.style )
			lyrObj.style.visibility = setting
		else
			lyrObj.visibility = setting
}
function HidePopup(LyrName) {
	if (!ActiveLayers[LyrName] && !ActiveButtons[LyrName] ) {
		SetLayerVis(LyrName,'hidden')
	}
}
function ShowHidden(LyrNames) {
	var lyrs = LyrNames.split("|")
	for (x=0; x<lyrs.length; x++) {
		var lyrObj = GetLyrObj(lyrs[x])
		if (lyrObj)
			if (!ActiveLayers[ lyrObj.trigger ] && !ActiveButtons[ lyrObj.trigger ] ) {
				SetLayerVis(lyrs[x],'visible')
				HiddenLayers = null
			}
	}
}
function GetLyrObj(LyrName) {
	if (document.getElementById) //DOM
		return document.getElementById(LyrName)
	else if (document.all) //IE4+
		return document.all.item(LyrName)
	else if (document.layers) //Nav4
		return document.layers[LyrName]
	return null
}

function findTag(eItem) {
	var objATag = new Object();
	objATag = eItem.all.tags("A").item(0)
	return objATag;
}
function NavMOver(eItem,local_hotBG,local_hotText) {
	if (document.all) { //IE4+
		eItem.onmouseout = NavMOut
		eItem.onclick = NavMClick
		eItem.DefaultBgColor = eItem.style.backgroundColor;
		eItem.DefaultTxtColor = findTag(eItem).style.color;
		eItem.style.backgroundColor = (local_hotBG ? local_hotBG : (hotBG ? hotBG : "#336699"));
		findTag(eItem).style.color = (local_hotText ? local_hotText : (hotText ? hotText : "white"));
		eItem.style.cursor="hand";
		if (event.srcElement == eItem) //don't repeat <A> action
			window.status = findTag(eItem).getAttribute("HREF");
	}
}
function NavMOut() {
	this.style.backgroundColor = this.DefaultBgColor;
	findTag(this).style.color=this.DefaultTxtColor
	if (event.srcElement == this)
		window.status= "";
}
function NavMClick() {
	if (event.srcElement == this)
		top.location.href= findTag(this).getAttribute("HREF")
}

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 MM_reloadPage(init) { //reloads the window if Nav4 resized
 if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
  document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
 else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

var reloadForNav4 = false
function writeNav4ReloadLayer() {
	if (document.layers && reloadForNav4)
		document.write('<ILAYER name="pageLoaded" width="50" height="10" visibility="hide"> <form name=pgloadedFORM>  <input type=text name=pgloaded value=false>  </form></ILAYER> ')
}

function globalOnLoad() {
	if (document.layers && reloadForNav4)
		if (document.layers["pageLoaded"] )
			if (document.layers["pageLoaded"].document.pgloadedFORM.pgloaded.value == 'true') {
				location.reload()
			}
			else {
				document.layers["pageLoaded"].document.pgloadedFORM.pgloaded.value = 'true'
			}

}

var HTMLobj = new Array

function openFrame(obj) {
	if (obj) document.write(HTMLobj[obj].frame)
}
function closeFrame(obj) {
	if (obj) document.write(HTMLobj[obj].closeframe)
}
function openHTMLobj(obj) {
	if (obj) {
		if (HTMLobj[obj].start) document.write(HTMLobj[obj].start)
		if (HTMLobj[obj].openwrapper) document.write(HTMLobj[obj].openwrapper)
	}
}
function closeHTMLobj(obj) {
	if (obj) {
		if (HTMLobj[obj].closewrapper) document.write(HTMLobj[obj].closewrapper)
		if (HTMLobj[obj].end) document.write(HTMLobj[obj].end)
	}
}
function writeHTMLobj() {
	if (arguments.length) {
		var obj = HTMLobj[ arguments[0] ]
		document.write(obj.start)
		for (x=1; x<arguments.length; x++) {
			document.write(obj.openwrapper + arguments[x] + obj.closewrapper)
		}
		document.write(obj.end)
	}
}
function writeFramedHTMLobj() {
	if (arguments.length) {
		var obj = HTMLobj[ arguments[0] ]
		if (obj.frame) document.write(obj.frame)
		document.write(obj.start)
		for (x=1; x<arguments.length; x++) {
			document.write(obj.openwrapper + arguments[x] + obj.closewrapper)
		}
		document.write(obj.end)
		if (obj.closeframe) document.write(obj.closeframe)
	}
}
function URLdecode(s) { return unescape(s.replace(/\+/g , " ")) }

// VW code
window.onload = function() {
globalOnLoad()
MM_preloadImages(
	'http://graphics.eiu.com/common/gnav/g_about_us_on.gif',
	'http://graphics.eiu.com/common/gnav/g_contact_us_on.gif',
	'http://graphics.eiu.com/common/gnav/g_help_on.gif',
	'http://graphics.eiu.com/common/gnav/g_economist_group_sites_on.gif',
	'http://graphics.eiu.com/common/gnav/g_search_on.gif',

	'http://graphics.eiu.com/vw/topnav/home_on.gif',
	'http://graphics.eiu.com/vw/topnav/countries_on.gif',
	'http://graphics.eiu.com/vw/topnav/politics_on.gif',
	'http://graphics.eiu.com/vw/topnav/business_on.gif',
	'http://graphics.eiu.com/vw/topnav/economy_on.gif',
	'http://graphics.eiu.com/vw/topnav/finance_on.gif',
	'http://graphics.eiu.com/vw/topnav/industries_on.gif',
	'http://graphics.eiu.com/vw/topnav/riskwire_on.gif',
	'http://graphics.eiu.com/vw/topnav/categories_on.gif',
	'http://graphics.eiu.com/vw/topnav/regulations_on.gif'
	)
}

var hotBG = '#C9C9B4' , hotText = 'black'

HTMLobj["box"] = {
frame:'<TABLE width=100% border=0 cellspacing=0 cellpadding=5><tr><td>',
closeframe:'</td></tr></table><div><img src=http://graphics.eiu.com/s.gif height=7 width=1></div>'
}
HTMLobj["panebox"] = {
frame:'<TABLE width=100% border=0 cellspacing=5 cellpadding=0>',
closeframe:'</table><div><img src=http://graphics.eiu.com/s.gif height=7 width=1></div>'
}
HTMLobj["navbox"] = {
frame:'<TABLE border=0 cellspacing=0 cellpadding=0><tr><td><img src=http://graphics.eiu.com/s.gif width=4></td><td>',
closeframe:'</td></tr></table><div><img src=http://graphics.eiu.com/s.gif height=7 width=1></div>'
}
HTMLobj["sidelist"] = {
start:'<TABLE cellspacing=0 cellpadding=0 border=0>',
openwrapper:'<TR valign=top><TD nowrap><img src="http://graphics.eiu.com/cc/icons/red_arrow.gif" width=4 height=7 vspace="3"><IMG src="http://graphics.eiu.com/s.gif" width=1></TD><TD class=sidelist width="100%">',
closewrapper:'</TD></TR><TR><TD colspan=2><IMG src=http://graphics.eiu.com/s.gif height=2></TD></TR>',
end:'</TABLE>',
frame:'<div><img src=http://graphics.eiu.com/s.gif height=3></div>',
closeframe:'<div><img src=http://graphics.eiu.com/s.gif height=3 width=1></div>'
}
HTMLobj["sidelist2"] = {
start:'<TABLE cellspacing=0 cellpadding=0 border=0>',
openwrapper:'<TR valign=top><TD><IMG src="http://graphics.eiu.com/s.gif" width=6></TD><TD><IMG src="http://graphics.eiu.com/cc/icons/ln_red_triangle_sub.gif" width=6 height=5 vspace="4"></TD><TD class=sidelist width="100%">',
closewrapper:'</TD></TR><TR><TD colspan=3><IMG src=http://graphics.eiu.com/s.gif height=2></TD></TR>',
end:'</TABLE>'
}
HTMLobj["titlebar"] = {
start:'<TABLE height=16 cellSpacing=0 cellPadding=0 width=100% border=0><TR><TD width=2><IMG height=16 src=http://graphics.eiu.com/vw/tbars/tbarleft.gif width=2></TD><TD class=tbar width=1024><DIV>',
openwrapper:'',
closewrapper:'',
end:'</DIV></TD><TD width=2><IMG height=16 src=http://graphics.eiu.com/vw/tbars/tbarright.gif width=2></TD></TR></TABLE>'
}
HTMLobj["navtitlebar"] = {
start:'<TABLE height=16 cellSpacing=0 cellPadding=0 width=100% border=0><TR><TD width=2><IMG height=16 src=http://graphics.eiu.com/vw/tbars/navtbarleft.gif width=2></TD><TD class=navtbar width=1024><DIV>',
openwrapper:'',
closewrapper:'',
end:'</DIV></TD><TD width=2><IMG height=16 src=http://graphics.eiu.com/vw/tbars/navtbarright.gif width=2></TD></TR></TABLE>'
}

function writePageTitle() {
	if (pgTitle != '' ) {
		if (pgGuide =='')
			document.write( '<TABLE border="0" cellspacing="0" cellpadding="0" width=100%><tr><td class=PageTitle>' +
			pgTitle +
			'<div><img src=http://graphics.eiu.com/s.gif height=5></div></td></tr></table>' )
		else
			document.write( '<TABLE border="0" cellspacing="0" cellpadding="0" width=100%><tr><td class=PageTitle>' +
			pgTitle +
			'</td></tr><tr><td class=smalltext><hr size=1 noshade width=100% class=divider>' +
			pgGuide +
			'<hr size=1 noshade width=100% class=divider></td></tr></table>' )
	}
}

var RTsortProp, RTsortDir = { cty : -1 , rating : 1, prevRating : 1 , score : 1 , prevScore : 1 }
function sortRT(sortProp) {
	if (!document.getElementById) return //avoid Nav4, IE4

	RTsortProp = sortProp
	RiskTable.sort( RTsortcomp )
	RTsortDir[RTsortProp] = -RTsortDir[RTsortProp]
	RT = MM_findObj('risktable')
	if (RT) RT.innerHTML = RiskTableHTML()
}
function RTsetranks() {
	if (RiskTable.length) {
		var RT2 = new Array
		RT2 = RT2.concat(RiskTable) //copy array
		RTsortProp = "score"
		RTsortDir["score"] = -1 //low to high
		RT2.sort( RTsortcomp )

		var RTranks = new Object
		for (x=0, rank=1; x<RT2.length; x++) {
			if (x>0 && RT2[x-1].score != RT2[x].score)
				rank = x+1
			RTranks[ RT2[x].cty ] = rank
		}
		for (x=0; x<RiskTable.length; x++) {
			RiskTable[x].rank = RTranks[ RiskTable[x].cty ]
		}
	}
}
function RTsortcomp(a, b) {
	aVal = a[ RTsortProp ]
	bVal = b[ RTsortProp ]
	if (RTsortProp == 'score' || RTsortProp=='prevScore' ) { //sort numeric
		aVal = parseInt(aVal)
		bVal = parseInt(bVal)
	}
	if (aVal < bVal) return 1 * RTsortDir[RTsortProp]
	if (aVal > bVal) return -1 * RTsortDir[RTsortProp]

	//values equal, sort by score within non-score groups
	if (RTsortProp != 'score') {
		if (parseInt( a.score) < parseInt( b.score)) return 1 * RTsortDir[RTsortProp]
		if (parseInt( a.score) > parseInt( b.score)) return -1 * RTsortDir[RTsortProp]

		//scores equal, sort by cty
		if ( a.cty < b.cty ) return 1 * RTsortDir[RTsortProp]
		if ( a.cty > b.cty ) return -1 * RTsortDir[RTsortProp]
	}
	else {//sort by cty within score group
		if ( a.cty < b.cty ) return 1 * RTsortDir[RTsortProp]
		if ( a.cty > b.cty ) return -1 * RTsortDir[RTsortProp]
	}
	return 0
}
function RiskTableHTML() {
	if (RiskTable.length) {
		s = "<TABLE cellspacing=0 cellpadding=1 width=100% border=0 class=data style='margin:2'>"
		s += "<TR align=middle bgcolor=EFEFD6>"
		s += "<TD class=tbc-c style='border-bottom:none'>&nbsp;</TD>"
		s += "<TD colspan=2 class=tbc-c style='border-bottom:none'><B>Rating</B><br>(E = most risky)</TD>"
		s += "<TD colspan=2 class=tbc-c style='border-bottom:none'><B>Score </B><br>(100 = most risky)</TD>"
		s += "</TR>"

		s += "<TR align=center bgcolor=EFEFD6>"
		s += "<TD><a class=tbc-c style='color: #000066' href='javascript: void(sortRT(\"cty\"))'>Country</a> (rank)</TD>"
		s += "<TD><a class=tbc-c style='color: #000066' href='javascript: void(sortRT(\"rating\"))'>Current</a></TD>"
		s += "<TD><a class=tbc-c style='color: #000066' href='javascript: void(sortRT(\"prevRating\"))'>Previous</a></TD>"
		s += "<TD><a class=tbc-c style='color: #000066' href='javascript: void(sortRT(\"score\"))'>Current</a></TD>"
		s += "<TD><a class=tbc-c style='color: #000066' href='javascript: void(sortRT(\"prevScore\"))'>Previous</a></TD>"
		s += "</TR>"

		for (x=0; x<RiskTable.length; x++) {
			entry = RiskTable[x]
			// object { cty: "" , doc_id :"" , rating :"" , prevRating : "", score :"" , prevScore :"" }
			if (entry.doc_id && entry.doc_id != "")
				ctyLink="<A style='color:black' href=index.asp?layout=display_article&doc_id=" + entry.doc_id + ">" + entry.cty + "</A>"
			else ctyLink=entry.cty
			ctyLink += " (" + entry.rank + ")"
			s += "<TR><TD>" + ctyLink + "</TD>"
			s += "<TD class=tbd-c>" + ((entry.rating && entry.rating != "") ? entry.rating : "&nbsp;")  +"</TD>"
			s += "<TD class=tbd-c>" + ((entry.prevRating && entry.prevRating != "") ? entry.prevRating : "&nbsp;")  +"</TD>"
			s += "<TD class=tbd-c>" + ((entry.score && entry.score != "") ? entry.score : "&nbsp;")  +"</TD>"
			s += "<TD class=tbd-c>" + ((entry.prevScore && entry.prevScore != "") ? entry.prevScore : "&nbsp;")  +"</TD>"
			s += "</TR>"
		}
		s += "</TABLE>"

		return s
	}
}





