/* $Id: javascripts.js 155 2005-10-10 21:49:00Z aleksander $ */

var visibleLayer;


/**
* Funksjon knigget fra Dreamweaver. Redirecter nettleseren basert på 'targ'.
* Brukes gjerne til å lage menyer som automatisk går til gitt adresse ved valg.
*/
function jumpMenu(targ,selObj,restore){
    eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
    if (restore) selObj.selectedIndex=0;
}

/**
* Funksjon knigget fra Dreamweaver. Den preloader bilder slik at man slipper
* å vente på at disse skal lastes ned ved et bilde-swap
*/
function preloadImages() { //v3.0
    var d=document; if(d.images){ if(!d.p) d.p=new Array();
    var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

function swapImgRestore() {
    var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

/**
* Funksjon knigget fra Dreamweaver. Den finner og returnerer et element
* basert på elementets nav (eller id-tag).
*/
function findObj(n, d) {
    var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
}

/**
* Funksjon som returnerer absolutt top-koordinat for et gitt objekt. 
*/
function get_top(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y) {
        curtop += obj.y;
    }
    return curtop;
}

/**
* Funksjon som returnerer absolutt left-koordinat for et gitt objekt. 
*/
function get_left(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (obj.x) {
        curleft += obj.x;
    }
    return curleft;
}
  
/**
* Funksjon som returnerer hvor bredt tegneområdet i nettleseren er.
*/
function get_inner_width() {
    var myWidth;
    if( typeof( window.innerWidth ) == 'number' ) {
        //Non-IE
        myWidth = window.innerWidth;
    } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
        //IE 6+ in 'standards compliant mode'
        myWidth = document.documentElement.clientWidth;
    } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
        //IE 4 compatible
        myWidth = document.body.clientWidth;
    }

    return myWidth;
}

/**
* Funksjon som returnerer hvor høyt tegneområdet i nettleseren er.
*/
function get_inner_height() {
    var myHeight;

    if( typeof( window.innerWidth ) == 'number' ) {
        //Non-IE
        myHeight = window.innerHeight;
    } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
        //IE 6+ in 'standards compliant mode'
        myHeight = document.documentElement.clientHeight;
    } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
        //IE 4 compatible
        myHeight = document.body.clientHeight;
    }
    return myHeight;
}

function get_inner_top() {
    var myTop;

    if( typeof( window.pageYOffset ) == 'number' ) {
        //Netscape compliant
        myTop = window.pageYOffset;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        //DOM compliant
        myTop = document.body.scrollTop;
    } else if( document.documentElement &&( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        //IE6 standards compliant mode
        myTop = document.documentElement.scrollTop;
    }
    else {
        myTop = document.documentElement.scrollTop;
    }
    return myTop;
}

function get_inner_left() {
    var myLeft;
    
    if( typeof( window.pageYOffset ) == 'number' ) {
        //Netscape compliant
        myLeft = window.pageXOffset;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        //DOM compliant
        myLeft = document.body.scrollLeft;
    } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        //IE6 standards compliant mode
        myLeft = document.documentElement.scrollLeft;
    }
    else {
        myLeft = document.documentElement.scrollLeft;
    }
    return myLeft;
}

    
/** 
* Funksjon som renser et tall for eventuelle suffix (f.eks 250px -> 250) 
*/
function clean_number(number) {
    var length = number.length;
    var validChars = "0123456789";
    var result = "";
    for (var i = 0; i<length; i++) {
        var c = number.charAt(i);
        if(validChars.indexOf(c) != -1) {
            result += c;
        }
        else {
            break;
        }
    }
    return (result == "") ? "0" : result;
}


/**
* Funksjon som redigerer et felt i en form ved å sett inn 'value' som ny verdi
*/
function edit_field(field_name, value) {
    if ((field_obj = findObj(field_name)) != null) {
        field_obj.value = value;
    }
}

function swapImage() {
    var i,j=0,image,arguments=swapImage.arguments;
    document.sr=new Array;
    for(i=0;i<(arguments.length-2);i+=3) {
        if ((image=findObj(arguments[i]))!=null){
            document.sr[j++]=image;
            if(!image.oSrc) {
                image.oSrc=image.src;
            }
            image.src=arguments[i+2];
        }
    }
}

function hideOldLayer() {
    var oldStyle;
    if (visibleLayer != null) {
        oldStyle = visibleLayer.style;
        oldStyle.visibility = 'hidden';
    }
}

function toggleVisibility(layerName) {
    hideOldLayer();
    show_hide(layerName);
    visibleLayer = findObj(layerName);
}

function show_hide(layer_name) {
    var layer;
    if ((layer = findObj(layer_name)) !=null) {
        style = layer.style;
        if (style.visibility == 'visible') {
            style.visibility = 'hidden';
        }
        else {
            style.visibility = 'visible';
        }
    }
}

function showHideLayers() {
    var i,p,v,obj,args=showHideLayers.arguments;
    for (i=0; i<(args.length-2); i+=3) if ((obj=findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}


function confirmLink(message, link) {
     var answer=window.confirm(message);
     if (answer) {
        window.location=link;
     }
}

/**
* Denne funksjonen plasserer og viser en dialogboks med navnet som er gitt
* som parameter om en DIV med det navnet finnes. Det blir også laget en 
* 'skygge' under dialogboksen.
*/
function show_dialog(dialog_name) {
    dialog_obj = findObj(dialog_name);
    if (dialog_obj != null) {
        var dialog_width = clean_number(dialog_obj.style.width);
        var dialog_height = clean_number(dialog_obj.style.height);
        var screen_width = get_inner_width;
        var screen_height = get_inner_height;
        
    }
}

// *** Start menyskript ***
var menu_script_loaded = true;
function place(menu_name, relative_name, placement) {
    var menu_obj;
    if ((menu_obj = findObj(menu_name)) != null) {
        var menu_style = menu_obj.style;
        var relative_obj = findObj(relative_name);
        if (placement == "LOWER_LEFT") {
            menu_style.top = get_top(relative_obj) + relative_obj.height;
            menu_style.left = get_left(relative_obj);
        }
    }
}
// *** Slutt på menyskript ***

// *** Diverse hjelpemetoder for å forenkle funksjonskall ***
function showMessageDialog(title, text) {
    if (dialogProducer == null) { return; }
    dialogProducer.showMessageDialog(title, text);
}

function show_hidden_document_info() {
    dialogProducer.showCustomDialog("Landscape Information", "hidden_document_info", new CloseAction(), null, new CloseAction());
}

function get_float_style(obj) {
    if (document.all) {
        return obj.style.styleFloat;
    }
    return obj.style.cssFloat;
}

// *** SLutt hjelpemetoder