var newStyles=new Hash({'borderRadius':'@px @px @px @px','boxShadow':'@px @px @px rgb(@, @, @)'});
$extend(Element.Styles,newStyles);

var base='http://www.tolk.de/';

var panning=new Class({
	chosenform:false,
	forms:[],
	toggle:function(params){
		var i;
		for(i=0;i<this.forms.length;i++){
			var form=this.forms[i];
			if(form==params.form&&form!=this.chosenform){
				$$('#'+this.pan+' .'+form).addClass('active');
				$(form).addClass('active');
				Cookie.write(this.pan+'Pan',form);
			}else if(form==this.chosenform){
				$$('#'+this.pan+' .'+form).removeClass('active');
				$(form).removeClass('active');
				Cookie.dispose(this.pan+'Pan');
			}
		}

		if(params.form!=this.chosenform) this.chosenform=params.form;
		else this.chosenform=false;
	},
	initialize:function(params){
		this.forms=params.forms;
		this.pan=params.pan;

		$(this.pan).setStyle('display','block');

		var i;
		for(i=0;i<this.forms.length;i++){
			var form=this.forms[i];
			$$('#'+this.pan+' .'+form).addEvent('click',this.toggle.bind(this,{form:form}));

			var cread=Cookie.read(this.pan+'Pan');
			if(cread){
				$$('#'+this.pan+' .'+cread).addClass('active');
				$(cread).addClass('active');
				this.chosenform=cread;
			}
		}
	}
});

var choosema=new Class({
	lis:[],
	chosen:false,
	duration:500,
	interval:6000,
	periodical:false,
	initialize:function(params){
		this.pan=params.pan;

		var i;
		var lis=$$('#'+this.pan+' li');
		for(i=0;i<lis.length;i++){
			var li=lis[i];
			li.set('morph',{duration:this.duration,transition:Fx.Transitions.Linear});
			var div=new Element('div');
			var ch=li.getChildren();
			var j;
			for(j=0;j<ch.length;j++) ch[j].inject(div);
			div.inject(li);  
			this.lis.push(li);
		}

		if(lis.length){
			this.chosen=lis[0];
			var element=new Element('li',{id:this.pan+'progress'});
			var table=new Element('table',{cellspacing:0,cellpadding:0});
			table.inject(element);
			var tr=new Element('tr');
			tr.inject(table);

			for(i=0;i<lis.length;i++){
				var li=lis[i];
				var td=new Element('td');
				td.inject(tr);
				var div=new Element('div',{'class':'icon',events:{click:this.toggle.bind(this,{li:li})}});
				div.inject(td);
				li.div=div;
				div.li=li;
			}

			element.inject($(this.pan));
			this.periodical=this.change.periodical(this.interval,this);
		}

		if(this.chosen) this.show({li:this.chosen});
	},
	change:function(){
		var i;
		for(i=0;i<this.lis.length;i++) if(this.chosen==this.lis[i]) break;
		i++;
		if(i>=this.lis.length) i=0;
		this.show({li:this.lis[i]});
	},
	toggle:function(params){
		if(this.chosen==params.li) return;
		this.periodical=$clear(this.periodical);
		this.show({li:params.li});
	},
	show:function(params){
		var i;
		for(i=0;i<this.lis.length;i++){
			var li=this.lis[i];
			li.setStyles({right:10});
			li.removeClass('first');
			li.removeClass('second');
			li.div.removeClass('active');
			switch(li){
				case params.li:
					li.addClass('first');
					params.li.div.addClass('active');
					break;
				case this.chosen:
					li.addClass('second');
					li.morph({right:550});
					break;
			}
		}
		this.chosen=params.li;
	}
});

var hinema=new Class({
	elements:[],
	chosen:false,
	duration:1000,
	interval:6000,
	periodical:false,
	initialize:function(params){
		this.pan=params.pan;
		this.imgs=$$('#'+this.pan+'>img');
		var i;
		for(i=0;i<this.imgs.length;i++){
			var img=this.imgs[i];
			var div=new Element('div',{'class':i?'':'first',morph:{unit:'%',duration:this.duration,transition:Fx.Transitions.Linear}});
			img.removeClass('behind');
			img.inject(div);
			div.inject($(this.pan));
			this.elements.push(div);
		}

		this.chosen=0;
		this.periodical=this.change.periodical(this.interval,this);
	},
	change:function(){
		next=this.chosen+1;
		if(next>=this.elements.length) next=0;
		if(next==this.chosen) return;

		var i;

		for(i=0;i<this.elements.length;i++){
			if(i==this.chosen){
				this.elements[i].addClass('first');
				this.elements[i].removeClass('second');
			}else if(i==next){
				this.elements[i].removeClass('first');
				this.elements[i].addClass('second');
			}else{
				this.elements[i].removeClass('first');
				this.elements[i].removeClass('second');
			}
		}

		this.elements[this.chosen].morph({right:100});
		this.chosen=next;
		this.elements[this.chosen].setStyles({right:0});
	}
});

window.addEvents({
	adomready:function(){
		// nojs functionality
		for(i=0;i<document.styleSheets.length;i++){
			var css=document.styleSheets[i];
			if(css.title=='nojs') css.disabled=true;
		};

		// heads cinema
		new hinema({pan:'headbg'});

		// tools panning
		new panning({pan:'tools',forms:['search','login']});

		// clients cinema
		if(!(Browser.Engine.trident&&Browser.Engine.version<6)&&$('clients')) new choosema({pan:'clients'});
	},
	domready:function(){
		$('assistbg').setStyles({opacity:0});

		if(
			Browser.name=='firefox'&&Browser.version>=4
		){
			(new Element('div',{id:'logoshadow'})).inject($('logo'));

			$('logoshadow').setStyles({'box-shadow':'0 0 10px rgb(0,0,0)'});

			var b=function(){
				var a=new Fx.Morph('logoshadow',{duration:2500,transition:Fx.Transitions.Sine.easeOut});
				a.start({
					'box-shadow':'0 0 1px rgb(0,0,0)'
				}).wait(1500).chain(function(){
					this.start({'box-shadow':'0 0 10px rgb(0,0,0)'});
				});
			};

			b();
			b.periodical(7500);
		}
	},
	load:function(){
		$('assistbg').morph({opacity:1});
	}
});
