﻿//--------------------------------------------------------------------------------
//onLoad event.
//--------------------------------------------------------------------------------
//Ved å bruke denne (prototype) istedet for window.onload får vi ikke konflikt om det skulle dukke opp en 
//annen onload funksjon, slik som det f.eks. gjør når vi bruker googlemaps.
Event.observe(window, 'load', function() {

//IE6 check
    try
    {
    BrowserCompatible.allowCancel = true;
    BrowserCompatible.allowToHide = true;
    BrowserCompatible.cookiesExpire = 7;
    BrowserCompatible.images = {"background": ResolveUrl("~/App_Themes/Master/Images/BrowserCheck/bg.gif"),"cancel": ResolveUrl("~/App_Themes/Master/Images/BrowserCheck/cancel.gif")};
     
    BrowserCompatible.lang="no";
    BrowserCompatible.check(); 
    
    //Init resizecheck, se onresize event.
    window.g_prevSize = getViewportSize();
    //alert('onload');
    resizeElements();
    showHideEllipsis();
    ts('body', 1); //User font size
    }
    catch(ex)
    {}
});

//window.onload = function() 
//{ 
//	//Init resizecheck, se onresize event.
//	window.g_prevSize = getViewportSize();
//	//alert('onload');
//	resizeElements();
//} 

//--------------------------------------------------------------------------------
//onresize event.
//===============
//Det er en "bug" i IE som gjør at window.onresize ikke bare fyrer når man endrer
//vindu størrelsen men også når størelsen på selve dokument objektet endrer seg.
//Dette fører til at window.onresize fyrer av når vi gjør høydejusteringer i 
//resizeElements(e), noe som igjen fører til at alt går i loop.
//Ved å sjekke om den faktiske størrelsen har endret seg så kan vi ungå dette,
//det er det vi bruker metoden getViewportSize til. 
//Se forøvrig: http://blog.stchur.com/2006/09/06/the-ie-resize-bug-revisited/
//som beskriver denne "fixen".
//--------------------------------------------------------------------------------

window.onresize = function() {
    if (typeof window.g_prevSize == 'undefined') {
        //Det oppstår noen tilfeller der onload ikke blir kjørt. Bl.a. når vi viser googlemap.
        //Derfor kjører vi denne ekstra sjekken her som løser problemet.
        //Denne ser ut til å bli overfløding når vi bruker prototype Event.observe(window, 'load', function()...
        //Men jeg beholder denne for sikkerhetskyld uansett.
        //Init resizecheck, se onresize event.
        window.g_prevSize = getViewportSize();
        resizeElements();
        showHideEllipsis();
    }

    var currentSize = getViewportSize();
    if (currentSize[0] != g_prevSize[0] || currentSize[1] != g_prevSize[1]) {
        g_prevSize = currentSize;
        resizeElements()
        showHideEllipsis();
    }
}

function getViewportSize() {
    var size = [0, 0];
    if (typeof window.innerWidth != 'undefined') {
        size = [window.innerWidth, window.innerHeight];
    }
    else if (typeof document.documentElement != 'undefined' &&
           typeof document.documentElement.clientWidth != 'undefined' &&
           document.documentElement.clientWidth != 0) {
        size = [document.documentElement.clientWidth, document.documentElement.clientHeight];
    }
    else {
        size = [document.getElementsByTagName('body')[0].clientWidth,
            document.getElementsByTagName('body')[0].clientHeight];
    }
    return size;
}



//--------------------------------------------------------------------------------
//Heightadjustmentscript for elements.
//--------------------------------------------------------------------------------
function resizeElements(e) {

    var maxHeight = 0;
    var WebPubMaxTextContentHeight = 0;

    //Finner rader
    $$('div.WebPubFieldRow').each(function(row, i) {

        maxHeight = 0;
        var hasArticele = false;

        //"Resetter" høyden på hvert enkelt element slik at vi kan bruke offsetHeigth under til å 
        //finne den reelle max høyden. Dette er noe vi må gjøre for at scriptet skal fungere som 
        //påtenkt når man kjører det ved onresize.
        $(row).getElementsBySelector('div.textContent').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            //Sjekker om vi har en artikel
            if ($(element).up().match('div.StandardArticleMain')) {
                hasArticele = true;

                $(element).up().setStyle({
                    height: '100%'
                });
            }

            $(element).setStyle({
                height: '100%'
            });
        });

        //EtilizeTinyHeading2
        $(row).getElementsBySelector('div.EtilizeTinyHeading2').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            //Sjekker om vi har en artikel
            if ($(element).up().match('div.StandardArticleMain')) {
                hasArticele = true;

                $(element).up().setStyle({
                    height: '100%'
                });
            }

            $(element).setStyle({
                height: '100%'
            });
        });

        $(row).getElementsBySelector('div.BannerArticleMain').each(function(element, i) {
            hasArticele = true;
            $(element).up().setStyle({
                height: '100%'
            });
        });
        //end EtilizeTinyHeading2

        //EtilizeTinyBodyText
        $(row).getElementsBySelector('div.EtilizeTinyBodyText').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            //Sjekker om vi har en artikel
            if ($(element).up().match('div.StandardArticleMain')) {
                hasArticele = true;

                $(element).up().setStyle({
                    height: '100%'
                });
            }

            $(element).setStyle({
                height: '100%'
            });
        });

        $(row).getElementsBySelector('div.BannerArticleMain').each(function(element, i) {
            hasArticele = true;
            $(element).up().setStyle({
                height: '100%'
            });
        });
        //end EtilizeTinyBodyText

        //Produsentlogo Top. justerer høyde dersom produsentlog ligger over hovedbilde
        $(row).getElementsBySelector('td.EtilizeTinyLogo').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            //Sjekker om vi har en artikel
            if ($(element).up().match('div.StandardArticleMain')) {
                hasArticele = true;

                $(element).up().setStyle({
                    height: '100%'
                });
            }

            $(element).setStyle({
                height: '100%'
            });
        });

        $(row).getElementsBySelector('div.BannerArticleMain').each(function(element, i) {
            hasArticele = true;
            $(element).up().setStyle({
                height: '100%'
            });
        });
        //end Produsentlogo top


        //Går igjennom alle elementer på en rad og tar vare på den største høyden.
        $(row).getElementsBySelector('div.textContent').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            if ($(element).down('table') != undefined) {
                //For FLV player. Når vi bruker flv player finner vi ikke riktig høyde, ved å sjekke om vi har en
                //tabell (som inneholder playeren, kan vi finne høyden den er satt til. Dette kan kaskje få konflikt
                //med andre ting etterhvert men da får vi løse det når det dukker opp.
                if ($(element).down('table').offsetHeight > maxHeight) {
                    maxHeight = $(element).down('table').offsetHeight;
                    WebPubMaxTextContentHeight = $(element).down('table').offsetHeight;
                }
            }

            if ($(element).offsetHeight > maxHeight) {
                maxHeight = $(element).offsetHeight;
                WebPubMaxTextContentHeight = $(element).offsetHeight;
            }
        });

        //Setter høyden lik den største høyden (funnet over) for alle elementer på en rad.
        $(row).getElementsBySelector('div.textContent').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            //Justerer høyden for tiny mal.
            if ($(element).up().match('div.ElementTiny')) {
                //Her beregner vi høyden til teksten, bildet og overskriften på tiny malen for å trekke dette fra
                //høyden vi legger inn under bildet for å få dette til å stemme. 
                var tinyTopHeight = 0;
                tinyTopHeight = $(element).offsetHeight;

                if ($(element).previous(0) != undefined)
                    tinyTopHeight += $(element).previous(0).offsetHeight;

                if ($(element).next(0).down(0) != undefined)
                    tinyTopHeight += $(element).next(0).down(0).offsetHeight;

                if (tinyTopHeight < maxHeight) {
                    $(element).next(1).setStyle({
                        height: (maxHeight - tinyTopHeight) + 'px'
                    });
                }
                if (hasArticele)
                    return;
            }

            $(element).setStyle({
                height: (maxHeight) + 'px'
            });

        });

        // etilize EtilizeTinyHeading2
        $(row).getElementsBySelector('div.EtilizeTinyHeading2').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            if ($(element).down('table') != undefined) {
                //For FLV player. Når vi bruker flv player finner vi ikke riktig høyde, ved å sjekke om vi har en
                //tabell (som inneholder playeren, kan vi finne høyden den er satt til. Dette kan kaskje få konflikt
                //med andre ting etterhvert men da får vi løse det når det dukker opp.
                if ($(element).down('table').offsetHeight > maxHeight) {
                    maxHeight = $(element).down('table').offsetHeight;
                    WebPubMaxTextContentHeight = $(element).down('table').offsetHeight;
                }
            }

            if ($(element).offsetHeight > maxHeight) {
                maxHeight = $(element).offsetHeight;
                WebPubMaxTextContentHeight = $(element).offsetHeight;
            }
        });

        //Setter høyden lik den største høyden (funnet over) for alle elementer på en rad.
        $(row).getElementsBySelector('div.EtilizeTinyHeading2').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            //Justerer høyden for tiny mal.
            if ($(element).up().match('div.ElementEtilizeTiny')) {
                //Her beregner vi høyden til teksten, bildet og overskriften på tiny malen for å trekke dette fra
                //høyden vi legger inn under bildet for å få dette til å stemme. 
                var tinyTopHeight = 0;
                tinyTopHeight = $(element).offsetHeight;

                if ($(element).previous(0) != undefined)
                    tinyTopHeight += $(element).previous(0).offsetHeight;

                if ($(element).next(0).down(0) != undefined)
                    tinyTopHeight += $(element).next(0).down(0).offsetHeight;

                if (tinyTopHeight < maxHeight) {
                    $(element).next(1).setStyle({
                        height: (maxHeight - tinyTopHeight) + 'px'
                    });
                }
                if (hasArticele)
                    return;
            }

            $(element).setStyle({
                height: (maxHeight) + 'px'
            });

        });

        //end EtilizeTinyHeading2

        // EtilizeTinyBodyText
        $(row).getElementsBySelector('div.EtilizeTinyBodyText').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            if ($(element).down('table') != undefined) {
                //For FLV player. Når vi bruker flv player finner vi ikke riktig høyde, ved å sjekke om vi har en
                //tabell (som inneholder playeren, kan vi finne høyden den er satt til. Dette kan kaskje få konflikt
                //med andre ting etterhvert men da får vi løse det når det dukker opp.
                if ($(element).down('table').offsetHeight > maxHeight) {
                    maxHeight = $(element).down('table').offsetHeight;
                    WebPubMaxTextContentHeight = $(element).down('table').offsetHeight;
                }
            }

            if ($(element).offsetHeight > maxHeight) {
                maxHeight = $(element).offsetHeight;
                WebPubMaxTextContentHeight = $(element).offsetHeight;
            }
        });

        //Setter høyden lik den største høyden (funnet over) for alle elementer på en rad.
        $(row).getElementsBySelector('div.EtilizeTinyBodyText').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            //Justerer høyden for tiny mal.
            if ($(element).up().match('div.ElementEtilizeTiny')) {
                //Her beregner vi høyden til teksten, bildet og overskriften på tiny malen for å trekke dette fra
                //høyden vi legger inn under bildet for å få dette til å stemme. 
                var tinyTopHeight = 0;
                tinyTopHeight = $(element).offsetHeight;

                if ($(element).previous(0) != undefined)
                    tinyTopHeight += $(element).previous(0).offsetHeight;

                if ($(element).next(0).down(0) != undefined)
                    tinyTopHeight += $(element).next(0).down(0).offsetHeight;

                if (tinyTopHeight < maxHeight) {
                    $(element).next(1).setStyle({
                        height: (maxHeight - tinyTopHeight) + 'px'
                    });
                }
                if (hasArticele)
                    return;
            }

            $(element).setStyle({
                height: (maxHeight) + 'px'
            });

        });

        //end EtilizeTinyBodyText

        //Produsentlogo Top. justerer høyde dersom produsentlog ligger over hovedbilde
        $(row).getElementsBySelector('td.EtilizeTinyLogo').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            if ($(element).down('table') != undefined) {
                //For FLV player. Når vi bruker flv player finner vi ikke riktig høyde, ved å sjekke om vi har en
                //tabell (som inneholder playeren, kan vi finne høyden den er satt til. Dette kan kaskje få konflikt
                //med andre ting etterhvert men da får vi løse det når det dukker opp.
                if ($(element).down('table').offsetHeight > maxHeight) {
                    maxHeight = $(element).down('table').offsetHeight;
                    WebPubMaxTextContentHeight = $(element).down('table').offsetHeight;
                }
            }

            if ($(element).offsetHeight > maxHeight) {
                maxHeight = $(element).offsetHeight;
                WebPubMaxTextContentHeight = $(element).offsetHeight;
            }
        });

        //Setter høyden lik den største høyden (funnet over) for alle elementer på en rad.
        $(row).getElementsBySelector('td.EtilizeTinyLogo').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            //Justerer høyden for tiny mal.
            if ($(element).up().match('div.ElementEtilizeTiny')) {
                //Her beregner vi høyden til teksten, bildet og overskriften på tiny malen for å trekke dette fra
                //høyden vi legger inn under bildet for å få dette til å stemme. 
                var tinyTopHeight = 0;
                tinyTopHeight = $(element).offsetHeight;

                if ($(element).previous(0) != undefined)
                    tinyTopHeight += $(element).previous(0).offsetHeight;

                if ($(element).next(0).down(0) != undefined)
                    tinyTopHeight += $(element).next(0).down(0).offsetHeight;

                if (tinyTopHeight < maxHeight) {
                    $(element).next(1).setStyle({
                        height: (maxHeight - tinyTopHeight) + 'px'
                    });
                }
                if (hasArticele)
                    return;
            }            
            $(element).setStyle({
                //height: (maxHeight) + 'px'
                height: (38) + 'px'            
            });

        });

        //end Produsentlogo Top.



        var priceCellMaxHeight = 0;

        //Går igjennom alle elementer på en rad og tar vare på den største høyden.
        $(row).getElementsBySelector('td.PriceCell').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            if ($(element).offsetHeight > priceCellMaxHeight)
                priceCellMaxHeight = $(element).offsetHeight
        });

        //Setter høyden lik den største høyden (funnet over) for alle elementer på en rad.
        $(row).getElementsBySelector('td.PriceCell').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            $(element).setStyle({
                height: (priceCellMaxHeight) + 'px'
            });
        });



        //Gjør det samme som over men for overskriften. Dette er fordi hvis overskrift blir lang og
        //wraper på et element men ikke på de andre blir høydene forskjellige. Dette justerer slik
        //at høydene blir like også i overskriftsfeltet.
        //Vi bruker her scriptElementHeader classen for å identifisere headere til elementer.
        //Denne må legges til alle headere der man ønsker at scriptet skal virke og trenger ikke være
        //Definert i noen css. Bare laget for å finne riktig element i dette scriptet.
        maxHeight = 0;

        //"Resetter" høyden på hvert enkelt element slik at vi kan bruke offsetHeigth under til å 
        //finne den reelle max høyden. Dette er noe vi må gjøre for at scriptet skal fungere som 
        //påtenkt når man kjører det ved onresize.
        $(row).getElementsBySelector('h3.scriptElementHeader').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            $(element).setStyle({
                height: '100%'
            });
        });

        //Går igjennom alle elementer på en rad og tar vare på den største høyden.
        $(row).getElementsBySelector('h3.scriptElementHeader').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            if ($(element).offsetHeight > maxHeight)
                maxHeight = $(element).offsetHeight
        });

        //Setter høyden lik den største høyden (funnet over) for alle elementer på en rad.
        $(row).getElementsBySelector('h3.scriptElementHeader').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            $(element).setStyle({
                height: (maxHeight) + 'px'
            });
        });

        // scriptElementEtilizeTinyHeader
        $(row).getElementsBySelector('h3.scriptElementEtilizeTinyHeader').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            $(element).setStyle({
                height: '100%'
            });
        });

        //Går igjennom alle elementer på en rad og tar vare på den største høyden.
        $(row).getElementsBySelector('h3.scriptElementEtilizeTinyHeader').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            if ($(element).offsetHeight > maxHeight)
                maxHeight = $(element).offsetHeight
        });

        //Setter høyden lik den største høyden (funnet over) for alle elementer på en rad.
        $(row).getElementsBySelector('h3.scriptElementEtilizeTinyHeader').each(function(element, i) {
            //Hvis dette er en mal som skal strekkes over flere rader så er høyden lagt inn
            //manuelt og vi skal ikke kødde med den.
            if ($(element).up().match('div.ElementRowSpan2'))
                return;

            $(element).setStyle({
                height: (maxHeight) + 'px'
            });
        });
        // end scriptElementEtilizeTinyHeader



        var elementMaxHeight = 0;

        //Går igjennom alle elementer på en rad og tar vare på den største høyden.
        $(row).getElementsBySelector('div.WebPubElementEdit').each(function(element, i) {


            if ($(element).offsetHeight > elementMaxHeight)
                elementMaxHeight = $(element).offsetHeight
        });

        //Setter høyden på eventuelle DIVer som skal legge seg over elementet til å ha samme høyde som elementet
        $(row).getElementsBySelector('div.HiddenElement').each(function(element, i) {

            $(element).setStyle({
                height: (elementMaxHeight - 12) + 'px'
            });
        });


        $(row).getElementsBySelector('div.CutElement').each(function(element, i) {

            $(element).setStyle({
                height: (elementMaxHeight - 12) + 'px'
            });
        });






        //Under her går vi igjennom å justerer høydene mellom artikler og annonser for at de skal bli helt like.
        //Her tar vi hensyn til at annonser kan ha andre høyder i tillegg til textContent slik at vi må justere for det.
        if (hasArticele) {
            var WebPubElementMaxHeight = 0;
            var WebPubStandardArticleMainMaxHeight = 0;

            $(row).getElementsBySelector('div.Element', 'div.ElementTiny').each(function(element, i) {
                if ($(element).offsetHeight > WebPubElementMaxHeight)
                    WebPubElementMaxHeight = $(element).offsetHeight;
            });

            $(row).getElementsBySelector('div.StandardArticleMain').each(function(element, i) {
                if ($(element).offsetHeight > WebPubStandardArticleMainMaxHeight)
                    WebPubStandardArticleMainMaxHeight = $(element).offsetHeight;
            });


            $(row).getElementsBySelector('div.BannerArticleMain').each(function(element, i) {
                if ($(element).offsetHeight > WebPubStandardArticleMainMaxHeight)
                    WebPubStandardArticleMainMaxHeight = $(element).offsetHeight;
            });

            var DiffElementArticle = 0;

            if (WebPubElementMaxHeight > WebPubStandardArticleMainMaxHeight) {
                DiffElementArticle = WebPubElementMaxHeight - WebPubStandardArticleMainMaxHeight;
                $(row).getElementsBySelector('div.Element', 'div.ElementTiny').each(function(annonse, i) {
                    if (($(annonse).down('div.textContent').offsetHeight - DiffElementArticle) > WebPubMaxTextContentHeight) {
                        $(annonse).down('div.textContent').setStyle({
                            height: ($(annonse).down('div.textContent').offsetHeight - DiffElementArticle) + 'px'
                        });
                    }
                    else {
                        $(row).getElementsBySelector('div.StandardArticleMain').each(function(stdArt, i) {
                            $(stdArt).setStyle({
                                height: (WebPubElementMaxHeight - 22) + 'px' //Må fjerne paddingen og border
                            });
                        });

                        $(row).getElementsBySelector('div.BannerArticleMain').each(function(stdArt, i) {
                            $(stdArt).setStyle({
                                height: WebPubElementMaxHeight + 'px' //Må fjerne paddingen og border
                            });
                        });
                    }
                });
            }
            else if (WebPubElementMaxHeight < WebPubStandardArticleMainMaxHeight) {
                DiffElementArticle = WebPubStandardArticleMainMaxHeight - WebPubElementMaxHeight;
                if (WebPubElementMaxHeight != 0) {
                    $(row).getElementsBySelector('div.StandardArticleMain').each(function(stdArt, i) {
                        $(stdArt).down('div.textContent').setStyle({
                            height: ($(stdArt).down('div.textContent').offsetHeight - DiffElementArticle) + 'px'
                        });
                    });

                }
            }
        }
    });
}


//--------------------------------------------------------------------------------
//Order open window
//--------------------------------------------------------------------------------
function OrderInfoOpenWindow(ordreLinjeID) {
    var openWindow = window.open("Kundesenter_ordrerestinfo.aspx?OrdreLinjeID=" + ordreLinjeID, "OrderWindow", "toolbar=0,location=0,directories=0,status=no,menubar=0,scrollbars=0,resizable=0,width=350,height=200,top=200,left=200");
}

//--------------------------------------------------------------------------------
//Confirm box - delete order.
//--------------------------------------------------------------------------------
function ConfirmDeleteOrdre(BekreftSlettOrdreTxt) {
    if (confirm(BekreftSlettOrdreTxt)) {
        return true;
    } else {
        return false;
    }
}

//--------------------------------------------------------------------------------
//Confirm box - delete kndKontakt.
//--------------------------------------------------------------------------------
function ConfirmDeleteKndKontakt(BekreftSlettKndKontaktTxt) {
    if (confirm(BekreftSlettKndKontaktTxt)) {
        return true;
    } else {
        return false;
    }
}


//--------------------------------------------------------------------------------
//Design fix for left and right column - border.
//--------------------------------------------------------------------------------
function LeftAndRightColumnBorder() {
    var containerHeight = document.getElementById("PageContainer").offsetHeight;
    document.getElementById("PageColumnLeft").style.height = containerHeight + 'px';
    document.getElementById("PageColumnRight").style.height = containerHeight + 'px';
}

//--------------------------------------------------------------------------------
//Shop balloon layer.
//--------------------------------------------------------------------------------
function SearchFilterShow(obj, event, width, txtID) {
    if (document.getElementById("BalloonLayer").style.visibility == "visible") {
        balloonHide()
    }
    else {
        displayBalloon(event, width, document.getElementById(txtID).innerHTML, "BalloonLayer");
    }

}


function balloonShow(event, width, txtID) {
    displayBalloon(event, width, document.getElementById(txtID).innerHTML, "BalloonLayer")
}


//--------------------------------------------------------------------------------
//Shop balloon layer for lagerstatus.
//--------------------------------------------------------------------------------
function balloonShowLagerStatus(event, width, tilgjForSalg, produktStatusID, bekreftet) {
    var sprDivId = '';

    if (tilgjForSalg > 0) {
        //--> på lager
        sprDivId = 'BalloonLayer1';
    }
    else if (tilgjForSalg == 0 && (produktStatusID == 1 || produktStatusID == 4)) {
        if (bekreftet.toLowerCase() == 'true') {
            //Ikke på lager, bekretet inn på lager.
            sprDivId = 'BalloonLayer2';
        }
        else {
            //Ikke på lager, ubekretet inn på lager.
            sprDivId = 'BalloonLayer3';
        }
    }
    else if (tilgjForSalg == 0 && produktStatusID == 2) {
        //Ikke på lager, men bestillingsvare
        sprDivId = 'BalloonLayer4';
    }

    displayBalloonLagerStatus(event, width, sprDivId)
}

//--------------------------------------------------------------------------------
//Display balloon for ActivatePublisher.
//--------------------------------------------------------------------------------
function ShowPublisher() {
    document.getElementById("DivPubMenu").style.visibility = "visible";
}

function HidePublisher() {
    document.getElementById("DivPubMenu").style.visibility = "hidden";
}

function HidePublisherLinks() {
    document.getElementById("DivPubMenu2").style.visibility = "hidden";
}

function ShowPublisherLinks() {
    document.getElementById("DivPubMenu2").style.visibility = "visible";
}

//--------------------------------------------------------------------------------
//Display balloon.
//--------------------------------------------------------------------------------
function displayBalloon(event, width, txt, id) {
    var posLeft;
    var posTop;

    posLeft = (document.documentElement.scrollLeft + event.clientX) - 30;
    posTop = (document.documentElement.scrollTop + event.clientY) + 20;

    document.getElementById(id).innerHTML = txt;
    document.getElementById(id).style.left = posLeft + 'px';
    document.getElementById(id).style.top = posTop + 'px';
    document.getElementById(id).style.width = width;
    document.getElementById(id).style.visibility = "visible";
}

function displayBalloonLagerStatus(event, width, id) {
    var posLeft;
    var posTop;

    posLeft = (document.documentElement.scrollLeft + event.clientX) - 30;
    posTop = (document.documentElement.scrollTop + event.clientY) + 20;

    document.getElementById(id).style.left = posLeft + 'px';
    document.getElementById(id).style.top = posTop + 'px';
    document.getElementById(id).style.width = width;
    document.getElementById(id).style.visibility = "visible";
}

function DisplayFlyout(event, id, sourceObject) {
  var posLeft;
  var posTop;

  var offsetX = 0;
  var offsetY = 0;
  posLeft = getPosXFlyout( sourceObject) ;
  posTop = getPosYFlyout(sourceObject);
//  posLeft = (document.documentElement.scrollLeft + event.clientX) + offsetX;
//  posTop = (document.documentElement.scrollTop + event.clientY) + offsetY;

//  posLeft =  event.clientX + offsetX;
//  posTop =  event.clientY + offsetY;

//  posLeft = (document.documentElement.scrollLeft + sourceObject.x) + offsetX;
//    posTop = (document.documentElement.scrollTop + sourceObject.y) + offsetY;
/*
  var flyoutContainer = document.getElementById('FlyoutContainer');
  var flyoutContent = document.getElementById(id);
  
  flyoutContainer.innerHTML = flyoutContent.innerHTML;
  flyoutContainer.style.display = "block";

  flyoutContainer.style.left = posLeft + 'px';
  flyoutContainer.style.top = posTop + 'px';
  */
  var flyoutContent = document.getElementById(id);
  flyoutContent.style.display = 'block';
}

function HideFlyout(id) {
  //  var flyoutContainer = document.getElementById('FlyoutContainer');
  var flyoutContent = document.getElementById(id);
  flyoutContent.style.display = 'none';
  //flyoutContainer.style.display = "none";
}
//--------------------------------------------------------------------------------
//Hide balloon layer.
//--------------------------------------------------------------------------------
function balloonHide() {
    document.getElementById("BalloonLayer").style.visibility = "hidden";
}

function balloonHideLagerStatus() {
    try {
        document.getElementById("BalloonLayer1").style.visibility = "hidden";
        document.getElementById("BalloonLayer2").style.visibility = "hidden";
        document.getElementById("BalloonLayer3").style.visibility = "hidden";
        document.getElementById("BalloonLayer4").style.visibility = "hidden";
    }
    catch (err) { }
}

//--------------------------------------------------------------------------------
//Max length
//--------------------------------------------------------------------------------
function WebCartCountChar(obj, maxChar) {

    var str = obj.value;

    if (str.length > maxChar) {
        alert("Antall bokstaver kan ikke være over " + maxChar + ".");
        obj.value = str.substring(0, maxChar)
        obj.focus();
    }
}


//--------------------------------------------------------------------------------
//Set first radiobutton checked
//--------------------------------------------------------------------------------
function SetRadioButtonChecked() {
    if (document.forms[0].RadioList != undefined) {
        document.forms[0].RadioList[0].checked = true;
    }
}


//--------------------------------------------------------------------------------
//Func to make shure value field in FCKEditor is updated when run with ajax/gaia.
//Make shure update button runs this script onClick e.g:
//BtnEdOk.OnClientClick = string.Format("FCKUpdateLinkedField('{0}');", FCKeditor1.ClientID);
//--------------------------------------------------------------------------------
function FCKUpdateLinkedField(id, index) {
    try {
        if (typeof (FCKeditorAPI) == "object") {
            FCKeditorAPI.GetInstance(id).UpdateLinkedField();

            var fckInput = document.getElementById(id);
            var ourOwnFckInput = document.getElementById('FCK' + index);

            ourOwnFckInput.value = fckInput.value;

            //           var FckSet = document.getElementById('FCKSET' + index);
            //           FckSet.value = '1';
        }

    }
    catch (err) {
        //  alert(err);
    }
}


// FCKeditor_OnComplete is a special function that is called when an editor
// instance is loaded ad available to the API. It must be named exactly in
// this way.
function FCKeditor_OnComplete(editorInstance) {
    try
    {
        var fckID = editorInstance.Name;
        var path = fckID.substring(0, fckID.lastIndexOf("_"));
        
        if (fckID.indexOf("FCKeditorInList") > -1)
            var hiddenObj = document.getElementById(path + "_HdnFldFCKeditorInListLoadStat");
        else
            var hiddenObj = document.getElementById(path + "_HdnFldFCKeditor1LoadStat");

        hiddenObj.value = "true";
    }
     catch (err) {
       alert("FCK error: " + err);
    }
}


//--------------------------------------------------------------------------------
//ProduktInfo : Func to switch images and open them in lightbox modus.
// START
//--------------------------------------------------------------------------------
var selectedImgID = 0;
var placeholderID = 0;
var boxImageID = 0;

function switchImg(obj, imgName) {
    document.getElementById(imgName).src = imgDir + mediumImg[obj.getAttribute("imgID")];
    selectedImgID = obj.getAttribute("imgID");
    placeholderID = obj.getAttribute("imgID");
}

function switchImgMerged(obj, imgName) {
    document.getElementById(imgName).style.left = '-' + mediumImg[obj.getAttribute("imgID")] + 'px';
    selectedImgID = obj.getAttribute("imgID");
    placeholderID = obj.getAttribute("imgID");
}


function switchImgOff(obj, imgName) {
}


function switchBigImgMerged(obj) {
    document.getElementById("bigImg").src = imgDir + bigImg[obj.getAttribute("imgID")];
    boxImageID = obj.getAttribute("imgID");
}

function switchBigImg(obj) {
    document.getElementById("bigImg").src = imgDir + bigImg[obj.getAttribute("imgID")];
    boxImageID = obj.getAttribute("imgID");
}

function showImgMerged(obj, imgName) {

    document.getElementById("bigImg").src = imgDir + bigImg[selectedImgID];
    boxImageID = obj.getAttribute("imgID");
    showBox();
}


function showImg(obj, imgName) {
    document.getElementById("bigImg").src = imgDir + bigImg[selectedImgID];
    showBox();
}

function nextBigImgClick() {
    boxImageID++;
    if (boxImageID < bigImg.length) {
        document.getElementById("bigImg").src = imgDir + bigImg[boxImageID];
    }
    else {
        boxImageID = 0;
        document.getElementById("bigImg").src = imgDir + bigImg[0];
    }

}

function nextImgMerged(obj, imgName) {
    var nextImgage = "";

    selectedImgID++;

    if (selectedImgID == (mediumImg.length)) {
        nextImgage = mediumImg[0];
        selectedImgID = 0;
    }
    else {
        nextImgage = mediumImg[selectedImgID];
    }

    document.getElementById(imgName).style.left = '-' + nextImgage + 'px';

    //Change thumbernail image order
    changeThumbernailOrderNextMerged(imgName);
}

function nextImg(obj, imgName) {
    var nextImgage = "";

    selectedImgID++;

    if (selectedImgID == (mediumImg.length)) {
        nextImgage = mediumImg[0];
        selectedImgID = 0;
    }
    else {
        nextImgage = mediumImg[selectedImgID];
    }

    document.getElementById(imgName).src = imgDir + nextImgage;

    //Change thumbernail image order
    changeThumbernailOrderNext(imgName);
}


function changeThumbernailOrderNext(imgName) {
    var startImgID;
    placeholderID++;

    if (placeholderID >= numberOfVisibleThumbImages) {
        placeholderID = numberOfVisibleThumbImages - 1;

        if (selectedImgID < numberOfVisibleThumbImages) {
            startImgID = (smallImg.length + selectedImgID) - (numberOfVisibleThumbImages - 1);
        }
        else {
            startImgID = selectedImgID - (numberOfVisibleThumbImages - 1)
        }

        for (var i = 0; i < numberOfVisibleThumbImages; i++) {
            if (startImgID > (smallImg.length - 1)) {
                startImgID = 0;
            }

            document.getElementById(imgName + "_thumb" + i).src = imgDir + smallImg[startImgID];
            document.getElementById(imgName + "_thumb" + i).setAttribute("imgID", startImgID);
            startImgID++;
        }
    }
}


function changeThumbernailOrderNextMerged(imgName) {
    var startImgID;
    placeholderID++;

    if (placeholderID >= numberOfVisibleThumbImages) {
        placeholderID = numberOfVisibleThumbImages - 1;

        if (selectedImgID < numberOfVisibleThumbImages) {
            startImgID = (smallImg.length + selectedImgID) - (numberOfVisibleThumbImages - 1);
        }
        else {
            startImgID = selectedImgID - (numberOfVisibleThumbImages - 1)
        }

        for (var i = 0; i < numberOfVisibleThumbImages; i++) {
            if (startImgID > (smallImg.length - 1)) {
                startImgID = 0;
            }

            document.getElementById(imgName + "_thumb" + i).style.left = '-' + smallImg[startImgID] + 'px';
            document.getElementById(imgName + "_thumb" + i).setAttribute("imgID", startImgID);
            startImgID++;
        }
    }
}

function previousImg(obj, imgName) {
    var previousImgage = "";

    selectedImgID--;

    if (selectedImgID < 0) {
        previousImgage = mediumImg[mediumImg.length - 1];
        selectedImgID = mediumImg.length - 1;
    }
    else {
        previousImgage = mediumImg[selectedImgID];
    }

    document.getElementById(imgName).src = imgDir + previousImgage;

    //Change thumbernail image order
    changeThumbernailOrderPrevious(imgName);
}


function previousImgMerged(obj, imgName) {
    var previousImgage = "";

    selectedImgID--;

    if (selectedImgID < 0) {
        previousImgage = mediumImg[mediumImg.length - 1];
        selectedImgID = mediumImg.length - 1;
    }
    else {
        previousImgage = mediumImg[selectedImgID];
    }

    document.getElementById(imgName).style.left = '-' + previousImgage + 'px';

    //Change thumbernail image order
    changeThumbernailOrderPreviousMerged(imgName);
}
function changeThumbernailOrderPrevious(imgName) {
    var startImgID = selectedImgID;
    placeholderID--;

    if (placeholderID < 0) {
        placeholderID = 0;
    }

    if (placeholderID == 0) {
        for (var i = 0; i < numberOfVisibleThumbImages; i++) {
            if (startImgID > (smallImg.length - 1)) {
                startImgID = 0;
            }

            document.getElementById(imgName + "_thumb" + i).src = imgDir + smallImg[startImgID];
            document.getElementById(imgName + "_thumb" + i).setAttribute("imgID", startImgID);
            startImgID++;
        }
    }
}

function changeThumbernailOrderPreviousMerged(imgName) {
    var startImgID = selectedImgID;
    placeholderID--;

    if (placeholderID < 0) {
        placeholderID = 0;
    }

    if (placeholderID == 0) {
        for (var i = 0; i < numberOfVisibleThumbImages; i++) {
            if (startImgID > (smallImg.length - 1)) {
                startImgID = 0;
            }

            document.getElementById(imgName + "_thumb" + i).style.left = '-' + smallImg[startImgID] + 'px';
            document.getElementById(imgName + "_thumb" + i).setAttribute("imgID", startImgID);
            startImgID++;
        }
    }
}
//--------------------------------------------------------------------------------
// END ProduktInfo images
//--------------------------------------------------------------------------------


//--------------------------------------------------------------------------------
// START - LightBox
//--------------------------------------------------------------------------------
function showBox() {
    $('ProdImgLogo').style.zIndex = "3"; //Produsent logo vises over produkt bilde hvis dette ikke gjøres
    $('overlay').show();
    center('box');
    return false;
}

function hideBox() {

    $('ProdImgLogo').style.zIndex = "4"; //Sørger for at produsent logo blir klikkbar
    $('box').hide();
    $('overlay').hide();
    if (window.navigator.appName == "Opera")
        location.reload(true);
    return false;
}

function showBoxVideo() {
    $('ProdImgLogo').style.zIndex = "3"; //Produsent logo vises over produkt bilde hvis dette ikke gjøres
    $('overlayVideo').show();
    center('boxVideo');
    return false;
}

function hideBoxVideo() {

    $('ProdImgLogo').style.zIndex = "4"; //Sørger for at produsent logo blir klikkbar
    $('boxVideo').hide();
    $('overlayVideo').hide();
    if (window.navigator.appName == "Opera")
        location.reload(true);
    return false;
}

function center(element) {
    try {
        element = $(element);
    } catch (e) {
        return;
    }

    var my_width = 0;
    var my_height = 0;

    if (typeof (window.innerWidth) == 'number') {
        my_width = window.innerWidth;
        my_height = window.innerHeight;
    } else if (document.documentElement &&
			 (document.documentElement.clientWidth ||
			   document.documentElement.clientHeight)) {
        my_width = document.documentElement.clientWidth;
        my_height = document.documentElement.clientHeight;
    }
    else if (document.body &&
			(document.body.clientWidth || document.body.clientHeight)) {
        my_width = document.body.clientWidth;
        my_height = document.body.clientHeight;
    }

    element.style.position = 'fixed';
    element.style.zIndex = 999;

    var scrollY = 0;

    //    if (document.documentElement && document.documentElement.scrollTop) {
    //        scrollY = document.documentElement.scrollTop;
    //    } else if (document.body && document.body.scrollTop) {
    //        scrollY = document.body.scrollTop;
    //    } else if (window.pageYOffset) {
    //        scrollY = window.pageYOffset;
    //    } else if (window.scrollY) {
    //        scrollY = window.scrollY;
    //    }

    var elementDimensions = Element.getDimensions(element);

    var setX = (my_width - elementDimensions.width) / 2;
    var setY = (my_height - elementDimensions.height) / 2 + scrollY;

    setX = (setX < 0) ? 0 : setX;
    setY = (setY < 0) ? 0 : setY;

    element.style.left = setX + "px";
    element.style.top = setY + "px";

    element.style.display = 'block';
}


function centerWindow(element) {
    try {
        element = $(element);
    } catch (e) {
        return;
    }

    var my_width = 0;
    var my_height = 0;

    if (typeof (window.innerWidth) == 'number') {
        my_width = window.innerWidth;
        my_height = window.innerHeight;
    } else if (document.documentElement &&
			 (document.documentElement.clientWidth ||
			   document.documentElement.clientHeight)) {
        my_width = document.documentElement.clientWidth;
        my_height = document.documentElement.clientHeight;
    }
    else if (document.body &&
			(document.body.clientWidth || document.body.clientHeight)) {
        my_width = document.body.clientWidth;
        my_height = document.body.clientHeight;
    }

    //    element.style.position = 'fixed';
    //    element.style.zIndex = 999;

    var scrollY = 0;

    if (document.documentElement && document.documentElement.scrollTop) {
        scrollY = document.documentElement.scrollTop;
    } else if (document.body && document.body.scrollTop) {
        scrollY = document.body.scrollTop;
    } else if (window.pageYOffset) {
        scrollY = window.pageYOffset;
    } else if (window.scrollY) {
        scrollY = window.scrollY;
    }

    var elementDimensions = Element.getDimensions(element);

    var setX = (my_width - elementDimensions.width) / 2;
    var setY = (my_height - elementDimensions.height) / 2 + scrollY;

    setX = (setX < 0) ? 0 : setX;
    setY = (setY < 0) ? 0 : setY;

    element.style.left = setX + "px";
    element.style.top = setY + "px";

    element.style.display = 'block';
}
//--------------------------------------------------------------------------------
// END - LightBox
//--------------------------------------------------------------------------------



function focusOnSearch(obj) {
    obj.className = "TextBoxSearchEnable";
    obj.value = "";
}

//--------------------------------------------------------------------------------
// start - Skjul Element
//--------------------------------------------------------------------------------
function HideElement(hidingElement) {

    hidingElement.style.display = 'none';
}

//--------------------------------------------------------------------------------
// start - Vis Element meny 
//--------------------------------------------------------------------------------

function SelectElement(areaUniqueName, webPubFieldID, webPubElementID, webSiteMapNodeID) {
    document.getElementById('SelectedAreaUniqueName').value = areaUniqueName;
    document.getElementById('SelectedWebPubFieldID').value = webPubFieldID;
    document.getElementById('SelectedWebPubElementID').value = webPubElementID;
    document.getElementById('SelectedWebSiteMapNodeID').value = webSiteMapNodeID;
}


function ShowElementMenu(event, elementMenuClientID, areaUniqueName, webPubFieldID, webPubElementID,
    activeAreaControlUniqueID, activeFieldControlUniqueID, activeElementControlUniqueID,
    productLinkButtonClientID, productLinkButtonDisplay,
    activateImgClientID, activateLinkClientID, activateDisplay,
    deactivateImgClientID, deactivateLinkClientID, deactivateDisplay,
    webSiteMapNodeID
    ) {
    var menu = document.getElementById(elementMenuClientID);

    var posLeft;
    var posTop;

    posLeft = (document.documentElement.scrollLeft + event.clientX) - 10;
    posTop = (document.documentElement.scrollTop + event.clientY) - 13;

    document.getElementById('SelectedAreaUniqueName').value = areaUniqueName;
    document.getElementById('SelectedWebPubFieldID').value = webPubFieldID;
    document.getElementById('SelectedWebPubElementID').value = webPubElementID;
    document.getElementById('ActiveFieldControl').value = activeFieldControlUniqueID;
    document.getElementById('ActiveElementControl').value = activeElementControlUniqueID;
    document.getElementById('ActiveAreaControl').value = activeAreaControlUniqueID;
    document.getElementById('SelectedWebSiteMapNodeID').value = webSiteMapNodeID;


    if (areaUniqueName == 'FooterContent1') {
        //Dette området står helt nederst på siden, så for at vi skal se hele menyen velger
        //vi å posisjonere menyen mye høyere opp
        posTop = posTop - 140;
    }

    menu.style.left = posLeft + 'px';
    menu.style.top = posTop + 'px';
    menu.style.display = 'inline';

    var productLinkButton = document.getElementById(productLinkButtonClientID);
    productLinkButton.style.display = productLinkButtonDisplay;

    var activateImg = document.getElementById(activateImgClientID);
    var deactivateImg = document.getElementById(deactivateImgClientID);
    var activateLink = document.getElementById(activateLinkClientID);
    var deactivateLink = document.getElementById(deactivateLinkClientID);

    activateImg.style.display = activateDisplay;
    activateLink.style.display = activateDisplay;

    deactivateImg.style.display = deactivateDisplay;
    deactivateLink.style.display = deactivateDisplay;
}


//--------------------------------------------------------------------------------
// start - Vis Felt meny 
//--------------------------------------------------------------------------------

function ShowFieldMenu(event, elementMenuClientID, areaUniqueName, webPubFieldID,
 activeAreaControlUniqueID, activeFieldControlUniqueID, webSiteMapNodeID) {
    var menu = document.getElementById(elementMenuClientID);

    var posLeft;
    var posTop;

    posLeft = (document.documentElement.scrollLeft + event.clientX) - 10;
    posTop = (document.documentElement.scrollTop + event.clientY);

    document.getElementById('SelectedAreaUniqueName').value = areaUniqueName;
    document.getElementById('SelectedWebPubFieldID').value = webPubFieldID;
    document.getElementById('ActiveFieldControl').value = activeFieldControlUniqueID;
    document.getElementById('ActiveAreaControl').value = activeAreaControlUniqueID;
    document.getElementById('SelectedWebSiteMapNodeID').value = webSiteMapNodeID;

    if (areaUniqueName == 'FooterContent1') {
        //Dette området står helt nederst på siden, så for at vi skal se hele menyen velger
        //vi å posisjonere menyen mye høyere opp
        posTop = posTop - 265;
    }
    menu.style.left = posLeft + 'px';
    menu.style.top = posTop + 'px';
    menu.style.display = 'inline';

}


//--------------------------------------------------------------------------------
// start - Vis område meny 
//--------------------------------------------------------------------------------

function ShowAreaMenu(event, elementMenuClientID, areaUniqueName, activeAreaControlUniqueID, webSiteMapNodeID) {
    var menu = document.getElementById(elementMenuClientID);

    var posLeft;
    var posTop;

    posLeft = (document.documentElement.scrollLeft + event.clientX) - 10;
    posTop = (document.documentElement.scrollTop + event.clientY);

    document.getElementById('SelectedAreaUniqueName').value = areaUniqueName;
    document.getElementById('ActiveAreaControl').value = activeAreaControlUniqueID;
    document.getElementById('SelectedWebSiteMapNodeID').value = webSiteMapNodeID;

    if (areaUniqueName == 'FooterContent1') {
        //Dette området står helt nederst på siden, så for at vi skal se hele menyen velger
        //vi å posisjonere menyen mye høyere opp
        posTop = posTop - 250;
    }
    menu.style.left = posLeft + 'px';
    menu.style.top = posTop + 'px';
    menu.style.display = 'inline';

    //  var updateControl = document.getElementById('GaiaUpdateControlAreaMenu');
    //  updateControl.style.left = posLeft + 'px';
    //  updateControl.style.top = posTop + 'px';
}


function ShowAreaSubmenu(event, submenuClientID) {
    var menu = document.getElementById(submenuClientID);

    var posLeft;
    var posTop;
    posLeft = (document.documentElement.scrollLeft + event.clientX) - 10;
    posTop = (document.documentElement.scrollTop + event.clientY) - 13;
    menu.style.left = posLeft + 'px';
    menu.style.top = posTop + 'px';
    menu.style.display = 'inline';
}

//--------------------------------------------------------------------------------
// start - Vis menybygger menyen 
//--------------------------------------------------------------------------------

function ShowProductOptionsMenu(event, webSiteMapNodeID, menuClientID) {
    var menu = document.getElementById(menuClientID);

    var posLeft;
    var posTop;

    posLeft = (document.documentElement.scrollLeft + event.clientX);
    posTop = (document.documentElement.scrollTop + event.clientY);

    document.getElementById('SelectedWebSiteMapNodeID').value = webSiteMapNodeID;

    menu.style.left = posLeft + 'px';
    menu.style.top = posTop + 'px';
    menu.style.display = 'inline';
}

function ShowProductOptionsMenuTopLevel(event, webSiteMapNodeID, menuClientID) {
    var menu = document.getElementById(menuClientID);

    var posLeft;
    var posTop;

    posLeft = (document.documentElement.scrollLeft + event.clientX);
    posTop = (document.documentElement.scrollTop + event.clientY);

    document.getElementById('SelectedWebSiteMapNodeID').value = webSiteMapNodeID;
    posLeft = posLeft - 140;
    menu.style.left = posLeft + 'px';
    menu.style.top = posTop + 'px';
    menu.style.display = 'inline';
}


function HideMoveButtons(buttonUpClientID, buttonDownClientID, imgButtonUpClientID, imgButtonDownClientID,
imgButtonDeleteClientID, imgButtonShowHideClientID, buttonDeleteClientID, buttonShowHideClientID) {
    var buttonUp = document.getElementById(buttonUpClientID);
    var buttonDown = document.getElementById(buttonDownClientID);
    var imgButtonUp = document.getElementById(imgButtonUpClientID);
    var imgButtonDown = document.getElementById(imgButtonDownClientID);
    var imgButtonDelete = document.getElementById(imgButtonDeleteClientID);
    var imgButtonShowHide = document.getElementById(imgButtonShowHideClientID);
    var buttonDelete = document.getElementById(buttonDeleteClientID);
    var buttonShowHide = document.getElementById(buttonShowHideClientID);

    buttonDown.style.display = 'none';
    buttonUp.style.display = 'none';
    imgButtonUp.style.display = 'none';
    imgButtonDown.style.display = 'none';
    imgButtonDelete.style.display = 'none';
    imgButtonShowHide.style.display = 'none';
    buttonDelete.style.display = 'none';
    buttonShowHide.style.display = 'none';


}

function ShowMoveButtons(buttonUpClientID, buttonDownClientID, imgButtonUpClientID, imgButtonDownClientID,
imgButtonDeleteClientID, imgButtonShowHideClientID, buttonDeleteClientID, buttonShowHideClientID) {
    var buttonUp = document.getElementById(buttonUpClientID);
    var buttonDown = document.getElementById(buttonDownClientID);
    var imgButtonUp = document.getElementById(imgButtonUpClientID);
    var imgButtonDown = document.getElementById(imgButtonDownClientID);
    var imgButtonDelete = document.getElementById(imgButtonDeleteClientID);
    var imgButtonShowHide = document.getElementById(imgButtonShowHideClientID);
    var buttonDelete = document.getElementById(buttonDeleteClientID);
    var buttonShowHide = document.getElementById(buttonShowHideClientID);


    buttonDown.style.display = 'inline';
    buttonUp.style.display = 'inline';
    imgButtonUp.style.display = 'inline';
    imgButtonDown.style.display = 'inline';
    imgButtonDelete.style.display = 'inline';
    imgButtonShowHide.style.display = 'inline';
    buttonDelete.style.display = 'inline';
    buttonShowHide.style.display = 'inline';
}


function SelectActiveField(hiddenFieldControlID, myFieldUniqueID) {
    document.getElementById(hiddenFieldControlID).value = myFieldUniqueID;

}

function getPageContainerOffsetX(oElement) {

    while (oElement != null) {
        if (oElement.id == 'PageColumnRight') {
            return oElement.offsetLeft;
        }

        oElement = oElement.parentNode;
    }


    return 0;
}

function getPageContainerOffsetY(oElement) {

    while (oElement != null) {
        if (oElement.id == 'PageColumnRight') {
            return oElement.offsetTop;
        }

        oElement = oElement.parentNode;
    }


    return 0;
}

//--------------------------------------------------------------------------------
// Bestemmer X posisjonen for vår element meny
//--------------------------------------------------------------------------------
function getPosX(oElement, classNameToStopAt) {
    var iReturnValueX = 0;
    while (oElement != null) {
        if (oElement.id == 'PageContainer') {
            break;
        }
        else {
            iReturnValueX += oElement.offsetLeft;
            oElement = oElement.offsetParent;
        }

    }
    return iReturnValueX;
}

function getPosYFlyout(oElement) {
  var iReturnValueY = 0;
  var iCounter = 0;
  while (oElement != null) {
      iReturnValueY += oElement.offsetTop;
      oElement = oElement.offsetParent;
    }
  
  return iReturnValueY;
}

function getPosXFlyout(oElement) {
  var iReturnValueX = 0;
  var iCounter = 0;
  while (oElement != null) {
    iReturnValueX += oElement.offsetLeft;
    oElement = oElement.offsetParent;
  }

  return iReturnValueX;
}

//--------------------------------------------------------------------------------
// Bestemmer Y posisjonen for vår element meny
//-------------------------------------------------------------------------------- 
function getPosY(oElement, classNameToStopAt) {
    var iReturnValueY = 0;
    var iCounter = 0;
    while (oElement != null) {
        if (oElement.id == 'PageContainer') {

            break;
        }
        else {
            iReturnValueY += oElement.offsetTop;
            oElement = oElement.offsetParent;
        }
    }
    return iReturnValueY;
}



function getPosFieldMenuX(oElement, classNameToStopAt) {
    var iReturnValueX = 0;
    while (oElement != null) {
        if (oElement.id == 'PageContainer') {
            iReturnValueX += oElement.offsetLeft;
            break;
        }
        else {

            iReturnValueX += oElement.offsetLeft;
            oElement = oElement.offsetParent;

        }
    }
    return iReturnValueX;
}

//--------------------------------------------------------------------------------
// Bestemmer Y posisjonen for vår element meny
//-------------------------------------------------------------------------------- 
function getPosFieldMenuY(oElement, classNameToStopAt) {
    var iReturnValueY = 0;
    var iCounter = 0;
    while (oElement != null) {
        if (oElement.id == 'PageContainer') {
            iReturnValueY += oElement.offsetTop;
            break;
        }
        else {
            iReturnValueY += oElement.offsetTop;
            oElement = oElement.offsetParent;
        }
    }
    return iReturnValueY;
}

//--------------------------------------------------------------------------------
// AJAX - Oppdatere lagerstatus på produktliste sider.
// Navn på ID element som skal oppdateres må navngis som "LS_[plid]" der "[plid]" er id'en på produktet.
// rootPath sendes inn som: ResolveUrl("~/").
// postData vil ha en sepparert liste med plid'er: "69389|55463|29744".
// target er ID på element (normalt div) som resultatet skal lagres til.
// timeInterval er tiden (millisekund) det skal ta mellom hver gang det hentes data fra serveren. Hvis "0" kjøres ikke AJAX kall.
//-------------------------------------------------------------------------------- 
//start metode
function startGetLagerStatus(rootPath, postData, target, timeInterval) {
    if (timeInterval > 0)
        setInterval("getLagerStatus('" + rootPath + "', '" + postData + "', '" + target + "')", timeInterval);
}

//Ajax call
function getLagerStatus(rootPath, postData, target) {
    var url = rootPath + "webpages/produkt/AjaxLagerStatus.aspx";
    var runAjax = new Ajax.Updater(target, url, { method: 'get', parameters: postData, onComplete: new Function("updateLagerStatus('" + target + "');") });
}

//Loop result from ajax call
function updateLagerStatus(target) {
    var result = $(target).innerHTML;

    if (result != "") {
        var aResult = result.split(";");
        var item;

        for (i = 0; i < aResult.length; i++) {
            item = aResult[i].split("|");
            updateProduct(item[0], item[1]);
        }
    }
}

//Update LagerStatus
function updateProduct(plid, ls) {
    if (plid != "") {
        if ($('LS_' + plid) != undefined) {
            $('LS_' + plid).update(ls);
        }
    }
}


//--------------------------------------------------------------------------------
// GoogleAnalytics ajax delay
//-------------------------------------------------------------------------------- 
//function getGA(url, postData, target) {
function getGA(url, target) {
    //var runAjax = new Ajax.Updater(target, url, { method: 'get', parameters: postData, onComplete: new Function("updateGA('" + target + "');") });
    var runAjax = new Ajax.Updater(target, url, { method: 'get'});
}

//function updateGA(target) {
//    var result = $(target).innerHTML;
//    alert(result);
//}


//--------------------------------------------------------------------------------
// Gi alle mersalg annonser riktig høyde
//-------------------------------------------------------------------------------- 
function updateHeightMerSalg(element, className) {
    var divElements = $(element).getElementsByClassName(className);
    var maxheight = 0;

    //Finne høyeste annonse
    for (i = 0; i < divElements.length; i++) {
        if (divElements[i].offsetHeight > maxheight) {
            maxheight = divElements[i].offsetHeight;
        }
    }

    //Sette høyde for alle annonser
    for (i = 0; i < divElements.length; i++) {
        divElements[i].style.height = (maxheight - 22) + "px";
    }
}




//--------------------------------------------------------------------------------
// Gjøre font større eller mindre.
//--------------------------------------------------------------------------------
//Specify affected tags. Add or remove from list:
var tgs = new Array('p', 'td', 'tr');

//Specify spectrum of different font sizes:
//var szs = new Array( 'xx-small','x-small','small','medium','large','x-large','xx-large' );
var szs = new Array('6pt', '8pt', '10pt', '12pt');
var startSz = 0;
var defaultSz = 1;

function ts(trgt, inc) {
    if (!document.getElementById) return
    var d = document, cEl = null, sz = startSz, i, j, cTags;

    if (inc == 0) { //reset to default.
        sz = defaultSz;
        startSz = defaultSz;
    } else {
        sz += inc;
        if (sz < 0) sz = 0;
        if (sz > 3) sz = 3;
        startSz = sz;
    }

    if (!(cEl = d.getElementById(trgt))) cEl = d.getElementsByTagName(trgt)[0];

    cEl.style.fontSize = szs[sz];

    for (i = 0; i < tgs.length; i++) {
        cTags = cEl.getElementsByTagName(tgs[i]);
        for (j = 0; j < cTags.length; j++) cTags[j].style.fontSize = szs[sz];
    }
}

function tsConst(trgt, inc) {
    if (!document.getElementById) return
    var d = document, cEl = null, sz = startSz, i, j, cTags;

    sz = inc;

    if (!(cEl = d.getElementById(trgt))) cEl = d.getElementsByTagName(trgt)[0];

    cEl.style.fontSize = szs[sz];

    for (i = 0; i < tgs.length; i++) {
        cTags = cEl.getElementsByTagName(tgs[i]);
        for (j = 0; j < cTags.length; j++) cTags[j].style.fontSize = szs[sz];
    }
}



/*        Funksjoner for opplasting av filer */



var PROGRESS_INTERVAL = 500;
var PROGRESS_COLOR = '#000080';

var _divFrame;
var _divUploadMessage;
var _divUploadProgress;
var _ifrPhoto;

var _loopCounter = 1;
var _maxLoop = 10;
var _photoUploadProgressTimer;


function refreshUploadTextBox(clientID, newValue) {
    var tbUpload = document.getElementById(clientID);
    tbUpload.value = newValue;
    tbUpload.style.display = '';
    _ifrPhoto.style.display = 'none';
}


function initPhotoUpload() {
    //_divFrame = document.getElementById('divFrame');
    _divUploadMessage = document.getElementById('divUploadMessage');
    _divUploadProgress = document.getElementById('divUploadProgress');
    _ifrPhoto = document.getElementById('ifrPhoto');

    var btnUpload = _ifrPhoto.contentWindow.document.getElementById('ButtonUpload');


    btnUpload.onclick = function(event) {
        var filPhoto = _ifrPhoto.contentWindow.document.getElementById('filPhoto');
        //Baisic validation for Photo
        _divUploadMessage.style.display = 'none';

        if (filPhoto.value.length == 0) {
            _divUploadMessage.innerHTML = '<span style=\"color:#ff0000\">Please specify the file.</span>';
            _divUploadMessage.style.display = '';
            filPhoto.focus();
            return;
        }

        /*var regExp = /^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.jpg|.JPG|.gif|.GIF|.png|.PNG|.bmp|.BMP)$/;

        if (!regExp.test(filPhoto.value)) //Somehow the expression does not work in Opera
        {
        _divUploadMessage.innerHTML = '<span style=\"color:#ff0000\">Invalid file type. Only supports jpg, gif, png and bmp.</span>';
        _divUploadMessage.style.display = '';
        filPhoto.focus();
        return;
        }
        */
        beginPhotoUploadProgress();
        _ifrPhoto.contentWindow.document.getElementById('photoUpload').submit();
        //_divFrame.style.display = 'none';
    }
}

function beginPhotoUploadProgress() {
    _divUploadProgress.style.display = '';
    clearPhotoUploadProgress();
    _photoUploadProgressTimer = setTimeout(updatePhotoUploadProgress, PROGRESS_INTERVAL);
}

function clearPhotoUploadProgress() {
    for (var i = 1; i <= _maxLoop; i++) {
        document.getElementById('tdProgress' + i).style.backgroundColor = 'transparent';
    }

    document.getElementById('tdProgress1').style.backgroundColor = PROGRESS_COLOR;
    _loopCounter = 1;
}

function updatePhotoUploadProgress() {

    try {
        _loopCounter += 1;

        if (_loopCounter <= _maxLoop) {
            document.getElementById('tdProgress' + _loopCounter).style.backgroundColor = PROGRESS_COLOR;
        }
        else {
            clearPhotoUploadProgress();
        }

        if (_photoUploadProgressTimer) {
            clearTimeout(_photoUploadProgressTimer);
        }

        _photoUploadProgressTimer = setTimeout(updatePhotoUploadProgress, PROGRESS_INTERVAL);
    }
    catch (err) {
        //ignorerer feil ved oppdatering av status
    }
}

function photoUploadComplete(message, isError) {
    clearPhotoUploadProgress();

    if (_photoUploadProgressTimer) {
        clearTimeout(_photoUploadProgressTimer);
    }

    _divUploadProgress.style.display = 'none';
    _divUploadMessage.style.display = 'none';
    //_divFrame.style.display = '';

    if (message.length) {
        var color = (isError) ? '#ff0000' : '#008000';

        _divUploadMessage.innerHTML = '<span style=\"color:' + color + '\;font-weight:bold">' + message + '</span>';
        _divUploadMessage.style.display = '';

        if (isError) {
            _ifrPhoto.contentWindow.document.getElementById('filPhoto').focus();
        }
    }
}


function updateControl(event, id) {
    var posLeft;
    var posTop;

    posLeft = (event.clientX - 15);
    posTop = (event.clientY - 50);

    document.getElementById(id).style.left = posLeft + 'px';
    document.getElementById(id).style.top = posTop + 'px';
}


function ChangeBgColor(id, color) {
    id = "tr" + id;
    var removeID = document.getElementById("hiddenBgID").value;
    if (document.getElementById(removeID) != undefined) {
        if (removeID != "") {
            document.getElementById(removeID).style.backgroundColor = "";
        }
    }
    document.getElementById(id).style.backgroundColor = color;
    document.getElementById("hiddenBgID").value = id;
}

//--------------------------------------------------------------------------------
//Script for show/hide ellipsis when cliping occures
//--------------------------------------------------------------------------------
function showHideEllipsis(e) {
    //alert(Prototype.Browser.IE);
    //Finner elementer som kanskje skal bruke ellipsis
    $$('div.useEllipsis').each(function(ellipsElement, i) {
        if (Prototype.Browser.IE || Prototype.Browser.WebKit) {
            $(ellipsElement).nextSibling.style.visibility = "hidden";
        }
        else {
            if ($(ellipsElement).clientWidth < $(ellipsElement).scrollWidth) {
                //Show ellips
                $(ellipsElement).nextSibling.show();
            }
            else {
                //Hide ellips
                $(ellipsElement).nextSibling.hide();
            }
        }
    });

    //Finner elementer i webcartSmall som kanskje skal bruke ellipsis
    $$('div.WebCartSmallLine').each(function(ellipsElement, i) {
        //alert($(ellipsElement).down().next().down().classNames());
        if ($(ellipsElement).down().clientWidth == $(ellipsElement).down().scrollWidth) {
            //hide ellips
            $(ellipsElement).down().next().down().hide();
        }
    });
}

//--------------------------------------------------------------------------------
//End script for show/hide ellipsis when cliping occures
//--------------------------------------------------------------------------------


//--------------------------------------------------------------------------------
//Change type for textbox
//--------------------------------------------------------------------------------
var oldPasswordTextBoxID = 0;
function changeTextBoxType(oldObject, boxType, setToEmpty) {
    if (boxType == 'password' && oldObject.type == 'text') {
        oldPasswordTextBoxID = oldObject.id; //Beholder gammel id slik at vi kan sette focus på nytt objekt.
        var newObject = document.createElement('input');
        newObject.type = boxType;
        if (oldObject.size) newObject.size = oldObject.size;
        if (oldObject.value) newObject.value = oldObject.value;
        if (oldObject.name) newObject.name = oldObject.name;
        if (oldObject.id) newObject.id = oldObject.id;
        if (oldObject.className) newObject.className = oldObject.className;
        if (oldObject.tabIndex) newObject.tabIndex = oldObject.tabIndex;
        oldObject.parentNode.replaceChild(newObject, oldObject);
        if (setToEmpty == 'true') newObject.value = '';
        setTimeout("changeTextBoxTypeSetFocus();", 10); //Legger inn en liten forsinkelse slik at objektet rekker å bli opprettet.
    }
    if (setToEmpty == 'true') oldObject.value = '';
}

function changeTextBoxTypeSetFocus() {
    if (oldPasswordTextBoxID != 0) {
        document.getElementById(oldPasswordTextBoxID).focus();
    }
}


//--------------------------------------------------------------------------------
//Start script for å vise/skjule meny elementer
//--------------------------------------------------------------------------------

function showMenuLinks(e, ids, linkID) {
    e.style.display = "none";

    var myIDs = ids.toString().split(',');
    for (i = 0; i < myIDs.length; i = i + 1) {
        $(myIDs[i]).style.display = "block";
    }
    $(linkID).style.display = "block";
}


function hideMenuLinks(e, ids, linkID) {
    e.style.display = "none";

    var myIDs = ids.toString().split(',');
    for (i = 0; i < myIDs.length; i = i + 1) {
        $(myIDs[i]).style.display = "";
    }
    $(linkID).style.display = "block";
}

//--------------------------------------------------------------------------------
//End script for å vise/skjule meny elementer
//--------------------------------------------------------------------------------


//--------------------------------------------------------------------------------
//Start script for link til Facebook "Del på FaceBook"
//--------------------------------------------------------------------------------
function fbs_click() {
    u = location.href;
    t = document.title;
    window.open('http://www.facebook.com/sharer.php?u=' + encodeURIComponent(u) + '&t=' + encodeURIComponent(t), 'sharer', 'toolbar=0,status=0,width=626,height=436');
    return false;
}

//--------------------------------------------------------------------------------
//End script for link til Facebook "Del på FaceBook"
//--------------------------------------------------------------------------------


//--------------------------------------------------------------------------------
//Start script for å vise/sjule attributter på listing
//--------------------------------------------------------------------------------
function showHide(shID) {
    if (document.getElementById(shID)) {
        if (document.getElementById(shID + '-show').style.display != 'none') {
            document.getElementById(shID + '-show').style.display = 'none';
            document.getElementById(shID).style.display = 'block';
        }
        else {
            document.getElementById(shID + '-show').style.display = 'inline';
            document.getElementById(shID).style.display = 'none';
        }
    }
}

//--------------------------------------------------------------------------------
//End script for å vise/sjule attributter for amentio
//--------------------------------------------------------------------------------


//--------------------------------------------------------------------------------
//Start script for å skjule/vise varianter
//--------------------------------------------------------------------------------


function showVariants(variantRowID, variantRowMotherID) {
    try {

        var element = document.getElementById(variantRowID);
        if (element != null) {
            if (element.style != null) {
                if (element.style.display != null) {
                    try {
                        element.style.display = 'table-row';

                    }
                    catch (ex) {
                        element.style.display = 'inline';
                    }

                }

            }

        }
        //Hent raden med mor og endre klassen på TDene slik vi får endre stilen riktig

        var mother = document.getElementById(variantRowMotherID);
        if (mother != null) {


            if (mother.className == '')
                mother.className = 'VariantMother';
            else {
                mother.className = mother.className + ' VariantMother';
            }
        }
    }
    catch (ex) {

    }
}


function hideVariantsWithTimer(variantRowID, variantRowMotherID, timer) {
    setTimeout('hideVariants(\'' + variantRowID + '\',\'' + variantRowMotherID + '\')', timer);
}
function hideVariants(variantRowID, variantRowMotherID) {
  var element =  document.getElementById(variantRowID);
  if(element != null)
      element.style.display = 'none';

  var mother = document.getElementById(variantRowMotherID);
  if (mother != null) 
  {
      //Skal fjerne klassen som er satt på  taggen
    var array = mother.className.split(' ');
    if (array.length > 1) {
        if (array[0] != 'VariantMother')
            mother.className = array[0];
        else mother.className = '';
    }
    else if (array.length == 1) { 
    if(array[0] != 'RowColor')
        mother.className = ''; 
    }
  }  
}


function RunEventTest(event) {
  var data = event.toLocaleString();
}

function focusOnUsername(obj) {
    obj.value = "";
}