window.onload = startStructureimageChange;

var structureimageRequest = null;
var arrStructureimageItemID = new Array();
var activeStructureImage = 2;
	
/*---------------------------------------------------------------*/
/*
/* Structureimage change */
/*
/*---------------------------------------------------------------*/

function startStructureimageChange()
{
/*
	var nodeGallery = getElement("productgallery");
	
	var listImage = document.getElementsByTagName("div");

	if(listImage && listImage.length > 0 && arrStructureimageItemID.length < 1)
	{
		for(var i=0; i<listImage.length; i++)
		{
			var nodeImgDiv = listImage[i];
			if(nodeImgDiv.className == "structureimage")
			{
				var arrId = nodeImgDiv.id.split("_");
				var newRecord = new Array();
				newRecord["structureID"] = 
				arrStructureimageItemID[arrStructureimageItemID.length] = arrId[1];
			}
		}
	}
*/

	if(arrStructureimageItemID && arrStructureimageItemID.length > 0)
	{
		sendStructureimageXmlHttpRequest();
	}
}

function sendStructureimageXmlHttpRequest()
{
	structureimageRequest = false;

	if(window.ActiveXObject) // IE
	{
		try
		{
			structureimageRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				structureimageRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){}
		}
	}
	else if(window.XMLHttpRequest) // Mozilla and Safari
	{
		structureimageRequest = new XMLHttpRequest();
		if(structureimageRequest.overrideMimeType)structureimageRequest.overrideMimeType('text/xml');
	}

	if(!structureimageRequest)
	{
		alert('Ei suuda initsialiseerida XMLHttpRequest -i');
		return false;
	}
	
	if(arrStructureimageItemID.length > 0)
	{
		var strArrStructureimageID = "";
		for(var i=0; i<arrStructureimageItemID.length; i++)
		{
		    strArrStructureimageID += arrStructureimageItemID[i]["structureID"] + ":" + arrStructureimageItemID[i]["structureimageID"] + ";";
		}

		structureimageRequest.onreadystatechange = changeStructureimage;
		var uri = parseUri(window.location.href);
		
		global_path = uri.protocol + '://'+ uri.authority;
		
		if (global_path){
			var strString = global_path + '/getStructureImages.php?folderID=' + strArrStructureimageID;
		}else{
		var strString = 'http://localhost/getStructureImages.php?folderID=' + strArrStructureimageID;
		}
		//alert(strArrStructureimageID);
		structureimageRequest.open('GET', strString, true);
		structureimageRequest.send(null);
	}
}

function parseUri(sourceUri){
	var uriPartNames = ["source","protocol","authority","domain","port","path","directoryPath","fileName","query","anchor"],
		uriParts = new RegExp("^(?:([^:/?#.]+):)?(?://)?(([^:/?#]*)(?::(\\d*))?)((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[\\?#]|$)))*/?)?([^?#/]*))?(?:\\?([^#]*))?(?:#(.*))?").exec(sourceUri),
		uri = {};
	
	for(var i = 0; i < 10; i++){
		uri[uriPartNames[i]] = (uriParts[i] ? uriParts[i] : "");
	}
	
	/* Always end directoryPath with a trailing backslash if a path was present in the source URI
	Note that a trailing backslash is NOT automatically inserted within or appended to the "path" key */
	if(uri.directoryPath.length > 0){
		uri.directoryPath = uri.directoryPath.replace(/\/?$/, "/");
	}
	
	return uri;
}


function changeStructureimage()
{
	if(structureimageRequest.readyState == 4)
	{
		
		if(structureimageRequest.status == 200)
		{
			
			var vastusString = structureimageRequest.responseText;

			var responseJson = vastusString.parseJSON();
			//alert(structureimageRequest.responseText);
			if(responseJson.length > 0)
			{
				
				//alert(responseJson);
				arrStructureimageItemID.length = 0;
				for (var i=0; i<responseJson.length; i++)
				{
					var recStructureimage = responseJson[i];
					if(recStructureimage.structureID && recStructureimage.structureimageID)
					{
						var newRecord = new Array();
						newRecord["structureID"] = recStructureimage.structureID;
						newRecord["structureimageID"] = recStructureimage.structureimageID;
						arrStructureimageItemID[arrStructureimageItemID.length] = newRecord;

						updateStructureImage(recStructureimage.structureID, recStructureimage.structureimageID);
					}
				}

				if(activeStructureImage == 2)
				{
					activeStructureImage = 1;
				}
				else
				{
					activeStructureImage = 2;
				}
			}
		//	alert(activeStructureImage);
			var changedelay = 7000;
			window.setTimeout("startStructureimageChange()", changedelay);
		}
	}
}

function updateStructureImage(structureID, structureimageID)
{
	if(structureID && structureimageID)
	{
		var nodePicture1 = document.getElementById("structureimage_" + structureID + "_1");
		var nodePicture2 = document.getElementById("structureimage_" + structureID + "_2");

		var image = "/folderimage.php?ID=" + structureimageID +"&maxwidth=870&maxheight=300";
		//alert(image);
			if(activeStructureImage == 1)
			{
				nodePicture2.src = image;
				var strStartelement = "structureimage_" + structureID + "_1";
				var strEndelement = "structureimage_" + structureID + "_2";
				doFade(strStartelement, strEndelement, 0);
			}
			else
			{
				nodePicture1.src = image;
				var strStartelement = "structureimage_" + structureID + "_2";
				var strEndelement = "structureimage_" + structureID + "_1";	
				doFade(strStartelement, strEndelement, 0);
			}
	}
}

// ===================================================================
// common functions
// ===================================================================
function doFade(strStartelement, strEndelement, currentfade)
{
	var currentfade = eval(currentfade);
	if(currentfade < 100)
	{
		currentfade += 2;
		setFade(strStartelement, 100 - currentfade);
		setFade(strEndelement, currentfade);
		window.setTimeout("doFade('"+strStartelement+"', '"+strEndelement+"', '"+currentfade+"')", 30);
	}
}

function setFade(objectname, fade)
{
	var object = getNode(objectname);

	if(object)
	{
			if(window.sidebar)
			{
				object.style.opacity = fade / 100;
			}
			else if(document.all)
			{
				object.style.filter = "alpha(opacity=" + fade + ")";
			}
	}
}

function getNode(id)
{
	if(document.all)
	{
		var element = document.all[id];
	}
	else if(document.layers)
	{
		var element = document.layers[id];
	}
	else
	{
		var element = document.getElementById(id);
	}
	return element;
}