var navFlyout = { init : function() { Reuters.nav.setup(); } };

if (typeof(Reuters) == 'undefined' || Reuters == null) {
	Reuters = new Object();
}

if (typeof(Reuters.nav) == 'undefined' || Reuters.nav == null) {
	Reuters.nav = new Object();
}

if (typeof(Reuters.nav.baseUrlPrefix) == 'undefined') {
	Reuters.nav.baseUrlPrefix = '';
}

if (typeof(Reuters.nav.PRIMARY_SITE_URL) == 'undefined') {
	Reuters.nav.PRIMARY_SITE_URL = 'http://www.reuters.com';
}

Reuters.nav.flyoutScript1 = '';
Reuters.nav.flyoutScript2 = '';
Reuters.nav.flyoutScript3 = '';
Reuters.nav.scriptsLoaded = false;
Reuters.nav.closeTimer = null;
Reuters.nav.recheckCloseTimer = null;

Reuters.nav.loadEditionChanger = function() {
	var navEditionList = [
		{"edition": "AF", "label": "Africa", "link": "http://af.reuters.com"},
		{"edition": '<img src="' + Reuters.nav.baseUrlPrefix + '/resources_v2/images/edition_ara.gif" border="0" alt="ARA" />', "label": "Arabic", "link": "http://ara.reuters.com"},
		{"edition": "AR", "label": "Argentina", "link": "http://ar.reuters.com"},
		{"edition": "BR", "label": "Brazil", "link": "http://br.reuters.com"},
		{"edition": "CA", "label": "Canada", "link": "http://ca.reuters.com"},
		{"edition": '<img src="' + Reuters.nav.baseUrlPrefix + '/resources_v2/images/edition_cn.gif" border="0" alt="CN" />', "label": "China", "link": "http://cn.reuters.com"},
		{"edition": "FR", "label": "France", "link": "http://fr.reuters.com"},
		{"edition": "DE", "label": "Germany", "link": "http://de.reuters.com"},
		{"edition": "IN", "label": "India", "link": "http://in.reuters.com"},
		{"edition": "IT", "label": "Italy", "link": "http://it.reuters.com"},
		{"edition": '<img src="' + Reuters.nav.baseUrlPrefix + '/resources_v2/images/edition_jp.gif" border="0" alt="JP" />', "label": "Japan", "link": "http://jp.reuters.com"},
		{"edition": "LTAM", "label": "Latin America", "link": "http://lta.reuters.com"},
		{"edition": "MX", "label": "Mexico", "link": "http://mx.reuters.com"},
		{"edition": "RU", "label": "Russia", "link": "http://ru.reuters.com"},
		{"edition": "ES", "label": "Spain", "link": "http://es.reuters.com"},
		{"edition": "UK", "label": "United Kingdom", "link": "http://uk.reuters.com"}
	];
	var editionFlyoutHTML = '<div class="viewingLabelContainer"><div class="viewingLabelFull"><span>YOU\'RE VIEWING:</span><br /><span class="selectedEdition">United States</span></div><div class="viewingLabelAbbr">US</div></div><div>'
	for (var i=0; i<navEditionList.length; i++){
		editionFlyoutHTML += '<div class="editionListContainer" onclick="window.location=\'' + navEditionList[i].link + '\';" onmouseover="this.style.backgroundColor=\'#0096CA\';" onmouseout="this.style.backgroundColor=\'#333333\';"><div class="editionFull">';
		editionFlyoutHTML += '<a href="'+navEditionList[i].link+'">';
		editionFlyoutHTML += navEditionList[i].label+'</a>';
		editionFlyoutHTML += '</div><div class="editionAbbr">'+navEditionList[i].edition+'</div></div>';
	}
	editionFlyoutHTML += '</div>';
	if (document.getElementById("submenu_editions")) {
		document.getElementById("submenu_editions").innerHTML = editionFlyoutHTML;
	}
}

Reuters.nav.openFlyout = function() {
	if (Reuters.nav.scriptsLoaded == false) {
		Reuters.utils.loadScript('NavFlyoutContent1', navFlyout.navContent1);
		Reuters.utils.loadScript('NavFlyoutContent2', navFlyout.navContent2);
		Reuters.utils.loadScript('NavFlyoutContent3', navFlyout.navContent3);
		Reuters.nav.loadEditionChanger();
		Reuters.nav.scriptsLoaded	= true;
	}
	Reuters.nav.cancelCloseFlyoutTimer();
	if (Reuters.nav.activeFlyout) {
		Reuters.nav.activeFlyout.style.display = 'none';
	}
	Reuters.nav.activeFlyout = document.getElementById('submenu_' + Reuters.nav.activeFlyoutId);
	Reuters.nav.activeFlyout.style.display = 'block';
}

Reuters.nav.openFlyoutTimed = function() {
	Reuters.nav.cancelCloseFlyoutTimer();
	Reuters.nav.activeFlyoutId = this.id.split("_")[1];
	Reuters.nav.closeTimer = window.setTimeout(Reuters.nav.openFlyout, 100);
}

Reuters.nav.closeFlyout = function() {
	if (Reuters.nav.activeFlyout) {
		Reuters.nav.activeFlyout.style.display = 'none';
	}
}

Reuters.nav.closeFlyoutTimed = function() {
	if (!document.getElementById("tnsSaver")) {
		window.clearTimeout(Reuters.nav.closeTimer);
		Reuters.nav.closeTimer = window.setTimeout(Reuters.nav.closeFlyout, 100);
	} else {
		Reuters.nav.recheckCloseTimer = window.setTimeout(Reuters.nav.closeFlyoutTimed, 500);
	}
}

Reuters.nav.cancelCloseFlyoutTimer = function() {
	if (Reuters.nav.closeTimer) {
		window.clearTimeout(Reuters.nav.closeTimer);
		window.clearTimeout(Reuters.nav.recheckCloseTimer);
		Reuters.nav.closeTimer = null;
		Reuters.nav.recheckCloseTimer = null;
	}
}

Reuters.nav.registerEvents = function() {
	document.getElementById('change_editions').onmouseover = Reuters.nav.openFlyoutTimed;
	document.getElementById('change_editions').onmouseout = Reuters.nav.closeFlyoutTimed;
	document.getElementById('submenu_editions').onmouseover = Reuters.nav.cancelCloseFlyoutTimer;
	document.getElementById('submenu_editions').onmouseout = Reuters.nav.closeFlyoutTimed;
	for (j=1; j<=3; j++) {
		document.getElementById('MenuItem_' + j).onmouseover = Reuters.nav.openFlyoutTimed;
		document.getElementById('MenuItem_' + j).onmouseout = Reuters.nav.closeFlyoutTimed;
		document.getElementById('submenu_' + j).onmouseover = Reuters.nav.cancelCloseFlyoutTimer;
		document.getElementById('submenu_' + j).onmouseout = Reuters.nav.closeFlyoutTimed;
	}
}

Reuters.nav.loadScripts = function() {
	Reuters.utils.loadScript('NavFlyoutContent1', Reuters.nav.flyoutScript1);
	Reuters.utils.loadScript('NavFlyoutContent2', Reuters.nav.flyoutScript2);
	Reuters.utils.loadScript('NavFlyoutContent3', Reuters.nav.flyoutScript3);
	Reuters.nav.loadEditionChanger();
	// if (Reuters.nav.isCommerce) { Reuters.nav.checkReplaceNavLinks(); }
}

Reuters.nav.scrubAssets = function(obj) {
	var re = /"\/resources_v2/gi; //"
	obj = obj.replace(re, '"' + Reuters.nav.baseUrlPrefix + '/resources_v2');
	var re = /http:\/\/www.reuters.com\/http/gi;
	obj = obj.replace(re, 'http');
	return obj;
}

Reuters.nav.scrubCommerceAssets = function (sText) {
	if (Reuters.nav.isCommerce) {
		var re = /http:\/\/((static.reuters.com)|(www.reuters.com))/gi;
		sText = sText.replace(re, '');
		var re = /a href="\//gi;      //"
		sText = sText.replace(re, 'a href="http://www.reuters.com/');
	}
	return sText;
}

Reuters.nav.callback1 = function (sReturn) {
	if (Reuters.nav.baseUrlPrefix == '') {
		document.getElementById('nav1').innerHTML = Reuters.nav.scrubCommerceAssets(sReturn);
	} else {
		document.getElementById('nav1').innerHTML = Reuters.nav.scrubAssets(sReturn);
	}
}

Reuters.nav.callback2 = function (sReturn) {
	if (Reuters.nav.baseUrlPrefix == '') {
		document.getElementById('nav2').innerHTML = Reuters.nav.scrubCommerceAssets(sReturn);
	} else {
		document.getElementById('nav2').innerHTML = Reuters.nav.scrubAssets(sReturn);
	}
}

Reuters.nav.callback3 = function (sReturn) {
	if (Reuters.nav.baseUrlPrefix == '') {
		document.getElementById('nav3').innerHTML = Reuters.nav.scrubCommerceAssets(sReturn);
	} else {
		document.getElementById('nav3').innerHTML = Reuters.nav.scrubAssets(sReturn);
	}
}

Reuters.nav.setup = function() {
	Reuters.nav.registerEvents();
	Reuters.nav.flyoutScript1 = Reuters.nav.baseUrlPrefix + "/assets/sharedModuleJS?view=RSM-NavFlyoutContent1&globalJSVariable=&callback=Reuters.nav.callback1&sp=" + Reuters.nav.baseUrlPrefix;
	Reuters.nav.flyoutScript2 = Reuters.nav.baseUrlPrefix + "/assets/sharedModuleJS?view=RSM-NavFlyoutContent2&globalJSVariable=&callback=Reuters.nav.callback2&sp=" + Reuters.nav.baseUrlPrefix;
	Reuters.nav.flyoutScript3 = Reuters.nav.baseUrlPrefix + "/assets/sharedModuleJS?view=RSM-NavFlyoutContent3&globalJSVariable=&callback=Reuters.nav.callback3&sp=" + Reuters.nav.baseUrlPrefix;
	if (Reuters.nav.scriptsLoaded == false) {
		Reuters.nav.loadScripts();
		if (Reuters.nav.isCommerce) {
			document.getElementById('searchForm').getAttributeNode("action").value = Reuters.nav.PRIMARY_SITE_URL + document.getElementById('searchForm').getAttributeNode("action").value;
		}
		Reuters.nav.scriptsLoaded = true;
	}
	/* Fix the "Reuters" logo on top */
	if (Reuters.nav.baseUrlPrefix != "") {
		document.getElementById('logoLink').href = Reuters.nav.baseUrlPrefix;
	} else if (Reuters.nav.isCommerce) {
		document.getElementById('logoLink').href = Reuters.nav.PRIMARY_SITE_URL;
	} else {
		document.getElementById('logoLink').href = '/';
	}
}


