langlist = ["ja", "en", "zh", "de", "ko"];

var arealist = {
  "en":"na",
  "ja":"ja",
  "ko":"ko",
  "zh":"asia",
  "de":"eu"};
Event.observe(window, 'load', function() {
  if ($("en")) {
  Event.observe($("en"), 'click', selectLanguage, false);
  }
  if ($("ja")) {
  Event.observe($("ja"), 'click', selectLanguage, false);
  }
  if ($("zh")) {
	Event.observe($("zh"), 'click', selectLanguage, false);
  }
  if ($("de")) {
	Event.observe($("de"), 'click', selectLanguage, false);
  }
  if ($("ko")) {
	Event.observe($("ko"), 'click', selectLanguage, false);
  }
  return false;
}, false);

/*
window.onload = function () {
  //setLangOption($("language"));
  // このコメントアウトをはずすとセレクトによるselect_language
  // Event.observe($("language"), 'change', selectLanguage, false); // 選択リストの変更をきっかけにselectLanguageを呼び出す。

  // aタグによるセレクトランゲージ
  Event.observe($("en"), 'click', selectLanguage, false);
  Event.observe($("ja"), 'click', selectLanguage, false);
  if ($("zh")) {
	Event.observe($("zh"), 'click', selectLanguage, false);
  }
  if ($("de")) {
	Event.observe($("de"), 'click', selectLanguage, false);
  }
  if ($("ko")) {
	Event.observe($("ko"), 'click', selectLanguage, false);
  }
}
*/

function retPathInfo() {
  pathname = location.pathname; // ドメイン以降の文字列取得

  pathinfo = [];
  for (i = 0; i < langlist.length; i++) {
	lang = langlist[i];
	regObj = new RegExp("^(\/.*\/|\/)" + lang + "(\/.*)$");
	result = pathname.match(regObj);
	if (result != null) {
	  pathinfo[0] = RegExp.$1; // 言語以前の部分
	  pathinfo[1] = lang;	   // 言語名
	  pathinfo[2] = RegExp.$2; // 言語以降の部分
	  break;
	}
  }
  return pathinfo;
}

function retExtraLevel() { // 余分なディレクトリ数計算
  var pathname = location.pathname; // ドメイン以降の文字列取得

  var pathinfo;
  var delimAry = [];
  for (i = 0; i < this.langlist.length; i++) {
	lang = langlist[i];
	regObj = new RegExp("(\/.*\/)" + lang + "(\/.*)");
	result = pathname.match(regObj);
	if (result != null) {
	  pathinfo = RegExp.$1; // 言語以前の部分
	  delimAry =  pathinfo.split("/");
 	  break;
	}
  }
  return delimAry.length; 
}

// ディレクトリからファイル名を取得する。
function retBaseName(path) {
  var dir;
  var file;
  regObj = new RegExp("(.*\/)" + "(.*)");
  result = path.match(regObj);
  if (result != null) {
	dir = RegExp.$1; // 言語以前の部分
	file = RegExp.$2; // 言語以降の部分
  }
  return file;
}

function setLangOption(elem) {
	
  pathinfo = retPathInfo();

  len = $("language").options.length;
  for (i = 0; i < len; i++) {
    lang = $("language").options[i].value;
	if (lang != "" && pathinfo[1].indexOf(lang, 0) >= 0) { // 言語名と一致したら
	  $("language").options[i].selected = true;
	  break;
	}
  }
}

function redirectEnglishTop() {
  var basename = retBaseName(location.pathname); // ファイル名取得
  if (basename == "index.html" || basename == "") { // ファイル名がindex.htmlの場合
	location.href = "en/index.html?selectlang=1";
  }
}
function isTopPage(pathinfo) {
	if(pathinfo[2].match("^\/robot\/?index\.html$") ||
	   pathinfo[2].match("^\/adcd\/?index\.html$") ||
	   pathinfo[2].match("^\/oem\/?index\.html$")) {
	return true;
  }
  return false;
/*
  var kind = ary.detect(function(value, index) {
    var reg = new RegExp(".*" + value + ".*");
	// str.indexOf(value);
	if (str.match(reg)) return true; 
  });
  return kind;
*/
}


//
// ロボット事業部サイトマップページ用
//
function redirectSitemap(pathinfo, toLang) {
  // alert(pathinfo[0]);
  // alert(pathinfo[1]);
  // alert(pathinfo[2]);
  if (pathinfo[2].match("^\/robot\/sitemap\/index.html$")) { 
	if (pathinfo[1] == "zh" || pathinfo[1] == "de" || pathinfo[1] == "ko") { // ロボットのサイトマップの場合
	  if (toLang == "ja" || toLang == "en") { // 飛び先が日本語もしくは英語の場合
		pathinfo[2] = "\/corporation\/sitemap\/index.html";
	  }
	}
  }
}

function selectLanguage (evt) {

  // aタグ使用によるセレクトランゲージ
  // イベントが発生した要素オブジェクト取得
  if(evt.target) { // ie以外用
    target_node = evt.target;
  } else { // ie用
    target_node = evt.srcElement;
  }
  var value = target_node.id;
	// selectタグ使用のセレクトランゲージ
	// value = $("language").options[$("language").options.selectedIndex].value; // 選択したoptionsのvalues取得(飛び先の言語)(en, jaなど)
  if (value == "") {
	Event.stop(evt); 
	return false;
  }
  pathinfo = retPathInfo();

  if (pathinfo == "") { // 総合トップの可能性があるpathinfoでかつselectlanguageで英語が選択された場合
	if (value == "en") {
	  redirectEnglishTop();
	}
	Event.stop(evt); 
	return false;
  }

  if (pathinfo[2].match(".*\/$")) { // 終端が/の場合は、index.htmlを追加する。
	pathinfo[2] = pathinfo[2] + "index.html";
  }

  // len = $("language").options.length;
  if (pathinfo[2].match("support\/discon\/")
	|| pathinfo[2].match("product\/latest")
	|| pathinfo[2].match("download\/spec_dimensions")) {
	if (value == "en" && pathinfo[1] != "en") { // 飛び先の言語が英語の場合、各地域のページに転送するための処理
	  // var index = pathinfo[2].indexof(".html");
	  pathinfo[2].match(/(.*)\.html/);
	  pathinfo[2] = RegExp.$1 + "-" + arealist[pathinfo[1]] + ".html";
//	  pathinfo[2] = pathinfo[2].replace("index.html", "index-" + arealist[pathinfo[1]] + ".html");
	} else if (pathinfo[1] == "en") { // 現在のページが英語の場合
	  if (value != "en") {
		filename = retBaseName(pathinfo[2]);
	    result = filename.match(/.*(-(na|ja|ko|asia|eu))\.html/);

	    if (result != null) {
		  pathinfo[2] = pathinfo[2].replace(RegExp.$1, "");
		}
	  }
	}
  } else if (pathinfo[2].match("\/faq\/")) { // よくある質問の場合
    var result = pathinfo[2].match("(.*)(\/faq\/)(.*)");
	var ary = [RegExp.$1, RegExp.$2, RegExp.$3]
	pathinfo[2] = RegExp.$1 + RegExp.$2 + "index.html";
  } else if ((pathinfo[0].match(/.*topics.*/) == null && pathinfo[0].match(/.*updates.*/) == null) && pathinfo[1] == "en" && pathinfo[2] == "\/index.html") { // 英語総合トップなら
    if (value == "ja") {
	location.href = "../index.html?selectlang=1";
	Event.stop(evt); 
	return false;
	}
  } else if ((pathinfo[0].match(/.*topics.*/) || pathinfo[0].match(/.*updates.*/)) && pathinfo[2].match(/.*[0-9][0-9].*/)) {
    if (pathinfo[2].match(/.*adcd.*/)) {
	  location.href = "../../../" + value + "/adcd/index.html";
	} else if (pathinfo[2].match(/.*robot.*/)) {
	  location.href = "../../../" + value + "/robot/index.html";
	} else {
	  location.href = "../../" + value + "/index.html";
	}
	Event.stop(evt); 
	return false;
  }
  redirectSitemap(pathinfo, value);
// for (i = 0; i < len; i++) {
// tolang = $("language").options[i].value; 
// if (pathinfo[1].indexOf(tolang, 0) >= 0) {

	/**
	 * adcd 専用
	 * product /index\-(.*)\.html/ のものを index.html にする
	 *
	 * @update 2010.3.26
	 */
	if(pathinfo[2].match("^/adcd")) {
		//alert(pathinfo[2]);
		var lastString = pathinfo[2].match("index\-.*\.html");
		if(lastString != null) {
			pathinfo[2] = pathinfo[2].replace(lastString, "");
			//alert(pathinfo[2]);
		}
	}

	href = "http://"+ location.hostname + pathinfo[0] +  value + pathinfo[2];

	location.href = href;
	if(isTopPage(pathinfo) == true) {
		location.href = href + "?selectlang=1";
	}
	else {
		location.href = href;
	}

//	}
// }
  Event.stop(evt); 
  return false;
}
