// JavaScript Document based on e2photo.js

var currentpos = 0;
var currentthumbpos = 0;
//var moveamount=106;
var moveamount = 72;
var thumbnailnum;
var maxthumbvisible = 6; // Anzahl der sichtbaren Thumbs in der Thumbsbox
var current_imgid = 0;
var moving = false;
var finishedsizing = 0;
var preloadimg= "no";// Preload images ("yes" oder "no"):
var myloadedimage = new Array();
     myloadedimage[0] = 1;
var imggallery = new Array()
var firstimagestart = 1;
var nextorprev = 0;
var fadeout = 1;

function areweready(loadarea, imgindex, img_id){
	if ( finishedsizing++ ) { 
		modifyimage(loadarea, imgindex, img_id);
		finishedsizing = 0;
	}
}

function modifyimage( loadarea, imgindex, img_id ){
	function loadimagenow( ){
		//alert( "Bild laden aufgerufen" );
		if( document.getElementById ){
			
				if( current_imgid != img_id ){
					var imgobj = document.getElementById( loadarea );
					//var photonum = document.getElementById( 'photocount' );
					//photonum.innerHTML=(Number(imgindex)+1)+" von "+imggallery.length+" Bildern";
					var photonnumFrom = document.getElementById( 'ImgFrom' );
					var photonnumTo = document.getElementById( 'ImgTo' );
					imgobj.innerHTML = returnimgcode(imggallery[ imgindex ]);
					photonnumFrom.innerHTML=(Number(imgindex)+1);
					photonnumTo.innerHTML=(imggallery.length);
					initImage( loadarea );
					current_imgid = img_id;
					myloadedimage[ imgindex ] = 1;
				}
			}
		return false
	}
	if( myloadedimage[ imgindex ] == null ){	
		new Asset.image( imggallery[ imgindex ][ 0 ], 
			{ 
				onload: loadimagenow
			});
		
	}
	else {
		loadimagenow();
	}
	
}

function returnimgcode( theimg ){
	var imghtml = "";
	if ( theimg[1]!="" )
		imghtml = ''
	imghtml += '<img src="'+theimg[0]+'" border="0" id="'+theimg[3]+'" />'
	if ( theimg[1] != "" )
		imghtml += ''
	return imghtml;
}

function initImage(imageId) {
	var fader = new Fx.Style( imageId,'opacity', { duration:fadespeed });
	fader.set(0);
	fader.start(0,1);
}

function checkbutton( mynum ){
	if ( mynum == 0 ) {
		mm_shl('back','hidden');
		mm_shl('more','visible');
	}
	else if ( mynum < thumbnailnum - maxthumbvisible ) {
		mm_shl('back','visible');
		mm_shl('more','visible');
	}
	else {
		mm_shl('back','visible');
		mm_shl('more','hidden');
	}
}

function checknext( mynum ){
	thumbmax = ( Number( thumbnailnum ) - 1 );
	if( mynum < 1 ){
		mm_shl('prev','hidden');
		mm_shl('next','visible');
	}
	else if ( mynum <  thumbmax ){
		mm_shl('prev','visible');
		mm_shl('next','visible');
	}
	else{
		mm_shl('prev','visible');
		mm_shl('next','hidden');
	}
}

function mm_shl() { //v6.0
	var obj,args = arguments;
	if ((obj = MM_findObj(args[0]))!=null) {
		if( obj.style ){
			obj = obj.style;
		}
		obj.visibility = args[ 1 ];
	}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function addposition( addwidth ){
	if( !moving ){
		 // if animagic is still moving the image..don't update the current position till it's done
		if(addwidth=="minus"){
			currentpos-=1;
		}
		else if(addwidth=="plus"){
			currentpos+=1;
		}
	}
	return currentpos;
}
function movethumbs( way ){
	if(way == 'plus'){
		move = ( currentthumbpos + moveamount );
		var movethumbs = new Fx.Styles( 'thumbgall', {duration: transspeed, transition: Fx.Transitions.quadOut});
		movethumbs.start({ left: [currentthumbpos, move]});
		currentthumbpos+=moveamount;
	
	}else if(way=='minus'){
		move=(currentthumbpos-moveamount);
		var movethumbs = new Fx.Styles('thumbgall', {duration: transspeed, transition: Fx.Transitions.quadOut});
		movethumbs.start({ left: [currentthumbpos, move]});
		currentthumbpos-=moveamount;		
	}
}

function MM_openBrWindow(theURL,winName,features)
{ //v2.0
  window.open(theURL,winName,features);
}

var thumbopen = 0;
function thumbs(){
	var resizethumb = new Fx.Styles('thumbhide',{duration:transspeed, transition: Fx.Transitions.quadOut});
	var movethumbs = new Fx.Styles('thumbbox', {duration: transspeed, transition: Fx.Transitions.quadOut});
	if(thumbopen==1){	
		resizethumb.start({'height': 119});
		movethumbs.start({ 'top': [-120, 0]});
		thumbopen = 0;
	}
	else{
		resizethumb.start({'height': 0});
		movethumbs.start({ 'top': [0, -120]});
		thumbopen = 1;
	}
}

// JavaScript Document based on e2photo2.js
function initGallery ( tempgallery, count, first_id, startwidth, startheight )
{
	imggallery = tempgallery;
	if ( preloadimg == "yes" ){
		for ( x=0; x<imggallery.length; x++ ){
			var myimage=new Image();
			myimage.src = imggallery[ x ][ 0 ];
		}
	}
	thumbnailnum = imggallery.length;
	current_imgid = first_id;
	currentwidth=startwidth;
	currentheight=startheight;
	// ELA: MYSTERIÖS aus irgendwelchen gründen mag safari den event 'load' nicht (?)
	//window.addEvent('load', function() {
		if(thumbnailnum>maxthumbvisible){
			lefthtml = "<div id='leftmore'><ul><li><a href=\"javascript:checkbutton(addposition('minus'));movethumbs('plus');\"><img src='bilder/buttonblank.gif' width='15' height='115' border='0' /></a></li></ul></div>";
			righthtml = "<div id='rightmore'><ul><li><a href=\"javascript:checkbutton(addposition('plus'));movethumbs('minus');\"><img src='bilder/buttonblank.gif' width='15' height='115' border='0' /></a></li></ul></div>";
			$('back').setHTML(lefthtml);
			$('more').setHTML(righthtml);
		}
		var setloadersize = new Fx.Styles('main_image_wrapper',{duration:transspeed,onComplete: function(){loadfirstimage(currentwidth,currentheight)}});
		setloadersize.start({
			'width':imggallery[0][1],
			'height':imggallery[0][2]	
		});
	//});
	
	
}

function GetStarted( width, height, loadarea, imgindex, img_id, current_imgid ){
	checknext( img_id );
	if( current_imgid != img_id ){
		if(firstimagestart==1){
			currentwidth=firstimagewidth;
			currentheight=firstimageheight;
			firstimagestart=0;		
		}
		if(nextorprev==1){
			currentwidth=cwidth;
			currentheight=cheight;
			nextorprev=0;		
		}
		
		var resizeDivHeight = new Fx.Styles('main_image_wrapper',{duration:transspeed, onComplete: function(){modifyimage(loadarea, imgindex, img_id);currentheight=height;currentwidth=width;} });
		var fader = new Fx.Style('imgloader','opacity', {duration:fadespeed, onComplete: function(){	resizeDivHeight.start({'height': [currentheight,height],'width': [currentwidth,width]});} });
		fader.start(1,0);	
	}
}

function loadfirstimage( currentwidth,currentheight )
{
	var fadefirst = new Fx.Style('imgloader','opacity', {duration:fadespeed });
	fadefirst.set(0);
	/*var firsttitlefade = new Fx.Style('imgtitle','opacity', {duration:transspeed });
	firsttitlefade.set(0);*/
	function setfirstimage(){
		var newHTML = "<img src='"+tempgallery[0][0]+"' />";
		$('imgloader').setHTML(newHTML);
	
		fadefirst.start(0,1);
		currentheight=imggallery[0][2];
		currentwidth=imggallery[0][1];
	}
	new Asset.image(imggallery[0][0], { onload: setfirstimage });
}

function NextImage( current_imgid )
{
	newimgid = Number(current_imgid)+1;
	newwidth =imggallery[newimgid][1];
	newheight =imggallery[newimgid][2];
	newimgindex =imggallery[newimgid][3];
	newimgid = imggallery[newimgid][3];
	cwidth=imggallery[current_imgid][1];
	cheight=imggallery[current_imgid][2];
	checknext(newimgid);
	nextorprev = 1;
	GetStarted( Number( newwidth ), Number( newheight ), 'imgloader',Number(newimgindex) ,Number(newimgid) , Number(current_imgid), Number(cwidth), Number( cheight ));
}

function PrevImage( current_imgid )
{
	newimgid = Number(current_imgid)-1;
	newwidth =imggallery[newimgid][1];
	newheight =imggallery[newimgid][2];
	newimgindex =imggallery[newimgid][3];
	newimgid = imggallery[newimgid][3];
	cwidth=imggallery[current_imgid][1];
	cheight=imggallery[current_imgid][2];
	checknext(newimgid);
	nextorprev=1;
	GetStarted(Number(newwidth), Number(newheight), 'imgloader',Number(newimgindex) ,Number(newimgid) , Number(current_imgid), Number(cwidth), Number(cheight))
}