(function() {
  var user_language = navigator.userLanguage || navigator.language;
  try {
    user_language = user_language.toLowerCase().slice(0, 2);
  }
  catch(err) {
  }

  var current_language;
  if (document.location.pathname.match(/\/jp-/))
    current_language = 'ja';
  else
    current_language = 'en';

  var new_location = false;

  if ((current_language != user_language) && ((user_language == 'ja') || (user_language == 'en'))) {
    var new_path = document.location.pathname;
    new_path = new_path.replace(/\/\//, '/');
    if (new_path == '/') {
      new_path = '/index.html';
    }
    if (user_language == 'ja') {
      new_path = new_path.replace(/^\//, '/jp-');
      current_language = 'ja';
    }
    else {
      new_path = new_path.replace(/^\/jp-/, '/');
      current_language = 'en';
    }
    var loc = document.location;
    new_location = loc.protocol + '//' + loc.host + new_path + loc.search + loc.hash;
  }

  var referrer_domain;
  try {
    referrer_domain = document.referrer.match(/http[s]?:\/\/([^\/:]+)/)[1];
  }
  catch (err) {
  }
  if (!document.cookie.match(/\bage_check=ok\b/)) {
    if (referrer_domain == document.domain) {
      document.cookie = 'age_check=ok; path=/';
    }
    else {
      var confirmation_url;
      if (current_language === 'ja')
        confirmation_url = '/jp-index.html';
      else
        confirmation_url = '/index.html';

      if (new_location === false) {
        new_location = document.URL;
      }
      new_location = confirmation_url + '?source_url=' + new_location;
    }
  }

  if (new_location !== false) {
    document.location = new_location;
  }
})();
