//v1.0
// Javascript language selector for DotNetNuke
// Dynamic language selector for Localization Extensions (http://www.adequation-dotnetnuke.com)
// Copyright 2009 TNT Zone Inc. (info@tntzone.com)

// define all global variables: languages & tabid for each one of the languages
// list of your portal's TabIDs in the same order for each language array, home page first
// remember, homepage tabid first. it's the fallback in case of error
var enTabs = [ 56, 59, 60, 61, 62, 63, 65, 66, 67, 68,102, 69, 72, 73, 74, 75, 76, 77, 78, 80, 96, 97, 98, 99,100,101,112,113, 83, 84,106, 88,165, 89,108, 91];
var ruTabs = [116,119,120,121,122,123,124,126,127,128,129,130,131,133,134,135,136,137,131,139,141,142,143,144,145,146,147,148,151,152,153,154,166,155,156,157];
var esTabs = [169,177,175,178,179,180,182,183,184,185,186,187,189,190,192,193,194,195,215,225,198,208,207,209,211,210,212,213,214,216,200,201,202,203,204,205];
var dnnLanguages = {'en': 'English', 'ru': 'Russian', 'es': 'Spanish'}; // language code/description to be retrieved
var dnnTabs = {'en': enTabs, 'ru': ruTabs, 'es': esTabs}; // language code/tabid list to be retrieved

var defLanguage = "en"; // default language when code is not specified or invalid

function langSelect(newLanguage)
{
	try {
		var urlStart = window.location.protocol + '//' + window.location.host;
		var urlPath = window.location.pathname;
		//var urlPath = '/en/Home/tabid/100/default.aspx'; //hardcoded for testing/debugging
		var curLanguage = (urlPath.length > 0) ? urlPath.substr(1, 2) : defLanguage; // if no url path, default language
		// if same language as current, do nothing
		if (( newLanguage == curLanguage) || (dnnTabs[newLanguage] == null)) {
			return;
		}
		
		var tagTab = '/tabid/';
		var curTabPos = urlPath.indexOf(tagTab) + tagTab.length;
		// current tabid from url path, or first tabid of current language if not found
		var curTab = (urlPath.length > 0) ? urlPath.substring(curTabPos, urlPath.indexOf('/', curTabPos)) : dnnTabs[curLanguage][0];

		var aTabs = (dnnTabs[curLanguage] != null) ? dnnTabs[curLanguage] : dnnTabs[defLanguage];
		var curTabIndex;
		for (i = 0; i<aTabs.length; i++) {
			if (aTabs[i] == curTab) {
				curTabIndex = i;
				break;
			}
		}
		//default new language home page if tabid not found
		var newTab = (dnnTabs[newLanguage][curTabIndex] != null) ? dnnTabs[newLanguage][curTabIndex] : dnnTabs[newLanguage][0];
		if (newTab == null) {
			return;
		}
		
		var urlLink = '/LinkClick.aspx?link=' + newTab;

		//alert(urlStart+urlLink);
		window.location.href = urlStart + urlLink;
		
	} catch (e) {
		// this can be removed for production
		alert(e);
	}
}

