/*

	JS Class: languageBar
	Version: 1.0.0
	Date: 11.04.2011
	Author: Visto AS (Viljo Veesaar)
	license: BSD license
	
*/

langBar = new Class({	
	
	Implements: [Options,Events],
	
	options: {
		imagesLocation: 'http://resources.2v.no/images/langBar/langSprites.png',
		languages: null,
		background: null,
		width: '900px',
		onComplete: $empty
	},

	initialize: function(options) {
		this.setOptions(options);
		
		if(!this.options.languages) return;
		this.langBarSlide;
		this.languagesContainer;
		this.availableLanguages = {
			'is':{'name':'Íslenska','img':359},
			'uk':{'name':'English','img':405},
			'us':{'name':'English','img':451},
			'dk':{'name':'Danish','img':497},
			'de':{'name':'German','img':543},
			'no':{'name':'Norsk','img':589},
			'nl':{'name':'Dutch','img':635},
			'fr':{'name':'French','img':681},
			'se':{'name':'Swedish','img':727},
			'ca':{'name':'English','img':773},
			'fi':{'name':'Finnish','img':819},
			'es':{'name':'Spanish','img':865},
			'pl':{'name':'Polish','img':911},
			'cz':{'name':'Czech','img':957},
			'be':{'name':'Belgium','img':1003},
			'it':{'name':'Italian','img':1049}
		}
		
		this.buildContainer();
	},
	
	buildContainer: function(){
		var wrapper  = new Element('div', {id: 'langWrapper','styles':{
			'background': this.options.background ? this.options.background : 'url('+this.options.imagesLocation+') repeat-x top left',
			'display': 'none'
			}
		});
		
		this.languagesContainer = new Element('div', {id: 'langContainer','styles':{
			'width': this.options.width,
			'margin': '0 auto',
			'padding':'38px 0 0 0'
			}
		}).inject(wrapper);
		
		var shadow = new Element('div', {'styles':{
			'clear': 'both',
			'height': '18px',
			'background': 'url("'+this.options.imagesLocation+'") 0px -330px repeat-x' ,
			'font-size': '1px',
			'line-height': '18px'
			}
		}).inject(wrapper);
		
		wrapper.inject($(document.body),'top');
		
		this.langBarSlide = new Fx.Slide(wrapper, {
			mode: 'vertical'
		}).hide();
				
		wrapper.setStyle('display','block');
		
		this.insertLanguages();
	},
	
	insertLanguages: function(){
		for (var langCode in this.options.languages) {
			var langLink = this.options.languages[langCode];
			var langData = this.availableLanguages[langCode]
			if(langData){
				this.insertLang(langData,langLink);
			}
		}
		
		var clear = new Element('div', {'styles':{
			'clear': 'both',
			'height': '1px',
			'margin-bottom': '-1px',
			'font-size': '1px',
			'line-height': '1px'
			}
		}).inject(this.languagesContainer);
		
	},
	
	insertLang: function(langData,langLink){
		var langContainer = new Element('a', {'html':langData.name, 'href':langLink,'styles':{
			'width': '190px',
			'height': '45px',
			'padding': '0 0 0 52px',
			'margin':'0 0 20px 0',
			'background': 'url("'+this.options.imagesLocation+'") 0px -'+langData.img+'px no-repeat' ,
			'color': '#FFF',
			'font-size':'18px',
			'float':'left',
			'display':'block',
			'line-height':'45px',
			'text-decoration':'none',
			'font-family': 'AltitudeLight,Arial,Helvetica,sans-serif'
			}
		}).inject(this.languagesContainer);
	},
	
	toggleBar: function(){
		this.langBarSlide.toggle();
	},
	
	slideBar: function(direction){
		if(direction=="in"){
			this.langBarSlide.slideIn();
		}else{
			this.langBarSlide.slideOut();
		}
	},
	
	onComplete: function(){
		this.fireEvent('onComplete');
	},
});
