    var http_request = false;
	var http_request2 = false;
	var http_request3 = false;
    var activepicture = 1;
	var activebanner = 2;
	var currentfade = 0;
	var activeProductImage = 1;
	var strExistingpictureID = "";
	var strUpdateBannerID = "";
	var strProductGalleryID = false;


    function doOnload()
	{
	    startPictureChange();
		startBannerChange();
		if(strProductGalleryID)
		{
		    startProductgalleryChange();
		}
		return true;
	}

	function openPlayer()
	{
	    var playerWindow = window.open("/playerWindow.html", "playerWindow", "width=50,height=20");
	}

	/*---------------------------------------------------------------*/
	/*
	/* Gallery change */
	/*
	/*---------------------------------------------------------------*/
    function startPictureChange()
    {
		// find list of gallerys that need to be updated
		var nodelistTable = document.getElementsByTagName("table");
		var strUpdateGallery = "";
		if(nodelistTable.length > 0)
		{
			for(var i=0; i<nodelistTable.length; i++)
			{
		        var nodeTable = nodelistTable[i];
				if(nodeTable.className == "gallerytable-picturechange")
				{
				    var arrGalleryID = nodeTable.id.split("_");
					if(arrGalleryID[1] != "")strUpdateGallery += arrGalleryID[1] + "_";
				}
			}
		}
		if(strUpdateGallery != "")
		{
		    sendXmlHttpRequest(strUpdateGallery);
		}
    }

    function sendXmlHttpRequest(strUpdateGallery)
    {
        http_request = false;

        if(window.ActiveXObject) // IE
        {
            try
            {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch(e)
            {
                try
                {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(e){}
            }
        }
		else if(window.XMLHttpRequest) // Mozilla and Safari
        {
            http_request = new XMLHttpRequest();
            if(http_request.overrideMimeType)http_request.overrideMimeType('text/xml');
        }

        if(!http_request)
        {
            alert('Ei suuda initsialiseerida XMLHttpRequest -i');
            return false;
        }

        http_request.onreadystatechange = changePictures;

		var strString = 'http://www.hagar.ee/picturefinder.php?strGalleryList=' + escape(strUpdateGallery) + "&strExistingpictureID=" + strExistingpictureID;     

		http_request.open('GET', strString, true);
        http_request.send(null);
    }

    function changePictures()
    {
        if(http_request.readyState == 4)
        {
            if(http_request.status == 200)
            {
                var vastusString = http_request.responseText;

				var responseJson = vastusString.parseJSON();
				
				if(responseJson.length > 0)
				{
				    for (var i=0; i<responseJson.length; i++)
				    {
					    var recGalleryInfo = responseJson[i];
						if(recGalleryInfo.galleryID > 0 && recGalleryInfo.arrPicture.length > 0)
						{
						    updateGalleryImages(recGalleryInfo.galleryID, recGalleryInfo.arrPicture, recGalleryInfo.thumbwidth, recGalleryInfo.numpictures);
						}
				    }
					if(activepicture == 1)
					{
						activepicture = 2;
					}
					else
					{
						activepicture = 1;
					}
				}

				if(recGalleryInfo.changedelay > 0)
				{
				    var changedelay = recGalleryInfo.changedelay * 1000;
				}
				else
				{
				    var changedelay = 5000;
				}
				window.setTimeout("startPictureChange()", changedelay);
			}
		}
	}

	function updateGalleryImages(galleryID, arrPicture, thumbwidth, numpictures)
	{
	    if(galleryID > 0 && arrPicture.length > 0)
		{
			strExistingpictureID = "";

		    for(var i=0; i<arrPicture.length; i++)
			{
				picturenumber = i + 1;
				var recPicture = arrPicture[i];
				var pictureID = recPicture.ID;
				var picturelink = recPicture.picturelink;

				strExistingpictureID += galleryID + ":" + pictureID + ";";
				currentfade = 0;

				updateGalleryImage(galleryID, pictureID, picturenumber, picturelink, thumbwidth);
			}

			var picturesnotchanged = numpictures - arrPicture.length;
			if(picturesnotchanged > 0)
			{
				while(picturesnotchanged > 0)
				{
					picturenumber = picturenumber + 1;

					var nodePicture1 = document.getElementById("gallery:" + galleryID + "_picture:" + picturenumber + "_1");
					var nodePicture2 = document.getElementById("gallery:" + galleryID + "_picture:" + picturenumber + "_2");

					if(activepicture == 1)
					{
						if(nodePicture2.style.display == 'none')nodePicture2.style.display == 'inline';
						nodePicture2.src = nodePicture1.src;
						var strStartelement = "gallery:" + galleryID + "_picture:" + picturenumber + "_1";
						var strEndelement = "gallery:" + galleryID + "_picture:" + picturenumber + "_2";
						doFade(strStartelement, strEndelement);

					}
					else
					{
						if(nodePicture1.style.display == 'none')nodePicture1.style.display == 'inline';
						nodePicture1.src = nodePicture2.src;
						var strStartelement = "gallery:" + galleryID + "_picture:" + picturenumber + "_2";
						var strEndelement = "gallery:" + galleryID + "_picture:" + picturenumber + "_1";	
						doFade(strStartelement, strEndelement);
					}
					picturesnotchanged -= 1;
				}
			}
		}
	}

	function updateGalleryImage(galleryID, pictureID, picturenumber, picturelink, thumbwidth)
	{
		var nodePicture1 = document.getElementById("gallery:" + galleryID + "_picture:" + picturenumber + "_1");
		var nodePicture2 = document.getElementById("gallery:" + galleryID + "_picture:" + picturenumber + "_2");

		if(activepicture == 1)
		{
			if(nodePicture2.style.display == 'none')nodePicture2.style.display == 'inline';
			nodePicture2.src = "/thumbnail.php?ID=" + pictureID + "&width=" + thumbwidth;
			var strStartelement = "gallery:" + galleryID + "_picture:" + picturenumber + "_1";
			var strEndelement = "gallery:" + galleryID + "_picture:" + picturenumber + "_2";

			if(picturelink)
			{
				nodePicture1.parentNode.parentNode.parentNode.onclick = function(){document.location.href = picturelink};
			}
			else
			{
				nodePicture1.parentNode.parentNode.parentNode.onclick = function(){showPicture('/picture.php?ID='+pictureID,'','');};
			}

			doFade(strStartelement, strEndelement);

		}
		else
		{
			if(nodePicture1.style.display == 'none')nodePicture1.style.display == 'inline';
			nodePicture1.src = "/thumbnail.php?ID=" + pictureID + "&width=" + thumbwidth;
			var strStartelement = "gallery:" + galleryID + "_picture:" + picturenumber + "_2";
			var strEndelement = "gallery:" + galleryID + "_picture:" + picturenumber + "_1";	

			if(picturelink)
			{
				nodePicture1.parentNode.parentNode.parentNode.onclick = function(){document.location.href = picturelink;};
			}
			else
			{
				nodePicture1.parentNode.parentNode.parentNode.onclick = function(){showPicture('/picture.php?ID='+pictureID,'','');};
			}

			doFade(strStartelement, strEndelement);
		}
	}


	/*---------------------------------------------------------------*/
	/*
	/* Banner change */
	/*
	/*---------------------------------------------------------------*/

	function startBannerChange()
    {
		var strUpdateBanner = "";
		// find list of images that are banners and need to be updated
		var nodelistImage = document.getElementsByTagName("div");
		if(nodelistImage.length > 0)
		{
			for(var i=0; i<nodelistImage.length; i++)
			{
		        var nodeImage = nodelistImage[i];
				if(nodeImage.className == "banner-container-autochange")
				{
				    var arrBannerID = nodeImage.id.split("_");
					if(arrBannerID[1] != "")strUpdateBanner += arrBannerID[1] + "_";
				}
			}
		}
		if(strUpdateBanner != "")
		{
			strUpdateBannerID = strUpdateBanner;
		    sendBannerXmlHttpRequest();
		}
    }

	function sendBannerXmlHttpRequest()
    {
        http_request2 = false;

        if(window.ActiveXObject) // IE
        {
            try
            {
                http_request2 = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch(e)
            {
                try
                {
                    http_request2 = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(e){}
            }
        }
		else if(window.XMLHttpRequest) // Mozilla and Safari
        {
            http_request2 = new XMLHttpRequest();
            if(http_request2.overrideMimeType)http_request2.overrideMimeType('text/xml');
        }

        if(!http_request2)
        {
            alert('Ei suuda initsialiseerida XMLHttpRequest -i');
            return false;
        }

		if(strUpdateBannerID.length > 0)
		{
		    http_request2.onreadystatechange = changeBanners;

		    var strString = 'http://www.hagar.ee/bannerfinder.php?strBannerList=' + escape(strUpdateBannerID);     

		    http_request2.open('GET', strString, true);
            http_request2.send(null);
		}
    }

	function changeBanners()
    {
        if(http_request2.readyState == 4)
        {
            if(http_request2.status == 200)
            {
                var vastusString = http_request2.responseText;
				var responseJson = vastusString.parseJSON();

				if(responseJson.length > 0)
				{
				    for (var i=0; i<responseJson.length; i++)
				    {
					    var recBannerInfo = responseJson[i];
						if(recBannerInfo.bannerID > 0 && recBannerInfo.imageID > 0)
						{
						    updateBannerImage(recBannerInfo.bannerID, recBannerInfo.imageID);
						}
				    }
				}

				if(recBannerInfo.changedelay > 0)
				{
				    var changedelay = recBannerInfo.changedelay * 1000;
				}

				if(!changedelay || changedelay < 5000)
				{
				    var changedelay = 5000;
				}
				window.setTimeout("startBannerChange()", changedelay);
			}
		}
	}

	function updateBannerImage(bannerID, imageID)
	{
	    if(bannerID > 0 && imageID > 0)
		{
		    var nodePicture1 = document.getElementById("banner_" + bannerID + "_1");
			var nodePicture2 = document.getElementById("banner_" + bannerID + "_2");

				currentfade = 0;
				if(activebanner == 1)
				{
					nodePicture2.src = "/banner.php?ID=" + imageID;
				    var strStartelement = "banner_" + bannerID + "_1";
					var strEndelement = "banner_" + bannerID + "_2";
					doFade(strStartelement, strEndelement);
					activebanner = 2;

				}
				else
				{
					nodePicture1.src = "/banner.php?ID=" + imageID;
				    var strStartelement = "banner_" + bannerID + "_2";
					var strEndelement = "banner_" + bannerID + "_1";	
					doFade(strStartelement, strEndelement);
					activebanner = 1;
				}
		}
	}

	
	/*---------------------------------------------------------------*/
	/*
	/* Product gallery change */
	/*
	/*---------------------------------------------------------------*/
    var arrProductgalleryItemID = new Array();

	function startProductgalleryChange()
    {
		var nodeGallery = getElement("productgallery");
		
		var listImage = document.getElementsByTagName("div");

		if(listImage && listImage.length > 0 && arrProductgalleryItemID.length < 1)
		{
		    for(var i=0; i<listImage.length; i++)
			{
			    var nodeImg = listImage[i];
				if(nodeImg.className == "productgalleryItem")
				{
				    arrProductgalleryItemID[arrProductgalleryItemID.length] = nodeImg.id;
				}
			}
		}

		if(nodeGallery && strProductGalleryID.length > 0 && arrProductgalleryItemID.length > 0)
		{
		    sendProductgalleryXmlHttpRequest();
		}
    }

	function sendProductgalleryXmlHttpRequest()
    {
        http_request3 = false;

        if(window.ActiveXObject) // IE
        {
            try
            {
                http_request3 = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch(e)
            {
                try
                {
                    http_request3 = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(e){}
            }
        }
		else if(window.XMLHttpRequest) // Mozilla and Safari
        {
            http_request3 = new XMLHttpRequest();
            if(http_request3.overrideMimeType)http_request3.overrideMimeType('text/xml');
        }

        if(!http_request3)
        {
            alert('Ei suuda initsialiseerida XMLHttpRequest -i');
            return false;
        }
		
		if(strProductGalleryID.length > 0)
		{
		    http_request3.onreadystatechange = changeProductgallery;
		    var strString = 'http://www.hagar.ee/productgallery_change.php?strProductGalleryID=' + strProductGalleryID + '&numPictures=' + arrProductgalleryItemID.length + '&strPagepath=' + strPagepath;     
			http_request3.open('GET', strString, true);
            http_request3.send(null);
		}
    }

	function changeProductgallery()
    {
        if(http_request3.readyState == 4)
        {
            if(http_request3.status == 200)
            {
                var vastusString = http_request3.responseText;

				var responseJson = vastusString.parseJSON();

				if(responseJson.length > 0)
				{
				    for (var i=0; i<responseJson.length; i++)
				    {
					    var recProductimageInfo = responseJson[i];
						if(recProductimageInfo.image)
						{
						    updateProductgalleryImage(recProductimageInfo.image, recProductimageInfo.link, i+1);
						}
				    }

					if(activeProductImage == 2)
					{
					    activeProductImage = 1;
					}
					else
					{
					    activeProductImage = 2;
					}
				}
				var changedelay = 5000;
				window.setTimeout("startProductgalleryChange()", changedelay);
			}
		}
	}

	function updateProductgalleryImage(image, link, numPic)
	{
	    if(image)
		{
		    var nodePicture1 = document.getElementById("productgalleryItem_" + numPic + "_1");
			var nodePicture2 = document.getElementById("productgalleryItem_" + numPic + "_2");
				//set link
				nodePicture1.parentNode.parentNode.parentNode.onclick = function(){document.location.href = link;}

				currentfade = 0;
				if(activeProductImage == 1)
				{
					nodePicture2.src = image;
				    var strStartelement = "productgalleryItem_" + numPic + "_1";
					var strEndelement = "productgalleryItem_" + numPic + "_2";
					doFade(strStartelement, strEndelement);

				}
				else
				{
					nodePicture1.src = image;
				    var strStartelement = "productgalleryItem_" + numPic + "_2";
					var strEndelement = "productgalleryItem_" + numPic + "_1";	
					doFade(strStartelement, strEndelement);
				}
		}
	}



	// ===================================================================
	// common functions
	// ===================================================================
	function doFade(strStartelement, strEndelement)
    {
        if(currentfade < 100)
        {
            currentfade += 1;
			setFade(strStartelement, 100 - currentfade);
            setFade(strEndelement, currentfade);
            window.setTimeout("doFade('"+strStartelement+"', '"+strEndelement+"')", 40);
        }
    }

    function setFade(objectname, fade)
    {
        if(document.all)
        {
            var object = document.all[objectname];
        }
        else if(document.layers)
        {
            var object = document.layers[objectname];
        }
        else
        {
            var object = document.getElementById(objectname);
        }

        if(object)
        {
                if(window.sidebar)
                {
                    object.style.opacity = fade / 100;
                }
                else if(document.all)
                {
                    object.style.filter = "alpha(opacity=" + fade + ")";
                }
        }
    }

	function getElement(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;
	}