(function($){
    $(function(){
        var naviActive = {
            p : {
                gprefix    : 'g',
                gnaviImg   : true,
                lprefix    : 'l',
                lnaviImg   : false,
                activeName : 'active',
                mimetype   : '(\.php|\.html|\.htm)'
            },
            init : function(p){
                if (p.gnaviImg) {
                    naviActive.gnaviImageSwitch(p);
                } else {
                    naviActive.gnaviClassSwitch(p);
                }
                if (p.lnaviImg) {
                    naviActive.lnaviImageSwitch(p);
                } else {
                    naviActive.lnaviClassSwitch(p);
                }
            },
            currentCheck : function(p) {
                var c1     = location.pathname,
                    c2     = c1.replace(/\//g, '-'),
                    mime   = new RegExp(p.mimetype),
                    c3     = c2.replace(mime, ''),
                    navi   = c3.match(/^(\-.*?)\-.*$/);
                
                return navi;
            },
            gnaviImageSwitch : function(p) {
                var navi    = naviActive.currentCheck(p),
                    gnavi   = $('#' + p.gprefix + navi[1] + ' img'),
                    gsrc    = gnavi.attr('src'),
                    gdot    = (gsrc) ? gsrc.lastIndexOf('.') : '',
                    gactive = (gdot) ? gsrc.substr(0, gdot) + '_' + p.activeName + gsrc.substr(gdot, 4) : '';
                
                naviActive.imageChange(gnavi, gactive);
            },
            gnaviClassSwitch : function(p) {
                var navi = naviActive.currentCheck(p);
                $('#' + p.gprefix + navi[1]).addClass(p.activeName);
            },
            lnaviImageSwitch : function(p) {
                var navi  = naviActive.currentCheck(p),
                    lnavi = ( navi[0].match(/^(\-.*?)\-$/) ) ? navi[1] : navi[0];
                
                $('.' + p.lprefix + lnavi + ' img').each(function(){
                    var lsrc = $(this).attr('src');
                    var ldot = lsrc.lastIndexOf('.');
                    var lactive = lsrc.substr(0, ldot) + '_' + p.activeName + lsrc.substr(ldot, 4);
                    naviActive.imageChange($(this), lactive);
                });
            },
            lnaviClassSwitch : function(p) {
                var navi  = naviActive.currentCheck(p),
                    lnavi = ( navi[0].match(/^(\-.*?)\-$/) ) ? navi[1] : navi[0];
                $('>a', '.' + p.lprefix + lnavi).each(function(){
                    $(this).addClass(p.activeName);
                });
            },
            imageChange : function (g, a){
                $(g).attr('src', a);
                $(g).unbind("mouseenter").unbind("mouseleave");
            }
        };
        if (location.pathname !== '/') {
            naviActive.init(naviActive.p);
        }
    });
})(jQuery);

