	
	
//=============================================================================
// Image Preloader
// Dieser Code ist urheberrechtlich geschützt.
// Eine Verwendung ohne Zustimmung von Offensiv-Medien ist untersagt
// Copyright 2005
function ImagePreloader(images)
{
	// initialize internal state.
	this.nLoaded	= 0;
	this.nProcessed = 0;
	this.aImages	= new Array;

	// record the number of images.
	this.nImages	= images.length;

	// for each image, call preload()
	for ( var i = 1; i < images.length; i++ ) 
	{
		this.preload(images[i]);
	}
}
ImagePreloader.prototype.preload = function(image)
{
	// create new Image object and add to array
	var oImage = new Image;
	this.aImages.push(oImage);
	
	// set up event handlers for the Image object
	oImage.onload			= ImagePreloader.prototype.onload;
	oImage.onerror			= ImagePreloader.prototype.onerror;
	oImage.onabort			= ImagePreloader.prototype.onabort;
	
	// assign pointer back to this.
	oImage.oImagePreloader	= this;
	oImage.bLoaded			= false;
	oImage.source			= image;
	
	// assign the .src property of the Image object
	oImage.src				= image.src;
	oImage.tdid				= image.tdid;
	oImage.big				= image.big;
	oImage.delay			= image.delay;
	oImage.fSize			= image.fSize;
	oImage.lensPos			= image.lensPos;
	oImage.savefile			= image.savefile;

	
}
ImagePreloader.prototype.onComplete = function()
{
	this.nProcessed++;
	this.bLoaded			= true;
	//window.status		= this.nProcessed + " images loaded";
}
ImagePreloader.prototype.onload = function()
{
	this.bLoaded			= true;
	this.oImagePreloader.nLoaded++;
	this.oImagePreloader.onComplete();
	// Feature Delay
	var dly;
	if(this.source.delay)
		dly = this.source.delay;
	else
		dly = 100;	// Default delay = 100ms
		
	
	// The Div in whitch the Thumbnail will be displayed
	imgDiv					= document.createElement("div");
	imgDiv.style.position	= "relative";
	imgDiv.style.top		= "0px";														// Top Position of Thumbnail
	imgDiv.style.left		= "0px";														// Left Position of Thumbnail
	imgDiv.style.zIndex		= "99";
	
	// Add thumbnail to document
	newImage				= document.createElement("img");
	newImage.src			= this.source.src;
	newImage.tdid			= this.source.tdid;
	newImage.big			= this.source.big;
	newImage.delay			= this.source.delay;
	newImage.fSize			= this.source.fSize;
	newImage.id				= this.source.tdid + "_icon";
	newImage.lensPos		= this.source.lensPos;
	newImage.savefile		= this.savefile;
	newImage.onclick		= gl_LensClicked;
	newImage.style.cursor		= "pointer";

	tdobj					= document.getElementById(this.source.tdid);
	tdobj.fSize				= this.source.fSize;
	tdobj.big				= this.source.big;
	tdobj.icon				= this.source.tdid + "_icon";
	tdobj.savefile			= this.savefile;
	imgDiv.appendChild(newImage);
	
	// Add Feature Lens
	lensImage				= document.createElement("img");
	lensImage.src			= "/images/lens.gif";													// URL of the Lensimage
	lensImage.id			= this.source.tdid + "_lens";
	lensImage.style.cursor	= "pointer";
	lensImage.onclick		= gl_LensClicked;
		
	lens					= document.createElement("div")
	lens.style.position		= "relative";
	lens.style.top			= this.source.lensPos;											// Top Position der Lens
	lens.style.left			= "0px";														// Links Position der Lens
	lens.style.zIndex		= "100";
	lens.style.height		="18px";														// Höhe der Lens
	lens.style.width		="19px";														// Breite der Lens
	lens.style.bgColor		="transparent";
	lens.appendChild(lensImage);
	
	document.getElementById(this.source.tdid).appendChild(imgDiv);
	document.getElementById(this.source.tdid).appendChild(lens);

	gl_fadeIn(this.source.tdid,0, dly);														// Fading of Thumbnail
	gl_fadeIn(lensImage.id,-50, dly);														// Lens will be displayed for -50 ticks later

}
ImagePreloader.prototype.onerror = function()
{
	this.bError				= true;
	this.oImagePreloader.onComplete();
	//top.window.status= "Bild konnte nicht geladen werden!";
}
ImagePreloader.prototype.onabort = function()
{
	this.bAbort				= true;
	this.oImagePreloader.onComplete();
	//top.window.status= "Abgebrochen";
}



// Methods
function gl_LensClicked()
{
	itemid = this.id.split("_");
	obj_tmb					= document.getElementById(itemid[0]);
	fs						= document.getElementById("fullscreen");
	imgFs					= document.getElementById("fullscreenimage");
	//txtFs					= document.getElementById("fullscreenFileSize");
	icon					= document.getElementById(obj_tmb.icon);
	loadimg					= document.getElementById("fullscreenLoad");
	
	icon.style.visibility = "hidden";
	loadimg.style.visibility="visible";
	
	fsize					= obj_tmb.fSize;
	bigurl					= obj_tmb.big;
	savefile				= obj_tmb.savefile;
	
	imgFs.src				= bigurl;
	imgFs.icon				= obj_tmb.icon
	imgFs.onload			= gl_onLoad_Big;
	imgFs.onerror			= gl_onLoad_Big_error;
	
	tri						= document.createElement("img");
	tri.src					= "/images/trans.gif";
	newTxt					= document.createTextNode(fsize);

	/*
	for(i=txtFs.childNodes.length-1; i>=0; i--)
	{
		txtFs.removeChild(txtFs.childNodes[i]);		
	}

	txtFs.appendChild(tri);
	txtFs.appendChild(newTxt);
	txtFs.href				= savefile;
	txtFs.onclick			= makeCheckTrack;
	*/
	//gl_fadeIn(imgFs.id,0, 1);																// Fading des Mainbildes ... Deaktiviert
}

function gl_onLoad_Big()
{
	fs						= document.getElementById("fullscreen");
	icon					= document.getElementById(this.icon);
	loadimg					= document.getElementById("fullscreenLoad");
	icon.style.visibility	= "visible";
	fs.style.visibility		= "visible";
	loadimg.style.visibility= "hidden";
}
function gl_onLoad_Big_error()
{
	icon					= document.getElementById(this.icon);
	icon.style.visibility	= "visible";
	alert("Dokument konnte nicht gefunden werden!")
}

function gl_HideSaveBox()
{
	sb						= document.getElementById("savebox");
	sb.style.visibility		= "hidden";
}

function gl_HideFullscreen()
{
	fs						= document.getElementById("fullscreen");
	fs.style.visibility		= "hidden";
	for(i=1; i<pics.length; i++)
	{
		icon				= document.getElementById(pics[i].tdid + "_icon");
		icon.style.visibility = "visible";
	}
}

function SaveImage(item)
{
	sb						= document.getElementById("savebox");
	obj_tmb					= document.getElementById(item);
	lnk						= document.getElementById("saveboxFileSize");
	
	newTxt					= document.createTextNode(obj_tmb.fSize);
	
	for(i=lnk.childNodes.length-1; i>=0; i--)
	{
		lnk.removeChild(lnk.childNodes[i]);
	}

	lnk.appendChild(newTxt);
	lnk.href				= obj_tmb.savefile;
	lnk.onclick				= makeCheckTrack;
	
	sb.style.visibility		= "hidden";
	sb.zIndex				= "200";
	sb.style.top			= findPosY(obj_tmb);
	sb.style.left			= findPosX(obj_tmb);
	sb.style.visibility		="visible";
}

function gl_Page(direction)
{
	imgFs					= document.getElementById("fullscreenimage");
	lnk						= document.getElementById("fullscreenFileSize");
	loadimg					= document.getElementById("fullscreenLoad");

	loadimg.style.visibility = "visible";
	
	itemid = imgFs.icon.split("_");
	presentImgID = itemid[0].substring(3,5);
	picsAmmount = pics.length-1;	// -1 because we start at one
	var dirX;

	if(direction == "next")
		dirX = 1;
	else
		dirX = -1;
		
	newImageID = parseInt(presentImgID)+ parseInt(dirX)
	
	if(newImageID > picsAmmount)
	{
		newImageID = 1;
		//top.window.status= "From beginning";
	}
	else if(newImageID < 1)
	{
		newImageID = picsAmmount;
		//top.window.status= "From end";
	}
	imgFs.src				= pics[newImageID].big;
	imgFs.icon				= "tmb" + newImageID + "_icon";
	imgFs.onload				= gl_onLoad_Big;
	
	tri						= document.createElement("img");
	tri.src					= "/images/trans.gif";
	
	/*newTxt					= document.createTextNode(pics[newImageID].fSize);

	for(i=lnk.childNodes.length-1; i>=0; i--)
	{
		lnk.removeChild(lnk.childNodes[i]);
	}

	lnk.appendChild(tri);
	lnk.appendChild(newTxt);

	lnk.href				= pics[newImageID].savefile;
	lnk.onclick				= makeCheckTrack;
	*/
}

// Helper
function gl_fadeIn(objId,opacity, delay) 
{

	if (document.getElementById) {
		obj = document.getElementById(objId);
		if (opacity <= 100) {
			gl_setOpacity(obj, opacity);
			opacity += 3;
			window.setTimeout("gl_fadeIn('"+objId+"',"+opacity+")", delay);
		}
	}
}
function gl_setOpacity(obj, opacity) 
{
	opacity					= (opacity == 100)?99.999:opacity;
	// IE/Win
	obj.style.filter		= "alpha(opacity:"+opacity+")";
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity	= opacity/100;
	// Older Mozilla and Firefox
	obj.style.MozOpacity	= opacity/100;
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity		= opacity/100;
}

function findPosX(obj)
{
	var curleft				= 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop				= 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}


