/*
	Hilfreiche Scripte und häufig benutze Standart-Funktionen
*/

var visibleMenu = null;
		
function showMenu(menu, obj)
{	 
	a = getPosition(obj);	  
	//Menüs zurücksetzten
	if(visibleMenu) if($(visibleMenu).style.display != "none") new Effect.Fade(visibleMenu, {duration: 0.3});  
	//Menü positionieren
	$(menu).style.left = a.x-1+"px"; 
	$(menu).style.top = a.y-1+"px";	  
	//Menü einblenden
	new Effect.Appear(menu, {duration: 0.2});
	visibleMenu = menu;		
}		

function hideMenu(e, menu)
{	 
	//Event übergeben und überprüfen, ob man das Menü verlassen hat			
	if (!e) var e = window.event;	
	var tg = (window.event) ? e.srcElement : e.target;
	if (tg.nodeName != 'DIV') return;
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	while (reltg != tg && reltg.nodeName != 'BODY')
		reltg= reltg.parentNode
	if (reltg== tg) return;
	new Effect.Fade(menu, {duration: 0.3});  
}
	 
function getPosition(element)
{
	var elem=element,tagname="",x=0,y=0;
	while ((typeof(elem)=="object")&&(typeof(elem.tagName)!="undefined"))
	{
		y+=elem.offsetTop;     
		x+=elem.offsetLeft;   
		tagname=elem.tagName.toUpperCase(); 
		if(tagname=="BODY") elem=0;
		
		if(typeof(elem)=="object")
		if(typeof(elem.offsetParent)=="object")
		elem=elem.offsetParent;
	}
	position=new Object();
	position.x=x;
	position.y=y;
	return position;
}

function arrayShuffle(){
  var tmp, rand;
  for(var i =0; i < this.length; i++){
    rand = Math.floor(Math.random() * this.length);
    tmp = this[i]; 
    this[i] = this[rand]; 
    this[rand] =tmp;
  }
}

Array.prototype.shuffle =arrayShuffle;		 

function getTargetObj(e)
{	
	if(!e) return false;
	if(e.target) obj = e.target;
	else if(e.srcElement) obj = e.srcElement; 
	return obj;
}  

function scaleProportional(pic, maxHeight, maxWidth)
{
	var picWidth = pic.getWidth();
	var picHeight = pic.getHeight();
	
	if(maxHeight) 
	{
		var newWidth =  picWidth/(picHeight/maxHeight);
		var newSize = new Array(newWidth, maxHeight);	
	}
	else
	{ 	 

		var newHeight =  picHeight/(picWidth/maxWidth);
		var newSize = new Array(maxWidth, newHeight); 
	}
	
	return newSize;	
}	 

function popUpWindow(linkText, w, h)
{
	var args="width="+w+",height="+h+",resizable=yes,scrollbars=yes,status=0"; 
	popup=window.open(linkText,'CHILD',args);
}	  

var galerie_timeout = null;


function GalerieListFadeOut(obj)
{			
	new Effect.Fade(obj, {duration: 0.3, to: 0.6, queue: { position: 'end', scope: ''+obj.identify(), limit: 1 }});	
}

function GalerieListFadeIn(e, obj)
{
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement; 
	if(reltg.identify() != "content") return;
	
	new Effect.Fade(obj, {duration: 0.2, to: 1.0, queue: { position: 'end', scope: ''+obj.identify(), limit: 2 }});
}				

function submitAlbumPassword(albumid, password, btn)
{
	if(!albumid | !password) return;
	btn.disabled = true;
	
	$("frame-loading").style.visibility = "visible";
	
	new Ajax.Request("ajax/album_login.php",
	{
		method: 'get',
		evalScripts: true,
		parameters:
		{
			albumid: albumid,
			password: password
		},  
		onComplete: function(transport)
		{
			frame.update(transport.responseText);
		}
	});	 
}
