if ( !window.DRIGMBH ) {

  window.DRIGMBH = {
    'init': function () {

      if ( !this.jquery ) {
        this.jquery_load();
        return;
      }

      this.jquery(document).ready (function () {
        for ( var tool in window.DRIGMBH.tools )
          window.DRIGMBH.tools[tool].load();
      });

    },
    'tools': {},
    'scripts': {},
    'jquery': 0,
    'jquery_load': function (  ) {
      var d = document;
      var s = 'script';
      var id = 'drigmbh-jquery';
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js";
      js.onload = function () {
        window.DRIGMBH.jquery = jQuery.noConflict(true);
        window.DRIGMBH.jquery_ready();
      }

      fjs.parentNode.insertBefore(js,null);

    },
    'jquery_ready': function () {
      //console.log('jquery_ready(): ' + tool);

      (function(JQ, document) {

        var pluses = /\+/g;
        function raw(s) {
          return s;
        }
        function decoded(s) {
          return decodeURIComponent(s.replace(pluses, ' '));
        }

        JQ.cookie = function(key, value, options) {

          // key and at least value given, set cookie...
          if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value == null)) {
            options = JQ.extend({}, JQ.cookie.defaults, options);

            if (value == null) {
              options.expires = -1;
            }

            if (typeof options.expires === 'number') {
              var days = options.expires, t = options.expires = new Date();
              t.setDate(t.getDate() + days);
            }

            value = String(value);

            return (document.cookie = [
              encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value),
              options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
              options.path    ? '; path=' + options.path : '',
              options.domain  ? '; domain=' + options.domain : '',
              options.secure  ? '; secure' : ''
            ].join(''));
          }

          // key and possibly options given, get cookie...
          options = value || JQ.cookie.defaults || {};
          var decode = options.raw ? raw : decoded;
          var cookies = document.cookie.split('; ');
          for (var i = 0, parts; (parts = cookies[i] && cookies[i].split('=')); i++) {
            if (decode(parts.shift()) === key) {
              return decode(parts.join('='));
            }
          }
          return null;
        };

        JQ.cookie.defaults = {};

      })(window.DRIGMBH.jquery, document);

      window.DRIGMBH.jquery(document).ready( function () {
        window.DRIGMBH.init();
      });

    }

  };
}

window.DRIGMBH.tools['exitlightbox'] = {
  'par': window.DRIGMBH,
  'box': 0,
  'loaded': 0,
  'load': function () {
    if ( this.loaded )
      return; //just one ELB allowed

    this.box = JSON.parse('{"s3":"\/\/splittestclub.s3.amazonaws.com","visited":false,"settings":{"layout":{"width":600,"height":650,"background":"#ffffff","opacity":0.7,"blocker":"#000000","border_color":"#000000","border_width":3},"mode":"div","url":"https:\/\/www.klick-tipp.com\/api\/exitlightbox\/14woz3fyzbzkzb936","cookie":{"name":"KTSTC10Z48919SUBMIT","max":"3"}}}');

    window.DRIGMBH.jquery(document.body).append("<script type='text/javascript' src='" + this.box.s3 + "/drigmbh/writecapture.js?r=" + (new Date().getTime()) + "'></script>").ready( function () {
      window.DRIGMBH.tools.exitlightbox.init();
    });

    this.loaded = 1;

  },
  'init': function ( check ) {

    var JQ = window.DRIGMBH.jquery;

    JQ(document).ready( function() {

      var par = window.DRIGMBH;

      var settings = par.tools.exitlightbox.box.settings;
      var s3 = par.tools.exitlightbox.box.s3;

      if ( par.tools.exitlightbox.box.visited && settings.cookie.max == 1 )
        return;

      var elbseen = parseInt(JQ.cookie(settings.cookie.name + 'LIMIT'));
      var elbcross = JQ.cookie(settings.cookie.name + 'CROSSCLICKED');

      if ( elbcross || (elbseen && settings.cookie.max && settings.cookie.max <= elbseen) )
        return;

      if (!elbseen)
        elbseen = 0;

      var blocker=JQ('<div class="stc-elb-element stc-elb-blocker"></div>').attr('style', "position:absolute;margin:0;padding:0;left:0;top:0;background-color:#000000;z-index:9998;display:none;");
      blocker.css('opacity', settings.layout.opacity);
      blocker.css('background-color', settings.layout.blocker);

      var container=JQ('<div class="stc-elb-element stc-elb-container"></div>').attr('style', "position:absolute;margin:0;padding:0;left:0;top:0;z-index:9999;display:none;");

      var scroller = JQ('<div class="stc-elb-element stc-elb-scroller"></div>').attr('style', "position:relative;margin:0;padding:0;overflow:auto;text-align:center;");

      var closer = JQ('<div class="stc-elb-element stc-elb-closer"></div>').attr('style', "position:absolute;padding:0;left:50%;top:33px;width:34px;height:34px;background:transparent url(" + s3 + "/drigmbh/images/close_x_black.png) no-repeat scroll 0px 0px;cursor: pointer;");
      closer.css('margin', '0 0 0 ' + (Math.floor(settings.layout.width/2)-17) + 'px');

      var iframe = 0;
      if ( settings.mode == 'iframe' ) {
        iframe = JQ('<iframe class="stc-elb-element stc-elb-iframe" frameborder="0"></iframe>').attr('style', "position:relative;margin:50px 0;padding:0;text-align:left;");
        iframe.attr('height', settings.layout.height);
        iframe.attr('width', settings.layout.width);
        iframe.attr('src', '');
      }
      else {
        iframe = JQ('<div class="stc-elb-element stc-elb-iframe"></div>').attr('style', "position:relative;margin:50px auto;padding:0;text-align:left;");
        iframe.width(settings.layout.width);
        iframe.height(settings.layout.height);
        iframe.attr('id', 'stc-elb-content');
        iframe.bind('click', function (ev) { ev.stopPropagation();  });
      }

      iframe.css('border', settings.layout.border_width + 'px solid ' + settings.layout.border_color);

      if ( settings.layout.background == 'default' )
        iframe.css('background-color', JQ(document.body).css('background-color'));
      else
        iframe.css('background-color', settings.layout.background);

      // ---blocker functions ---
      blocker.bind('ShowELB', function () {

         var doc = JQ(document);
         doc.unbind('mousemove.ELB');

        //scroll to the top
        var scroll_pos = doc.scrollTop();
        doc.scrollTop(0);

        var blocker = JQ(this);

        //disallow scrollbars with overflow=hidden, but store the previous value of overflow to set it back after closing
        var doc_body = JQ(document.body);
        blocker.data('overflow', doc_body.css('overflow'));
        doc_body.css('overflow', 'hidden');

        blocker.trigger('UpdateELB');
        blocker.fadeIn(500);
        blocker.data('scroll_pos', scroll_pos);

        //add the resize event to the window to adjust the ELB size
        JQ(window).bind('resize.ELB', function () {
          JQ(".stc-elb-element").trigger('UpdateELB');
        });

        //update the LIMIT cookie
        JQ.cookie(settings.cookie.name + 'LIMIT', elbseen+1, {
          expires: 364,
          path: '/'
        });

      });

      blocker.bind('HideELB', function () {

        //hide the blocker
        var blocker = JQ(this);
        blocker.fadeOut(500);

        //remove the resize event since the lightbox is not active
        JQ(window).unbind('resize.ELB');

        //allow for scrollbars again
        JQ(document.body).css('overflow', JQ(this).data('overflow'));

        JQ(document).scrollTop(blocker.data('scroll_pos'));

      });

      blocker.bind('UpdateELB', function () {

        // get the document dimesions and apply them to the blocker
        var doc = JQ(document);
        var blocker = JQ(this);
        blocker.width(doc.width());
        blocker.height(doc.height());

      });

      // --- container functions ---
      container.bind('ShowELB', function () {

        var con = JQ(this);
        con.trigger('UpdateELB');
        con.fadeIn(500);

      });

      container.bind('HideELB', function () {
        JQ(this).fadeOut(500);
      });

      container.bind('UpdateELB', function () {

        // get the window dimension and apply them to the container
        var win = JQ(window);
        var con = JQ(this);
        con.width(win.width());
        con.height(win.height());

      });

      // ---scroller functions ---
      scroller.bind('ShowELB', function () {

        var scroll = JQ(this);
        scroll.scrollTop(0);
        scroll.trigger('UpdateELB');
        scroll.fadeIn(500);

      });

      scroller.bind('HideELB', function () {
        JQ(this).fadeOut(500);
      });

      scroller.bind('UpdateELB', function () {

        // get the window/document dimension and apply them to the scroller
        var win = JQ(window);
        var scroll = JQ(this);
        scroll.width(win.width());
        scroll.height(win.height());

      });

      //trigger the hide ELB event on all ELB elements
      scroller.bind('click', function () {
        JQ(".stc-elb-element").trigger('HideELB');
      });

      // --- closer functions ---
      closer.bind('ShowELB', function () {});

      closer.bind('HideELB', function () {});

      closer.bind('UpdateELB', function () {});

      closer.bind('mouseenter', function () {
        JQ(this).css('background-position', '0px -34px');
      });

      closer.bind('mouseleave', function () {
        JQ(this).css('background-position', '0px 0px');
      });

      closer.bind('mousedown', function ( ev ) {
        JQ(this).css('background-position', '0px -68px');
        ev.preventDefault();
      });

      closer.bind('mouseup', function () {
        JQ(this).css('background-position', '0px -34px');
      });

      closer.bind('click', function () {
        JQ(".stc-elb-element").trigger('HideELB');

        //update the CROSSCLICKED cookie
        JQ.cookie(settings.cookie.name + 'CROSSCLICKED', 1, {
          expires: 364,
          path: '/'
        });
      });

      // --- iFrame functions ---
      iframe.bind('ShowELB', function () {
        var frame = JQ(this);
        if ( settings.mode == 'iframe' && frame.attr('src') == '' ) {
          frame.attr('src', settings.url );
        }
        else {
          frame.css("overflow", "hidden");
          var body = JQ('<div id="stc-elb-body" style="margin:0px; padding:15px;"></div>');
          frame.append(body);
          body.writeCapture().html('<h1 style="text-align: center;"><span style="color:#cc0000;">30 gratis Tipps zur GPS Navigation!</span></h1><h2 style="text-align: center;">Lerne mit e-Mail und Video-Lektionen leichter mit GPS und BaseCamp zu planen.</h2><p style="text-align: center;">Wenn Du Dich hier eintr&auml;gst, erh&auml;ltst Du im Abstand von einer Woche e-Mails mit hochwertigen Tipps zur GPS Navigtion und zu BaseCamp. Es sind kurze Tipps und Videos mit Vorgehensweisen zu Routenplanung und Karteninstallation. Trage Deine e-Mail Adresse hier ein um die gratis Lektionen per E-Mail zu erhalten:</p><p><center><iframe class="ktv2" height="156" scrolling="no" src="https://klicktipp.s3.amazonaws.com/userimages/4234/forms/150713/3i13z3fyz8z70b3.html" style="position:relative;display:inline-block;border:none;background:transparent none no-repeat scroll 0 0;margin:0;" width="300"></iframe></p></center><div style="display:block;clear:both;text-align:center;"><br/></div><div id="afflink"><small><a href="https://www.klick-tipp.com/9486" target="_blank" title="E-Mail Newsletter Programm" style="position:relative;display:inline-block;text-decoration:none;font-size: 11px;line-height: 14px;background-color:transparent;">Exit-Lightbox by Klick-Tipp</a></small></div>');
        }
      });

      iframe.bind('HideELB', function () {});

      iframe.bind('UpdateELB', function () {});

      JQ(document).data('last', 0);
      JQ(document).bind('mousemove.ELB', function (e) {
        var doc = JQ(this);
        var last = doc.data('last');
        if (e.clientY < last && e.clientY <= 10) {
          if ( window.DRIGMBH.jquery.writeCapture )
            JQ('.stc-elb-element').trigger('ShowELB');
        }
        doc.data('last', e.clientY);
      });

      JQ(document.body).append(blocker, container.append(scroller.append(iframe, closer)));

    });

  }
}

window.DRIGMBH.init();
