﻿// JScript File

var amount = 12; //more is slower
var timeout = 10;
var interval = true;
var targetLeft = 0;
var currentLeft = 0;

var intervalHover = true;

var intervalTop = true;
var targetTop = 0;
var currentTop = 0;

var isHoverScrollingLeft = false;
var isHoverScrollingRight = false;
var isscrollingupordown = false;
var isPageScrolling = false;

var hoveramount = 3;
var maxleft = 0;

function finnSentrum() {
	ua = navigator.userAgent.toString().toLowerCase();
	var theElement = document.getElementById("mainframe");
	var positionX = 0;
	while (theElement != null)
	{
		positionX += theElement.offsetLeft;
		theElement = theElement.offsetParent;
	}
	if (ua.indexOf('opera')!=-1 || ua.indexOf('firefox')!=-1) { 
		positionX += 4;  //IE viser 4 px til venstre.
	} else if (ua.indexOf('safari')!=-1) { 
		positionX += 3;  //IE viser 4 px til venstre.
	}
	return Math.round (positionX)
}

function getPosition(e) {
    var adjustment = 233;
    var topleftX = finnSentrum();  //gjøres hver gang i tilfelle vinduet resizes
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    } 
    else {
        var de = document.documentElement;
        var b = document.body;
        cursor.x = e.clientX + 
            (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
        cursor.y = e.clientY + 
            (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
    }
}

function hoverLeft()
{
    if (isHoverScrollingLeft==false) {
        hoverScrollLeft();
        isHoverScrollingLeft = true;
        isHoverScrollingRight = false
    }
}
function hoverRight()
{
    if (isHoverScrollingRight==false) {
        hoverScrollRight();
        isHoverScrollingRight = true;
        isHoverScrollingLeft = false;
    }
}


function decreaseHoverLeft ()
{
    currentLeft = currentLeft - hoveramount;
    if (currentLeft<0) currentLeft = 0;
    setSidetall(currentLeft);
    var pnlProdukter = document.getElementById("pnlProdukter");
    pnlProdukter.scrollLeft = currentLeft;
}
function increaseHoverLeft ()
{
    currentLeft = currentLeft + hoveramount;
    if (currentLeft > maxleft && maxleft != 0) currentLeft = maxleft;
    setSidetall(currentLeft);
    var pnlProdukter = document.getElementById("pnlProdukter");
    pnlProdukter.scrollLeft = currentLeft;
}

function clickScrollLeft ()
{
    self.clearInterval(interval);
    
    var pnlProdukter = document.getElementById("pnlProdukter");
    if (pnlProdukter.scrollTop > 0) {
        hide();
    }
    
    var heltall = parseInt(targetLeft);
    var modulus = heltall % 640;
    if (modulus == 0) heltall = heltall - 640;
    sidetallverdi = (heltall - modulus);
    
    targetLeft = sidetallverdi;
    if (targetLeft<0) targetLeft = 0;
    scrollLeft();
}
function clickScrollRight ()
{
    self.clearInterval(interval);
    
    var pnlProdukter = document.getElementById("pnlProdukter");
    if (pnlProdukter.scrollTop > 0) {
        hide();
    }
    
    var heltall = parseInt(targetLeft);
    var modulus = heltall % 640;
    sidetallverdi = (heltall - modulus);
    
    
    targetLeft = sidetallverdi + 640
    if (targetLeft > maxleft && maxleft != 0) targetLeft = maxleft;
    scrollRight();
}

function setSidetall(tall) {
    var heltall = parseInt(tall);
    var modulus = heltall % 640;
    sidetallverdi = (heltall - modulus);
    var pnlSidetall = document.getElementById("pnlSidetall");
    var linker = pnlSidetall.getElementsByTagName("a");
    for (i = 0 ; i < linker.length ; i++) 
    {
        var link = linker[i];
        //alert(link);
        if(link.className.indexOf("sidetall")!=-1) {
            link.className = "sidetall";
            if (link.href.indexOf("(" + sidetallverdi + ")")!=-1) link.className += " selected";
        }
    }
    if (targetLeft> 3200) {
        pnlSidetall.scrollLeft = (targetLeft-3200)/24.7;
        //alert(pnlSidetall.scrollLeft );
    } else {
        pnlSidetall.scrollLeft = 0;
    }
}

function increaseLeft ()    //Scroller mot høyre
{
    setSidetall(targetLeft);
    var pnlProdukter = document.getElementById("pnlProdukter");
    if (currentLeft > targetLeft)                       //Ferdig scrollet
    {
        currentLeft = targetLeft;
        pnlProdukter.scrollLeft = targetLeft;
        self.clearInterval(interval);
        isPageScrolling = false;
    } else {
        var diff = parseInt(targetLeft - currentLeft);  //Må scrolle mer
        var thisamount = parseInt(diff / amount)
        if (thisamount < 1) thisamount = 1;
        currentLeft = currentLeft + thisamount;
        pnlProdukter.scrollLeft += thisamount;
    }
}
function decreaseLeft ()    //Scroller mot venstre
{
    setSidetall(targetLeft);
    var pnlProdukter = document.getElementById("pnlProdukter");
    if (currentLeft < targetLeft)                       //Ferdig scrollet
    {
        currentLeft = targetLeft;
        pnlProdukter.scrollLeft = targetLeft;
        self.clearInterval(interval);
        setSidetall(targetLeft);
        isPageScrolling = false;
    } else {
        var diff = parseInt(currentLeft - targetLeft);  //Må scrolle mer
        var thisamount = parseInt(diff / amount)
        if (thisamount < 1) thisamount = 1;
        currentLeft = currentLeft - thisamount;
        pnlProdukter.scrollLeft -= thisamount;
    }
}
function increaseTop () //Viser enkeltprodukt, skjuler produktliste
{
    var pnlProdukter = document.getElementById("pnlProdukter");
    //var pnlEnkeltprodukt = document.getElementById("pnlEnkeltprodukt");
    //pnlEnkeltprodukt.style.marginLeft = pnlProdukter.scrollLeft + "px";  //Fiks for hoverscrolling og pagescrolling som henger igjen noen ganger:
    
    if (currentTop > targetTop)                         //ferdig scrollet.
    {
        pnlProdukter.scrollTop = targetTop;
        self.clearInterval(intervalTop);
        isscrollingupordown = false;
        var lnkZoom = document.getElementById("lnkZoom");
        lnkZoom.style.display = "block";
        
    } else {
        var diff = parseInt(targetTop - currentTop);    //Må scrolle mer
        var thisamount = parseInt(diff / amount)
        if (thisamount < 1) thisamount = 1;
        currentTop = currentTop + thisamount;
        pnlProdukter.scrollTop += thisamount;
        isscrollingupordown = true;
    }


}
function decreaseTop () //Skjuler enkeltprodukt, viser produktliste
{
    var pnlProdukter = document.getElementById("pnlProdukter");
    if (currentTop < targetTop)                         //ferdig scrollet.
    {
        pnlProdukter.scrollTop = targetTop;
        self.clearInterval(intervalTop);
        isscrollingupordown = false;
        var lnkZoom = document.getElementById("lnkZoom");
        lnkZoom.style.display = "none";
    } else {
        var diff = parseInt(currentTop - targetTop);    //Må scrolle mer
        var thisamount = parseInt(diff / amount)
        if (thisamount < 1) thisamount = 1;
        currentTop = currentTop - thisamount;
        pnlProdukter.scrollTop -= thisamount;
        isscrollingupordown = true;
    }
}

function hoverScrollRight()
{
    intervalHover = self.setInterval("increaseHoverLeft();",timeout);
}
function hoverScrollLeft()
{
    intervalHover = self.setInterval("decreaseHoverLeft();",timeout);
}
function hoverScrollStop()
{
    isHoverScrollingLeft = false;
    isHoverScrollingRight = false;
    self.clearInterval(intervalHover);
}
function scrollRight()
{
    isPageScrolling = true;
    hoverScrollStop();
    interval = self.setInterval("increaseLeft();",timeout);
}
function scrollLeft()
{
    isPageScrolling = true;
    hoverScrollStop();
    interval = self.setInterval("decreaseLeft();",timeout);
}

function scrollDown(number)
{
    targetTop = number;
    intervalTop = self.setInterval("increaseTop();",timeout);
}
function scrollUp(number)
{
    targetTop = number;
    intervalTop = self.setInterval("decreaseTop();",timeout);
}

function scrollto(number)
{
    //var produktrad = document.getElementById("produktrad");
    //if (produktrad.style.marginTop != "0px") hide();
    
    self.clearInterval(interval);
    //self.clearInterval(intervalTop);
    
    var pnlProdukter = document.getElementById("pnlProdukter");
    currentLeft = pnlProdukter.scrollLeft;
    
    targetLeft = number;
    
    if (pnlProdukter.scrollTop > 0) {
        hide();
    }
    
    var diff = targetLeft - currentLeft;
    if (diff < 0) 
    {
        //alert("scrolling left " + diff);
        scrollLeft();
    }
    else if (diff > 0) 
    {
        //alert("scrolling right " + diff);
        scrollRight();
    }
}