/* Eitido (c) 2010 - Norman Geiersbach */
var Animation=new Class({Implements:[Options],options:{autodisplay:true,autostart:false,count:0,delay:'long',horizontal:true,loop:false,width:0,height:0},current:0,element:null,image:null,timer:null,isRunning:false,initialize:function(element,image,options){this.setOptions(options);this.options.delay=Animation.Delay[this.options.delay]||this.options.delay.toInt();this.element=($type(element)=='string')?$(element):element;if($chk(image))this.element.setStyle('background-image',image);if(this.options.width==0)this.options.width=this.element.getStyle('width').toInt();if(this.options.height==0)this.options.height=this.element.getStyle('height').toInt();if(this.options.count==0){var imgUrl=this.element.getStyle('background-image');if(imgUrl.contains('url('))imgUrl=imgUrl.substring(5,imgUrl.length-2);var img=new Image();img.src=imgUrl;this.checkLoad.delay(1,this,img);}
if(this.options.autostart)this.start();},checkLoad:function(img){if(img!=null){if((img.complete)&&(img.width>0)){this.options.horizontal=img.width>img.height;this.options.count=(this.options.horizontal?img.width/this.options.width:img.height/this.options.height).toInt();if(this.options.autostart)this.start();}else this.checkLoad.delay(1,this,img);}},start:function(){if((this.options.count>0)&&(this.options.width>0)){if(this.timer==null){this.timer=this.step.periodical(this.options.delay,this);if(this.options.autodisplay)this.element.setStyle('display','block');this.isRunning=true;}else this.current=0;}},stop:function(){if(this.timer!=null){this.isRunning=false;this.timer=$clear(this.timer);if(this.options.autodisplay)this.element.setStyle('display','none');}},step:function(){if(this.current>=this.options.count){if(this.options.loop)this.current=0;else this.stop();}
this.element.setStyle('background-position',this.options.horizontal?(this.current*-this.options.width)+'px 0px':'0px '+(this.current*-this.options.width)+'px');this.current++;}});Animation.Delay={'short':25,'normal':50,'long':100};
var PcsScroller=new Class({Implements:[Options],options:{},elements:{host:null,scroller:null},pages:[],current:0,fx:null,size:null,initialize:function(element,pageUrls,options){this.setOptions(options);this.elements.host=$type(element)=='string'?$(element):element;this.generate(pageUrls);this.load();},generate:function(pageUrls){var menu=$('main-menu');var links=menu.getElements('a');var current=this.elements.host.getElement('div[class=page-content-container]');this.size=current.getSize();for(var i=0;i<pageUrls.length;i++){if(links[i]==document.location.href){this.current=i;break;}}
for(var i=0;i<pageUrls.length;i++){if(!$chk(pageUrls[i])||(i>=links.length))
continue;var container=i==this.current?current:new Element('div').addClass('page-content-container');var animation=null;if(i!=this.current){var loader=new Element('div').addClass('page-content-loader');loader.inject(container);animation=new Animation(loader,null,{autostart:true,loop:true});}
var page={elements:{container:container,link:links[i],scroller:null},animation:animation,index:i,loaded:i==this.current,offset:i*this.size.y,gallery:null,url:pageUrls[i]}
this.pages.push(page);links[i].addEvent('click',function(event,page){this.jumpTo(page);return false;}.bindWithEvent(this,page));}
this.elements.scroller=new Element('div',{id:'page-content-scroller'}).setStyles({top:(-this.current*this.size.y)+'px',height:(this.pages.length*this.size.y)+'px'});this.fx=new Fx.Tween(this.elements.scroller,{duration:1500,link:'cancel',transition:'expo:in:out'});for(var i=0;i<this.pages.length;i++)
this.pages[i].elements.container.inject(this.elements.scroller);this.elements.scroller.inject(this.elements.host);this.update(this.pages[this.current]);},load:function(){for(var i=0;i<this.pages.length;i++){if(!this.pages[i].loaded){this.pages[i].elements.container.set('load',{onSuccess:function(event,page){this.update(page);}.bindWithEvent(this,this.pages[i])});this.pages[i].elements.container.load(this.pages[i].url);}}},update:function(page){page.loaded=true;var galleryContainer=page.elements.container.getElements('div[class=gallery-container]');if(galleryContainer.length>0){page.gallery=new PcsGalleryScroller(page.elements.container);}},jumpTo:function(page){if(page.index==this.current)
return;this.pages[this.current].elements.link.removeClass('active');page.elements.link.addClass('active');this.current=page.index;this.fx.start('top',-page.offset+'px');}});var PcsGalleryScroller=new Class({Implements:[Options],options:{},elements:{host:null,controls:{container:null,caption:{container:null,buttonPrev:null,buttonNext:null,title:null},content:{container:null,text:null},thumbnails:{container:null,slider:null,images:null,thumbs:null,end:null}},scroller:null},galleries:[],current:0,fx:{scroller:null,controls:null,slider:null},fxControls:null,size:null,initialize:function(element,options){this.setOptions(options);this.elements.host=$type(element)=='string'?$(element):element;this.size=this.elements.host.getSize();this.generate();this.jumpTo(0);},generate:function(){var galleries=this.elements.host.getElements('div[class=gallery-container]');var totalWidth=0;for(var i=0;i<galleries.length;i++){var imagesContainer=galleries[i].getElement('div[class=image-wrapper]');var contentContainer=galleries[i].getElement('div[class=gallery-content]');if((imagesContainer==null)||(contentContainer==null))
continue;var images=imagesContainer.getElements('img');var title=contentContainer.getElement('h3');var text=contentContainer.getElement('span');if((images.length==0)||(title==null)||(text==null))
continue;var gallery={element:galleries[i],images:[],offset:totalWidth,title:title.innerHTML,text:text.innerHTML,current:0}
for(var j=0;j<images.length;j++){var image={alt:images[j].alt,offset:totalWidth+(j*this.size.x),url:images[j].src}
gallery.images.push(image);}
this.galleries.push(gallery);contentContainer.dispose();imagesContainer.setStyle('width',this.size.x*gallery.images.length);totalWidth+=this.size.x*gallery.images.length;}
this.elements.scroller=new Element('div').addClass('gallery-scroller').setStyles({left:'0px',width:totalWidth+'px'});this.fx.scroller=new Fx.Tween(this.elements.scroller,{duration:1500,link:'cancel',transition:'expo:in:out'});for(var i=0;i<this.galleries.length;i++)
this.galleries[i].element.inject(this.elements.scroller);this.elements.scroller.inject(this.elements.host);this.elements.controls.container=new Element('div').addClass('gallery-controls');this.elements.controls.caption.container=new Element('div').addClass('gallery-caption-bar');this.elements.controls.caption.buttonPrev=new Element('a',{href:'#'}).addClass('gallery-button-prev').addEvent('click',function(){this.previous();return false;}.bindWithEvent(this));this.elements.controls.caption.buttonNext=new Element('a',{href:'#'}).addClass('gallery-button-next').addEvent('click',function(){this.next();return false;}.bindWithEvent(this));this.elements.controls.caption.title=new Element('h3');this.elements.controls.content.container=new Element('div').addClass('gallery-text-wrapper');this.elements.controls.content.text=new Element('div').addClass('gallery-text');this.elements.controls.thumbnails.container=new Element('div').addClass('thumbnails-wrapper');this.elements.controls.thumbnails.slider=new Element('div').addClass('thumbnails-slider').setStyle('background-position','0px 0px');this.elements.controls.thumbnails.thumbs=new Element('div').addClass('thumbnails');this.fx.controls=new Fx.Tween(this.elements.controls.container,{duration:500,link:'cancel',transition:'expo:in:out',onComplete:function(){if(this.elements.controls.container.getStyle('margin-bottom').toInt()==0){if(!Browser.Engine.trident)this.elements.controls.content.text.fade(1);this.elements.controls.content.text.setStyle('display','block');}else this.update();}.bindWithEvent(this)});this.elements.controls.content.container.addEvents({mouseenter:function(){if(Browser.Engine.trident){this.elements.controls.content.container.setStyle('height',this.elements.controls.content.text.getSize().y);this.elements.controls.content.text.setStyle('visibility','hidden');}else this.elements.controls.content.text.fade(0);}.bindWithEvent(this),mouseleave:function(){if(Browser.Engine.trident){this.elements.controls.content.container.setStyle('height','auto');this.elements.controls.content.text.setStyle('visibility','visible');}else this.elements.controls.content.text.fade(1);}.bindWithEvent(this)});this.fx.slider=new Fx.Tween(this.elements.controls.thumbnails.slider,{duration:500,link:'cancel',transition:'back:out'});this.elements.controls.content.text.inject(this.elements.controls.content.container);this.elements.controls.content.container.inject(this.elements.controls.container);this.elements.controls.caption.container.inject(this.elements.controls.container);this.elements.controls.caption.buttonPrev.inject(this.elements.controls.caption.container);this.elements.controls.caption.buttonNext.inject(this.elements.controls.caption.container);this.elements.controls.caption.title.inject(this.elements.controls.caption.container);this.elements.controls.thumbnails.container.inject(this.elements.controls.container);this.elements.controls.thumbnails.slider.inject(this.elements.controls.thumbnails.container);this.elements.controls.thumbnails.thumbs.inject(this.elements.controls.thumbnails.container);this.elements.controls.container.inject(this.elements.host);},previous:function(){this.jumpTo(this.current-1);},next:function(){this.jumpTo(this.current+1);},getSliderPosition:function(){return(this.galleries[this.current].current*48)+20;},jumpTo:function(index){if((index<0)||(index>=this.galleries.length))
return false;var gallery=this.galleries[index];gallery.current=0;this.current=index;if(!Browser.Engine.trident)this.elements.controls.content.text.fade(0);this.elements.controls.content.text.setStyle('display','none');this.fx.controls.start('margin-bottom','-93px');this.fx.scroller.start('left',-gallery.offset+'px');},jumpToImage:function(index){var gallery=this.galleries[this.current];if((index<0)||(index>=gallery.images.length))
return false;this.elements.controls.thumbnails.images[gallery.current].removeClass('thumbnail-container-active');this.elements.controls.thumbnails.images[index].addClass('thumbnail-container-active');gallery.current=index;if(!Browser.Engine.trident){this.elements.controls.content.text.fade(0);var switchText=function(text){this.elements.controls.content.text.set('text',text);this.elements.controls.content.text.fade(1);};switchText.delay(500,this,index==0?gallery.text:gallery.images[index].alt);}else this.elements.controls.content.text.set('text',index==0?gallery.text:gallery.images[index].alt);this.fx.slider.start('background-position',this.getSliderPosition()+'px 0px');this.fx.scroller.start('left',-(gallery.offset+(gallery.current*this.size.x))+'px');},update:function(){var gallery=this.galleries[this.current];if(this.elements.controls.thumbnails.images!=null)
for(var i=0;i<this.elements.controls.thumbnails.images.length;i++)
this.elements.controls.thumbnails.images[i].destroy();this.elements.controls.caption.title.set('text',gallery.title);this.elements.controls.content.text.set('text',gallery.text);this.elements.controls.caption.buttonPrev.setStyle('display',this.current>0?'block':'none');this.elements.controls.caption.buttonNext.setStyle('display',this.current<this.galleries.length-1?'block':'none');this.elements.controls.thumbnails.images=[];for(var i=0;i<Math.min(gallery.images.length,12);i++){var image=gallery.images[i];var imageUrl=image.url.substring(0,image.url.lastIndexOf('/')+1);var imageName=image.url.substring(image.url.lastIndexOf('/')+1,image.url.length+1);var wrapper=new Element('div').addClass('thumbnail-container').addEvent('click',function(event,index){this.jumpToImage(index);return false;}.bindWithEvent(this,i));var gray=new Element('img',{src:imageUrl+'Thumbs/Gray/'+imageName,alt:image.alt}).addClass('thumbnail-image-gray');var colored=new Element('img',{src:imageUrl+'Thumbs/Colored/'+imageName,alt:image.alt}).addClass('thumbnail-image-colored');gray.inject(wrapper);colored.inject(wrapper);wrapper.inject(this.elements.controls.thumbnails.thumbs);this.elements.controls.thumbnails.images.push(wrapper);}
this.elements.controls.thumbnails.slider.setStyle('background-position',this.getSliderPosition()+'px 0px');this.elements.controls.thumbnails.images[gallery.current].addClass('thumbnail-container-active');this.fx.controls.start('margin-bottom',0);}});
