var LanguageSelector = {
	url: '',
	newLangURL: '',
	
	init: function() {
		var self = this;
		Tools.getJsonData(this.url, {}, function(langs, args) {
			self.setLanguages(langs, args);
		});
	},
	
	setLanguages: function(langs, args) {
		var self = this;
		var data = langs.data;
		var ul = new Element('ul');
		var list = $('languageList');
		
		for (x = 0; x < langs.count; x++) {
			var li = new Element('li');
			var a = new Element('a', {
				'href': '#' + x,
				'rel': data[x].lang_id,
				'events': {
					'click': function(e) {
						new Event(e).stop();
						self.changeLang(this);
					}
				}
			}).set('text', data[x].langdesc);
			ul.adopt(li.adopt(a));
		}
		list.adopt(ul);
		
		// Set Events
		$('languageMenu').addEvents({
			'mouseenter': function() {
				list.setStyle('display', 'block');
			},
			'mouseleave': function() {
				list.setStyle('display', 'none');
			}
		});
	},
	
	changeLang: function(el) {
		var instr = $(el).getProperty('rel');
		var url = this.newLangURL.replace('######', instr);
		document.location.href = url;
	}
};


var CountrySelector = {
	countryURL: '',
	currentCountryURL: '',
	checkCountryURL: '',
	
	init: function() {
		var self = this;
		Tools.getJsonData(this.countryURL, {}, function(countries, args) {
			self.setCountry(countries, args);
		});
		Tools.getJsonData(this.currentCountryURL, {}, function(currentCountry) {
			self.setCurrentCountry(currentCountry);
		});
	},
	
	setCountry: function(countries, args) {
		var self = this;
		var data = countries.data;
		var ul = new Element('ul');
		var list = $('countryList');
		
		for (x = 0; x < countries.count; x++) {
			var li = new Element('li');
			var a = new Element('a', {
				'href': '#'+data[x].countrydesc,
				'rel': data[x].id_zona+'|'+data[x].countrydesc,
				'events': {
					'click': function(e) {
						new Event(e).stop();
						self.checkCountry(this);
					}
				}
			}).set('text', data[x].countrydesc);
			ul.adopt(li.adopt(a));
		}
		list.adopt(ul);
		
		// Set Events
		$('countryMenu').addEvents({
			'mouseenter': function() {
				list.setStyle('display', 'block');
			},
			'mouseleave': function() {
				list.setStyle('display', 'none');
			}
		});
	},
	
	setCurrentCountry: function(currentCountry) {
		var data = currentCountry.data;
		$('selectedCountry').set('text', data.desc_zona);
	},
	
	checkCountry: function(el) {
		var self = this;
		var array = $(el).getProperty('rel').split('|');
		var url = this.checkCountryURL.replace('######', array[0]);
		Tools.getJsonData(url, {arg1: array[1]}, function(countryData, opt){
			self.checkCountryCallBack(countryData, opt);
		});
	},
	
	checkCountryCallBack: function(countryData, opt) {
		var data = countryData.data;
		
		if ( data.shipping_valuta.toLowerCase() != this.currentCountry ) {
			// Se la valuta del paese di shipping e' diversa da quella presente nel g_country visualizzo la notifica di cambio valuta
			var txt = data.id_valuta.toUpperCase() + ' ' + data.simbolo;
			this.showCurrencyPopup(txt, data, opt);
		} else {
			// Controllo se il listino e' cambiato
			if ( this.idListino != data.id_listino) {
				this.showCurrencyPopup(null, data, opt);
			} else {
				// Se le valute invece combaciano ricarico la pagina
				reloadPage(data);
			}
		}
	},
	
	showCurrencyPopup: function(txt, data, opt) {
		var message = Messages.msg_change_country;
		message = message.replace('##1##', opt.arg1);
		message = message.replace('##2##', txt);
		message = message.replace('##2##', txt);
		
		var popupOptions = {
			contentText: message,
			width: 400,
			
			okButtonEvent: function() {
				reloadPage(data);
			},
			
			closeButton: true,
			customNavigation: false,
			useOverlay: true
		};
		
		var changeCountryAdvisor = clone(Advisor);
		changeCountryAdvisor.init(popupOptions);
	}
};


function checkBasketCountry(element) {
	var countryURL = CountrySelector.checkCountryURL.replace('######', $('id_zona').options[$('id_zona').selectedIndex].value);
	countryURL += '&id_vettore='+$('id_vettore').options[$('id_vettore').selectedIndex].value;
	Tools.getJsonData(countryURL, { arg1: $('id_zona').options[$('id_zona').selectedIndex].text }, function(countryData, opt){
		CountrySelector.checkCountryCallBack(countryData, opt);
	});
}

