// Browser Slide-Show script.
// With image cross fade effect for those browsers that support it.
// Script copyright (c) 2004-2006 www.cryer.co.uk.
// Script is free to use provided this copyright header is included.
var slideCache = new Array();
function RunSlideShow(pictureName,imageFiles,displaySecs)
{
  var imageSeparator = imageFiles.indexOf(";");
  var nextImage = imageFiles.substring(0,imageSeparator);
  if (document.all)
  {
    document.getElementById(pictureName).style.filter="blendTrans(duration=2)";
    document.getElementById(pictureName).filters.blendTrans.Apply();
  }
  document.getElementById(pictureName).src = nextImage;
  if (document.all)
  {
    document.getElementById(pictureName).filters.blendTrans.Play();
  }
  var futureImages= imageFiles.substring(imageSeparator+1,imageFiles.length)
    + ';' + nextImage;
  setTimeout("RunSlideShow('"+pictureName+"','"+futureImages+"',"+displaySecs+")",
    displaySecs*1000);
  // Cache the next image to improve performance.
  imageSeparator = futureImages.indexOf(";");
  nextImage = futureImages.substring(0,imageSeparator);
  if (slideCache[nextImage] == null) {
    slideCache[nextImage] = new Image;
    slideCache[nextImage].src = nextImage;
  }
}
// END Browser Slide-Show script.



function dump(arr,level) {
	// JavaScript Equivalent to print_r in PHP
	// Credit goes to:
	// http://binnyva.blogspot.com/2005/10/dump-function-javascript-equivalent-of.html
	
	var dumped_text = "";
	if(!level) level = 0;

	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += " ";

	if(typeof(arr) == 'object') { //Array/Hashes/Objects
		for(var i=0;i<arr.length;i++) {
			var value = arr[i];

			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + i + "' => ";
				dumped_text += "{\n" + dump(value,level+1) + level_padding + "}\n";
			} else {
				dumped_text += level_padding + "'" + i + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")\n";
	}
	return dumped_text;
}

var XMLHttpRequestObject = false; 

if (window.XMLHttpRequest) {
	XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
	XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function showMenu(menuID, contents) {
	var menu = document.getElementById(menuID);
	
	if (contents != '') {
		menu.disabled = false;
		menu.length = 0;
		for(j=0; j < contents.length; j++) {
			menu.options[j] = new Option(contents[j], contents[j]);
		}
	} else {
		menu.length = 0;
		menu.options[0] = new Option('n/a', 'n/a');
		menu.disabled = true;
	}
}

function getMenu(type) {
	var url = "fetch-menus.php?type=" + type;
	
	if (XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", url, true);
		
		XMLHttpRequestObject.onreadystatechange = function() {
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				var menusArray = XMLHttpRequestObject.responseText.split("||");

				for(i=0; i < menusArray.length; i++) {
					menusArray[i] = menusArray[i].split("!");
				}
					
				showMenu('size', menusArray[0]);
				showMenu('page', menusArray[1]);
				showMenu('colour', menusArray[2]);
				showMenu('quantity', menusArray[3]);
				showMenu('paperweight', menusArray[4]);
				showMenu('coverweight', menusArray[5]);
				showMenu('papertype', menusArray[6]);
				showMenu('binding', menusArray[7]);
				showMenu('finishing', menusArray[8]);
			}
		}
		
		XMLHttpRequestObject.send(null);
	}
}

function repImage(id, image, orig) {
	var targetSpan = document.getElementById(id);
	targetSpan.innerHTML = '<img src="images/' + image + '" alt="">';
}



// Preload images function
// http://www.maratz.com/blog/archives/2006/06/07/preload-images-with-javascript/
var preloaded = new Array();
function preload_images() {
    for (var i = 0; i < arguments.length; i++){
        preloaded[i] = document.createElement('img');
        preloaded[i].setAttribute('src',arguments[i]);
    };
};
preload_images(
    '/images/circ-email-hover.gif',
	'/images/circ-fax-hover.gif',
	'/images/circ-form-hover.gif',
	'/images/circ-phone-hover.gif',
	'/images/circ-post-hover.gif'
);
