var Homepage = {
  
  init: function() {
    $$('#languages a.lang').each( function(button) {
      button.addEvent('click', this.selectLanguage.bindWithEvent(this, button));
    }, this);
    $('select_country_handle').addEvent('change', this.selectMobileOperator.bindWithEvent(this));
  },
  
  // Selects a language when user clicks on a language button
  selectLanguage: function(event, button) {
    event.stop();
    // Check if the button is disabled or already selected
    if (button.hasClass('disabled') || button.hasClass('selected')) return;
    
    // Else - write the cookie
    var language = button.getParent().id;
    Cookie.write('lang', language, { duration: 365 });
    // remove old highlighting
    $$('#languages .selected').each(function(elm) { elm.removeClass('selected'); });
    // and highlight the selected language
    button.addClass('selected');
    
    // Change the action for the form
    $('langform').action = '/'+language;

    // and update the translations
    var selected_country = $('select_country_handle').getSelected()[0];
    var transreq = new Request.HTML({
      method: 'get',
      url: '/l10n/'+language,
      update: $('langform'),
      async: false
    });
    transreq.send();
    
    // Restore handlers for country selector
    if (selected_country.id) {
      $(selected_country.id).selected = 'selected';
      // show go button
      $('gobutton').style.display = 'inline';
    } else {
      // hide the button
      $('gobutton').style.display = 'none';
    }
    $('select_country_handle').addEvent('change', this.selectMobileOperator.bindWithEvent(this));
  },
  
  selectMobileOperator: function(event) {
    event.stop();
    // get the selected operator
    var value = $('select_country_handle').value;
    if (value) {
      // it was selected - write the cookie
      Cookie.write('moper', value, { duration: 365 });
      // and show go button
      $('gobutton').style.display = 'inline';
    } else {
      // else - hide the button
      $('gobutton').style.display = 'none';
      // erase the cookie
      Cookie.write('moper', null, { duration: 365 });
    }
  }
  
};
window.addEvent('domready', function() { Homepage.init(); });
