﻿var actOverImg;

var lstGallery = new Array();
var lstGalleryTitle = new Array();
var lstGalleryId = new Array();
var isLstGallery = new Array();

var aSlideshowImages = new Array();
var curSlideshowUp;
var curSlideshowDown;
var iCurSlideshowPos = 0;
var iSteps = 75;
var iFPS = 30;

var IsFullSize=0;
var nCurrentIndex = 0;
var saveIndex;

var oldimgset;

var posCount = 0;

var first = true;

function naviOver(naviElement) 
{
	if(actOverImg)
	{	
		naviElement.src = actOverImg;
		actOverImg = '';
		return;
	}
	
	imgSrc = naviElement.src;
	imgSrc = imgSrc.toLowerCase();
	
	
	overImg = imgSrc.slice(0,imgSrc.indexOf('.png'));
	overImg = overImg+'_selected.png';
	
	naviElement.src = overImg;
	
	actOverImg = imgSrc;
}

function groupOut (groupElement)
{	
	groupElement.style.backgroundColor = '#615B5B';
	groupElement.firstChild.style.color = '#FFFFFF';
}

function groupOver (groupElement)
{	
	groupElement.style.backgroundColor = '#c2c1c1';
	groupElement.firstChild.style.color = '#000000';
}


function view(nId)
{
	saveIndex = nCurrentIndex;
	var found = false;
	
	if(nId != undefined)
	{
	
	//	var s = 'id: '+ nId + ' länge: '+ lstGalleryId.length +'\r\n';
	
		for(var i=0; found==false && i<lstGalleryId.length; i++)
		{
		//	s += '@'+i+':' +lstGalleryId[i] + '\r\n';
			if(lstGalleryId[i]==nId)
			{
				nCurrentIndex = i;
				found = true;
			}
		}
		
		if(found)
		{
		//	alert('found@: '+nCurrentIndex);
			ShowImg();
		}
		else
		{
		//	alert('not found');
		}
		
	}
//	alert(s);
}

function view2(nId)
{
	var found = false;
	
	if(nId != undefined)
	{
	
	//	var s = 'id: '+ nId + ' länge: '+ lstGalleryId.length +'\r\n';
	
		for(var i=0; found==false && i<lstGalleryId.length; i++)
		{
		//	s += '@'+i+':' +lstGalleryId[i] + '\r\n';
			if(lstGalleryId[i]==nId)
			{
				nCurrentIndex = i;
				found = true;
			}
		}
		
		if(found)
		{
		//	alert('found@: '+nCurrentIndex);
			ShowImg2();
		}
		else
		{
		//	alert('not found');
		}
		
	}
//	alert(s);
}

	
function closeView()
{
	first = true;
	document.getElementById('fullscreen').style.display = 'none';
	document.getElementById('black').style.opacity = '0';
	document.getElementById('black').style.display= 'none';
	document.body.style.overflow = 'scroll';
	document.getElementById('imgfullsize').src = "";
	nCurrentIndex = saveIndex;
	IsFullSize=0;	
}

function keys(e){	
	
	var e=window.event || e
	var press=e.charCode || e.keyCode
				
	switch(press){
		case 37: //links
			if(IsFullSize==0)
				PrevPic();
			else
				PrevImg();
			break;
			
		case 39: //rechts
			if(IsFullSize==0)
				NextPic();
			else
				NextImg();
			break;
			
		case 27: //Esc
			if(!(IsFullSize==0))
			{
				closeView();
			}
				
			break;
			
		default:
			break;
	}
}

function bold(element) {
	element.style.fontWeight = 'bold';
	element.style.cursor = 'pointer';
}

function normal(element) {
	element.style.fontWeight = 'normal';
}


function setname(imgset) {

	if(oldimgset)
	{
		oldimgset.id = '';
	}	
	
	imgset.id = 'clickimg';
	oldimgset=imgset;
	
	imgset.style.cursor = 'pointer';
}

function ShowImg()
{
	document.getElementById('imgfullsize').src = lstGallery[nCurrentIndex];
	if(!first)
	{
		var imgwidth = document.body.clientWidth/2 - parseInt(document.getElementById('fullscreen').offsetWidth)/2;
		document.getElementById('fullscreen').style.left = imgwidth + 'px';
	}
	document.getElementById('imgfullsize').alt = lstGalleryTitle[nCurrentIndex];
	document.getElementById('imgtitle').innerHTML = 'Bild '+(nCurrentIndex+1)+' von '+lstGallery.length+' - '+lstGalleryTitle[nCurrentIndex];
	
	if(first)
	{	
		document.getElementById('fullscreen').style.display = 'block';
		var imgwidth = document.body.clientWidth/2 - parseInt(document.getElementById('fullscreen').offsetWidth)/2;
		document.getElementById('fullscreen').style.left = imgwidth + 'px';
		
		var docHeight = document.documentElement.clientHeight;
		document.getElementById('fullscreen').style.top = 20+getScrollXY()+ 'px';
	}
	
	//var imgheight = document.body.clientHeight/3 - parseInt(document.getElementById('fullscreen').offsetHeight)/2;
	var docHeight = document.documentElement.clientHeight;		
	document.getElementById('imgfullsize').style.maxHeight = (docHeight-92)+'px';
	
	if(first)
	{
		document.getElementById('black').style.height = docHeight + 20 + 'px';
		document.body.style.overflow = 'hidden';
		
		document.getElementById('black').style.filter= "alpha(opacity=80)";
		document.getElementById('black').style.opacity = 0.80;
		document.getElementById('black').style.display = 'block';
		
		IsFullSize=1;  
	}
}

function ShowImg2()
{
	document.getElementById('imgfullsize2').src = lstGallery[nCurrentIndex];
	document.getElementById('imgfullsize2').alt = lstGalleryTitle[nCurrentIndex];
}

function NextPreview()
{
	//alert(lstGallery.length);
	//alert(nCurrentIndex);
	nCurrentIndex++;
	
	if(nCurrentIndex >= lstGallery.length)
	{	
		nCurrentIndex = 0;
	}

	if(isLstGallery[nCurrentIndex] == '1')
	{
		if(nCurrentIndex == 0)
		{
			//alert('am Ende');
			setActPreview();
			posCount = 0;
			document.getElementById('Images').style.left = '-5px';
		}
		else
		{
			ShowImg2();
			NextPic();
		}
	}
	else 
	{
		for(var i = nCurrentIndex; i < isLstGallery.length; i++)
		{
			if(i == isLstGallery.length-1)
			{
				i = 0;
			}
			
			if(isLstGallery[i] == '1')
			{		
				nCurrentIndex = i;
				break;
			}
		}	
		setActPreview();
		posCount = 0;
		document.getElementById('Images').style.left = '-5px';
	}
}

function setActPreview()
{
	if(document.getElementById('imgfullsize2'))
	{
		for(var i=0; i < lstGallery.length; i++)
		{
			if(isLstGallery[i] == '1')
			{
				document.getElementById('imgfullsize2').src = lstGallery[i];
				document.getElementById('imgfullsize2').alt = lstGalleryTitle[i];
				nCurrentIndex = i;
				break;
			}
		}
		if(lstGallery.length-1 <= 4)
		{
			document.getElementById('right').src = "/images/right_disabled.png"
		}
	}
}

function PrevImg()
{
	first = false;
	nCurrentIndex--;
	
	if(nCurrentIndex < 0)
	{
		nCurrentIndex = lstGallery.length-1;
	}
	
	ShowImg();
}

function NextImg()
{
	first = false;
	nCurrentIndex++;
	
	if(nCurrentIndex > lstGallery.length-1)
	{	
		nCurrentIndex = 0;
	}
	
	ShowImg();
}



function PrevPic()
{   
	var actPos = document.getElementById('Images').style.left;
	var i = parseInt(actPos)+ 142;
	if(!(posCount<=0))
	{
		var actPos = document.getElementById('Images').style.left = i + 'px';
		document.getElementById('right').src = "/images/right.jpg"
		if(posCount <= 1)
		{
			document.getElementById('left').src = "/images/left_disabled.png"
		}
		posCount--;
	}
}

function NextPic()
{
	var length = 0;	
	var actPos = document.getElementById('Images').style.left;
	var i = parseInt(actPos)- 142;
			
	for(j=0;j<=lstGallery.length;j++)
	{
		if(isLstGallery[j]==1)
			length++;
	}

	if(!(posCount>=length-4)&&length>4)
	{
		var actPos = document.getElementById('Images').style.left = i + 'px';
		document.getElementById('left').src = "/images/left.jpg"
		if((posCount+4) >= length-1)
		{
			document.getElementById('right').src = "/images/right_disabled.png"
		}
		posCount++;
	}
}

function addGalleryItem(src, title, id, islG)
{
	lstGallery.push(src);
	lstGalleryTitle.push(title);
	lstGalleryId.push(id);
	isLstGallery.push(islG);
}

function showArray()
{
	alert(lstGalleryTitle.join(' '));

}

function getScrollXY() 
{  
	var scrOfX = 0, scrOfY = 0;  

	if( typeof( window.pageYOffset ) == 'number' ) 
	{  
		//Netscape compliant  
		scrOfY = window.pageYOffset;  
		scrOfX = window.pageXOffset;  
	} 
	else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) 
	{  
		//DOM compliant  
		scrOfY = document.body.scrollTop;  
		scrOfX = document.body.scrollLeft;  
	} 
	else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) 
	{  
		//IE6 standards compliant mode  
		scrOfY = document.documentElement.scrollTop;  
		scrOfX = document.documentElement.scrollLeft;  
	}  
	return scrOfY;  
}

function fadeOut(idDiv) 
{
                for( var i = 0 ; i <= 20 ; i++ ) {
                               setTimeout( 'setOpacity(\''+idDiv+'\',' + (100 - (i*5)) + ')' , 20*i );
                }
}

function fadeIn(idDiv) 
{
                for( var i = 20  ; i <= 0 ; i-- ) {
                               setTimeout( 'setOpacity(\''+idDiv+'\',' + (0 + (i*5)) + ')' , 20*i );
                }
}


function setOpacity( todo, value ) 
{
	if(todo == 'up')
	{
		curSlideshowUp.style.opacity = value / 100;
		curSlideshowUp.style.filter = 'alpha(opacity=' + value + ')';    
	}
	else
	{
		curSlideshowDown.style.opacity = value / 100;
		curSlideshowDown.style.filter = 'alpha(opacity=' + value + ')';    
	}

	
}

function Slideshow()
{
	if(document.getElementById('slideshow'))
	{
		aSlideshowImages = document.getElementById('slideshow').getElementsByTagName('img');
		iCurSlideshowPos = GetRandom(0,aSlideshowImages.length-1);	
		
		curSlideshowUp = aSlideshowImages[iCurSlideshowPos];
		
		for( var i = 0 ; i <= iSteps ; i++ )
		{
			setTimeout( 'setOpacity(\'up\',' + (0 + (i*100/iSteps)) + ')' , i* (1000/iFPS) );
	    }
		
		
		setTimeout('Slide()', 7000);	
	}
}

function Slide()
{
	curSlideshowDown = aSlideshowImages[iCurSlideshowPos];
	
	if(iCurSlideshowPos == aSlideshowImages.length)
		iCurSlideshowPos = -1;
		
	curSlideshowUp = aSlideshowImages[iCurSlideshowPos+1];	
	
	for( var i = 0 ; i <= iSteps ; i++ )
	{
		setTimeout( 'setOpacity(\'down\',' + (100 - (i*100/iSteps)) + ')' , i* (1000/iFPS) );
		setTimeout( 'setOpacity(\'up\',' + (0 + (i*100/iSteps)) + ')' , i* (1000/iFPS) );
    }
    
    iCurSlideshowPos++;
    setTimeout('Slide()', 7000);
}

function GetRandom( min, max ) {
	if( min > max ) {
		return( -1 );
	}
	if( min == max ) {
		return( min );
	}
 
        return( min + parseInt( Math.random() * ( max-min+1 ) ) );
} 

