// JavaScript Document

$('document').ready(function(){
							 
    // マウスオーバー画像のプリロード
    $('img.hover,img.hover_and_on,input[@type=image].hover').each(function() {
        var imgSrc = getImgSrc($(this));
        var hoverSrc = getHoverImageUrl(imgSrc, true);
        (new Image()).src = hoverSrc;
        return true;
    });
    setHoverHandler('img.hover');
    setHoverHandler('input[@type=image].hover');
});


var IE6 = navigator.userAgent.indexOf('MSIE 6') != -1;

function getImgSrc(imgObj) {
    if (IE6) {
        var s = $(imgObj).attr('style');
        if (s.match(/src=["'](.+?)["']/i)) {
            return RegExp.$1;
        }
    } 
    return $(imgObj).attr('src');
}

function setImgSrc(imgObj, src) {
    if (IE6) {
        var s = $(imgObj).attr('style');
        if (s.indexOf('AlphaImageLoader') != -1) {
            var style = "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale, src=\"" + src + "\"";
            $(imgObj).attr('style', style);
            return
        }
    }
    $(imgObj).attr('src', src);
}

function getHoverImageUrl(url, onoff) {
    var extPos = url.lastIndexOf('.');
    if (extPos == -1) {
        return url;
    }
    var path = url.slice(0, extPos);
    var ext = url.slice(extPos + 1);
    if (onoff) {
        if (!path.match(/_on$/)) {
            return path + '_on.' + ext;
        }
    } else {
        if (path.match(/_on$/)) {
            return path.slice(0, -3) + '.' + ext;
        }
    }
    return url;
}

/**
 * 指定されたセレクタ(img要素を想定)に合致する画像のマウスオーバー、
 * マウスアウトイベントを設定します。
 * マウスオーバー時に、画像ファイル名の末尾に _on を付けた画像ファイルに
 * 差し替えるようにします。
 */
function setHoverHandler(exp) {
    $(exp).hover(function() {
            var imgSrc = getImgSrc($(this));
            var hoverSrc = getHoverImageUrl(imgSrc, true);
            setImgSrc($(this), hoverSrc);
            $(this).css('cursor', 'pointer');
        }, function() {
        var imgSrc = getImgSrc($(this));
            var src = getHoverImageUrl(imgSrc, false);
            setImgSrc($(this), src);
            $(this).css('cursor', 'default');
        });
}
function resetHoverHandler(exp) {
    $(exp).unbind('mouseover').unbind('mouseout');
}



/* 画像のプリロード */
function preload(path) {
    var img = new Image();
    img.src = path;
}

var preloadImages = [
    '/img/subimg_over.png'
    ];

for (var i = 0; i < preloadImages.length; i++) {
    preload(preloadImages[i]);
}

