var accChosen={};

var galleryChosen;
var gallerySlider;
var gallerySlide;
var gallerySlides=[];
var galleryMorphs=[];
var galleryPer;

var blendDuration=1500;
var slideDuration=5000;
var ackDuration=150;


window.addEvents({
	'domready':function(){
		if($('cinema')&&typeof(gal)!='undefined'){
			$('cinema').set('id','gallery');
			$$('.cinema-stripe').dispose();
		}

		if($('head')){
			$('head').set('morph',{duration:blendDuration,transition:Fx.Transitions.Sine.easeOut,link:'cancel'});

			$('head').addEvents({
				mouseenter:function(){
					if(Cookie.read('headslide')) return;

					$('head').morph({height:544});
					$('slideout').morph({opacity:0});
					$('slidein').morph({opacity:1});
					$$('.cinema-stripe').setStyle('height',272);

					Cookie.write('headslide','out');
				}
			});

			var state=Cookie.read('headslide');

			(new Element('div',{id:'slideout',morph:{duration:blendDuration,transition:Fx.Transitions.Sine.easeOut,link:'cancel'},events:{click:function(){
				$('head').morph({height:544});
				$('slideout').morph({opacity:0});
				$('slidein').morph({opacity:1});
				if($('cinema')) $$('.cinema-stripe').setStyle('height',272);

				Cookie.write('headslide','out');
			}}})).inject($('head'));

			(new Element('div',{id:'slidein',morph:{duration:blendDuration,transition:Fx.Transitions.Sine.easeOut,link:'cancel'},events:{click:function(){
				$('head').morph({height:272});
				$('slideout').morph({opacity:1});
				$('slidein').morph({opacity:0});
				if($('cinema')) $$('.cinema-stripe').setStyle('height',136);

				Cookie.write('headslide','in');
			}}})).inject($('head'));

			switch(state){
				case 'out':
					$('head').setStyles({height:544});
					$('slideout').setStyles({opacity:0});
					$('slidein').setStyles({opacity:1});
					if($('cinema')) $$('.cinema-stripe').setStyle('height',272);
					break;
				case 'in':
				default:
					$('head').setStyles({height:272});
					$('slideout').setStyles({opacity:1});
					$('slidein').setStyles({opacity:0});
					if($('cinema')) $$('.cinema-stripe').setStyle('height',136);
					break;
			}
		}

		for(i=0;i<$$('.teaser').length;i++){
			var box=$$('.teaser')[i];
			(new Element('div',{'class':'teaserb'})).inject(box);
		}

		if($('cinema')){
			for(i=0;i<$$('.cinema-stripe').length;i++){
				(new Element('div',{'class':'cinema-ol',styles:{top:-272}})).inject($$('#cinema .cinema-stripe')[i]);
			}

			$$('.cinema-stripe,.cinema-ol,#cinema h1').set('morph',{duration:blendDuration,transition:Fx.Transitions.Sine.easeOut,link:'cancel'});
			$$('.cinema-stripe').setStyles({opacity:0,display:'block'});

			$$('.cinema-stripe h1').each(function(el){
				el.setStyle('left',-parseInt(el.getStyle('width')));
			});

			$('cinema').addEvents({
				mouseenter:function(){
					this.getElements('.cinema-stripe').morph({opacity:1});
					this.getElements('.cinema-stripe .cinema-ol').morph({top:0});

					this.getElements('.cinema-stripe h1').each(function(el){
						if(el.ltr) el.ltr.cancel();
						el.ltr=(new Fx.Morph(el,{duration:blendDuration,transition:Fx.Transitions.Sine.easeOut})).start({left:16});
					});
				},
				mouseleave:function(){
					this.getElements('.cinema-stripe').morph({opacity:0});
					this.getElements('.cinema-stripe .cinema-ol').morph({top:-272});

					this.getElements('.cinema-stripe h1').each(function(el){
						if(el.ltr) el.ltr.cancel();
						el.ltr=(new Fx.Morph(el,{duration:blendDuration,transition:Fx.Transitions.Sine.easeOut})).start({left:-parseInt(el.getStyle('width'))});
					});
				}
			});

			$$('.cinema-stripe').addEvents({
				mouseenter:function(){
					this.getElements('h1').morph({color:'#ff7700'});
					var f=function(){this.getElements('.cinema-ol').morph({top:-50})};
					f.delay(ackDuration,this);
				},
				mouseleave:function(){
					this.getElements('h1').morph({color:'#4a4742'});
					this.getElements('.cinema-ol').morph({top:0});
				}
			});
		}

		if($('gallery')){
			(new Element('a',{id:'gallery-link',href:'#',target:'_blank'})).inject($('gallery'));
			(new Element('div',{id:'gallery-ol'})).inject($('gallery'));
			(new Element('div',{id:'gallery-slider-up'})).inject($('gallery-ol'));
			(new Element('div',{id:'gallery-container'})).inject($('gallery-ol'));
			(new Element('div',{id:'gallery-slider-down'})).inject($('gallery-ol'));
			(new Element('div',{id:'gallery-slider',morph:{duration:blendDuration,transition:Fx.Transitions.Sine.easeOut,link:'cancel'}})).inject($('gallery-container'));
			(new Element('div',{id:'gallery-ctrl'})).inject($('gallery-ol'));
			(new Element('div',{id:'gallery-ctrl-play'})).inject($('gallery-ctrl'));
			(new Element('div',{id:'gallery-ctrl-pause'})).inject($('gallery-ctrl'));

			$('gallery-slider-up').addEvent('click',function(){moveSlider(-1);});
			$('gallery-slider-down').addEvent('click',function(){moveSlider(1);});

			var gals=['gale','galr'];
			var c=0;
			var i=0;

			for(i=0;i<gals.length;i++){
				if(typeof(gal[gals[i]])!='object') continue;

				var els=$(gals[i]).getChildren();
				for(j=0;j<els.length;j++) els[j].dispose();

				for(j=0;j<gal[gals[i]].length;j++){
					if(!gal[gals[i]][j].images.length) continue;

					gal[gals[i]][j].dO=(new Element('li',{html:'<h2 class="click">'+gal[gals[i]][j].name+'</h2>'})).inject($(gals[i]));
					gal[gals[i]][j].dO.ref=gal[gals[i]][j];
					gal[gals[i]][j].dO.addEvent('click',function(){
						this.ref.launchGallery();
					});

					gal[gals[i]][j].launchGallery=function(){
						var preloadImages=[];

						gallerySlides=[];

						var els=$('gallery').getChildren('img'); for(z=0;z<els.length;z++) els[z].dispose();
						var els=$('gallery-slider').getChildren('img'); for(z=0;z<els.length;z++) els[z].dispose();

						if(galleryChosen) galleryChosen.removeClass('mark');
						galleryChosen=this.dO;
						galleryChosen.addClass('mark');

						$('gallery-link').set('html',this.name);
						if(this.url) $('gallery-link').set('href','http://'+this.url);
						else $('gallery-link').addEvent('click',function(){return false;});

						for(k=0;k<this.images.length;k++){
							gallerySlides.push({
								pic:	new Element('img',{
											src:this.images[k],
											alt:this.name,
											morph:{duration:blendDuration,transition:Fx.Transitions.Sine.easeOut}
										}),
								thumb:	new Element('img',{
											src:this.images[k].replace(/(\/[^\/]+\.[^\/]*)$/,'/thumbs$1'),
											alt:this.name,
											morph:{duration:blendDuration,transition:Fx.Transitions.Sine.easeOut},
											events:{
												click:function(){
													slideShow({slide:this.i});
												}
											}
										})
							});

							gallerySlides[gallerySlides.length-1].thumb.i=k;
							preloadImages.push(this.images[k],this.images[k].replace(/(\/[^\/]+\.[^\/]*)$/,'/thumbs$1'));
						}

						for(k=0;k<gallerySlides.length;k++){
							gallerySlides[k].pic.setStyles({
								'z-index':4,
								opacity:0
							});

							gallerySlides[k].thumb.setStyles({
								'border-color':'#000000',
								opacity:0
							});

							gallerySlides[k].pic.inject($('gallery'));
							gallerySlides[k].thumb.inject($('gallery-slider'));
						}

						gallerySlider=0;
						gallerySlide=0;
						moveSlider(0);
						slidePause();

						var loader=new Asset.images(preloadImages,{
							onProgress:function(counter,index){
							},
							onComplete:function(){
								for(k=0;k<gallerySlides.length;k++){
									gallerySlides[k].thumb.setStyles({
										opacity:1
									});
								}

								gallerySlides[0].pic.setStyles({
									'z-index':5,
									opacity:1
								});

								gallerySlides[0].thumb.setStyles({
									'border-color':'#ff7700'
								});

								// slideShow();
								slidePlay();
							}
						});
					}

					if(!c) gal[gals[i]][j].launchGallery();
					c++;
				}
			}

			$('gallery').addEvents({
				mouseenter:function(){
					$('gallery-ol').morph({right:0});
					slidePause();
				},
				mouseleave:function(){
					$('gallery-ol').morph({right:-150});
					slidePlay();
				}
			});

			slideShow({slide:0});
			slidePlay();
		}

		if($$('.acc')[0]){
			var levels=[];
			var els1=$$('.acc')[0].getElements('h1');

			for(i=0;i<els1.length;i++){
				var el1=els1[i];
				levels[i]={name:el1.get('html'),items:[]};
				el1.ch=el1.getParent().getChildren('ul')[0];

				var els2=el1.ch.getElements('h2');
				for(j=0;j<els2.length;j++){
					var el2=els2[j];
					levels[i].items[j]={name:el2.get('html'),description:el2.getSiblings('span')[0].get('html'),items:[]};
					el2.ch=el2.getSiblings('ul')[0];

					if(el2.ch){
						var els3=el2.ch.getElements('h3');
						for(k=0;k<els3.length;k++){
							var el3=els3[k];
							levels[i].items[j].items[k]={name:el3.get('html'),image:(el3.getSiblings('img')[0]?el3.getSiblings('img')[0].dispose():null),content:el3.getSiblings('ul')[0].dispose()};
							el3.dispose();
						}
					}

					el2.getSiblings('span')[0].dispose();
					el2.dispose();
				}

				el1.dispose();
			}

			var majorUl=new Element('ul',{'class':'cm'});
			for(i=0;i<levels.length;i++){
				var majorLi=new Element('li',{html:'<span>'+levels[i].name+'</span><div class="li-support"></div>',events:
					{
						click:function(){
							if(accChosen.l1==this){
								this.removeClass('active');
								this.ul.dispose();
								accChosen.l1=null;

								if(accChosen.l2){
									accChosen.l2.removeClass('active');
									accChosen.l2.div.dispose();
									accChosen.l2=null;
								}
							}else{
								if(accChosen.l2){
									accChosen.l2.removeClass('active');
									accChosen.l2.div.dispose();
									accChosen.l2=null;
								}
								if(accChosen.l1){
									accChosen.l1.removeClass('active');
									accChosen.l1.ul.dispose();
								}
								this.addClass('active');
								this.ul.inject(this.getParent('.acc'));
								accChosen.l1=this;
							}
						}
					}
				});
				majorLi.inject(majorUl);
				majorLi.ul=new Element('ul',{'class':'cm l2'});

				for(j=0;j<levels[i].items.length;j++){
					var middleLi=new Element('li',{html:'<span>'+levels[i].items[j].name+'</span><div class="li-support"></div>',events:
						{
							click:function(){
								if(accChosen.l2==this){
									this.removeClass('active');
									this.div.dispose();
									accChosen.l2=null;
								}else{
									if(accChosen.l2){
										accChosen.l2.removeClass('active');
										accChosen.l2.div.dispose();
									}
									this.addClass('active');
									this.div.inject(this.getParent('.acc'));
									accChosen.l2=this;
								}
							}
						}
					});
					middleLi.inject(majorLi.ul);
					middleLi.div=new Element('div',{html:'<p>'+levels[i].items[j].description+'</p>','class':'cdiv'});

					for(k=0;k<levels[i].items[j].items.length;k++){
						var div=new Element('div',{'class':'teaser',html:'<h2>'+levels[i].items[j].items[k].name+'</h2>'});
						if(levels[i].items[j].items[k].image) levels[i].items[j].items[k].image.inject(div);
						levels[i].items[j].items[k].content.inject(div);
						(new Element('div',{'class':'teaserb'})).inject(div);
						div.inject(middleLi.div);
					}
				}
			}
			majorUl.inject($$('.acc')[0]);
			$$('.acc')[0].addClass('full');
			$$('.acc')[0].getChildren('ul')[0].dispose();
		}
	}
});

moveSlider=function(f){
	if(f===0){
		gallerySlider=0;
	}else{
		gallerySlider+=f;
		if(gallerySlider>gallerySlides.length-4) gallerySlider=gallerySlides.length-4;
		if(gallerySlider<0) gallerySlider=0;
	}

	$('gallery-slider').morph({top:gallerySlider*-115});

	if(gallerySlider<=0) $('gallery-slider-up').setStyle('opacity',0);
	else $('gallery-slider-up').setStyle('opacity',1);

	if(gallerySlider>=gallerySlides.length-4) $('gallery-slider-down').setStyle('opacity',0);
	else $('gallery-slider-down').setStyle('opacity',1);
}

slidePlay=function(){
	$('gallery-ctrl-play').setStyle('opacity',1);
	$('gallery-ctrl-pause').setStyle('opacity',.5);

	for(i=0;i<galleryMorphs.length;i++){
		galleryMorphs[i].resume();
	}

	if(galleryPer) galleryPer=$clear(galleryPer);
	galleryPer=slideShow.periodical(slideDuration);
}

slidePause=function(){
	$('gallery-ctrl-play').setStyle('opacity',.5);
	$('gallery-ctrl-pause').setStyle('opacity',1);

	for(i=0;i<galleryMorphs.length;i++){
		galleryMorphs[i].pause();
	}

	galleryPer=$clear(galleryPer);
}

slideShow=function(params){
	for(i=0;i<galleryMorphs.length;i++){
		galleryMorphs[i].cancel();
	}

	galleryMorphs=[];

	var oldSlide=gallerySlide;

	if(typeof(params)=='undefined'||typeof(params.slide)=='undefined') var newSlide=gallerySlide+1;
	else var newSlide=params.slide;

	if(newSlide>=gallerySlides.length) newSlide=0;
	if(oldSlide==newSlide) return;

	for(i=0;i<gallerySlides.length;i++){
		var slide=gallerySlides[i];

		switch(i){
			case oldSlide:
				slide.pic.setStyles({
					'z-index':5,
					opacity:1
				});
				slide.thumb.setStyles({'border-color':'#ff7700'});
				slide.thumb.morph({'border-color':'#000000'});

				break;
			case newSlide:
				slide.pic.setStyles({
					'z-index':6,
					opacity:0,
					left:0
				});
				slide.pic.morph({opacity:1});
				slide.thumb.setStyles({'border-color':'#000000'});
				slide.thumb.morph({'border-color':'#ff7700'});

				if(parseInt(slide.pic.getStyle('width'))>733){
					galleryMorphs.push(slide.move=new Fx.Morph(slide.pic,{duration:slideDuration,transition:Fx.Transitions.Sine.easeOut}));
					slide.move.start({left:733-parseInt(slide.pic.getStyle('width'))});
				}

				break;
			default:
				slide.pic.setStyles({
					'z-index':4,
					opacity:0
				});
				slide.thumb.setStyles({'border-color':'#000000'});

				break;
		}
	}

	gallerySlide=newSlide;
}
