function CountrySelector(selectControl, handlerUrl, arrCountryBabelIds, selectedAppId, details) {
	this.m_selector = null;
	this.m_options = new Array();
	this.m_handler = null;
	this.m_details = null;
	
	var me = this;
	
	this.Init = function(selectControl, handlerUrl, arrCountryBabelIds, selectedAppId, details) {
		me.m_handler = handlerUrl;
		me.m_details = details;
		
		me.m_selector = selectControl;
		for (var i = 0; i < arrCountryBabelIds.length; i++) {
			me.m_options[i] = new Element("option");
			me.m_selector.insert(me.m_options[i]);
			me.m_options[i].text = g_Babel.GetWord(arrCountryBabelIds[i].babelId);
			me.m_options[i].value = i;
			me.m_options[i].appId = arrCountryBabelIds[i].appId;
			me.m_options[i].babelId = arrCountryBabelIds[i].babelId;
		}
		
		me.OrderList();
		for (var i = 0; i < me.m_options.length; i++) {
			if (me.m_options[i].appId == selectedAppId) {
				me.m_selector.selectedIndex = i;
			}
		}
		
		me.m_selector.onchange = function () {
			g_strAppID = me.m_options[me.m_selector.selectedIndex].appId;
			g_Srv.strAppID = g_strAppID;
			g_Srv.CallFunction("ChangeCountry", "", 0, me.RefreshData);
		}
	}
	
	this.OrderList = function() {
		for (var i = 0; i < me.m_options.length; i++) {
			for (var j = 0; j <  me.m_options.length - i - 1; j++) {
				if (me.m_options[j].text > me.m_options[j + 1].text) {
					var dummy = new Object();
					dummy.text = me.m_options[j].text;
					dummy.value = me.m_options[j].value;
					dummy.appId = me.m_options[j].appId;
					dummy.babelId = me.m_options[j].babelId;
					me.m_options[j].text = me.m_options[j + 1].text;
					me.m_options[j].value = me.m_options[j + 1].value;
					me.m_options[j].appId = me.m_options[j + 1].appId;
					me.m_options[j].babelId = me.m_options[j + 1].babelId;
					me.m_options[j + 1].text = dummy.text;
					me.m_options[j + 1].value = dummy.value;
					me.m_options[j + 1].appId = dummy.appId;
					me.m_options[j + 1].babelId = dummy.babelId;
				}
			}
		}
	}
	
	this.RefreshData = function() {
		ClearMarkers(0);
		me.m_details.style.display = "none";
		g_Srv.CallFunction("GetInitParams", "", 0, MapRefresh, g_strLangID);
	}
	
	me.Init(selectControl, handlerUrl, arrCountryBabelIds, selectedAppId, details);	
}

