
function startup() {

  dojo.require("dojo.event.*");
  dojo.require("dojo.io.*");
  dojo.require("dojo.widget.*");
  dojo.require("dojo.math.*");
  dojo.require("dojo.animation.*");
  dojo.require("dojo.lfx.*");
}


/**
 * Get a list of items with little pictures and itemsIds
 */

function loadItemList(typeId) {

	var path = "products?typeId=" + typeId  + "&rnd=" + Math.random();

	var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");

	req.onreadystatechange = function() {
		try { 
			if (req.readyState == 4) { // Complete
                if (req.status == 200) { // OK response
					var respObj = eval('(' + req.responseText + ')') ;
					return updateItemList(respObj);
				} else {
					throw new Error("ERROR " + e);
				}
		   }
	   		return;
		} catch(e) {
			throw new Error("ERROR " + e);
		}
	};

    req.open("get", path, true); // open

	if (window.XMLHttpRequest) { 
		req.send(null);
	} else {
	      req.send();
	}
}

/**
 * Get a list of items with little pictures and itemsIds
 */
function loadItem(itemId) {
	var path = "products?itemId=" + itemId + "&rnd=" + Math.random();

	var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");

	req.onreadystatechange = function() {
		try { 
			if (req.readyState == 4) { // Complete
                if (req.status == 200) { // OK response
					var respObj = eval('(' + req.responseText + ')') ;
					return updateItem(respObj);
				} else {
					throw new Error("ERROR " + e);
				}
		   }
	   		return;
		} catch(e) {
			throw new Error("ERROR " + e);
		}
	};

    req.open("get", path, true); // open

	if (window.XMLHttpRequest) { 
		req.send(null);
	} else {
	      req.send();
	}
}

function updateItemList(respObj) {
	var elem = document.getElementById("itemList");

	if (respObj[0] == null) {
		elem.innerHTML = "No items";	
	} else {
		for (i=0;i<respObj.length;i++) {
			var link = document.createElement("a");
			link.href="javascript:loadItem('" + respObj[i].itemId + "')";
			var img = document.createElement("img");
			img.src = "items/" + respObj[i].image;
			img.alt = respObj[i].name;
			img.height = 84;
			img.width = 84;
			img.title = respObj[i].name;
			link.appendChild(img);
			elem.appendChild(link);
		}
	}
	elem.style.width = (88 * respObj.length) + "px";
}

function updateItem(respObj) {

	var itemThumbs= document.getElementById("item_thumbs");
	var itemImage = document.getElementById("item_image");
	var itemArea = document.getElementById("item_area");

	itemImage.src="items/" + respObj.image1;

	var soldFlag = "";
	if (respObj.sold) {
		soldFlag = " &nbsp; <img border='0' src='images/SOLD.png' />";
	}

	var htmlText = "<p><img src='images/2_description.png' /><br/>"+ respObj.description+ "</p>" + 
		"<p><img src='images/3_size.png' /><br/>"+ respObj.size+ "</p>" + 
		"<p><img src='images/4_reference.png' /><br/>"+ respObj.reference+ "</p>" +
		"<p><img src='images/7_yellow-line.png' /></p>" +
		"<p><a href='mailto:ljcook@bigpond.net.au?subject=" + respObj.reference + "'>" + 
		"<img border='0' src='images/5_email.png' /></a> &nbsp; " + 
		"<a href='javascript:window.print()'><img border='0' src='images/6_print.png' /></a>" + soldFlag + "</p>" ;

	itemArea.innerHTML = htmlText;
	
	itemThumbs.innerHTML = ""; 

	if 	(respObj.image2 != "") {
		itemThumbs.appendChild(document.createElement("p"));
		var img1 = new Image();
		img1.src = "items/" + respObj.image2;
		img1.width = 84;
		img1.height = 84;
		img1.onclick = function() { return imageSwap(img1) }
		img1.styleClass = "thumbnail";
		itemThumbs.appendChild(img1);
	}

	if 	(respObj.image3 != "") {

		itemThumbs.appendChild(document.createElement("p"));
		var img2 = new Image();
		img2.src = "items/" + respObj.image3;
		img2.width = 84;
		img2.height = 84;
		img2.onclick = function() { return imageSwap(img2) }
		img2.styleClass = "thumbnail";
		itemThumbs.appendChild(img2);

	}
	if (respObj.image4 != "") {
		itemThumbs.appendChild(document.createElement("p"));
		var img3 = new Image();
		img3.src = "items/" + respObj.image2;
		img3.width = 84;
		img3.height = 84;
		img3.onclick = function() { return imageSwap(img3) };
		img3.styleClass = "thumbnail";
		itemThumbs.appendChild(img3);
	}	

}


function imageSwap(item) {
	
	var otherItem = document.getElementById("item_image");
	var otherSrc = otherItem.src 
	otherItem.src = item.src;
	item.src = otherSrc;
	item.width = 84;
	item.height = 84;

}

var X_OFFSET = 264;

function goRight() {
	var elem = document.getElementById("itemList");
	var width = getOffset(elem.style.width);
	var offset = getOffset(elem.style.left);
	dojo.lfx.slideTo(elem,[0,Math.min(offset + X_OFFSET,0)],700).play();
}


function goLeft() {
	var elem = document.getElementById("itemList");
	var width = getOffset(elem.style.width);
	var offset = getOffset(elem.style.left);
	if ((width - offset) >= 670) {
		dojo.lfx.slideTo(elem,[0,Math.max(offset - X_OFFSET,670-width)],700).play();
	}
}

function getOffset(str) {
	return new Number(str.replace("px",""));

}