
var LanguageSelector = Class.create(
{
	initialize: function()
	{
		this.start();
	},
	
	start: function()
	{
		this.buildSelector();
		
		$('langChange').observe('click', this.toggleSelector.bind(this));
	},
	
	buildSelector: function()
	{
		this.selectContainer = new Element('div', {className: 'langSelector'}).hide();
		$('langChangeContainer').appendChild(this.selectContainer);
		
		var list = new Element('ul');
		this.selectContainer.appendChild(list);
		
		var listItem = new Element('li', {className: 'de'});
		list.appendChild(listItem);
		var link = new Element('a', {href: this.getUrl('de')});
		listItem.appendChild(link);
		link.update('Deutsch');
		
		var listItem = new Element('li', {className: 'es'});
		list.appendChild(listItem);
		var link = new Element('a', {href: this.getUrl('es')});
		listItem.appendChild(link);
		link.update('Espa&ntilde;ol');
		
		var listItem = new Element('li', {className: 'fr'});
		list.appendChild(listItem);
		var link = new Element('a', {href: this.getUrl('fr')});
		listItem.appendChild(link);
		link.update('Fran&ccedil;ais');
		
		var listItem = new Element('li', {className: 'it'});
		list.appendChild(listItem);
		var link = new Element('a', {href: this.getUrl('it')});
		listItem.appendChild(link);
		link.update('Italiano');
		
		var listItem = new Element('li', {className: 'nl'});
		list.appendChild(listItem);
		var link = new Element('a', {href: this.getUrl('nl')});
		listItem.appendChild(link);
		link.update('Nederlands');
		
		var listItem = new Element('li', {className: 'pl'});
		list.appendChild(listItem);
		var link = new Element('a', {href: this.getUrl('pl')});
		listItem.appendChild(link);
		link.update('Polski');
		
		var listItem = new Element('li', {className: 'pt'});
		list.appendChild(listItem);
		var link = new Element('a', {href: this.getUrl('pt')});
		listItem.appendChild(link);
		link.update('Portugu&ecirc;s');
		
		var listItem = new Element('li', {className: 'uk'});
		list.appendChild(listItem);
		var link = new Element('a', {href: this.getUrl('gb')});
		listItem.appendChild(link);
		link.update('UK English');
		
		var listItem = new Element('li', {className: 'us'});
		list.appendChild(listItem);
		var link = new Element('a', {href: this.getUrl('us')});
		listItem.appendChild(link);
		link.update('US English');
		
		var listItem = new Element('li', {className: 'ru'});
		list.appendChild(listItem);
		var link = new Element('a', {href: this.getUrl('ru')});
		listItem.appendChild(link);
		link.update('Русский');
	},
	
	getUrl: function(countryCode)
	{
		var returnVal = '/';
		
		if (countryCode)
		{
			returnVal += countryCode + '/';
		}
		
		return returnVal;
	},
	
	toggleSelector: function(event)
	{
		/**
		 * Stop the default url link event
		 */
		event.stop();
		
		if (this.selectContainer.visible())
		{
			this.hideSelector();
		}
		else
		{
			this.showSelector();
		}
	},
	
	showSelector: function()
	{
		new Effect.SlideDown(this.selectContainer,
		{
			duration: 0.4
		});
	},
	
	hideSelector: function()
	{
		new Effect.SlideUp(this.selectContainer,
		{
			duration: 0.4
		});
	}
});

