//Landing page behavior
Local.timer = null;

Local.tease = function(link){
  Fair.Common.Overlay.show('signin', link);
};

Local.Landing = {
  
  init: function(){
    if (Browser.Engine.trident4) this.initIE();
    
    var carousel = $('carousel'), slideshow = $('slideshow');
    if (carousel) new Carousel(carousel);
    if (slideshow) new Slideshow(slideshow, { links: '#slideshow-links a.page' });
    $$('div.ranking').show();
    
    var signin = $('signin-overlay');
    if (Fair.Session || !signin) return;
    
    var invite = $('invite_email'), alltracks = $('all-tracks'), search = $('search-text');
    if (invite) invite.addEvents({
      blur: function(){ if (this.value.clean() == '') this.addClass('blurred').value = 'Enter email address';  },
      focus: function(){ if (this.value == 'Enter email address') this.removeClass('blurred').value = ''; }
    }).addClass('blurred');
    
    if (alltracks) alltracks.addEvent('click', function(event){
      Fair.Scroller.toElement('user-content');
      $('user-tracks').highlight();
      event.stop();
    });
    
    if (search) search.getParent('form').addEvent('submit', function(event){
      Local.tease({title: 'Search for music from around the globe'});
      event.stop();
    });
    
    $$('#navigation a, a.tease').each(this.tease.bind(this));
    
    this.initSignin();
    this.initSignup();
  },
  
  tease: function(link){
    if (link.id == 'banner') return;
    else if (link.hasClass('play')) Fair.Common.Links.play(link);
    else if (link.hasClass('share')) Fair.Common.Links.share(link);
    else link.addEvent('click', function(event){ event.stop(); Local.tease(link); });
  },
  
  initSignin: function(){
    var username = $('login'),
        password = $('password'),
        form = username.getParent('form');
    
    var validate = function(){
      var valid = true;
      [username, password].each(function(input){
        if (!input.value){ input.addClass('error'); valid = false; }
        else input.removeClass('error');
      });
      return valid;
    };
    
    form.addEvent('submit', function(event){ if (!validate()) event.stop(); });
  },
  
  initSignup: function(){
    var email = $('invite_email'),
        check = $('invite_uploader'),
        form = email.getParent('form');
    
    check.addEvent('click', function(){
      $('uploader_data').toggle(true, this.checked);
    }).checked = false;
    
    var validate = function(){
      var valid = true;
      if (!email.value || !email.value.test('@')){ email.addClass('error'); valid = false; }
      else email.removeClass('error');
      
      if (!check.checked){
        if (!valid) Fair.Roar.alert('Please enter a valid email address');
        return valid;
      }
      
      var url = $('invite_url'),
          last = $('invite_last_name'),
          first = $('invite_first_name'),
          artist = $('invite_band_or_company_artist'),
          label = $('invite_band_or_company_label'),
          media = $('invite_band_or_company_media'),
          choices = artist.getParent('tr');
          
      if (!first.value && !last.value){ first.addClass('error'); last.addClass('error'); valid = false; }
      else { first.removeClass('error'); last.removeClass('error'); }
      
      if (!url.value){ url.addClass('error'); valid = false; }
      else url.removeClass('error');
      
      if (!artist.checked && !label.checked && !media.checked){ choices.addClass('error'); valid = false; }
      else choices.removeClass('error');
      
      if (!valid) Fair.Roar.alert('Please enter all required information');
      
      return valid;
    };
    
    form.addEvent('submit', function(event){
      event.stop();
      if (!validate()) return;
      new Request.JSON({
        url: form.action,
        onComplete: function(response){
          if (response.alert) return;
          $('uploader_data').hide(true);
          Fair.Common.Overlay.signin.hide();
          form.reset();
        }
      }).post(form);
    });
  },
  
  initIE: function(){
    var title = 'Fairtilizer was designed for recent browsers such as <a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx" target="_blank">Internet Explorer 7</a>, <a href="http://getfirefox.com" target="_blank">Firefox 2</a> and <a href="http://apple.com/safari" target="_blank">Safari 3</a>.',
        message = 'Your browser is not compatible. Please upgrade it before you join Fairtilizer.<br />';
    $('content').getElements('input').each(function(input){
      if (!(/text|password/).test(input.type)) input.disabled = true;
      else input.addEvent('mousedown', function(){ Fair.Roar.persist(title, message); }).readOnly = true;
    });
    Fair.Roar.persist(title, message);
    document.getElement('a.password').destroy();
  }
  
};

Fair.Content = window;

window.addEvent('domready', Local.Landing.init.bind(Local.Landing));