if(typeof navjs == "undefined") {

    var navjs = { version:'1.0.0' };

    /**
     * return reverse display status
     * @param state    value of display: element
     * @param iniState default state if you want to define
     * @return value of display: element
     */
    navjs.toggledState = function (state) {
        if( state == 'none' )
            return 'block';
        else if( state == 'block' )
            return 'none';
        else if( state == '' )
            return 'none';
        else
            return 'block';
    }

    /**
     * cookie 登録。のラッパ
     *
     * トグルが分かりやすいようにcssで背景画像を切り替える
     * @see css/style.css
     *
     * @param $o    jQuery Object 変数名は $ から始まること必須
     * @reutrn void
     */
    navjs.setCookie = function ($o) {
    	var value = navjs.toggledState($o.next().css('display'));        // display値を反転
        $.cookie('nav-'+$o.before().parent().attr('id')+'-'+navjs.getUserId()                  // cookieに登録
                 , value
                 , {expires: 300, domain: location.host, secure: true});
        // set toggle img by cookies
        if(value == 'block') {
            $o.removeClass('menuTitleDownImg');
            $o.addClass('menuTitleUpImg');
        } else {
            $o.removeClass('menuTitleUpImg');
            $o.addClass('menuTitleDownImg');
        }
    }
    
    /**
     * cookie 取得。のラッパ
     *
     * トグルが分かりやすいようにcssで背景画像を切り替える
     * @see css/style.css
     *
     * @param $o     jQuery Object 変数名は $ から始まること必須
     * @reutrn value cookieから取得した値
     */
    navjs.getCookie = function ($o) {
        var value = $.cookie('nav-' + $o.parent().attr('id')+'-'+navjs.getUserId()); // cookie の値を取得
        if (! value) value = 'block';                          // デフォルト値の設定
        // set toggle img by cookies
        if(value == 'block') {
            $o.removeClass('menuTitleDownImg');
            $o.addClass('menuTitleUpImg');
        } else {
            $o.removeClass('menuTitleUpImg');
            $o.addClass('menuTitleDownImg');
        }
        return value;
    }
    
    /**
     * jquery の window.onload メソッド
     */
    $(document).ready(function(){
        $("DIV.menuTitle")
        // set onclick toggle slow
            .click(function(){
                $(this).next().slideToggle('fast'
                                           , navjs.setCookie($(this))
                                          );
            })
        // set toggle state by cookies
            .each(function () {
                $(this).next().css('display'
                                   , navjs.getCookie($(this))
                                  );
            });
     // nav 部分の navContent
     //solo などのレイアウトではnavが存在しないため、navContentが存在するときのみ呼出す
        if(document.getElementById('navContent') != null){
         navjs.setNavById('navContent');
        }
    });

    
navjs.getUserId = function(){
    var id = (document.getElementById("userId")) ? document.getElementById("userId").innerHTML : "";
    return id;
}

var accessFile;

navjs.hideNav = function (type){
    if(type){
        document.getElementById("nav").style.width = "20px";
        document.getElementById("content").style.width =  (accessFile == "admin") ? "92%" : "97%";
        document.getElementById('hideButton').innerHTML = '<a href="javascript:void(0);" onclick="navjs.hideNav(false)"><img src="image/favicon/plus_small.png" /></a>';
        document.getElementById("navContent").style.display = "none";
    }else{
    	if(accessFile == "admin"){
              document.getElementById("nav").style.width = "180px";
         }else{
              document.getElementById("nav").style.width = (document.getElementById("content").offsetWidth > 1000) ? "200px" : "18%";
         }
        document.getElementById("content").style.width = (accessFile == "admin") ? "76%" : "81%";
        document.getElementById("hideButton").innerHTML = '<a href="javascript:void(0);" onclick="navjs.hideNav(true)"><img src="image/favicon/cross_small.png" /></a>';
        document.getElementById("navContent").style.display = 'block';
    }
    basejs.cookie("nav-allnavContent-"+navjs.getUserId(), document.getElementById("navContent").style.display, {expires: 300, domain: location.host, secure: true});
}

navjs.setNavById = function (id) {
	url = document.location.href;
	sa = url.split("/");
	accessFile = (sa[sa.length - 1].match("admin.php") == "admin.php") ? "admin" : "index";

    var e = document.getElementById(id);
    //var status = basejs.cookie(id+parent+"stateOfDisplay");
    var status = basejs.cookie("nav-all"+id+"-"+navjs.getUserId());
    if(status) {
        e.style.display = status;
    }
    if(status=="none"){
        document.getElementById("nav").style.width = "20px";
        document.getElementById("content").style.width = (accessFile == "admin") ? "92%" : "97%";
        document.getElementById('hideButton').innerHTML = '<a href="javascript:void(0);" onclick="navjs.hideNav(false)"><img src="image/favicon/plus_small.png" /></a>';
    }else{
    	if(accessFile == "admin"){
        	document.getElementById("nav").style.width = "180px";
    	}else{
        	document.getElementById("nav").style.width = (document.getElementById("content").offsetWidth > 1000) ? "200px" : "18%";
    	}
        document.getElementById("content").style.width = (accessFile == "admin") ? "76%" : "81%";
        document.getElementById("hideButton").innerHTML = '<a href="javascript:void(0);" onclick="navjs.hideNav(true)"><img src="image/favicon/cross_small.png" /></a>';
    }
}

}

