﻿var TBM;
if (TBM == undefined) {
    TBM = {};

    TBM.gId = function(id) {
        return document.getElementById(id);
    };

    TBM.hasClassName = function(element, className) {
        var elementClassName = element.className;

        return (elementClassName.length > 0 && (elementClassName == className ||
      new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
    };

    TBM.addClassName = function(element, className) {
        if (!TBM.hasClassName(element, className))
            element.className += (element.className ? ' ' : '') + className;
        return element;
    };

    TBM.removeClassName = function(element, className) {
        var newClass = TBM.strip(element.className.replace(new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' '));
        element.className = newClass;
        return element;
    };

    TBM.strip = function(string) {
        return string.replace(/^\s+/, '').replace(/\s+$/, '');
    };
}

TBM.feedback = function(tab_options) {
this.empty_url = "http://tilbakemeldingen.no/images/transparent.gif";

    this.tab_options = tab_options ? tab_options : {};
    this.feedback_url = "http://tilbakemeldingen.no/" + this.tab_options.companyname + "";
    this.tab_options.placement = this.tab_options.placement ? this.tab_options.placement : 'left';
    //this.tab_options.color = this.tab_options.color ? this.tab_options.color : '#222';


    this.tab_html = '<a href="#" id="fdbk_tab" class="fdbk_tab_' + this.tab_options.placement + '" style="background-color:' + this.tab_options.color + '">FEEDBACK</a>';
    this.overlay_html = '<div id="fdbk_overlay" style="display:none">' +
                        '<div id="fdbk_container">' +
                          '<a href="#" onclick="TBM.hide();return false" id="fdbk_close"></a>' +
                          '<iframe src="' + this.empty_url + '" id="fdbk_iframe" allowTransparency="true" scrolling="no" frameborder="0" class="loading"></iframe>' +
                        '</div>' +
                        '<div id="fdbk_screen"></div>' +
                      '</div>';

    if (this.tab_options.container) {
        var container_el = this.gId(this.tab_options.container);
        container_el.innerHTML = this.tab_html + this.overlay_html;
    } else {
        document.write(this.tab_html);
        document.write(this.overlay_html);
    }

    this.gId('fdbk_tab').onclick = function() { TBM.show(); return false; }
    this.gId('fdbk_iframe').setAttribute("src", this.empty_url);
};
TBM.GoTo = function(url) {
    this.gId('fdbk_iframe').setAttribute("src", url);
};


TBM.set_position = function() {
    this.scroll_top = document.documentElement.scrollTop || document.body.scrollTop;
    var val = navigator.userAgent.toLowerCase();
    if (val.indexOf("firefox") > -1) {
        this.scroll_height = document.documentElement.scrollHeight; //firefox
    } else {
        this.scroll_height = document.body.scrollHeight; //chrome
    }
    this.client_height = window.innerHeight || document.documentElement.clientHeight;
    this.gId('fdbk_screen').style.height = this.scroll_height + "px";
    this.gId('fdbk_container').style.top = this.scroll_top + (this.client_height * 0.1) + "px";
};

TBM.show = function() {
    this.gId('fdbk_iframe').setAttribute("src", this.feedback_url);
    if (this.gId('fdbk_iframe').addEventListener) {
        this.gId('fdbk_iframe').addEventListener("load", TBM.loaded, false);
    } else if (this.gId('fdbk_iframe').attachEvent) {
        this.gId('fdbk_iframe').attachEvent("onload", TBM.loaded);
    }
    this.set_position();

    TBM.addClassName(document.getElementsByTagName('html')[0], 'feedback_tab_on');
    this.gId('fdbk_overlay').style.display = "block";
};

TBM.hide = function() {
    if (TBM.gId('fdbk_iframe').addEventListener) {
        TBM.gId('fdbk_iframe').removeEventListener("load", TBM.loaded, false);
    } else if (TBM.gId('fdbk_iframe').attachEvent) {
        TBM.gId('fdbk_iframe').detachEvent("onload", TBM.loaded);
    }
    this.gId('fdbk_overlay').style.display = "none";
    this.gId('fdbk_iframe').setAttribute("src", this.empty_url);
    TBM.gId('fdbk_iframe').className = "loading";

    TBM.removeClassName(document.getElementsByTagName('html')[0], 'feedback_tab_on');
};

TBM.loaded = function() {
    TBM.gId('fdbk_iframe').className = "loaded";
};

