GSFN = {
  feedback: function(url) {
    this.feedback_url = url;
    this.overlay_html = '<div id="fdbk_overlay" style="display:none">' +
                          '<div id="fdbk_container">' +
                            '<a href="#" onclick="GSFN.hide();return false" id="fdbk_close"></a>' +
                            '<iframe src="" id="fdbk_iframe" allowTransparency="true" scrolling="no" frameborder="0"></iframe>' +
                          '</div>' +
                          '<div id="fdbk_screen"></div>' +
                        '</div>';
    document.write(this.overlay_html);
    this.gId('fdbk_tab').onclick = function() { GSFN.show(); return false; }
    this.gId('fdbk_iframe').setAttribute("src", "");
  },
  set_position: function() {
    this.scroll_top = document.documentElement.scrollTop;
    if(this.scroll_top == 0){ this.scroll_top = document.body.scrollTop; }

    this.scroll_height = document.documentElement.scrollHeight;
    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";

  },
  show: function() {
    if(this.gId('fdbk_iframe').getAttribute("src") == "") {
      this.gId('fdbk_iframe').setAttribute("src", this.feedback_url);
      if (this.gId('fdbk_iframe').addEventListener) {
        this.gId('fdbk_iframe').addEventListener("load", GSFN.loaded, false);
      } else if (this.gId('fdbk_iframe').attachEvent) {
        this.gId('fdbk_iframe').detachEvent("onload", GSFN.loaded);
        this.gId('fdbk_iframe').attachEvent("onload", GSFN.loaded);
      }
    }

    this.set_position();
    this.gId('fdbk_overlay').style.display = "block";
  },
  hide: function() {
    this.gId('fdbk_overlay').style.display = "none";
  },
  loaded: function() {
    GSFN.gId('fdbk_iframe').className = "loaded";
  },
  gId: function(id) {
    return document.getElementById(id);
  }
}
