$(function(){

    jQuery.fn.rolloverImg = function(config){
        // 引数のデフォルト値を渡す {}内は、カンマ（,）で区切って複数可能
        config = jQuery.extend({
                overName    : "_on",
                actName     : "_on"
            },config);

        $(this).each(function(){

            var target = this;
            var _target = $(this);

            if(target.tagName == 'IMG' || target.tagName == 'INPUT'){

                        var reFileType = new RegExp();
                        reFileType = /\.gif|\.jpg|\.png/;

                        var reNotFile = new RegExp(config.overName+"\.gif|"+config.overName+"\.jpg"+config.overName+"\.png");

                        var filePath = this.src;
                        var file = filePath.slice(0,filePath.search(reFileType));
                        var filetype = filePath.slice(filePath.search(reFileType));

                        if(filePath.search(reNotFile) != -1 ){// now on
                            return;
                        }


                        // preload image
                        if(config.overName == config.actName){
                            var preOverImg = new Image();
                            var preActImg = new Image();
                            preOverImg.src = file + config.overName + filetype;
                            preActImg.src = file + config.overName + filetype;
                        }else {
                            var preOverImg = new Image();
                            var preActImg = new Image();
                            preOverImg.src = file + config.overName + filetype;
                            preActImg.src = file + config.actName + filetype;
                        }
                        _target.hover(function(){
                            target.src = preOverImg.src;
                        },function(){
                            target.src = filePath;
                        }).mousedown(function(){
                            target.src = preActImg.src;
                        }).mouseup(function(){
                            target.src = preOverImg.src;
                        });
            }

        });


    };// /fn.rolloverImg


// init
    $('.rollover').rolloverImg();

});