/*---------------------------------------------------------------------------------*/
/*
	TO-DO:
		Add function to handle Step 5 / Dimension
*/

/*---------------------------------------------------------------------------------*/
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

/*---------------------------------------------------------------------------------*/
function addListener(element, eventName, callback) {
	
	if(element.addEventListener) {
		element.addEventListener(eventName, callback, false);
	}
	else if(element.attachEvent) {
		element.attachEvent("on" + eventName, callback);
	}
	else {
		element[ "on" + eventName ] = callback;
	}
	// -------------------------------------giver en fejl!------------------------------------!!!!---------------!!!-----!!fejl
	return callback;
}



/*---------------------------------------------------------------------------------*/
/*
Image preloader script from http://www.silver-daggers.co.uk/demo/ImagePreloader.html
*/

// Image Preloader
function ImagePreloader(images,callback)
{
	// store the callback
	this.callback = callback;

	// 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 = 0; 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;
}

ImagePreloader.prototype.onComplete = function()
{
	this.nProcessed++;
	if ( this.nProcessed == this.nImages ) {
		this.callback(this.aImages);
	}
}

ImagePreloader.prototype.onload = function()
{
	this.bLoaded = true;
	this.oImagePreloader.nLoaded++;
	this.oImagePreloader.onComplete();
}

ImagePreloader.prototype.onerror = function()
{
	this.bError = true;
	this.oImagePreloader.onComplete();
}

ImagePreloader.prototype.onabort = function()
{
	this.bAbort = true;
	this.oImagePreloader.onComplete();
}


/*---------------------------------------------------------------------------------*/
preloadImages = function(){
	/*
		Carefull when using ImagePreloader. 
		Seems to increase use of pagefile (in Windows XP).
		
		To disable:
		
		1) Don't assign values to images-array
		
		or 
		
		2)	Don't call preloadImages-function
			(comment out
				"addListener( window, "load", preloadImages)"
			 at the bottom of this file.)
	*/
	var images = new Array();

	/*
	images[0] = "images/veryLarge.jpg";
	images[1] = "images/Copy of veryLarge.jpg"
	images[2] = "images/Copy [2] of veryLarge.jpg"
	images[3] = "images/Copy [3] of veryLarge.jpg"
	images[4] = "images/Copy [4] of veryLarge.jpg"
	images[5] = "images/Copy [5] of veryLarge.jpg"
	*/
	
	if( images.length > 0 ){
		var imagePreloader = new ImagePreloader(images, showImagesWhenLoaded);
	}
	else {
		showImagesWhenLoaded();
	}
}

/*---------------------------------------------------------------------------------*/
var previousCaller = null;

toggleMagnifyDetailVisibility = function( objCaller ) {
	var objTarget = document.getElementById( "magnifiedDetail" );
	if( objTarget ) {
		if( objCaller == previousCaller ){
			if( objTarget.style.display == "block" ) {
				objTarget.style.display = "none";
			}
			else {
				objTarget.style.display = "block";
			}
		}
		else {
			// Remove previous image (if it exists)
			for(i=0; i<objTarget.childNodes.length; i++) {
				objTarget.removeChild( objTarget.childNodes[i] );
			}
			
			// Create new image
			objImg = document.createElement("img");
			objImg.src = objCaller.href;
			
			// Assign actions
			objImg.onmouseover = function(){
				objImg.style.cursor = "pointer";
			}
			objImg.onclick = function(){
				hide(objImg.parentNode);
			};
			
			// Show the image
			objTarget.appendChild(objImg);
			objTarget.style.display = "block";
		}
	}
	previousCaller = objCaller;
}

hide = function(oCaller){
	oCaller.style.display = "none";
}

disableAllLinks = function () {
	if(document.getElementsByTagName){
		var links = document.getElementsByTagName("A");
		for(i=0; i<links.length; i++){
			if(links[i].setAttribute){
				links[i].onclick = function(){
					return false;
				}
				links[i].setAttribute("href", "./"); /* Fall-back */
			}
		}
	}
}

showImagesWhenLoaded = function(){
	document.getElementById("sandTimer").style.display = "none";
	document.getElementById("door").style.display = "inline";

	/*
		Afhængig af 'preload-strategi' skal nedenstående justeres.
	*/
	
	oDetails = document.getElementById("details");
	
	for(i=0; i<oDetails.childNodes.length; i++){
		if(oDetails.childNodes[i].nodeName=="DIV"){
			oDetails.childNodes[i].style.visibility = "visible";
		}
	}
	
	if( document.getElementById("stepButtons") ){
		document.getElementById("stepButtons").style.display = "inline";
	}
}

/*---------------------------------------------------------------------------------*/
//addListener( window, "load", preloadImages );
addListener( window, "load", showImagesWhenLoaded );

