new function(){
    function setNavi(){
        if(!document.images){return;}
        	var imgs = nlToArray(document.images);
		var ipt = nlToArray(document.getElementsByTagName("input"));
		imgs = imgs.concat(ipt);
        var insert = [];
        for(var i=0;i<imgs.length;i++){
            var splitname = imgs[i].src.split('_off.');
            if((splitname[1])&&((imgs[i].parentNode.tagName=='A')||(imgs[i].getAttribute('type')=='image'))){
                var rolloverImg;
				if(imgs[i].tagName == 'IMG'){
					rolloverImg = document.createElement('img');
				} else if(imgs[i].tagName == 'INPUT'){
					rolloverImg = document.createElement('input');
					rolloverImg.type = 'image';
					rolloverImg.name = imgs[i].name;
					rolloverImg.value = imgs[i].value;
				}
                rolloverImg.src = splitname[0]+'_on.'+splitname[1];
                var alpha = 0;
                rolloverImg.currentAlpha = alpha;
                rolloverImg.style.opacity = alpha/200;
                rolloverImg.style.filter = 'alpha(opacity='+alpha+')';
                rolloverImg.style.position = 'absolute';

                //ロールオーバー・アウト処理それぞれを設定
                addEvent(rolloverImg,'mouseover',function(){setFader(this,100);});
                addEvent(rolloverImg,'mouseout',function(){setFader(this,0);});

                // 後で追加するために追加場所と共に保存しておく
                // この時点で追加するとdocument.imagesが書き換わって不都合
                insert[insert.length] = {position:imgs[i],element:rolloverImg};
            }
        }
        // ↑で作ったロールオーバー画像を追加
        for(var i=0;i<insert.length;i++){
            var parent = insert[i].position.parentNode;
            parent.insertBefore(insert[i].element,insert[i].position);
        }
    }

    // 指定要素を指定透明度にするためのフェードアニメを設定する関数

    function setFader(targetObj,targetAlpha){
        targetObj.targetAlpha = targetAlpha;
        if(targetObj.currentAlpha==undefined){
            targetObj.currentAlpha = 100;
        }
        if(targetObj.currentAlpha==targetObj.targetAlpha){
            return;
        }
        if(!targetObj.fading){
            if(!targetObj.fader){
                targetObj.fader = fader;
            }
            targetObj.fading = true;
            targetObj.fader();
        }
    }

    // アルファ値をターゲット値に近づける関数
    // ターゲット値になったら終了

    function fader(){
        this.currentAlpha += (this.targetAlpha - this.currentAlpha)*0.2;
        if(Math.abs(this.currentAlpha-this.targetAlpha)<1){
            this.currentAlpha = this.targetAlpha;
            this.fading = false;
        }
        var alpha = parseInt(this.currentAlpha);
        this.style.opacity = alpha/100;
        this.style.filter = 'alpha(opacity='+alpha+')';
        if(this.fading){
            var scope = this;
            setTimeout(function(){fader.apply(scope)},30);
        }
    }

    // イベントを追加する関数

    function addEvent(eventTarget, eventName, func){
        if(eventTarget.addEventListener){
            // モダンブラウザ
            eventTarget.addEventListener(eventName, func, false);
        }else if(window.attachEvent){
            // IE
            eventTarget.attachEvent('on'+eventName, function(){func.apply(eventTarget);});
        }
    }

    // NodeList,HTMLCollection を配列に
    function nlToArray(nodelist) {
        if(nodelist instanceof Object) 
        return Array.prototype.slice.call(nodelist);

        var r = [], i = 0, l = nodelist.length;
        for(;i < l; i++) {
            r[i] = nodelist[i];
        }
        return r;
    }


    addEvent(window,'load',setNavi);

}

