var __addflash;
var opacs = new Object();

function addVideo (c)
{
	if (false !== c)
	{
		var elem = document.createElement('div');
		elem.id = 'unique_dummy_video_layer';
		elem.style.top = document.documentElement.clientHeight / 2 - 130 + 'px';
		elem.style.left= document.documentElement.clientWidth / 2 - 160 + 'px';
		elem.innerHTML = 'laen videot...';

		document.body.appendChild(elem);

		elem = null;

		__addflash = setInterval('writeFlash(\'' + c + '\')', 10);
	}
	else
	{
		if (document.getElementById('unique_dummy_video_layer'))
		{
			var elm = document.body.removeChild(document.getElementById('unique_dummy_video_layer'));

			elm = null;
		}
	}
}

function writeFlash (c)
{
	if (80 == opacs.pageOverlay)
	{
		clearInterval(__addflash);

		var so = new SWFObject("/flash/mediaplayer.swf", "mediaplayer", "100%", "100%", "8", "#FF6600");
		so.addParam("allowfullscreen","false");
		so.addVariable("file", c);
		so.addVariable("type","flv");
		so.write('unique_dummy_video_layer');
		
		var closeBtn = document.createElement('div');
		closeBtn.innerHTML = '<a href="#" onclick="showVideo(false);">sulge</a>';
		
		document.getElementById('unique_dummy_video_layer').appendChild(closeBtn);

		closeBtn = null;
	}
}

function showVideo (id)
{
	if (false !== id)
	{
		var pSize = getPageSize();
		overlay(0, pSize[1], true);
		addVideo(id);
	}
	else
	{
		overlay(0, 0, false);
		addVideo(false);
	}
}

document.onkeydown = function (e)
{
	var ev = e ? e : window.event;
	var _k = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;

	switch (_k)
	{
		case 27: showVideo(false); break;
		default:
	}
}

function overlay (w, h, c)
{
	var id = 'pageOverlay';

	if (c)
	{
		if (!document.getElementById(id))
		{
			var elm = document.createElement('div');

			elm.id = id;
			if (0 != w) elm.style.width = w + 'px';
			if (0 != h) elm.style.height= h + 'px';
			elm.style.display = 'none';

			document.body.appendChild(elm);
			changeOpac(0, id);
			elm.style.display = 'block';

			addOnClick(id, 'showVideo(false);');

			opacity(id, 0, 80, 200);
		}
	}
	else
	{
		if (document.getElementById(id))
		{
			var elm = document.body.removeChild(document.getElementById(id));
		}
	}

	elm = null;
}

function addOnClick (element, action)
{
	document.getElementById(element).onclick = function () { eval(action); }

	element = null;
}

function getPageSize()
{

	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

function opacity(id, opacStart, opacEnd, millisec) 
{
	opacs[id] = 0;

	//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++;
		}
	}
}

//change the opacity for different browsers
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 + ")";

	opacs[id] = opacity;
}

var currentReferenceImage = 0;
function changeReferencesImage(URL, elementID)
{
	if (currentReferenceImage!=0)
	{
		var oldSelectedImage = document.getElementById('referencegallery_item_'+currentReferenceImage);
		oldSelectedImage.className="referencegallery_item";
		oldSelectedImage.onmouseout=function()
		{
			this.className='referencegallery_item'
		};
	}
	
	var newSelectedImage = document.getElementById('referencegallery_item_'+elementID);
	newSelectedImage.className="referencegallery_item referencegallery_hover";
	newSelectedImage.onmouseout=function()
	{
		this.className='referencegallery_item referencegallery_hover'
	};

	document.getElementById('reference_image').style.backgroundImage="url('"+URL+elementID+"')";
	document.getElementById('reference_text').innerHTML=document.getElementById('reference_text_'+elementID).value;
	currentReferenceImage = elementID;
}
function changeProductImage(URL, elementID, URL2)
{
	document.getElementById('product_image').src=URL+elementID;
	document.getElementById('product_image').onclick = function ()
	{
		startZoomAnimation(this, URL2+elementID);
	}
}
function nextReferencesPage()
{
	if (document.getElementById('referencegallery_forward').className != 'referencegallery_forward_gray')
	{
		document.getElementById('referencegallery_backward').className = 'referencegallery_backward_blue';
		referencesGallery = document.getElementById('reference_gallery');
		referencesGallery.scrollLeft = referencesGallery.scrollLeft + referencesGallery.offsetWidth;
		if (referencesGallery.scrollWidth == referencesGallery.scrollLeft + referencesGallery.offsetWidth)
		{
			document.getElementById('referencegallery_forward').className = 'referencegallery_forward_gray';
		}
	}
}
function previousReferencesPage()
{
	if (document.getElementById('referencegallery_backward').className != 'referencegallery_backward_gray')
	{
		document.getElementById('referencegallery_forward').className = 'referencegallery_forward_blue';
		referencesGallery = document.getElementById('reference_gallery');
		referencesGallery.scrollLeft = referencesGallery.scrollLeft - referencesGallery.offsetWidth;
		if (referencesGallery.scrollLeft == 0)
		{
			document.getElementById('referencegallery_backward').className = 'referencegallery_backward_gray';
		}
	}
}
function doOnload()
{
	if (document.getElementById('reference_gallery'))
	{
		if (document.getElementById('reference_gallery').scrollWidth > document.getElementById('reference_gallery').offsetWidth)
		{
			document.getElementById('referencegallery_forward').className = 'referencegallery_forward_blue';
		}
	}
	if (document.getElementById('firstpage_top_image'))
	{
		startRotate(pictureArray, document.getElementById('firstpage_top_image'));
	}
	if (document.getElementById('newproducts'))
	{
		startRotateBlock(newProductPictures, newProductElements, document.getElementById('newproducts'));
	}
}



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();

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 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";
        }
	}
	
