viwerImageSize='800';
viwerActiveFolder='';
dImageX=false;
dImageY=false;
dMouseX=false;
dMouseY=false;
mouseX=false;
mouseY=false;
window.onresize=setImagePosition;
function openViewer(e) {
	var event = e || window.event;
	var target = event.target || event.srcElement;
	if (target.className=='thumb'){
		var filename=target.src.substring(target.src.lastIndexOf('/')+1);
		var folders=target.src.split('/');
		viwerActiveFolder = folders[folders.length-3];
		document.getElementById('viewer').style.display='block';
		document.getElementById('viewerMovie').style.display='none';
		document.getElementById('viewerMenuImages').style.display='block';
		document.getElementById('viewerMenuMovies').style.display='none';
		showImage(filename);
	}
	if (target.className=='movieThumb'){
		var filename=target.src.substring(target.src.lastIndexOf('/')+1);
		var folders=target.src.split('/');
		viwerActiveFolder = folders[folders.length-3];
		document.getElementById('viewer').style.display='block';
		document.getElementById('viewerMovie').style.display='block';
		document.getElementById('viewerMenuImages').style.display='none';
		document.getElementById('viewerMenuMovies').style.display='block';

		s1.addParam('allowfullscreen','true');
		s1.addParam('allowscriptaccess','always');
		s1.addParam('wmode','transparent');
		s1.addParam('flashvars','file=images/'+viwerActiveFolder+'/'+filename+'.flv'+'&image=images/'+viwerActiveFolder+'/'+filename+'&controlbar=over&autostart=false&stretching=fill');
		s1.write('viewerMovie');
	}
	
}
function closeViewer(){
	document.getElementById('viewer').style.display='none';
	var image=document.getElementById('viewerImage');
	image.setAttribute('src',''); //ie6 error
	document.getElementById('viewerMovie').style.display='block';
	document.getElementById('viewerMovie').innerHtml='';
	
}
function showImage(filename){
	var image=document.getElementById('viewerImage');
	if (!filename){
		filename=image.src.substring(image.src.lastIndexOf('/')+1);
	}
	var imageSource = 'images/'+viwerActiveFolder+'/'+viwerImageSize+'/'+filename;
	var parts = image.src.split('/');
	if( viwerImageSize != parts[parts.length-2] || filename != parts[parts.length-1]){
		statusIndicatior();
		image.onload=statusIndicatior;
		image.src=imageSource;
	}
}
function setViewerSize(size){
	viwerImageSize=size;
	if (size=='original') viwerImageSize=".";
	showImage(false);
}
function setImagePosition(e){
	var event = e || window.event || false;
	var target = event.target || event.srcElement;
	var image=document.getElementById('viewerImage');
	var movie=document.getElementById('viewerMovie');
	var box=document.getElementById('viewerBox');

	mouseX=event.clientX-findPosX(box);
	mouseY=event.clientY-findPosY(box);

	dImageX=(box.offsetWidth-image.width)/2;
	dImageY=(box.offsetHeight-image.height)/2;
	dMouseX=(box.offsetWidth)/2;
	dMouseY=(box.offsetHeight)/2;

	if(dImageX>0) mouseX=dMouseX;
	if(dImageY>0) mouseY=dMouseY;
	
	var xFactor = ((mouseX/dMouseX)-1)*1.3;
	if (xFactor>1)xFactor=1;
	if (xFactor<-1)xFactor=-1;
	var yFactor = ((mouseY/dMouseY)-1)*1.3;
	if (yFactor>1)yFactor=1;
	if (yFactor<-1)yFactor=-1;
	image.style.left=dImageX*(xFactor+1)+'px';
	image.style.top=dImageY*(yFactor+1)+'px';
	movie.style.left=dImageX*(xFactor+1)-320+'px';
	movie.style.top=dImageY*(yFactor+1)-240+40+'px';
}

function loadImage(mode){
	var image=document.getElementById('viewerImage');
	var filename=image.src.substring(image.src.lastIndexOf('/')+1);
	var xmlHttp = null;
	if (typeof XMLHttpRequest != 'undefined') {xmlHttp = new XMLHttpRequest();}
	if (!xmlHttp) { try { xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");} catch(e) {try {xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");} catch(e) {xmlHttp  = null;}}}
	if (xmlHttp) {
	    xmlHttp.open('GET', 'index.php?loadImage='+mode+'&filename='+filename , true);
		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				var filename=xmlHttp.responseText;
				if (filename!=''){
					showImage(filename);
				}
			}
		}
	}
	xmlHttp.send(null);
}
function storeComment(comment){
	var xmlHttp = null;
	if (typeof XMLHttpRequest != 'undefined') {xmlHttp = new XMLHttpRequest();}
	if (!xmlHttp) { try { xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");} catch(e) {try {xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");} catch(e) {xmlHttp  = null;}}}
	if (xmlHttp) {
	    xmlHttp.open('GET', 'index.php?storeComment='+comment , true);
		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				var filename=xmlHttp.responseText;
			}
		}
	}
	xmlHttp.send(null);
}


function statusIndicatior(e){
	var event = e || window.event || false;
	var target = event.target || event.srcElement;
	div=document.getElementById('viewerLoading');
	if(event.type=='load') {
		div.style.display='none';
		setImagePosition();
	}
	else div.style.display='block';
}

function downloadImage(){
	var image=document.getElementById('viewerImage');
	var pathElements=image.src.split('/');		
	var activeFolder = pathElements[pathElements.length-3];
	if(activeFolder=='images'){
		activeFolder = pathElements[pathElements.length-2];
	}
	var filename = pathElements[pathElements.length-1];
	document.location.href="?download="+filename+"&folder="+activeFolder;
	
}

function commentField(){
	var field=document.getElementById('commentArea');
	if (field.style.display=='none'){
		field.style.display='block';
		field.previousSibling.firstChild.data="Kommentar speichern";
		field.focus();
	} else {
		field.style.display='none';
		field.previousSibling.firstChild.data="Kommentar schreiben";
		storeComment(encodeURIComponent(field.value));
	}
}


function findPosX(obj) {
  var curleft = 0;
  if(obj.offsetParent)
      while(1) 
      {
        curleft += obj.offsetLeft;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.x)
      curleft += obj.x;
  return curleft;
}

function findPosY(obj)
{
  var curtop = 0;
  if(obj.offsetParent)
      while(1)
      {
        curtop += obj.offsetTop;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.y)
      curtop += obj.y;
  return curtop;
}

