var captureEmail = function(){

  var self = this;
  this.params = document.location.href.toQueryParams();
  this.a = $$('#close-capture-popup, #close-capture-box');
  this.div = $('email-capture');
  this.bd = $('capture-body');
  this.thanksDiv = $('capture-body-thanks');
  this.sendBtn = $('sentVisitorData');
  this.preloader = new Element('span').update(WO.freetext('loading')).hide();
  this.cookie = new Cookies();
  this.cookieName = WO.setup.inst + '_email_capture';
  this.expireDays = 3650;

  this.init = function(){

       if( self.params.email_capture_testing ){
           
           self.div.addClassName('active');
           self.onDocScroll();

       }else if( self.cookie.enabled && !self.cookie.get(self.cookieName)){
   
          var sec = self.getTimeVisit();
          new PeriodicalExecuter(function(e){
           
              if(sec++ >= 60){
                 e.stop();
                 self.div.addClassName('active');
                 self.cookie.set(self.cookieName,'1', self.expireDays);
                 self.cookie.clear(WO.setup.inst + 'CapturedTime');
                 self.onDocScroll();
              } 
           
          },1);
       }
       if(self.a){
           self.a.each(function(b){
             b.observe('click', function(e){
                  e.stop();
                  self.div.fade({ duration: 0.2, afterFinish: function(){ self.div.remove(); } });
              });
          });
       }
      return self;
  };
  this.getTimeVisit = function(){
     
      var c = self.cookie;
      var now = new Date();
      if( c.get(WO.setup.inst + 'CapturedTime') ){
          var past = new Date(unescape(c.get(WO.setup.inst + 'CapturedTime')));
          return Math.round((now.getTime() - past.getTime())*0.001); // return the seconds
      }else{
          c.set(WO.setup.inst + 'CapturedTime', now.toUTCString(), self.expireDays);
          return 1;
      }

  };
  this.onDocScroll = function(){
     
      var defaultTop = self.div.cumulativeOffset()[1],
         _setScrollTop = function(){
           var top = document.viewport.getScrollOffsets()[1],
               divTop = self.div.cumulativeOffset()[1];
               self.div.setStyle('top: ' + ( divTop < top ? (20 + top) : defaultTop ) + 'px');    
      };
      _setScrollTop();
      window.onscroll = _setScrollTop;

  };
  return !this.div ? this : this.init();
}; 


document.observe('dom:loaded', function(){
    window.ECB = new captureEmail();
});


function DoCapture(){

  var f = $('capture-form');
        f.request({
             parameters: 'debug=off',
             onLoading: function(){
                  f.disable();
                  ECB.sendBtn.insert({ before: ECB.preloader.show() });
             },
             onSuccess: function(r){
                 if(r.responseText.strip()=='1'){
                      f.remove();
                       ECB.bd.hide();
                       ECB.thanksDiv.addClassName('active');
                 }
             }
       });
     return false;

}
