	
	
//=============================================================================
// 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;
	oImage.clickable        = image.clickable;

	
}
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.style.cursor   = "Hand";
	if(this.source.clickable)
	    newImage.onclick    = gl_LensClicked;
    
	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;
	tdobj.appendChild(newImage);
	
	// Add Feature Lens
	lensImage				= document.createElement("img");
	lensImage.src			= "/files/basis/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);
	//if(this.source.clickable)
	//    document.getElementById(this.source.tdid).appendChild(lens);

	gl_fadeIn(this.source.tdid,0, dly);								// Fading of Thumbnail
	//if(this.source.clickable)
	//    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("_");
	itemid = this.id.substring( 0, this.id.lastIndexOf("_") );

	obj_tmb					= document.getElementById(itemid);
	fs						= document.getElementById("fullscreen");
	fsbg					= document.getElementById("fullscreenBG");
	imgFs					= document.getElementById("fullscreenimage");
	//txtFs					= document.getElementById("fullscreenFileSize");
	icon					= document.getElementById(obj_tmb.icon);
	loadimg					= document.getElementById("fullscreenLoad");
	
	//alert(document.getElementById("Form1").offsetHeight)
	//fs.style.height = document.getElementById("Form1").offsetHeight + "px";
	//alert(document.getElementsByTagName("FORM")[0])
	fsbg.style.height = document.getElementsByTagName("FORM")[0].offsetHeight + "px";
	
	
	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					= "/files/trans.gif";
	newTxt					= document.createTextNode(fsize);
}

function gl_onLoad_Big()
{
	fs						= document.getElementById("fullscreen");
	fsBG					= document.getElementById("fullscreenBG");
	icon					= document.getElementById(this.icon);
	loadimg					= document.getElementById("fullscreenLoad");
	
	icon.style.visibility	= "visible";
	fs.style.visibility		= "visible";
	fsBG.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");
	fsBG					= document.getElementById("fullscreenBG");
	fs.style.visibility		= "hidden";
	fsBG.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;
}


