/* 漢字DB用各種JavaScript */

/* 
   ===== 言語切換え =====
   <div lang="XX"> に基づき、言語切り替えを行う。
   lang属性 を言語切り替えではなく、多言語同時表示に使う場合は、div以外に指定すること。
*/

function showLang(lang) {
  $("div[lang="+lang+"]").show();
  $("div[lang][lang!="+lang+"]").hide();
}

function showLangAll(lang) 
{
  showLang(lang);
  sidebar.showLang(lang);
}

/* 
   ===== スタイルシート切換え =====
   参考： "styleswitch.js"
*/

function switchStylestyle(styleName)
{
	$('link[@rel*=style][@title]').each(function(i) 
	{
		this.disabled = true;
		if (this.getAttribute('title') == styleName) this.disabled = false;
	});
	//createCookie('style', styleName, 365);
}

//returns the requested GET parameter from the URL
function urlparam(param) {
    var regex = '[?&]' + param + '=([^&#]*)';
    var results = (new RegExp(regex)).exec(window.location.href);
    if(results) return results[1];
    return '';
}

/* 
   ===== ボタン設置 =====
*/

function startup() {
  $("#header2").html("\
    [<a href=\"javascript:showLangAll('ja');\">日本語</a>] \
    [<a href=\"javascript:showLangAll('en');\">English</a>] <br/> \
    [<a href=\"#\" rel=\"print\" class=\"styleswitch\" onclick=\"switchStylestyle('print'); return false;\">For Print</a>] \
    ");
    var target=$("meta[name=target]").attr("content");
    if (target != null) {
        window.name=target;
    } else {
        window.name="kanjidb";
    }
}

/*
   ===== グリフのポップアップ =====
   参考：
   http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery
*/

this.charPreview = function(){
  xOffset = -10;
  yOffset = -10;

  var re = new RegExp("^[02][0-9ABF][0-9A-F][0-9A-F][0-9A-F]$") ;
  $("*").each ( 
    function () {
      var text=this.textContent;
      if (re.exec(text)) {
        $(this).hover(
          /* mouse-over */
          function(ev) {
            $("body").append("<p id='ucs-img'><img src='ucs-img/"+text+".png' /></p>");
            $("#ucs-img")
              .css("background", "white")
              .css("padding", "10")
              .css("z-index", "4")
              .css("position", "absolute")
              .css("top", (ev.pageY-xOffset)+"px")
              .css("left",(ev.pageX+yOffset)+"px")
              .fadeIn("fast");
            },
         /* mouse-out */
         function() {
           $("#ucs-img").remove();
           }
         /* null*/
        );
        $(this).mousemove(
          function(ev){
            $("#ucs-img")
              .css("top", (ev.pageY + xOffset) + "px")
              .css("left",(ev.pageX + yOffset) + "px");
          }
        );
      }
    }
  );
};

// 起動時に実行するプログラム
$(document).ready(function(){
                    startup();
                    charPreview();
                    window.focus();
                  });

// ロード後に実行するプログラム
window.onload = function () {
    var lang=urlparam("lang");
    if (lang == 'en') {
        showLangAll('en');
    } else {
        showLangAll('ja');
    }
    window.self.focus();
    window.top.sidebar.hilightName($("meta[@name='base']").attr("content"));
}
