$(document).ready(function() {
    
  var language = getLanguage();

  translate(language);
    
  // create language switch links
  var i18n = $('<ul></ul>').attr('id', 'i18n');
  var english_link = $('<a></a>').attr({ 'href': '#', 'id': 'english' }).html('English');
  var french_link = $('<a></a>').attr({ 'href': '#', 'id': 'french', 'class': 'last' }).html('Français');
  
  english_link.click(function() { translate('English');$(this).blur();return false; });
  french_link.click(function() { translate('French');$(this).blur();return false; });
  
  switch(language) {
    case 'English':
      english_link.addClass('current');
      break;
    case 'French':
      french_link.addClass('current');
      break;    
  }
  
  var english_li = $('<li></li>').append(english_link);
  var french_li = $('<li></li>').append(french_link);
  
  i18n.append(english_li).append(french_li);
  
  $('#logo').after(i18n);

  function getLanguage() {
    var language = readCookie('language');

    if(language) {
      writeCookie('language', language, 60);
      return language;      
    } else {
      writeCookie('language', 'English', 60);
      return 'English'
    }

  }
  
  
  function translate(language) {
    writeCookie('language', language, 60);
    
    switch(language) {
      case 'French':
        $('.english').each(function() {
          var display = $(this).css('display');          
          switch(display) {
            case 'none':            
              break;
            case 'block':
              $(this).hide();
              $(this).next('.french').css('display', 'block');
              break;
            case 'inline':
              $(this).hide();
              $(this).next('.french').css('display', 'inline');
              break;
            default:
              $(this).hide();
              $(this).next('.french').show();
              break;
          }          
        });
        $('#i18n li a#english').removeClass('current');
        $('#i18n li a#french').addClass('current');
        break;
      case 'English':
        $('.french').each(function() {
          var display = $(this).css('display');          
          switch(display) {
            case 'none':            
              break;
            case 'block':
              $(this).hide();
              $(this).prev('.english').css('display', 'block');
              break;
            case 'inline':
              $(this).hide();
              $(this).prev('.english').css('display', 'inline');
              break;
            default :
              $(this).hide();
              $(this).prev('.english').show();
              break;
          }          
        });
        $('#i18n li a#english').addClass('current');
        $('#i18n li a#french').removeClass('current');
        break;            
    }       
  }
      
  
  function writeCookie(name, value, days) {
    var max_age = 60 * 60 * 24 * days;
    var date = new Date();
    date.setTime(date.getTime()+(max_age*1000));
    var expires = date.toGMTString();
    document.cookie = name+'='+value+'; max-age='+max_age+"; expires="+expires+"; path=/";
  }
  
  function readCookie(name, value, days) {
    var keyIndex = document.cookie.indexOf(name+'=');
    if(keyIndex != -1) {
      var start = keyIndex + (name+'=').length;
      var end = document.cookie.indexOf(';', start);
      if(end == -1) end = document.cookie.length
      return document.cookie.substring(start, end);
    }
  }
  
});
