﻿if (!acos) var acos = {};

acos.$h = function(element, evt, handler) { 
    element = acos.$e(element);    
    if(element.addEventListener) { 
        //Opera og Firefox
        element.addEventListener(evt, handler, false); 
        return true; 
    } else if(element.attachEvent) { 
        //IE                
        return element.attachEvent("on" + evt, handler); 
    } else {
        //Default 
        var onEvt = "on" + evt; 
        var gEventer = elem; 
        if((typeof elem[onEvt]) != 'function') { 
            elem[onEvt] = handler; 
        } else { 
            elem[onEvt] = function() { 
                gEventer(); 
                handler(); 
            } 
        } 
    } 
};

acos.$e = function(obj) {
    if (typeof(obj) == "string") {
        obj = document.getElementById(obj);
    }
    return obj;
};

acos.$gea = function(e) {
    e = e || window.event;
    return e;
};

acos.$ce = function(e, preventDefault) {
    e = acos.$gea(e);
    
    e.cancelBubble = true;
    e.returnValue = false;

    if (e.stopPropagation) e.stopPropagation();
    if (e.preventDefault && preventDefault) e.preventDefault();
};

acos.settDefaultKnappVedReturn = function(e, elemID) 
{
    e = acos.$gea(e);
            
    var code = e.keyCode || e.which;
    
    if(code == 13)
    {
        var elem = document.getElementById(elemID);
        
        if (!elem) {
            var elms = document.getElementsByName(elemID);
            if (!elms) return true;
            
            for (var i=0; i<elms.length; i++) {
                if (elms[i].click) {
                    elem = elms[i];
                }
            }
        }
        
        if (elem && elem.click) {
            acos.$ce(e, true);
            elem.click();
        }
    }
};

function KlikkKnappVedReturn(evnt, buttonid) {
    acos.settDefaultKnappVedReturn(evnt, buttonid);
}
function changeSize() {
    switch(document.body.style.fontSize) {
        case "large":
            document.body.style.fontSize = "x-large";
            break;
            
        case "x-large":
            document.body.style.fontSize = "";
            break;
            
        default:
            document.body.style.fontSize = "large";
            break;
    }
}
function setSize(size) {
    var args = new Array();
    args[0] = document.body.style.fontSize;
    args[1] = size;
    
    document.body.style.fontSize = size;
    
    OnSizeChanged.raise(args);
}

function addEvent(obj, evType, fn){ 
    if (obj != null)
    {
        if (obj.addEventListener){ 
            obj.addEventListener(evType, function(){fn;}, false); 
            return true; 
        } else if (obj.attachEvent){ 
            var r = obj.attachEvent("on"+evType, function(){fn;}); 
            return r;
            return true;
        }
    } 
    
    return false;
}

function setHeight(target, source) {
    source = acos.$e(source);
    target = acos.$e(target);

    if (source != null){
        source.style.height = "";

        var divHeight = ((source.offsetHeight) + 'px');
        target.style.height = divHeight;
        source.style.height = divHeight;
    } 
}

function setMaxHeight(x, y)
{    
    if (x != null && y != null)
    {
        x.style.height = "";
        y.style.height = "";
        
        var height = getMax(x.offsetHeight, y.offsetHeight);
        
        x.style.height = height + "px";
        y.style.height = height + "px";
    }    
}

function getMax(a, b)
{
    if (a > b)
        return a;
    
    return b;
}

function escapeHTML (str)
{
   var div = document.createElement('div');
   var text = document.createTextNode(str);
   div.appendChild(text);
   return div.innerHTML;
}

function setPopup(ev)
{       
    var elem = (ev.srcElement)?ev.srcElement:this;         
    window.open(elem.oldHref, "", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,Width=640,Height=480");
    return false;
}

acos.leggTilTarget = function() {
    var elems = document.getElementsByTagName("a")
    for (var i=0; i<elems.length; i++) {         
        if (elems[i].href != "")
        {           
            if (elems[i].className.indexOf("popup") > 0)
            {                  
                elems[i].oldHref = elems[i].href;
                elems[i].href = "#target:"
                if(document.all){
                    elems[i].href += elems[i].innerText;                    
                }                
                else {
                    elems[i].href += elems[i].textContent;
                }
                acos.$h(elems[i], "click", setPopup);
            }
            else if (elems[i].className.indexOf("blank") > 0)
            {                
                elems[i].target = "_blank";
            }            
        }        
    }
};  
             
acos.$h(window, "load", acos.leggTilTarget);




// EVENTS

function Event()
{
    this.eventHandlers = new Array();
}

Event.prototype.addHandler = function(eventHandler)
{
    this.eventHandlers.push(eventHandler);
}

Event.prototype.raise = function(args)
{
    for(var i = 0; i < this.eventHandlers.length; i++)
    {
        this.eventHandlers[i](args);
    }
}

OnSizeChanged = new Event();