
function browserLanguage() {
  try {
    return (navigator.browserLanguage || navigator.language || navigator.userLanguage).substr(0,2)
  }
  catch(e) {
    return undefined;
  }
}

function setLanguage(default_language, languages) {
  var addCSSRule = (document.createStyleSheet)
    ? (function(sheet) {
      return function(selector, declaration) {
        sheet.addRule(selector, declaration);
      };
    })(document.createStyleSheet())
    :
    (function(sheet){
      return function(selector, declaration) {
        sheet.insertRule(selector + '{' + declaration + '}', sheet.cssRules.length);
      };
    })((function(e){
      e.appendChild(document.createTextNode(''));
      (document.getElementsByTagName('head')[0] || (function(h) {
        document.documentElement.insertBefore(h, this.firstChild);
        return h;
      })(document.createElement('head'))).appendChild(e);
      return e.sheet;
    })(document.createElement('style')));

  var removeCSSRule = function(ruleName) {
    for(var i = 0; i < document.styleSheets.length; i++) { 
      var styleSheet = document.styleSheets[i];
      var ii = cssRule = 0;                              
      do {
        cssRule = (styleSheet.cssRules ? styleSheet.cssRules : styleSheet.rules)[ii];
        if(cssRule && cssRule.selectorText.toLowerCase() == ruleName) { 
            styleSheet.cssRules ? styleSheet.deleteRule(ii) : styleSheet.removeRule(ii);
            return true;
        }
        ii++;                                 
      } while(cssRule);
    }
    return false;
  }

  var array_include = function(ary, v) {
    for (var i in ary) {
      if (ary[i] == v) return true;
    }
    return false;
  };

  var lang = browserLanguage();
  if(lang==default_language || !array_include(languages, lang)) return false;

  addCSSRule("." + default_language, "display: none;");
  removeCSSRule("." + lang);
  return true;
}

setLanguage("en", ["ja"]);


