﻿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);
}
//Deprecated
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);

/* kall til sjekk av cookie for skriftstørrelse i load */
acos.$h(window, "load", checkCookieSkriftstorrelse);

// 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();


/* cookie-kode fra w3schools */
function setCookie(c_name, value, expiredays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + "=" + escape(value) +
((expiredays == null) ? "" : ";expires=" + exdate.toUTCString());
}

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

function settSkriftstorrelseLiten() {
    setCookie('acos.basefunksjoner.skriftstorrelse', 'aSkriftLiten', 1);
    setSize('');
}

function settSkriftstorrelseNormal() {
    setCookie('acos.basefunksjoner.skriftstorrelse', 'aSkriftNormal', 1);
    setSize('1.3em');
}

function settSkriftstorrelseStor() {
    setCookie('acos.basefunksjoner.skriftstorrelse', 'aSkriftStor', 1);
    setSize('1.9em');
}

function checkCookieSkriftstorrelse() {
    skriftstorrelse = getCookie('acos.basefunksjoner.skriftstorrelse');
    if (skriftstorrelse != null) {
        if (skriftstorrelse == "aSkriftLiten")
            settSkriftstorrelseLiten();
        if (skriftstorrelse == "aSkriftNormal")
            settSkriftstorrelseNormal();
        if (skriftstorrelse == "aSkriftStor")
            settSkriftstorrelseStor();
    } else {
        setSize('');
    }

}


/* toggler mellom forskjellige størrelser */
function changeSize() {

    skriftstorrelse = getCookie('acos.basefunksjoner.skriftstorrelse');
    if (skriftstorrelse != null && skriftstorrelse != "") {
        if (skriftstorrelse == "aSkriftLiten")
            settSkriftstorrelseNormal();
        if (skriftstorrelse == "aSkriftNormal")
            settSkriftstorrelseStor();
        if (skriftstorrelse == "aSkriftStor")
            settSkriftstorrelseLiten();
    } else {
        settSkriftstorrelseStor();
    }
}

function isFirebugPresentWarning(id) {
    if (window.console && window.console.firebug) {
        document.getElementById(id).innerHTML = "<span style='color:white;background-color:red'>Du må deaktivere firebug og oppfriske siden for å sende inn kontaktskjemaet.</span>";
    }
}

function printPage() {
    window.location = window.location + "&print=1";
}
