var current_active_gallery_picture = new Array();
var current_active_product_picture = new Array();
var scrolltimer = null;
var func_click = 0;
var func_click2 = 0;
var OpacityName = null;

	var PicsLoaded = false;
	var changedelay = 10000;
	var Currentfade = 0;
	var strExistingpictureID = 0;
	var picPrefix = "changePic";
	var divPrefix = "changePicContainer";
	var yourImages = new Array();
	var preImages = new Array();
	var currCount = 0;
	var loaded = new Array();
	var loadingCounter = new Array();
	var objfade = 100;
	var objvisible = 0;
	var loadfade = 100;
	var OS,browser,version,total,thestring;
	var LastPart = 0;
	var browserVer=parseInt(navigator.appVersion);
	var timer;
	var StopRotation = false;
	var yourImagesID = new Array();
	var yourImagesThumbs = new Array();

	var scrolltimer = null;
	var rotateSpeed = 500;
	var waitSpeed = 7000;

	try 
	{
		document.execCommand("BackgroundImageCache", false, true);
	} 
	catch(err) 
	{

	}
	
	document.onkeydown = function (e)
	{
		var keyCode;

		if (window.event) keyCode = window.event.keyCode;
		else if (e) keyCode = e.which;
		
		__keyCode = keyCode;

		if (27 == keyCode)
			noticeLayer.show(null);
	};
	
	window.onresize = function ()
	{
		if (!noticeLayer.isHidden())
		{
			noticeLayer.resize(false);
			noticeLayer.positionContent();
		}
	};
	
	window.onscroll = function ()
	{
		if (!noticeLayer.isHidden())
		{
			noticeLayer.positionContent(true);
		}
	};
	
	window.domLoadTree = {};
	


function showPicture(content, width, height)
{
	var popup = window.open(content, 'popup', 'location=no,menubar=no,status=no,titlebar=no,toolbar=no,width='+width+',height='+height+'');
	popup.focus();
}

function getNode(id)
{
	if(document.all)
	{
	    var node = document.all[id];
	}
	else if(document.layers)
	{
	    var node = document.layers[id];
	}
	else
	{
	    var node = document.getElementById(id);
	}
	if(node)return node;
}

function getParentwindowNode(id)
{
	if(document.all)
	{
	    var node = parent.document.all[id];
	}
	else if(document.layers)
	{
	    var node = parent.document.layers[id];
	}
	else
	{
	    var node = parent.document.getElementById(id);
	}
	if(node)return node;
}

function emptyNode(node)
{
    if(node)
	{
	    while(node.firstChild)
		{
		    node.removeChild(node.firstChild);
		}
	}
}

function getNodeContentWidth(node)
{
    if(node)
	{
		if(document.body.scrollWidth)
		{
			var width = node.scrollWidth;
		}
		else if(document.body.offsetWidth)
		{
			var width = node.offsetWidth;
		}
		if(width)return width;
	}
}

function getNodeContentHeight(node)
{
    if(node)
	{
		if(document.body.scrollHeight)
		{
			var height = node.scrollHeight;
		}
		else if(document.body.offsetHeight)
		{
			var height = node.offsetHeight;
		}
		if(height)return height;
	}
}

function getdocumentscrollHeight()
{
  
		if(document.body.scrollHeight)
		{
			var height = document.body.scrollHeight;
		}
		else if(document.body.offsetHeight)
		{
			var height = document.body.offsetHeight;
		}
		if(height)return height;
}

function change_gallery_main_picture(target_name, picID, SizeX, SizeY, Description){
	obj = getNode("gal_" + target_name);
	obj2 = getNode("gal_text_" + target_name);
	obj3 = getNode("gal_" + target_name + "_thumb_" + picID);
	obj4 = getNode("gal_" + target_name + "_thumb_" + current_active_gallery_picture[target_name]);
	obj.style.background = "url('/picture_w.php?ID=" + picID + "&width=" + SizeX + "&height=" + SizeY + "')";
	obj2.innerHTML = Description;
	current_active_gallery_picture[target_name] = picID;
	obj3.style.display = 'none';
	obj4.style.display = 'block';
}

function change_product_main_picture(target_name, picID, SizeX, SizeY, external){
	obj = getNode("prod_" + target_name);
	obj3 = getNode("prod_" + target_name + "_thumb_" + picID);
	obj4 = getNode("prod_" + target_name + "_thumb_" + current_active_product_picture[target_name]);
	if (external){
		obj.style.background = "url('/productpicture_w.php?ID=" + picID + "&width=" + SizeX + "&height=" + SizeY + "&external=1')";
	}else{
		obj.style.background = "url('/productpicture_w.php?ID=" + picID + "&width=" + SizeX + "&height=" + SizeY + "')";
	}
	current_active_product_picture[target_name] = picID;
	obj3.style.display = 'none';
	obj4.style.display = 'block';
}

function change_product_main_print_picture(target_name, picID, SizeX, SizeY, external){
	obj = getNode("prod_" + target_name);
	obj3 = getNode("prod_" + target_name + "_thumb_" + picID);
	obj4 = getNode("prod_" + target_name + "_thumb_" + current_active_product_picture[target_name]);
	if (external){
		obj.style.background = "url('/productpicture_w.php?ID=" + picID + "&width=" + SizeX + "&height=" + SizeY + "&external=1&bg=ffffff')";
	}else{
		obj.style.background = "url('/productpicture_w.php?ID=" + picID + "&width=" + SizeX + "&height=" + SizeY + "&bg=ffffff')";
	}
	current_active_product_picture[target_name] = picID;
	obj3.style.display = 'none';
	obj4.style.display = 'block';
}

function move_content(obj_name, direction){
	var step = 0;
	
	obj = getNode(obj_name);
	if (direction == "right"){
		step = 10;
	}else{
		step = -10;
	}
	obj.scrollLeft = obj.scrollLeft + step;
	scrolltimer = window.setTimeout("move_content('"+obj_name+"', '"+direction+"')", 10);
}

function stopmove_content()
{
	clearTimeout(scrolltimer);
}

function stopRotation()
{
	clearTimeout(timer);
	StopRotation = true;
}

function startMenuChange(ID)
{
	for (i=1; i<=MenuItems.length; i++)
	{
		var nodeDiv = getNode('bottom_bg' + ID);
		if (i == ID && ShowHide[i] == 0 && nodeDiv)
		{
			MenuItems[i] = 1;
			clearTimeout(MenuTimers[i]);
			ShowHide[i] = 1;
			doFade(i);
		}
		else if(nodeDiv && ShowHide[i] == 1 && i != ID)
		{
			clearTimeout(MenuTimers[i]);
			ShowHide[i] = 0;
			doFade(i);
		}
	}
}

function doFade(Startelement)
{
	var currentfade = Fades[Startelement];
	if (ShowHide[Startelement] == 0)
	{
		currentfade += 2;
		if(currentfade >= 100)
		{
			currentfade = 100;
			clearTimeout(MenuTimers[Startelement]);
		}
	}
	else
	{
		currentfade += -2;
		if(currentfade <= 0)
		{
			currentfade = 0;
			clearTimeout(MenuTimers[Startelement]);
		}
	}
	Fades[Startelement] = currentfade;
	setFade('bottom_bg'+Startelement, 100 - currentfade);
	setFade('bottom_menu'+Startelement, 100 - currentfade);
	MenuTimers[Startelement] = window.setTimeout("doFade("+Startelement+")", 10);
}

function setFade(objectname, fade)
{
    var object = document.getElementById(objectname);

    if(object)
    {
    	if (fade > 0 && object.style.display == 'none')
    	{
    		object.style.display = 'block';
    	}
        if(OpacityName == "opacity"){
            object.style.opacity = fade / 100;
        }else if(OpacityName == "MozOpacity"){
        	object.style.MozOpacity = fade / 100;
        }else if(OpacityName == "KhtmlOpacity"){
        	object.style.KhtmlOpacity = fade / 100;
        }else if(OpacityName == "filter"){
        	var oAlpha = object.filters['DXImageTransform.Microsoft.alpha'] || object.filters.alpha;
			if (oAlpha) oAlpha.opacity = fade;
			else object.style.filter += "progid:DXImageTransform.Microsoft.Alpha(style=0, opacity="+fade+", FinishOpacity="+fade+")";
        }
        if (fade == "0")
        {
        	object.style.display = 'none';
        }
    }
}

function doOnLoad()
{
	OpacityName = getOpacityProperty();
	preload_pictures();
}

function changeMainPicture(id)
{
	Current = id;
	var nodePictureRotation = getNode(divPrefix + strExistingpictureID);
	var nodePicture = getNode(divPrefix + yourImagesID[id]);
	if (nodePictureRotation)
	{
		setFade2(divPrefix + strExistingpictureID, 0);
		nodePictureRotation.style.display = 'none';
	}
	setFade2(divPrefix + yourImagesID[id], 100);
	nodePicture.style.display = 'block';
	strExistingpictureID = yourImagesID[id];
}

function closeLeftMenu()
{
	var nodeMenu = getNode('left_menu_block');
	var nodeInfo = getNode('product_info_block');
	CurrentOffset = parseInt(CurrentOffset*1.1 + 1);
	if (nodeInfo && Fade > 0)
	{
		Fade = Fade - parseInt(CurrentOffset*0.8);
		if (Fade < 0)
			Fade = 0;
		setFade('product_info_block', Fade)
	}
	nodeMenu.style.left = '-' + CurrentOffset + 'px';
	if (CurrentOffset < 223)
		window.setTimeout("closeLeftMenu()", 10);
	else
		getNode('open_menu_button').style.display = 'block';
}

function openLeftMenu()
{
	var nodeMenu = getNode('left_menu_block');
	var nodeInfo = getNode('product_info_block');
	CurrentOffset = parseInt(CurrentOffset*0.9 - 1);
	if (nodeInfo && Fade < 80)
	{
		Fade = Fade - parseInt(CurrentOffset*0.8) + 80;
		if (Fade < 0)
			Fade = 0;
		if (Fade > 80)
			Fade = 80;
		setFade('product_info_block', Fade)
	}
	nodeMenu.style.left = '-' + CurrentOffset + 'px';
	if (CurrentOffset > 0)
	{
		window.setTimeout("openLeftMenu()", 10);
		getNode('open_menu_button').style.display = 'none';
	}
	else
	{
		nodeMenu.style.left = '0px';
	}
}

function show_content(ID)
{
	var nodeContent = getNode('product_info_block');
	nodeContent.innerHTML = Subcontent[ID];
}

function showNext()
{
	if (NextArr[Current])
	{
		changeMainPicture(NextArr[Current]);
	}
}

function showPrev()
{
	if (PrevArr[Current])
	{
		changeMainPicture(PrevArr[Current]);
	}
}

function getOpacityProperty(){
  if (typeof(document.body.style.opacity) == 'string') // CSS3 compliant (Moz 1.7+, Safari 1.2+, Opera 9, IE7)
    return 'opacity';
  else if (typeof(document.body.style.MozOpacity) == 'string') // Mozilla 1.6 && less, Firefox 0.8 
    return 'MozOpacity';
  else if (typeof(document.body.style.KhtmlOpacity) == 'string') // Konqueror 3.1, Safari 1.1
    return 'KhtmlOpacity';
  else if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1] >= 5.5 )// Internet Exploder 5.5+
    	return 'filter';
  return false;
}

	function checkIt(string){
		var detect = navigator.userAgent.toLowerCase();
		place = detect.indexOf(string) + 1;
		thestring = string;
		return place;
    }

	function preload_pictures(){
		for (i = 0; i < yourImages.length; i++) {
			preImages[i] = new Image();
			preImages[i].src = yourImages[i];
			loadingCounter[i] = 0;
		}
		checkLoad();
	}
	
	function checkLoad() {
		if (currCount == yourImages.length) { 
			if (currCount > 1) timer = window.setTimeout("startPictureChange()", changedelay);
			return;
		}
		for (i = 0; i < yourImages.length; i++){
			loadingCounter[i] = loadingCounter[i] + 20;
			if (loadingCounter[i] > 10000){
				var forse_load = true;
			}else{
				var forse_load = false;
			}
			var obj = document.getElementById(divPrefix + i);
			if ((preImages[i].complete || forse_load) && loaded[i] == false){
				loaded[i] = true;
				if (checkIt('msie') && browserVer < 7){
					var nodeImage = document.createElement("img");
					nodeImage.id = picPrefix + i;
					nodeImage.src = preImages[i].src;
				    nodeImage.style.width = '998px';
				    nodeImage.style.height = '512px';
				    nodeImage.style.display = 'block';
				    obj.appendChild(nodeImage);
				}else{
	    			preImages[i].id = picPrefix + i;
	    			preImages[i].style.width = '998px';
				    preImages[i].style.height = '512px';
					obj.appendChild(preImages[i]);
				}
				if (i > 0){
					hide_object(obj);
				}
				currCount++;
			}
		}
		timerID = setTimeout("checkLoad()",20);
	}
	
	function startPictureChange(){
		updateImages();
	}

	function updateImages(){
		var strStartelement = divPrefix + strExistingpictureID;
		var nodePicture1 = document.getElementById(strStartelement);
		var next = strExistingpictureID + 1;
		nodePicture1.style.zIndex = 10; //for 1 pic fade only
		if (yourImages[next]){
			var nodePicture2 = document.getElementById(divPrefix + next);
			var strEndelement = divPrefix + next;
			strExistingpictureID = next;
		}else{
			var nodePicture2 = document.getElementById(divPrefix + '0');
			var strEndelement = divPrefix + '0';
			strExistingpictureID = 0;
		}
		Currentfade = 0;
		nodePicture2.style.zIndex = 2; //for 1 pic fade only
		
		show_object(nodePicture2);
		doFade2(strStartelement, strEndelement);
		setFade2(strEndelement, 100); //for 1 pic fade only
	}
	
	function doFade2(strStartelement, strEndelement)
    {
        if(Currentfade < 100)
        {
            Currentfade += 2;
			setFade(strStartelement, 100 - Currentfade);
            window.setTimeout("doFade2('"+strStartelement+"', '"+strEndelement+"')", 30);
        }else{
        	var object = document.getElementById(strStartelement);
        	if (object){
        		hide_object(object);
        		if (!StopRotation)
        		timer = window.setTimeout("startPictureChange()", changedelay);
        		if(Selected)
        		{
        			getNode(Selected).className = '';
        		}
        		getNode(yourImagesThumbs[strExistingpictureID]).className = 'current_thumbnail';
        		Selected = yourImagesThumbs[strExistingpictureID];
        	}
        }
    }
	
    function setFade2(objectname, fade)
    {
        var object = document.getElementById(objectname);

        if(object)
        {
                if(OpacityName == "opacity"){
                    object.style.opacity = fade / 100;
                }else if(OpacityName == "MozOpacity"){
                	object.style.MozOpacity = fade / 100;
                }else if(OpacityName == "KhtmlOpacity"){
                	object.style.KhtmlOpacity = fade / 100;
                }else if(OpacityName == "filter"){
                	var oAlpha = object.filters['DXImageTransform.Microsoft.alpha'] || object.filters.alpha;
					if (oAlpha) oAlpha.opacity = fade;
					else object.style.filter += "progid:DXImageTransform.Microsoft.Alpha(style=0, opacity="+fade+", FinishOpacity="+fade+")";
                }
        }
    }

	function hide_object(obj){
		if(obj)
        {
                if(OpacityName == "opacity"){
                    obj.style.opacity = 0;
                }else if(OpacityName == "MozOpacity"){
                	obj.style.MozOpacity = 0;
                }else if(OpacityName == "KhtmlOpacity"){
                	obj.style.KhtmlOpacity = 0;
                }else if(OpacityName == "filter"){
                    obj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=0)";
                }
                obj.style.display = "none";
        }
	}
	
	function show_object(obj){
		if(obj)
        {
           obj.style.display = "block";
        }
	}
	
	function getElementsByClassName(className, tag, elm){
		var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
		var tag = tag || "*";
		var elm = elm || document;
		var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
		var returnElements = [];
		var current;
		var length = elements.length;
		for(var i=0; i<length; i++){
			current = elements[i];
			if(testClass.test(current.className)){
				returnElements.push(current);
			}
		}
		return returnElements;
	}

	function setVar (id, value)
	{
		__system_variables.id = value;
	}

	function getVar (id)
	{
		return __system_variables.id;
	}
	
	var __system_variables = new Object();
	var c_link = null;
	
	function fadeInputFields ()
	{
		var list 	= document.getElementsByTagName('input');
		var list2 = document.getElementsByTagName('textarea');
		var list3 = document.getElementsByTagName('select');
		
		var __list = [list, list2, list3];
		
		for (var y = 0 ; y < __list.length ; y++)
			for (var x = 0 ; x < __list[y].length ; x++)
				utils.changeOpac(50, __list[y][x], true);
	}
	
	function cssHelper ()
	{
		var current_top;
		
		fadeInputFields();

		/* peidame elemendi */

		sHide(document.getElementById('puhmas'), 'hidden');
		
		/* lisame handlerid */
		
		addHandlers();
		
		/* paneme paika puu tüve kõrguse */
		
		resize();

		/* kui sisu on piisavalt pikk, paigutame elemendi */

		if (document.getElementById('left_tree_bottom').clientHeight > (document.getElementById('left_menu_products').clientHeight + 150 + document.getElementById('puhmas').clientHeight))
		{
			placeElement(document.getElementById('left_menu_products').clientHeight + 150, document.getElementById('left_tree_bottom').clientHeight - (document.getElementById('left_menu_products').clientHeight + 150) - document.getElementById('puhmas').clientHeight - 150, 'puhmas');
		}
		
		/* värvime selle menüülingi, kus hetkel viibime */

		current_top = getElementsByClassName('top_menu_active', 'div', document);
		
		if (0 < current_top.length)
		{
			c_link = current_top[0].id;
			
			changeBackground();
			
			current_top = null;
			c_link = null;
		}

		return;
	}
	
	function resize ()
	{
		var content = document.getElementById('content_holder').clientHeight + 25 + document.getElementById('content_holder').offsetTop - document.getElementById('left_tree_top').clientHeight;
		var body	= document.documentElement.clientHeight - document.getElementById('left_tree_top').clientHeight;
		var products= document.getElementById('left_menu_products').clientHeight + 200;

		if (body > products || content > products)
		{
			if (body > content)
			{
				document.getElementById('left_tree_bottom').style.height = body + 20 + 'px';
			}
			else
			{
				document.getElementById('left_tree_bottom').style.height = content + 20 + 'px';
			}
		}
		else
		{
			document.getElementById('left_tree_bottom').style.height = products + 20 + 'px';
		}
		
		content = null;
		products= null;
		body		= null;

		return;
	}
	
	function changeBackground ()
	{
		if (c_link) document.getElementById(c_link).style.backgroundImage = 'url(/images/' + c_link + '_over.png)';
		
		clink = null;

		return;
	}

	function changeOpac(opacity, id) {
		var object = document.getElementById(id).style;
		object.opacity = (opacity / 100);
		object.MozOpacity = (opacity / 100);
		object.KhtmlOpacity = (opacity / 100);
		object.filter = "alpha(opacity=" + opacity + ")";
	}

	function changeImage (id, src)
	{
		if (document.getElementById(id))
		{
			setOverlay(id, true);
			document.getElementById(id).src = src;
		}

		return;
	}

	function setOverlay (where, c)
	{
		if (where)
		{
			var parent = document.getElementById(where).parentNode;

			if (c)
			{
				if (!document.getElementById('imageOverlay'))
				{
					var elem = document.createElement('div');
					elem.id = 'imageOverlay';
					elem.style.width = parent.offsetWidth + 'px';
					elem.style.height= parent.offsetHeight + 'px';
					elem.style.top	 = parent.offsetTop + 'px';
					elem.style.left	 = parent.offsetLeft + 'px';
					elem.style.display = 'none';

					var text = document.createElement('div');
					text.id = 'loadingText';
					
					parent.appendChild(elem);
					document.getElementById('imageOverlay').appendChild(text);

					document.getElementById('loadingText').innerHTML = getVar('img_load');

					document.getElementById('loadingText').style.top = (parent.offsetHeight / 2) - 10 + 'px';
					document.getElementById('loadingText').style.left = (parent.offsetWidth / 2) - 50 + 'px';
				}

				changeOpac(0, 'imageOverlay');
				document.getElementById('imageOverlay').style.display = 'block';
				changeOpac(40, 'imageOverlay');
			}
			else
			{
				if (document.getElementById('imageOverlay'))
				{
					var elem = parent.removeChild(document.getElementById('imageOverlay'));
				}
			}

			elem = null;
			text = null;
			parent = null;
		}

		return;
	}
	
	function addHandlers ()
	{
		/* paneme paika ülemise menüü mouseoverid */
		
		var left_menu_links;
		var prod_links;
		
		var top_menu_links = getElementsByClassName('top_menu', 'div', document);
		
		for (var a in top_menu_links)
		{
			addHandler(top_menu_links[a], "this.style.backgroundImage = 'url(/images/' + this.id + '_over.png)';", 0);
			addHandler(top_menu_links[a], "this.style.backgroundImage = 'url(/images/' + this.id + '.png)';", 1);
		}
		
		/* paneme paika vasakpoolse menüü mouseoverid */
		
		left_menu_links = getElementsByClassName('left_menu_item', 'div', document);
		
		for (var a in left_menu_links)
		{
			if (0 == getElementsByClassName('left_menu_symbol', 'div', left_menu_links[a]).length)
			{
				addHandler(left_menu_links[a], "symbolHandler(this, 'visible');", 0);
				addHandler(left_menu_links[a], "symbolHandler(this, 'hidden');", 1);
			}
		}
		
		/* products */
		
		prod_links = getElementsByClassName('product_back', 'div', document.getElementById('product_catalog'));
		
		for (var a in prod_links)
		{
			addHandler(prod_links[a], "this.className = 'product_back_over';", 0);
			addHandler(prod_links[a], "this.className = 'product_back';", 1);
		}
		
		/* product images */
		
		prod_img = getElementsByClassName('product_image_gallery_back', 'div', document.getElementById('product_image_gallery'));
		
		for (var a in prod_img)
		{
			addHandler(prod_img[a], "this.className = 'product_image_gallery_back_over';", 0);
			addHandler(prod_img[a], "this.className = 'product_image_gallery_back';", 1);
		}
		
		prod_img				= null;
		prod_links			= null;
		top_menu_links	= null;
		left_menu_links = null;

		return;
	}
	
	function addHandler (element, action, type)
	{
		switch (type)
		{
			case 0: element.onmouseover = function () { eval(action); }; break;
			case 1: element.onmouseout = function () { eval(action); };
		}

		element = null;
		type		= null;
		
		return;
	}
	
	function symbolHandler (elm, t)
	{
		var symbol = getElementsByClassName('left_menu_symbol_hidden', 'div', elm);
		var apple = getElementsByClassName('left_menu_apple_hidden', 'div', elm);

		sHide(symbol[0], t);
		sHide(apple[0], t);

		elm = null;
		symbol = null;
		apple = null;

		return;
	}

	function sHide (elm, t)
	{
		elm.style.visibility = t;

		elm = null;

		return;
	}

	function placeElement (a, n, id)
	{
		var elem = document.getElementById(id);

		if (elem)
		{
			elem.style.top = a + n + 'px';
			sHide(elem, 'visible');
		}

		return;
	}

	window.onresize = function ()
	{
		resize();
	}

	function fadeForm (id)
	{
		var frm = document.getElementById(id);
		var object;
		var opacity = 50;

		if (frm)
		{
			for (var a = 0 ; a <= frm.elements.length - 1 ; a++)
			{
				object = frm.elements[a].style;

				object.opacity = (opacity / 100);
				object.MozOpacity = (opacity / 100);
				object.KhtmlOpacity = (opacity / 100);
				object.filter = "alpha(opacity=" + opacity + ")";
			}
		}

		return;
	}

	function rotatePictures(number, element1Id, element2Id, picturePath)
	{
		if (document.getElementById) 
		{
			var bottomBlock = document.getElementById(element1Id);
			var topBlock = document.getElementById(element2Id);
		}
		
		if (bottomBlock && topBlock && pictureArray.length>1)
		{
			fullPicturePath = picturePath+pictureArray[number];
			bottomBlock.style.backgroundImage = topBlock.style.backgroundImage;
			
			changeOpac(0, element2Id);
			topBlock.style.backgroundImage = "url('"+fullPicturePath+"')";
			
			setTimeout("opacity('"+element2Id+"','0','100','"+rotateSpeed+"')", waitSpeed/2);
			
			number++;
			if (number == pictureArray.length) number = 0;
			
			setTimeout("rotatePictures('"+number+"','"+element1Id+"','"+element2Id+"','"+picturePath+"')", rotateSpeed+waitSpeed);
		}
	}

	function opacity(id, opacStart, opacEnd, millisec) 
	{
		//speed for each frame
		var speed = Math.round(millisec / 100);
		var timer = 0;

		//determine the direction for the blending, if start and end are the same nothing happens
		if(opacStart > opacEnd) {
			for(i = opacStart; i >= opacEnd; i--) {
				setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
				timer++;
			}
		} else if(opacStart < opacEnd) {
			for(i = opacStart; i <= opacEnd; i++)
				{
				setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
				timer++;
			}
		}
	}
	
	var utils =
		{
			mouseCoords : function (e)
			{
				var posx = 0;
				var posy = 0;
				
				if (!e)
					e = window.event;
				
				if (e.pageX || e.pageY)
				{
					posx = e.pageX;
					posy = e.pageY;
				}
				else if (e.clientX || e.clientY)
				{
					posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
					posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
				}
				
				return {'x' : posx, 'y' : posy};
			},
			setVal : function (ID, val)
			{
				document.getElementById(ID).value = val;
			},
			findPos : function (obj)
			{
				var curleft = curtop = 0;
				
				if (obj.offsetParent)
				{
					do
					{
						curleft += obj.offsetLeft;
						curtop 	+= obj.offsetTop;
					}
					while (obj = obj.offsetParent);
					
					return {'x' : curleft, 'y' : curtop};
				}
			},
			elmsByClass : function (cls, tag, elm)
			{
				if (!tag) tag = '*';
				if (!elm) elm = document;
				
				var retnode = [];
				var myclass = new RegExp('\\b' + cls + '\\b');
				var elem 		= elm.getElementsByTagName(tag);
				
				for (var i = 0 ; i < elem.length ; i++)
				{
					var classes = elem[i].className;
					if (myclass.test(classes)) retnode.push(elem[i]);
				}
				
				return retnode;
			},
			handleDefaultVal : function (elm, cond)
			{
				if (!cond) cond = 0;
				
				switch (cond)
				{
					case 0: if (elm.defaultValue == elm.value) elm.value = ''; break;
					case 1: if ('' == elm.value) elm.value = elm.defaultValue; break;
				}
			},
			showHideElmsID : function ()
			{
				for (var x = 0 ; x < arguments.length ; x++)
				{
					this.showHideElm(document.getElementById(arguments[x]), 'block');
				}
			},
			showHideElms : function ()
			{
				var elms = arguments;
				
				for (var x in elms)
				{
					this.showHideElm(elms[x], 'block');
				}
			},
			showHideElm : function (elm, visible)
			{
				switch (elm.style.display)
				{
					case visible: elm.style.display = 'none'; break;
					case 'none'	: elm.style.display = visible;
				}
			},
			traverseAndAttach : function (arrElm, arrEv)
			{
				for (var x = 0 ; x < arrElm.length ; x++)
				{
					for (var y = 0 ; y < arrEv.length ; y++)
					{
						this.attach(arrElm[x], arrEv[y]['event'], arrEv[y]['action']);
					}
				}
			},
			attach : function (elm, ev, act)
			{
				switch (ev)
				{
					case 'mousedown':
						elm.onmousedown = function ()
						{
							eval(act); return false;
						};
						break;
					case 'contextmenu':
						elm.oncontextmenu = function ()
						{
							eval(act); return false;
						};
				}
			},
			fetchElmContent : function (ID)
			{
				var elm = document.getElementById(ID);
				
				if (elm) return elm.innerHTML;
			},
			getSize : function (elm)
			{
				return {'w' : elm.offsetWidth, 'h' : elm.offsetHeight};
			},
			getViewPortSize : function ()
			{
				return {'w' : document.documentElement.clientWidth, 'h' : document.documentElement.clientHeight};
			},
			changeOpac : function (opacity, ID, clause)
			{
				if (clause)
					var obj = ID.style;
				else
					var obj = document.getElementById(ID).style;
				
				obj.opacity = (opacity / 100);
				obj.MozOpacity = (opacity / 100);
				obj.KhtmlOpacity = (opacity / 100);
				obj.filter = "alpha(opacity=" + opacity + ")";
				
				/*if (0 == opacity)
					obj.display = 'none';
				else
					obj.display = 'block';*/
			},
			getOpac : function (ID)
			{
				return document.getElementById(ID).style.opacity;
			},
			fillInput : function (inputID, value)
			{
				var elm = document.getElementById(inputID);
				
				if (elm)
				{
					elm.value = value;
					
					return true;
				}
				
				return false;
			},
			newAjax : function ()
			{
				var xmlHttp;
				
				try
				{
					xmlHttp = new XMLHttpRequest();
				}
				catch(e)
				{
					var xmlHttpVersions = new Array
						(
							'MSXML2.XMLHTTP.6.0',
							'MSXML2.XMLHTTP.5.0',
							'MSXML2.XMLHTTP.4.0',
							'MSXML2.XMLHTTP.3.0',
							'MSXML2.XMLHTTP',
							'Microsoft.XMLHTTP'
						);
				
					for (var i = 0; (i < xmlHttpVersions.length) && (!xmlHttp); i++)
					{
						try
						{
							xmlHttp = new ActiveXObject(xmlHttpVersions[i]);
						}
						catch (e) { }
					}
				}
				
				if (!xmlHttp) alert("Error creating the XMLHttpRequest object.");
				else return xmlHttp;
			},
			decode : function (obj)
			{
				var ret = '';
				var f = true;
				
				for (var x in obj)
				{
					ret += ((f) ? '' : '&') + x + '=' + obj[x];
					
					f = false;
				}
				
				return ret;
			}
		};
	
	var storage =
		{
			dataList : new Object(),
			add : function (key, val, cond)
			{
				if ('undefined' == typeof(this.dataList[key]) || true === cond)
				{
					this.dataList[key] = val;
					
					return true;
				}
				
				return false;
			},
			get : function (key)
			{
				if ('undefined' != typeof(this.dataList[key]))
				{
					return this.dataList[key];
				}
				
				return false;
			},
			rem : function (key)
			{
				if ('undefined' != typeof(this.dataList[key]))
				{
					delete this.dataList[key];
					
					return true;
				}
				
				return false;
			},
			empty : function ()
			{
				delete this.dataList;
				
				this.dataList = new Object();
			}
		};
	
	var ajax = 
		{
			request : function (params, callback, chain)
			{
				var obj = utils.newAjax();
				
				url = '?ajax=1&timestamp=' + (new Date()).getTime();
				
				obj.open('POST', url, true);

				obj.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
				obj.setRequestHeader('Content-length', params.length);
				
				obj.onreadystatechange = function () 
				{
					ajax.response(obj, callback, chain);
				};
				
				obj.send(utils.decode(params)); 
			},
			response : function (obj, callback, chain)
			{
				if
					(
						4 == obj.readyState &&
						200 == obj.status
					)
				{
					if ('function' == typeof(callback)) 			callback(obj.responseText);
					if ('function' == typeof(chain.process)) 	chain.process();
				}
			}
		};
		
	function requestChain (func)
	{
		this.objRequest = new Object();
		this.requestCnt	= 0;
		this.request 		= 0;
		this.fnRequest	= func;
		this.isBusy			= false;
		
		this.add = function (obj)
		{
			this.objRequest[this.requestCnt] = obj;
			
			this.requestCnt++;
		};
		
		this.process = function ()
		{
			if ('function' != typeof(this.fnRequest))
			{
				alert('No ajax request function defined!'); return false;
			}
			
			if ('undefined' != typeof(this.objRequest[this.request]))
			{
				this.isBusy = true;
				
				var request = this.objRequest[this.request];
				
				delete this.objRequest[this.request];
				
				this.request++;
				
				if ('function' == typeof(request.pre_call))
					request.pre_call();
				
				this.fnRequest(request.params, request.callback, this);
			}
			else
			{
				this.isBusy = false;
			}
		};
		
		this.flush_mid_section = function ()
		{
			var start = this.request;
			var end		= this.requestCnt - 2;
			
			this.request = this.requestCnt - 1;
			
			for (var x = start ; x <= end ; x++)
			{
				if ('undefined' != typeof(this.objRequest[x]))
					delete this.objRequest[x];
			}
		};
	};
	
	var sBasket =
		{
            confirmmsg : '',
			smallbasket_id            : 'smallbasket',
			smallbasket_amount_id     : 'smallbasket_amount',
			smallbasket_price_id 	  : 'smallbasket_price',
			bigbasket_shipping_id 	  : 'bigbasket_shipping',
			bigbasket_price_total_id  : 'bigbasket_price_total',
			bigbasket_vat_20_id       : 'bigbasket_vat_20',
			bigbasket_price_id        : 'bigbasket_price',
			r_prefix 				  : 'sbasket_product_',
			basket_mode               : 1,
			basket_view               : 0,
			addProduct : function (ID, ref)
			{
                var quantity = document.getElementById('quantity');
                var minquantity = document.getElementById('minquantity');
                var trigger_alert = 0;
                if (quantity && minquantity)
                {
                  if (parseInt(quantity.value) < parseInt(minquantity.value))
                  {
                    trigger_alert = 1;
                  }
                }
                if (trigger_alert == 0)
                {
                  var reqChain = new requestChain(ajax.request);
                  reqChain.add
                      ({
                          'params' :
                              {
                                  'action' : 'addProduct',
                                  'ID' : ID,
                                  'amount' : parseInt(quantity.value)
                              },
                          'pre_call' :
                              function ()
                              {
                                  tmpAnimation.prepare(ref);
                              },
                          'callback' :
                              function (r) 
                              {
                                  tmpAnimation.work();
                                  sBasket.refreshBasket(r);
                              }
                      });
                  reqChain.process();
                }
                else
                {
                  alert(minamount_msg);
                }
			},
			addProduct2 : function (ID, q, m, img, ref)
			{
                if (document.getElementById('big_image'))
                {
                  document.getElementById('big_image').id = 'big_image_temp';
                }
                var quantity = document.getElementById(q);
                var minquantity = document.getElementById(m);
                var pic = document.getElementById(img);
                var old_img = img;
                var trigger_alert = 0;
                if (quantity && minquantity)
                {
                  if (parseInt(quantity.value) < parseInt(minquantity.value))
                  {
                    trigger_alert = 1;
                  }
                }
                if (trigger_alert == 0)
                {
                  pic.id = 'big_image';
                  var reqChain = new requestChain(ajax.request);
                  reqChain.add
                      ({
                          'params' :
                              {
                                  'action' : 'addProduct',
                                  'ID' : ID,
                                  'amount' : parseInt(quantity.value)
                              },
                          'pre_call' :
                              function ()
                              {
                                  tmpAnimation.prepare(ref);
                              },
                          'callback' :
                              function (r) 
                              {
                                  tmpAnimation.work();
                                  sBasket.refreshBasket(r);
                                  pic.id = old_img;
                              }
                      });
                  reqChain.process();
                  if (document.getElementById('big_image_temp'))
                  {
                    document.getElementById('big_image_temp').id = 'big_image';
                  }
                }
                else
                {
                  alert(minamount_msg);
                }
			},
			addProducts : function (ID, amount)
			{
          if (parseInt(amount))
          {
                var reqChain = new requestChain(ajax.request);
                reqChain.add
                    ({
                        'params' :
                            {
                                'action' : 'addProduct',
                                'ID' : ID,
                                'amount' : parseInt(amount)
                            },
                        'pre_call' :
                            function ()
                            {
                              
                            },
                        'callback' :
                            function (r) 
                            {
                                sBasket.refreshBasket(r);
                            }
                    });
                reqChain.process();
          }
			},
			addQuery : function (title, length)
			{
                var reqChain = new requestChain(ajax.request);
                reqChain.add
                    ({
                        'params' :
                            {
                                'action' : 'addquery',
                                'title' : title,
                                'length' : length
                            },
                        'pre_call' :
                            function ()
                            {
                            },
                        'callback' :
                            function (r) 
                            {
                            }
                    });
                reqChain.process();
			},
			emptyBasket : function (id1, rp1_amount, id2, rp2_amount, id3, rp3_amount, title, length)
			{
                var reqChain = new requestChain(ajax.request);
                reqChain.add
                    ({
                        'params' :
                            {
                                'action' : 'emptyBasket'
                            },
                        'pre_call' :
                            function ()
                            {
                            },
                        'callback' :
                            function (r) 
                            {
                                sBasket.addProducts(id1, rp1_amount, this);
                                sBasket.addProducts(id2, rp2_amount, this);
                                sBasket.addProducts(id3, rp3_amount, this);
                                sBasket.addQuery(title, length);
                            }
                    });
                reqChain.process();
			},
			refreshBasket : function (objResponse)
			{
				var data = eval(objResponse);

                document.getElementById(this.smallbasket_amount_id).innerHTML = data.overall.price_total_format;
                document.getElementById(this.smallbasket_price_id).innerHTML = data.overall.amount;
                
				if (0 == this.basket_mode)
					this.refreshBigBasket(objResponse);
			},
			remProduct : function (ID)
			{
				if (1 == this.basket_mode)
					var callback = function (r) { sBasket.refreshBasket(r); };
				else
					var callback = function (r) { sBasket.refreshBasket(r); sBasket.refreshBigBasket(r, ID); };
				
				var reqChain = new requestChain(ajax.request);
				
				reqChain.add({'params' : {'action' : 'remProduct', 'ID' : ID}, 'callback' : callback});
				
				reqChain.process();
			},
			remProducts : function (ID)
			{
				var reqChain = new requestChain(ajax.request);
				reqChain.add({'params' : {'action' : 'remProducts', 'ID' : ID}, 'callback' : function (r) { sBasket.remBasketItem(ID); sBasket.refreshBasket(r); sBasket.refreshBigBasket(r, ID); }});
				reqChain.process();
			},
			remBasketItem : function (ID)
			{
				document.getElementById('basket_product_' + ID).style.display = 'none';
			},
			refreshBigBasket : function (objResponse, ID)
			{
				var data = eval(objResponse);
				
                document.getElementById(this.bigbasket_shipping_id).innerHTML = data.overall.shipping.price_format + ' EEK';
                document.getElementById(this.bigbasket_price_total_id).innerHTML = data.overall.price_total_format + ' EEK';;
                if (!data.overall.vat_20_format)
                  document.getElementById(this.bigbasket_vat_20_id).innerHTML = '0.00' + ' EEK';
                else
                  document.getElementById(this.bigbasket_vat_20_id).innerHTML = data.overall.vat_20_format + ' EEK';
                document.getElementById(this.bigbasket_price_id).innerHTML = data.overall.price_format + ' EEK';;
			},
			remRow : function (ID)
			{
				if (confirm(sBasket.confirmmsg))
				{
					var reqChain = new requestChain(ajax.request);
					
					reqChain.add({'params' : {'action' : 'remProducts', 'ID' : ID}, 'callback' : function (r) { sBasket.refreshBasket(r); sBasket.deleteRow(ID); }});
					
					reqChain.process();
				}
			},
			deleteRow : function (ID)
			{
				var row 	= document.getElementById(this.r_prefix + ID);
				var prnt	= row.parentNode;
				
				prnt.removeChild(row);
				
				cssHelper();
			},
			setShipping : function (type, zoneID)
			{
				var reqChain = new requestChain(ajax.request);
				
				reqChain.add({'params' : {'action' : 'setShipping', 'type' : type, 'zoneID' : zoneID}, 'callback' : function (r) { sBasket.refreshBasket(r); }});
				
				reqChain.process();
			},
			changeAmount : function (ID, amount, refresh)
			{
				var reqChain = new requestChain(ajax.request);
				
				reqChain.add
                ({
                  'params' :
                  {
                    'action' : 'changeAmount',
                    'ID' : ID,
                    'amount' : amount
                  },
                  'callback' : function (r)
                  {
                    if (refresh)
                    {
                      sBasket.refreshBasket(r);
                      sBasket.refreshBigBasket(r, ID);
                    }
                    sBasket.renewField(r, ID);
                  }
                });
				reqChain.process();
			},
			renewField : function (r, ID)
			{
				var data = eval(r);
				document.getElementById('basket_product_' + ID + '_amount').innerHTML = data.products[ID].amount;
			}
		};
        
	var tmpAnimation =
		{
			data : new Object(),
			destroy : function ()
			{
				clearTimeout(this.data.tID);
				
				if (document.getElementById('big_image_clone'))
					document.body.removeChild(document.getElementById('big_image_clone'));
				
				this.data = new Object();
			},
			prepare : function (ref)
			{
				this.destroy();
				
				var original	= document.getElementById('big_image');
				var duplicate = original.cloneNode(false);
				
				var pos = utils.findPos(ref);
				
				duplicate.id = 'big_image_clone';
				duplicate.style.display = 'block';
				
				duplicate.style.width 	= '100px';
				duplicate.style.height 	= 100 / original.offsetWidth * original.offsetHeight + 'px';
				
				duplicate.style.position = 'absolute';
				
				duplicate.style.top 	= pos.y - 75 + 'px';
				duplicate.style.left 	= pos.x + 'px';
				
				utils.changeOpac(75, duplicate, true);
				
				document.body.appendChild(duplicate);
			},
			work : function ()
			{
				var elm = document.getElementById('big_image_clone');
				var end = utils.findPos(document.getElementById('smallbasket'));
				var cur = utils.findPos(elm);
				
				this.data.elm = elm;
				this.data.xStart = cur.x;
				this.data.yStart = cur.y;
				this.data.xEnd = end.x;
				this.data.yEnd = end.y;
				this.data.xAcc =  2 * (end.x - cur.x) / 900;
				this.data.yAcc =  2 * (end.y - cur.y) / 900;
				this.data.cFrame = -4;
				
				this.__exec();
			},
			__exec : function ()
			{
				xNew = this.data.xStart + (this.data.xAcc * this.data.cFrame * this.data.cFrame) / 2;
				yNew = this.data.yStart + (this.data.yAcc * this.data.cFrame * this.data.cFrame) / 2;
		
				this.data.elm.style.left 	= xNew + 'px';
				this.data.elm.style.top 	= yNew + 'px';
				
				utils.changeOpac(75 - (this.data.cFrame / 30) * 75, this.data.elm, true);
				
				if (this.data.cFrame < 30)
				{
					this.data.tID = setTimeout("tmpAnimation.__exec();", 25);
					++this.data.cFrame;
				}
				else
				{
					this.destroy();
				}
			}
		};
		
	var cbHandler =
		{
			clsSel : 'checkbox_checked',
			clsReg : 'checkbox',
			valDump : '.dump',
			groupActions : new Object(),
			selected : new Object(),
			groupTypes : new Object(),
			selElements : new Array(),
			
			_radio : 0,
			_check : 1,
			
			_auto 	: 1,
			_manual : 2,
			
			setMode : function (mode)
			{
				this.mode = mode;
			},
			getMode : function ()
			{
				return this.mode;
			},
			mousedown : function (i)
			{
				var group = (-1 != i.id.indexOf('_')) ? i.id.split('_')[0] : i.id;
				
				if (i.id != this.selected[group] || this._check == this.groupTypes[group])
				{
					this.handleGroup(i.id, group);
					this.changeClass(i);
					
					if ('undefined' != typeof(this.groupActions[group]))
						eval(this.groupActions[group]);
				}
			},
			dumpValue : function (group, value)
			{
				if (document.getElementById(group + '_' + this.valDump))
					document.getElementById(group + '_' + this.valDump).value = value;
			},
			changeClass : function (i)
			{
				switch (i.className)
				{
					case this.clsSel: i.className = this.clsReg; break;
					case this.clsReg: i.className = this.clsSel;
				}
			},
			setClass : function (i, cls)
			{
				var group = (-1 != i.id.indexOf('_')) ? i.id.split('_')[0] : i.id;
				
				if (i.id != this.selected[group])
					i.className = cls;
			},
			traverseGroup : function (group)
			{
				var _group;
				var elm;
				
				for (var x = 0 ; x < this.selElements.length ; x++)
				{
					if ('undefined' != typeof(this.selElements[x]))
					{
						elm			= this.selElements[x];
						_group 	= (-1 != elm.id.indexOf('_')) ? elm.id.split('_')[0] : elm.id;
						
						if (_group == group)
						{
							this.selected[group] = elm.id;
							this.dumpValue(group, elm.id.split('_')[1]);
							
							delete this.selElements[x];
						}
					}
				}
			},
			handleGroup : function (id, group)
			{
				var prev = this.selected[group];
				var val;
				
				if (document.getElementById(prev) && this._radio == this.groupTypes[group])
					this.changeClass(document.getElementById(prev));
				
				if (prev == id && this._check == this.groupTypes[group])
				{
					this.selected[group] = 0;
					this.dumpValue(group, '');
				}
				else
				{
					val = id.split('_')[1];
					
					this.selected[group] = id;
					this.dumpValue(group, val);
				}
			},
			setGroupAction : function (group, action)
			{
				if (group)
					this.groupActions[group] = action;
			},
			define : function ()
			{
				this.selElements = utils.elmsByClass(this.clsSel, 'div');
				
				var groups = arguments;
				
				for (var x = 0 ; x < groups.length ; x++)
				{
					this.groupTypes[groups[x][0]] = groups[x][1];
					this.traverseGroup(groups[x][0]);
				}
			},
			getValue : function (group)
			{
				if (document.getElementById(group + '_' + this.valDump))
					return document.getElementById(group + '_' + this.valDump).value;
			},
			mousedownContainer : function (i)
			{
				var children = i.childNodes;
				
				for (var x = 0 ; x < children.length ; x++)
				{
					if (this.clsReg == children[x].className || this.clsSel == children[x].className)
					{
						this.mousedown(children[x]);
						
						return true;
					}
				}
				
				return false;
			}
		};
		
	function choosePayment ()
	{
		switch (cbHandler.getValue("payment"))
		{
			case 'mees':
			case 'friend':
				document.getElementById('shoppingbasket_payer_data').style.display = '';
				break;
			default:
				document.getElementById('shoppingbasket_payer_data').style.display = 'none';
		}
	};
	
	var noticeLayer =
		{
			overlayID : 'transparent_overlay',
			overlayContentID : 'transparent_overlay_content',
			overlayCInnerID : 'transparent_overlay_content_inner',
			mainBlockID : 'left_tree_bottom',
			show : function (content, width)
			{
				if (content)
				{
					this.resize();
					this.addContent(content, width);
					
					var qID = effects.fade(this.overlayID, 0, 90, 200);
					
					effects.setQueue(qID, "noticeLayer.showContent();");
				}
				else
				{
					if (!this.isHidden())
					{
						effects.clearQueue();
						
						document.getElementById(this.overlayContentID).style.display = 'none';
						
						var qID = effects.fade(this.overlayID, 90, 0, 200);
						
						effects.setQueue(qID, "noticeLayer.hideOverlay();");
					}
				}
			},
			resize : function ()
			{
				var main = utils.getSize(document.getElementById(this.mainBlockID));
				var view = utils.getViewPortSize();
				
				main.h += 272;
				
				var height 	= ((main.h > view.h) ? main.h : view.h);
				var cElm		=	document.getElementById(this.overlayContentID);
				
				if (height < cElm.offsetTop + cElm.offsetHeight)
					height = cElm.offsetTop + cElm.offsetHeight;

				document.getElementById(this.overlayID).style.width 	= ((main.w > view.w) ? main.w : view.w) + 'px';
				document.getElementById(this.overlayID).style.height 	= height + 'px';
			},
			addContent : function (content, width)
			{
				if (!width)
					width = 175;
					
				document.getElementById(this.overlayContentID).style.width 	= width + 'px';
				document.getElementById(this.overlayCInnerID).innerHTML = content;
			},
			hideOverlay : function ()
			{
				document.getElementById(this.overlayID).style.display = 'none';
			},
			showContent : function ()
			{
				document.getElementById(this.overlayContentID).style.display = 'block';
				
				this.positionContent(false);
			},
			positionContent : function (cond)
			{	
				var clay = document.getElementById(this.overlayContentID);
				var view = utils.getViewPortSize();
				
				if (true !== cond || (true === cond && clay.offsetHeight < view.h))
					clay.style.top 	= view.h / 2 - clay.offsetHeight / 2 + (document.documentElement.scrollTop + document.body.scrollTop) + 'px';
					
				clay.style.left = view.w / 2 - clay.offsetWidth / 2 + (document.documentElement.scrollLeft + document.body.scrollLeft) + 'px';
				
				this.resize();
			},
			isHidden : function ()
			{
				if (document.getElementById(this.overlayID))
				{
					return ('none' == document.getElementById(this.overlayID).style.display);
				}
				
				return true;
			}
		};
		
	var effects =
		{
			queue : new Array(),
			qIntervals : new Object(),
			qCheckInt : 50,
			fade : function (layerID, start, end, timeout)
			{
				if (document.getElementById(layerID))
				{
					this.queue[this.queue.length] = 1;
					
					var speed = Math.round(timeout / 100);
					var timer = 0;
					var qID 	= (this.queue.length - 1);
					
					utils.changeOpac(start, layerID);
					document.getElementById(layerID).style.display = 'block';
					
					if (start > end)
					{
						for (var i = start ; i >= end ; i--)
						{
							setTimeout("utils.changeOpac(" + i + ", '" + layerID + "'); if (utils.getOpac('" + layerID + "') == (" + end + " / 100)) { effects.remove(" + qID + "); }", (timer * speed));
							timer++;
						}
					}
					else if (start < end)
					{
						for (var i = start ; i <= end ; i++)
						{
							setTimeout("utils.changeOpac(" + i + ", '" + layerID + "'); if (utils.getOpac('" + layerID + "') == (" + end + " / 100)) { effects.remove(" + qID + "); }", (timer * speed));
							timer++;
						}
					}
					
					return qID;
				}
			},
			setQueue : function (qID, act)
			{
				this.qIntervals[qID] = setInterval("effects.handleQueue(" + qID + ", '" + act + "');", this.qCheckInt);
			},
			handleQueue : function (qID, act)
			{
				if ('undefined' == typeof(this.queue[qID]))
				{
					clearInterval(this.qIntervals[qID]);
					delete this.qIntervals[qID];
					
					eval(act);
				}
			},
			remove : function (qID)
			{
				delete this.queue[qID];
			},
			clearQueue : function ()
			{
				for (var x in this.qIntervals)
				{
					clearInterval(this.qIntervals[x]);
					
					delete this.qIntervals[x];
				}
				
				this.queue = new Array();
			}
		};
        
function changePicture(picID, title)
{
  var preview_video = document.getElementById('preview_video');
  var preview = document.getElementById('big_image');
  var link = document.getElementById('preview_link');
  if (preview && link)
  {
    preview.style.display = 'inline';
    link.style.display = 'block';
    preview_video.style.display = 'none';
    preview.src = '/picture_w2.php?ID=' + picID + '&product=1&maxwidth=265&maxheight=200';
    link.href = '/picture_w2.php?ID=' + picID + '&product=1&maxwidth=700&maxheight=700';
    link.title = title;
  }
}
function changeToVideo(url)
{
  var preview_video = document.getElementById('preview_video');
  var preview_img = document.getElementById('big_image');
  var preview_link = document.getElementById('preview_link');
  if (preview_video && url)
  {
    preview_img.style.display = 'none';
    preview_link.style.display = 'none';
    preview_video.style.display = 'block';
    preview_video.innerHTML = '<object width="258" height="181"><param name="movie" value="'+url+'&hl=en&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="'+url+'&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="258" height="181"></embed></object>';
  }
}
function Check()
{
  var moreinfo_checkbox = document.getElementById('moreinfo_checkbox');
  var moreinfo = document.getElementById('moreinfo');
  if (moreinfo_checkbox && moreinfo)
  {
    if (moreinfo.value == 0)
    {
      moreinfo_checkbox.style.backgroundImage = 'url(/images/moreinfo_checked.png)';
      moreinfo.value = 1;
    }
    else
    {
      moreinfo_checkbox.style.backgroundImage = 'url(/images/moreinfo.png)';
      moreinfo.value = 0;
    }
  }
}
function Check2()
{
  var moreinfo_checkbox = document.getElementById('client_rules_checkbox');
  var moreinfo = document.getElementById('client_rules');
  if (moreinfo_checkbox && moreinfo)
  {
    if (moreinfo.value == 0)
    {
      moreinfo_checkbox.style.backgroundImage = 'url(/images/moreinfo_checked.png)';
      moreinfo.value = 1;
    }
    else
    {
      moreinfo_checkbox.style.backgroundImage = 'url(/images/moreinfo.png)';
      moreinfo.value = 0;
    }
  }
}
function Check3(which)
{
  var checkbox = document.getElementById(which);
  var checkbox_value = document.getElementById(which + '_value');
  if (checkbox && checkbox_value)
  {
    if (checkbox_value.value == '0')
    {
      checkbox.style.backgroundImage = 'url(/images/moreinfo_checked.png)';
      checkbox_value.value = '1';
    }
    else
    {
      checkbox.style.backgroundImage = 'url(/images/moreinfo.png)';
      checkbox_value.value = '0';
    }
  }
}
function showDropMenu(which)
{
  var dropmenu = document.getElementById(which);
  if (dropmenu)
  {
    if (dropmenu.style.display == 'none')
    {
      dropmenu.style.display = 'block';
    }
    else
    {
      dropmenu.style.display = 'none';
    }
  }
}
function setSelected(which, selection)
{
  if (which)
  {
    var dropmenu = document.getElementById(which + '_dropmenu');
    var dropmenu_select = document.getElementById(which + '_select');
    var dropmenu_value = document.getElementById(which + '_value');
    if (dropmenu && dropmenu_select && dropmenu_value)
    {
      dropmenu_value.value = (selection.id).split('_')[1];
      if (dropmenu_value.value == 0)
      {
        dropmenu_select.innerHTML = 'Vali transporditsoon';
        selection.style.display = 'none';
        var i = 0;
        while (i <= 99)
        {
          if (document.getElementById(which + '_' + i))
          {
            document.getElementById(which + '_' + i).className = 'unselected';
          }
          i++;
        }
      }
      else
      {
        dropmenu_select.innerHTML = (selection.innerHTML).substr(0, 27) + '...';
        if (document.getElementById(which + '_0'))
        {
          document.getElementById(which + '_0').style.display = 'block';
          document.getElementById(which + '_0').className = 'unselected';
        }
        if (which == 'zone')
          document.getElementById('form_delivery').style.display = 'none';
      }
      dropmenu.style.display = 'none';
      selection.className = 'selected';
      if (which == 'zone')
      {
        sBasket.basket_mode = 0;
        sBasket.setShipping('default', dropmenu_value.value);
        if (dropmenu_value.value > 0)
        {
          document.getElementById('form_delivery').style.display = 'block';
        }
        else
        {
          document.getElementById('form_delivery').style.display = 'none';
        }
      }
    }
  }
}

function setSelected_type(which, selection)
{
  if (which && selection)
  {
    var dropmenu = document.getElementById(which + '_dropmenu');
    var dropmenu_select = document.getElementById(which + '_select');
    var dropmenu_value = document.getElementById(which + '_value');
    
    if (dropmenu && dropmenu_select && dropmenu_value)
    {
      dropmenu_value.value = (selection.id).split('_')[1];
      if (dropmenu_value.value == 0)
      {
        dropmenu_select.innerHTML = 'Vali transporditsoon';
        selection.style.display = 'none';
        var i = 0;
        while (i <= 99)
        {
          if (document.getElementById(which + '_' + i))
          {
            document.getElementById(which + '_' + i).className = 'unselected';
          }
          i++;
        }
      }
      else
      {
        dropmenu_select.innerHTML = (selection.innerHTML).substr(0, 27) + '...';
        if (document.getElementById(which + '_0'))
        {
          document.getElementById(which + '_0').className = 'unselected';
          document.getElementById(which + '_0').style.display = 'block';
        }
        if (which == 'zone')
          document.getElementById('form_delivery').style.display = 'none';
      }
      dropmenu.style.display = 'none';
      selection.className = 'selected';
    }
  }
}

function length_focus(el, msg)
{
  if (el.value == msg)
  {
    el.value = '';
  }
}
function length_blur(el)
{
  if (el.value == '')
  {
    el.value = msg;
  }
}

function initCalculator(ar1, ar2, ar3, p1, p2, p3, id1, id2, id3, addtobasket, showalert, title, length)
{
  if (ar1 || ar2 || ar3)
  {
    var actions = document.getElementById('calc_actions');
    var actions_moreinfo = document.getElementById('calc_actions_moreinfo');
    
    var length = parseFloat((document.getElementById('size').value).replace(',', '.'));
    var rp1_amount = parseFloat(document.getElementById('rp1_amount').innerHTML);
    var rp2_amount = parseFloat(document.getElementById('rp2_amount').innerHTML);
    var rp3_amount = parseFloat(document.getElementById('rp3_amount').innerHTML);
    var rp1_price = parseFloat(document.getElementById('rp1_price').innerHTML);
    var rp2_price = parseFloat(document.getElementById('rp2_price').innerHTML);
    var rp3_price = parseFloat(document.getElementById('rp3_price').innerHTML);
    
    var total = document.getElementById('calc-total');
    var total_vat = document.getElementById('calc-vat');
    var total_novat = document.getElementById('calc-novat');
    
    var results = document.getElementById('calc-results');
    var resultstotal = document.getElementById('calc-resultstotal');
    
    rp1_amount = Math.ceil(ar1 * length);
    rp2_amount = Math.ceil(ar2 * length);
    rp3_amount = Math.ceil(ar3 * length) + 1;
    
    rp1_price = rp1_amount * p1;
    rp2_price = rp2_amount * p2;
    rp3_price = rp3_amount * p3;
    
    if (total)
      total.innerHTML = (rp1_price + rp2_price + rp3_price).toFixed(2) + ' EEK';
    if (total_novat)
      total_novat.innerHTML = ((rp1_price + rp2_price + rp3_price) / 1.2).toFixed(2) + ' EEK';
    if (total_vat)
      total_vat.innerHTML = ((rp1_price + rp2_price + rp3_price) - ((rp1_price + rp2_price + rp3_price) / 1.2)).toFixed(2) + ' EEK';
    
    document.getElementById('rp1_amount').innerHTML = rp1_amount + ' tk';
    document.getElementById('rp2_amount').innerHTML = rp2_amount + ' tk';
    document.getElementById('rp3_amount').innerHTML = rp3_amount + ' tk';
    
    document.getElementById('rp1_price').innerHTML = rp1_price.toFixed(2);
    document.getElementById('rp2_price').innerHTML = rp2_price.toFixed(2);
    document.getElementById('rp3_price').innerHTML = rp3_price.toFixed(2);
    
    if (results)
      results.style.display = 'block';
    if (resultstotal)
      resultstotal.style.display = 'block';
    
    if (actions && actions_moreinfo)
    {
      actions.style.display = 'block';
      actions_moreinfo.style.display = 'block';
    }
    
    if (addtobasket == 'basket')
    {
      sBasket.addProducts(id1, rp1_amount, this);
      sBasket.addProducts(id2, rp2_amount, this);
      sBasket.addProducts(id3, rp3_amount, this);
    }
    else if (addtobasket == 'query')
    {
      sBasket.emptyBasket(id1, rp1_amount, id2, rp2_amount, id3, rp3_amount, title, length);
    }
    
    if (addtobasket == 'basket' || addtobasket == 'query')
    {
      if (showalert == true)
        alert(calc_msg1);
      else 
        alert(calc_msg2);
    }
  }
}

function set_focus(el, text)
{
  if (el.value == text)
  {
    el.value = '';
  }
}
function set_blur(el, text)
{
  if (el.value == '')
  {
    el.value = text;
  }
}
function set_focus2(el, text)
{
  if (el.innerHTML == text)
  {
    el.innerHTML = '';
  }
}
function set_blur2(el, text)
{
  if (el.innerHTML == '')
  {
    el.innerHTML = text;
  }
}

function sendQuery(ar1, ar2, ar3, p1, p2, p3, id1, id2, id3, title)
{
  var length = document.getElementById('size').value;
  initCalculator(ar1, ar2, ar3, p1, p2, p3, id1, id2, id3, 'query', false, title, length);
  var moreinfo = document.getElementById('moreinfo');
  if (moreinfo)
  {
    if (moreinfo.value == 1)
    {
      location.href = sBasket_link + '/?mode=query&mounting=1';
    }
    else
    {
      location.href = sBasket_link + '/?mode=query&mounting=0';
    }
  }
}

function choosePaymentandSubmit(bank)
{
  var bank_options = document.getElementById('bank_options');
  if (bank_options)
  {
    bank_options.value = bank;
    document.forms[1].submit();
  }
}