//ぎゃざりんくJS 
//mixed by *ぱお*/米村 薫
//20081202　初版作成・公開
//20090215　リンク先をタカラトミー社のAutocardからWhisperに変更
//20090218　<a>内の該当文字列はリンクしないように変更。onready.js使用に変更
//20090410　リンク先をbeta.gathererに変更

/*
    以下、クロスブラウザDOMローダ onready.js を借用
    DOMロード関数 onready を定義

    Copyright (c) 2007 latchet (http://juce6ox.blogspot.com/)
    Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
*/

var onready = (function(){
    var id,
        ua   = navigator.userAgent.toLowerCase(),
        fs   = [],
        i    = 0,
        done = false,
    /*@cc_on
        oldExp,
    @*/
        init = function(){
                   var f, j = 0;
                   if(done) return;
                   done = true;
                   /*@cc_on
                   if(oldExp) document.documentElement.style.setExpression('behavior', oldExp);
                   else       document.documentElement.style.removeExpression('behavior');
                   window.detachEvent('onload', init);
                   document.onreadystatechange = null;
                   /*@if(false)@*/
                   document.removeEventListener('DOMContentLoaded', init, false);
                   window.removeEventListener('load', init, false);
                   /*@end@*/
                   window.onload = null;
                   while(f = fs[j++]) f();
               },
        set  = function(){
                   var ok;
                   /*@cc_on
                   oldExp = document.documentElement.style.getExpression('behavior');
                   document.documentElement.polling = function(){
                       try{
                           document.documentElement.doScroll('left');
                       }catch(e){
                           return setTimeout(document.documentElement.polling, 0);
                       };
                       document.documentElement.polling = null;
                       init();
                   };
                   document.documentElement.style.setExpression('behavior', 'document.documentElement.polling()');
                   window.attachEvent('onload', init);
                   document.onreadystatechange = function(){
                       if(document.readyState == 'complete') init();
                   };
                   /*@if(false)@*/
                   if(/mozilla/.test(ua) && !/compatible|webkit/.test(ua) || /opera/.test(ua))
                       document.addEventListener('DOMContentLoaded', init, false);
                   else if(/webkit|khtml/.test(ua) && (ok = /loaded|complete/))
                       (function(){
                           return ok.test(document.readyState) ? init() : setTimeout(arguments.callee, 0);
                       })();
                   window.addEventListener('load', init, false);
                   /*@end@*/
                   var old = window.onload
                   window.onload = (typeof old == 'function') ? function(){old();init();} : init;
               };
    return function(f){
        if(typeof f != 'function') return;
        if(done) return f();
        if(!i) set();
        fs[i++] = f;
    };
})();

onready(function(){
	var body = document.body;
    var url= new Array();
    url["ga"] = "http://gatherer.wizards.com/Pages/Search/Default.aspx?name=";
    url["cr"] = "http://mjmj.info/data/CompRules_j.html#";
	body.innerHTML = body.innerHTML.
		replace(/([^>]|<[^aA][^>]+>|<[aA][^ ][^>]+>|<[aA] [^>]+>[^<]*<\/[aA]>[^<]*)《([^》\/／\(]+)([\/／][^》\(]+)?(?:\(([A-Z0-9]+)\))?》(?:\[([A-Z0-9]{2,3})\])?/g,
		function(all, PRE, JAP, ENG, SET, SET2){
			if (ENG == undefined){
				CARD = JAP;
			}else{
				CARD = JAP + ENG;
			}
			if (JAP.search(/[A-Za-z]/) != -1){
				return (PRE + '<a class="cardlink" href="' + url["ga"] + JAP + '" target="_blank">《' + CARD + '》</a>');
			}else{
				return (PRE + '<a class="cardlink" href="' + url["ga"] + '+[' + EscapeUTF8(JAP).replace(/\%20/g, "]+[") + ']" target="_blank">《' + JAP + '》</a>');
			}
		}).
		replace(/([^>]|<[^aA][^>]+>|<[aA][^ ][^>]+>|<[aA] [^>]+>[^<]*<\/[aA]>[^<]*)(?:CR ?|rule )([0-9\.a-z]+)/g, '$1<a class="rulelink" href="' + url["cr"] + 'r$2" target="_blank">rule $2</a>');
});

// 以上 オートリンクについて本気出して考えてみた より翻案
// Copyright (C) http://atab0u.blog105.fc2.com/blog-entry-33.html


EscapeUTF8=function(str){
	return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){
		var c=s.charCodeAt(0);
		return (c<16?"%0"+c.toString(16):c<128?"%"+c.toString(16):c<2048?"%"+(c>>6|192).toString(16)+"%"+(c&63|128).toString(16):"%"+(c>>12|224).toString(16)+"%"+(c>>6&63|128).toString(16)+"%"+(c&63|128).toString(16)).toUpperCase()
	})
};

//以上 Escape Codec Library: ecl.js (Ver.041208) より引用
// Copyright (C) http://nurucom-archives.hp.infoseek.co.jp/digital/

