var ESET_Download = {
  event_name: '',
  selected_tab: '',
  selected_section: '',
  slides: [],
  language_active: false,
  language_delay: 250,
  language_opacity: .9,
  language: 'eng',
  
  init: function() {
    if($('language_code')) {
      this.language = $('language_code').value;
    }

    $('show_links').addEvent('click', function(e) {
      e.stop();
      $('download_process').setStyle('display', 'none');
      $('download_page').setStyle('display', 'block');
      ESET_Download.setEvents();
    });

    if($('download_process').getStyle('display') == 'none') {
      this.setEvents();
    }
  },

  setEvents: function() {
    this.setTabEvents();
    this.setSectionEvents();
    this.setDownloadHover();
    this.setChangeLanguage();
  },

  setTabEvents: function() {
    $('download_tabs').getElements('li a').each(function(e) {
      var eventname = e.getParent().getProperty('class') + '_' + ESET_Download.language;
      var tabname = 'download_' + eventname;
      if($(tabname)) {
        var selected = $(tabname).getStyle('display');
        if(selected != 'none') {
          ESET_Download.selected_section = tabname;
          ESET_Download.selected_tab = e;
          ESET_Download.event_name = eventname;
        }
      }
      
      e.addEvent('click', function(evt) {
        if(evt) {
          evt.stop();
        }
        if($(ESET_Download.selected_tab)) {
          $(ESET_Download.selected_tab).removeClass('selected');
        }
        e.addClass('selected');
        ESET_Download.selected_tab = e;
        ESET_Download.event_name = e.getParent().getProperty('class') + '_' + ESET_Download.language;
        
        if($(ESET_Download.selected_section)) {
          $(ESET_Download.selected_section).setStyle('display', 'none');
        }
        var tabname = 'download_' + e.getParent().getProperty('class') + '_' + ESET_Download.language;
        if($(tabname)) {
          $(tabname).setStyle('display', 'block');
          ESET_Download.selected_section = tabname;
        }
        
        ESET_Download.setSectionEvents();

      });
    });
    
  },
  
  setSectionEvents: function() {
    if(!ESET_Download.slides[ESET_Download.event_name]) {
      ESET_Download.slides[ESET_Download.event_name] = [];
      $$('#download_' + ESET_Download.event_name + ' .product_sections').each(function(e, index) {
        ESET_Download.slides[ESET_Download.event_name].push(new Fx.Slide(e, {
          onStart: function(e) {
            e.getParent().getParent().getElement('h3 a').toggleClass('selected');
          }
        }));
        if(e.getStyle('display') == 'none') {
          e.setStyle('display') == '';
          ESET_Download.slides[ESET_Download.event_name][ESET_Download.slides[ESET_Download.event_name].length - 1].hide();
        } else {
          ESET_Download.slides[ESET_Download.event_name][ESET_Download.slides[ESET_Download.event_name].length - 1].show();
        }
      });
  
      $$('#download_' + ESET_Download.event_name + ' .download_section h3 a').each(function(e, index) {
        e.addEvent('click', function(evt){
          evt.stop();
          ESET_Download.slides[ESET_Download.event_name][index].toggle();
        });
      });
    }

  },
  
  setDownloadHover: function() {
    $$('div.product_download span a').addEvents({
      mouseenter: function(){
        this.set('morph', {duration: 150});
        this.morph({
          'opacity': [.001, 1]
        });
      },
      mouseleave: function(){
        this.set('morph', {duration: 150});
        this.morph({
          'opacity': [1, .001]
        });
      }
    }).setStyles({
      'opacity': .001,
      'background-position': '0 -20px'
    });
  },
  
  setChangeLanguage: function() {
    $$('#download_language div.choose a').addEvent('click', function(e) {
      e.stop();
      if(this.hasClass('selected')) {
        this.removeClass('selected').setStyle('opacity', 1).removeEvents({
          'mouseenter': ESET_Download.languageEnter,
          'mouseleave': ESET_Download.languageLeave
        });
        $('language_selection').setStyle('display', 'none');
        $('language_popup').removeEvents({
          'mouseenter': ESET_Download.languageEnter,
          'mouseleave': ESET_Download.languageLeave
        });
        ESET_Download.language_active = false;
        
      } else {
        this.addClass('selected').setStyle('opacity', ESET_Download.language_opacity);
        ESET_Download.language_active = true;

        var coords = this.getCoordinates($('content_with_infobox_nojs'));

        $('language_selection').setStyles({
          'display': 'block',
          'top': coords.top + coords.height + 'px'
        });
        $('language_popup').addEvents({
          'mouseenter': ESET_Download.languageEnter,
          'mouseleave': ESET_Download.languageLeave
        }).setStyle('opacity', ESET_Download.language_opacity);
        this.addEvents({
          'mouseenter': ESET_Download.languageEnter,
          'mouseleave': ESET_Download.languageLeave
        });
      }
    });
    
    $$('#language_popup a').addEvent('click', function(e) {
      e.stop();
      var language = this.href.split('#').getLast();
      
      $('language_' + ESET_Download.language).setStyle('display', 'none');
      $('language_' + language).setStyle('display', 'block');
      
      
      ESET_Download.language = language;
      ESET_Download.language_active = false;
      
      ESET_Download.languageHide();

      var section = ESET_Download.selected_section.split('_')[1];
      $('download_tabs').getElement('a').fireEvent('click');
      $$('#download_tabs li.' + section).getElement('a').fireEvent('click');
      
      $('language_selected').setProperty('html', $('language_full_' + ESET_Download.language).value).setStyle('display', 'block');

    });
  },

  languageLeave: function() {
    ESET_Download.language_active = false;
    ESET_Download.languageHide.delay(ESET_Download.language_delay);
  },

  languageEnter: function() {
    ESET_Download.language_active = true;
  },

  languageHide: function() {
    if(!ESET_Download.language_active) {
      $$('#download_language div.choose a').removeClass('selected').removeEvents({
        'mouseenter': ESET_Download.languageEnter,
        'mouseleave': ESET_Download.languageLeave
      });
      $('language_selection').setStyle('display', 'none');
      $('language_popup').removeEvents({
        'mouseenter': ESET_Download.languageEnter,
        'mouseleave': ESET_Download.languageLeave
      });
    }
  },
  
  highlightPicked: function() {
    var fn = function(){
      $$('.product_highlight').each(function(e) {
        new Fx.Tween(e, {
          duration: 500,
          onComplete: function() {
            new Fx.Tween(e, {
              duration: 500
            }).start('background-color', '#ffb', '#fff');
          }
        }).start('background-color', '#fff', '#ffb');
      });
    }.delay(500);
  }
  
}

window.addEvent('domready', function() {
  ESET_Download.init();
});
window.addEvent('load', function() {
  ESET_Download.highlightPicked();
});