/*
         ___                         _____       __
        /  /\        ________       /    /\     / /\
(-----//  /  \//----/_____/__\\--) /____/  \___/_/ //--------------------------)
      /  /   /      \     | //     \    \  /    /\/    this code was created by
     /__/   /        \    |///-----\\____\/____/  \                       sigea
(---\\  \  /   (-----\\___|/        /    /\    \  /       
      \__\/                        /____/ /\____\/            __       sigea.ch
                                   \____\/  \  /             /\_\--------------)
                                         \___\//-------------\/_/  

*/
var gallery;
function Gallery(){
	var placeholderID='imageplaceholder';
	var selectionID='imageslist';
	var placeholder,fadeImage,source;
	var opacity,timeout,showTimeout,imageArray,arraypos,ieFilters;
	var arraypos=0;
	var showInterval=4200;
	this.show=function(whichpic,pos){
		if (!document.getElementById(placeholderID)) return false;
		arraypos=pos;
		if(whichpic){
			source = whichpic.getAttribute('href');
			if(showTimeout){
				clearTimeout(showTimeout);
				//restart diashow
				//showTimeout=setTimeout('gallery.showNextPic();',showInterval);
			}
		}else{
			source = imageArray[pos].src;
		}
		placeholder = document.getElementById(placeholderID);
		fadeImage=placeholder.getElementsByTagName('img')[0];
		placeholder.style.backgroundImage='url('+source+')';
		opacity=10;
		if(ieFilters){
			gallery.ieFadeOut();
//		}else if(fadeImage.style.opacity){
//			gallery.fadeOut();
		}else{
//			gallery.imgSwitch();
			gallery.fadeOut();
		}
		var links = document.getElementById(selectionID).getElementsByTagName('a');
		for ( var i=0; i < links.length; i++){
			removeClass(links[i],'active');
			if(links[i].href.indexOf(source)>=0)
				addClass(links[i],'active');
		}
		if(document.getElementById('caption')){
			var caption = document.getElementById('caption');
			while(caption.hasChildNodes()){
				caption.removeChild(caption.lastChild);
			}
			caption.appendChild(document.createTextNode(imageArray[pos]['title']));
		}
		return true;
	}
	var startShow=function(){
		showTimeout=setTimeout('gallery.showNextPic();',3600);
	}
	this.showNextPic=function(){
		if(showTimeout){
			clearTimeout(showTimeout);
		}
		arraypos++;
		if(arraypos>=imageArray.length)
			arraypos=0;
		gallery.show(null,arraypos);
		showTimeout=setTimeout('gallery.showNextPic();',showInterval);
	}
	this.fadeOut=function(){
		var interval=40;
		if(timeout){
			clearTimeout(timeout);
		}
		if(opacity<=0){
			gallery.imgSwitch();
		}else{
			opacity--;
			fadeImage.style.opacity=opacity/10;
			timeout=setTimeout('gallery.fadeOut();',interval);
		}
	}
	this.ieFadeOut=function(){
		var interval=1000
		fadeImage.style.filter='progid:DXImageTransform.Microsoft.Fade(duration='+interval/1000+')';
		fadeImage.filters[0].Play();
		setTimeout('gallery.imgSwitch();',interval);
/*		if(timeout){
			clearTimeout(timeout);
		}
		if(opacity<=0){
			gallery.imgSwitch();
		}else{
			opacity--;
//			alert(opacity*10);
			fadeImage.style.filter='alpha(opacity='+opacity*10+')';
			timeout=setTimeout('gallery.ieFadeOut();',interval);
		}
		*/
	}
	this.imgSwitch=function(){
		fadeImage.src=source;
		if(fadeImage.style.filter){
			fadeImage.style.filter='alpha(opacity=100)';
		}else if(fadeImage.style.opacity){
			fadeImage.style.opacity=1;
		}
		placeholder.style.backgroundImage='none';
		var aTags=placeholder.getElementsByTagName('a');
		if(aTags.length>0){
			aTags[0].href=aTags[0].href.replace(/(\?|&)bID=(\d)+/i,'');
			var seperator='?';
			if(aTags[0].href.indexOf('?') != -1)
				seperator='&';
			aTags[0].href+=seperator+'bID='+arraypos;
		}
		aTags=null;
	}
	var preloadImages=function(){
		var links = document.getElementById(selectionID).getElementsByTagName('a');
		var source;
		imageArray=new Array();
		for ( var i=0; i < links.length; i++){
			source = links[i].getAttribute("href");
			imageArray[i]=new Image();
			imageArray[i].src=source;
			imageArray[i].title=links[i].title;
		}
		if(imageArray.length>0)
			startShow();
	}
	this.prepare=function(){
		if (!document.getElementsByTagName) return false;
		if (!document.getElementById) return false;
		if (!document.getElementById(placeholderID)) return false;
		var placeholder=document.getElementById(placeholderID);
		if (!document.getElementById(selectionID)) return false;
		//document.getElementById(placeholderID).getElementsByTagName('img')[0].setAttribute('style','opacity:1.0; filter:alpha(opacity=100)');
		var links = document.getElementById(selectionID).getElementsByTagName('a');
		for ( var i=0; i < links.length; i++){
			links[i].arg=i;
			links[i].onclick = function(){
				return !gallery.show(this,this.arg);
			}
			links[i].onkeypress = links[i].onclick;
		}
		if(document.getElementById(placeholderID).getElementsByTagName('img')[0].filters)
			ieFilters=true;
		else
			ieFilters=false;
		preloadImages();
		return true;
	}
}
function prepareGallery(){
	gallery=new Gallery();
	gallery.prepare();
}
addLoadEvent(prepareGallery);