
function getElementsByClass(searchClass) {

   if (document.all) {
        var classElements = new Array();
        var allElements = document.all;
            for (i = 0, j = 0; i < allElements.length; i++) {
                if (allElements[i].className == searchClass) {
                    classElements[j] = allElements[i];
                    j++;
                }
            }    
   } else if (document.getElementsByTagName) {
        var classElements = new Array();
        var allElements = document.getElementsByTagName("*");
            for (i = 0, j = 0; i < allElements.length; i++) {
                if (allElements[i].className == searchClass) {
                    classElements[j] = allElements[i];
                    j++;
                }
            }        
   } else {
      return;
   }

    return classElements;
}
function gcn(id){  
//        return document.getElementsByClassName(id);  
        return getElementsByClass(id);  
}
/* Cookie の読み込み
     引数 key : 求める値のキー
     戻り値　 : 値（ない時は空文字""）*/
function ReadCookie(key) {
     var sCookie = document.cookie;    // Cookie文字列
     var aData = sCookie.split(";");       // ";"で区切って"キー=値"の配列にする
     var oExp = new RegExp(" ", "g");   // すべての半角スペースを表す正規表現
     key = key.replace(oExp, "");          // 引数keyから半角スペースを除去

     var i = 0;
     while (aData[i]) {                           /* 語句ごとの処理 : マッチする要素を探す */
          var aWord = aData[i].split("=");                         // さらに"="で区切る
          aWord[0] = aWord[0].replace(oExp, "");              // 半角スペース除去
          if (key == aWord[0]) return unescape(aWord[1]); // マッチしたら値を返す
          if (++i >= aData.length) break;                          // 要素数を超えたら抜ける
     }
     return "";                                   // 見つからない時は空文字を返す
}
/* Cookie への書き出し
     引数 key　 : データキー （半角英数 _ のみ）
     引数 value : データの値（日本語可）
     引数 days  : データを保持する日数（ 0 の時は有効期限は省略）*/
function WriteCookie(key, value, days) {
     var str = key + "=" + escape(value) + ";";         // 書き出す値１ : key=value
     if (days != 0) {                                                 /* 日数 0 の時は省略 */
          var dt = new Date();                                   // 現在の日時
          dt.setDate(dt.getDate() + days);                   // days日後の日時
          str += "expires=" + dt.toGMTString() + ";"; // 書き出す値２ : 有効期限
     }
     document.cookie = str;                                   // Cookie に書き出し
}

var TabMaker = Class.create();
TabMaker.prototype = {  
        initialize: function(tab) {  
                this.tabLnegth = gcn(tab).length;  
                this.tabName = tab;  
        },  
        create: function() {  
                var c_index = ReadCookie('tab_index');
                var menu = new TabIndex(this.tabName);  
                if(c_index==''){
                    c_index = 0;
                } else if(this.tabLnegth <= c_index){
                    c_index = 0;
                }
                
                for (var i = 0; i < this.tabLnegth; i++) {  
                   menu.appendTab(new Tab('Tab' + i, i, (i==c_index)));  
                }
                menu.setTab();  
        }  
}  
  
var Tab = Class.create();  
Tab.prototype = {  
        initialize: function(name, index , open) {  
                this.name = name;  
                this.index = index;  
                this.page = name + 'Box';
                this.open = open;  

        },  
        styleTab: function() {  
                if (this.open)  {
                    this.setStyle('visible', '', 'open');
                    WriteCookie('tab_index',this.index);
                } else  {
                    this.setStyle('hidden', 'absolute', 'close');
                }
                this.open = false;  
        },  
        setStyle: function(visibility, position, className){  
                var page = $(this.page).style;  
                var name = $(this.name);
                page.visibility = visibility;  
                page.position = position;  
                name.className = className;  
                // style 
                /*
                var name_s = $(this.name).style;
                name_s.fontSize = '14px';
                name_s.margin = '0 0 0 5px';
                name_s.padding = '5px';
                name_s.height = 'auto';
                name_s.cursor = 'pointer';

                var userAgent = navigator.userAgent.toLowerCase();  
      
                // IE : 'styleFloat' , Firefox，Safari : 'cssFloat' , Opera : ok
                var styleFloat = /msie/.test( userAgent ) && !/opera/.test( userAgent ) ?  
                        "styleFloat" : "cssFloat";  

                name_s[styleFloat] = 'left';
                */
 
        }  
}  
  
var TabIndex = Class.create();  
TabIndex.prototype = {  
        initialize : function(tab) {  
                this.last = 0;  
                this.tabs = new Array();  
                this.tabName = tab;  
        },  
        getTabAt : function(index) {  
                return this.tabs[index];  
        },  
        appendTab : function(tab) {  
                this.tabs[this.last] = tab;  
                gcn(this.tabName)[this.last].id = tab.name;  
                gcn(this.tabName+'Box')[this.last].id = tab.page;  
                this.last++;  
                /*
                var link = document.createElement('a');  
                link.innerHTML = $(tab.name).innerHTML;  
                link.href = 'javascript:void(0);'  
                $(tab.name).innerHTML = '';  
                $(tab.name).appendChild(link);  
                */
                $(tab.name).onclick = function(){  
                        tab.open = true;
                        this.setTab();
                }.bind(this);  
        },  
        getLength : function() {  
                return this.last;  
        },  
        each : function(func) {  
                for (var i = 0; i < this.getLength(); i++) {  
                        func(this.getTabAt(i));  
                }  
        },  
        setTab: function() {  
                this.each(function(tab) {  
                                tab.styleTab();  
                });  
        }  
};  


var tab_check_id = '';

function init_tabid(){
	if( tab_check_id=='' || !Element.empty(tab_check_id) ){
		var start = new TabMaker('tab');  
		start.create();
	} else {
		setTimeout("bbb()",1000);
	}
}

/*
Event.observe(window, 'load', function(){
	bbb();
});
*/

