lang_selector = {};

LangSelector = Class.create();
LangSelector.prototype = {
	
	initialize: function(root, url, target) {
		
		this.id = 'lang_selector';
		this.self = $(this.id);
		this.self.onchange = this.changeSelector.bindAsEventListener(this);
		if (console) console.log('SELECTOR: '+this.self);
		this.target = target;

		this.initAjax(root+'/'+url);
		this.options = [];
		this.strings = {};
		
		var me = this;
		page_init.scripts[this.id] = function() {
			screen_overlay.register(me);
		};
		//this.getLangInit();
	
	},
	
	initAjax: function(url) {
		ajaxEngine.registerRequest(this.id + '_request', url);
		ajaxEngine.registerAjaxObject(this.id + '_change', this);
	},
	
	callRicoAjaxEngine: function(callParams) {
		var additionalParams = this.options.requestParameters || [];
		for (var i=0; i < additionalParams.length; i++) callParams.push(additionalParams[i]);
		if (console) console.log('PARAMS: '+callParams);
		ajaxEngine.sendRequest.apply(ajaxEngine, callParams);
	},
	
	ajaxUpdate: function(ajaxResponse) {
		var url = ajaxResponse.getElementsByTagName('load')[0].getAttribute('url');
		if (url) this.target = url;
		this.doSwitch();
	},
	
	changeLang: function(lang) {
		
		//this.doSwitch(lang);
		var callParams = [];
		callParams.push( this.id + '_request');
		callParams.push('id=' + this.id);
		callParams.push('cmd=ChangeLang');
		callParams.push('lang='+lang);
		this.callRicoAjaxEngine(callParams);
		
	},
	
	doSwitch: function() {
		if (this.target) {
			top.location = this.target;
		} else {
			top.location.reload();
		}
	},
	
	changeSelector: function(e) {
		var src = e.srcElement ? e.srcElement : e.target;
		if (src.value && src.value != this.cur_lang) {
			this.changeLang(src.value);	
		} 
	},
	
	show: function() {
		this.self.style.display = '';
	},
	
	hide: function() {
		this.self.style.display = 'none';
	}
	
};


