//~ enum resultType {
	//~ ANY_TYPE = 0, 
	//~ NUMBER_TYPE = 1, 
	//~ STRING_TYPE = 2, 
	//~ BOOLEAN_TYPE = 3,
	//~ UNORDERED_NODE_ITERATOR_TYPE = 4, 
	//~ ORDERED_NODE_ITERATOR_TYPE = 5,
	//~ UNORDERED_NODE_SNAPSHOT_TYPE = 6, 
	//~ ORDERED_NODE_SNAPSHOT_TYPE = 7,
	//~ ANY_UNORDERED_NODE_TYPE = 8, 
	//~ FIRST_ORDERED_NODE_TYPE = 9
//~ }

/* Load at startup */
function startup() {
	// GET main image name
	if (!document.evaluate) { 
	// è successa una cosa BRUTTA BRUTTA BRUTTA.
		alert("è successa una cosa BRUTTA BRUTTA BRUTTA.")
		return;
	}
	
	var mainImg = document.getElementById("targetArea").getElementsByTagName("img")[0]
	var mainImgName = removePath(mainImg.getAttribute("src"))
	var mainImgTitle= mainImg.getAttribute("alt")
	var mainImgParent = document.evaluate("//div[@id='targetArea']//div[@class='field field-type-image field-field-image']//div[@class='field-item']", document, null, 8, null)
	// aggiungo un div contenente il titolo al(blocco che contiene)l'immagine principale
	var newMainImg = "<img src='"
	newMainImg += mainImg.getAttribute("src")
	newMainImg += "' alt='"
	newMainImg += mainImgTitle
	newMainImg += "' title='"
	newMainImg += removeExtension(mainImgTitle)
	newMainImg += "' /><div class='mod'>"
	newMainImg += "mod: "+removeExtension(mainImgTitle)
	newMainImg += "</div>"
	mainImgParent.singleNodeValue.innerHTML = newMainImg
	// GET field-itemS
	xpathResult = document.evaluate("//div[@id='targetArea']//div[@class='field field-type-image field-field-variant']/div[@class='field-items']", document, null, 8, null);
	if (xpathResult.singleNodeValue) {
		// creo il nuovo div field-item che contiene l'immagine variant
		var nodeItem = "<div class='field-item'><img src='/files/imagecache/variants/files/"+mainImgName+"' alt='"+mainImgName+"' title='"+mainImgTitle+"' onClick='javascript:replace(\""+mainImgName+"\", \""+removeExtension(mainImgTitle)+"\")'/><div class='caption'>"+removeExtension(mainImgTitle)+"</div></div>"
		// aggiungo a field-items
		// itero tra i figli (node-item) di node-items per aggiungergli un <div class="caption">titolo</div> e cambiargli il title (senza .jpg)
		for (var i=0; i<xpathResult.singleNodeValue.childNodes.length; i++) {
			// creo <div class="caption">
			nodeItem = nodeItem+"<div class='field-item'><img src='"
			nodeItem += xpathResult.singleNodeValue.childNodes[i].childNodes[0].getAttribute("src")
			nodeItem += "' title='"
			// title contiene il nome da "pulire" (togliere .ext) dell'immagine
			var title = xpathResult.singleNodeValue.childNodes[i].childNodes[0].getAttribute("title")
			// si assumono estensioni di 3 o 4 caratteri (es. jpg o jpeg)
			nodeItem += removeExtension(title);
			nodeItem += "' alt='"
			nodeItem += xpathResult.singleNodeValue.childNodes[i].childNodes[0].getAttribute("alt")
			nodeItem += "' onClick='"
			// modifico il title con il nome senza estensione
			// prendo il nome *esatto* dell'immagine 
			var imgName = removePath(xpathResult.singleNodeValue.childNodes[i].childNodes[0].getAttribute("src"));
			nodeItem += "javascript:replace(\""+imgName+"\", \""+removeExtension(title)+"\")"
			nodeItem += "'/><div class='caption'>"+removeExtension(title)+"</div></div>"
		}
		xpathResult.singleNodeValue.innerHTML = nodeItem
	}
}

/**
removePath(string URL)
@URL: relative or absolute URL
@return: the last component of the path before the last / (unix)
*/
function removePath(url) {
	return url.split("/")[url.split("/").length-1]
}
function removeExtension(filename) {
	return filename.split(".")[filename.split(".").length-1].length==3 ? filename.substr(0, filename.length-4) : filename.substr(0, filename.length-5)
}

function replace(newImg, newTitle) {
	var xpathResult = document.evaluate("//div[@id='targetArea']//img", document, null, 9, null);
	xpathResult.singleNodeValue.setAttribute("src", "/files/imagecache/product/files/"+newImg);
	xpathResult.singleNodeValue.setAttribute("alt", newImg);
	xpathResult.singleNodeValue.setAttribute("title", newTitle) //newImg.split(".")[newImg.split(".").length-1].length==3 ? newImg.substr(0, newImg.length-4) : newImg.substr(0, newImg.length-5) );
	xpathResult.singleNodeValue.parentNode.getElementsByTagName("div")[0].firstChild.nodeValue = "mod: "+newTitle;
}
