var currentON_number = 0;

Event.observe(window, 'load', function(e){
    randomLogoBackground();
    setMenu();
    setCurrentON();
    setGotop();
    wResizeHandler();
    window.onresize = wResizeHandler;
    fadeOutSubmenu();
    clubSelector();
    loadmNavi();
    appendLinkClasses(); 
});



/*================================================
	menu
================================================*/
var mainList = [];
var submenuCloseTimerID ;
function setMenu(e){
    var menuLI = $('menuNavi').getElementsByTagName('LI');
    for (var i=0,j=menuLI.length; i<j; i++){
        if (Element.hasClassName(menuLI[i].parentNode, 'submenu') == false){
            mainList.push(menuLI[i]);
            // mouseover
            Event.observe(menuLI[i], 'mouseover', (function(mainMenu){
                return function(e){
                    if (submenuCloseTimerID){
                        clearTimeout(submenuCloseTimerID);
                    }
                    for (var m=0,n=mainList.length; m<n; m++){
                        var ul = mainList[m].getElementsByTagName('UL');
                        if (ul.length){
                            if (mainMenu == mainList[m]){
                                Element.removeClassName(ul[0], "off");
                                Element.addClassName(ul[0], "on");
                                new Effect.Fade(ul[0], {duration: 0, from:0, to:1});
                            } else {
                                Element.removeClassName(ul[0], "on");
                                Element.addClassName(ul[0], "off");
                            }
                        }
                    }
                };
            })(menuLI[i]));
            // mouseout
            if (!Element.hasClassName(menuLI[i], 'on')){
                Event.observe(menuLI[i], 'mouseout', settimeoutSubmenu);
            }
        }
        // reCreateTopCategoryMenuLink
        var subul = menuLI[i].getElementsByTagName('UL');
        if (subul.length){
            menuLI[i].firstChild.href = subul[0].getElementsByTagName('LI')[0].firstChild.href;
        }
    }
    // link change
    $A($('menuNavi').getElementsByTagName('A')).each(function(link){
        for (var p in redirects){
            if (p == link.href){
                if (redirects[p].match(/^(http|javascript)/)){
                    link.target = '_blank';
                }
                link.href = redirects[p];
            }
        }
    });
    
}

/// MouseOutでサブメニューを消す
function settimeoutSubmenu(e)
{
    submenuCloseTimerID = setTimeout(fadeOutSubmenu, 500);
}

function fadeOutSubmenu()
{
    for (var i=0,j=mainList.length; i<j; i++){
        if (i != currentON_number){
            var ul = mainList[i].getElementsByTagName('UL');
            if (ul.length){
                if (Element.hasClassName(ul[0], 'on')){
                    new Effect.Fade(ul[0], {
                      duration: 0.1,
                      afterFinishInternal: (function(removeUL){
                          return function(e){
                              Element.removeClassName(removeUL, "on");
                              Element.addClassName(removeUL, "off");
                              var _ul = mainList[currentON_number].getElementsByTagName('UL')[0];// ad-hock
                              Element.addClassName(_ul, "on");
                              Element.removeClassName(_ul, "off");
                          };
                      })(ul[0])
                    });
                }
            }
        }
    }
}



/// 最初のONをつける(1階層・2階層とも)
function setCurrentON()
{
    var url = location.href;
    if (!url.match(/\/contents\//)) return ;

    var host = null;
    var base = null;
    if (url.match(/^https?:\/\/([^\/]+)\/(.*)$/)){
        host = RegExp.$1;
        base = RegExp.$2.split("/").without("", "contents");
    }
    
    for (var i=0,j=mainList.length; i<j; i++){
        var regexp = new RegExp("^https?://"+host+"/contents/"+base[0]+"/");
        if (mainList[i].getElementsByTagName('A')[0].href.match(regexp)){
            Element.addClassName(mainList[i], 'on');
            Element.removeClassName(mainList[i], 'off');
            currentON_number = i;
            var subul = mainList[i].getElementsByTagName('UL');
            if (subul.length){
                Element.addClassName(subul[0], 'on');
                Element.removeClassName(subul[0], 'off');
            }
        }
        if (base.length > 1){
            var subli = mainList[i].getElementsByTagName('LI');
            var regexp_sub = new RegExp("^https?://"+host+"/contents/"+base[0]+"/"+base[1]+"/");
            for (var ii=0,jj=subli.length; ii<jj; ii++){
                var sub_a = subli[ii].getElementsByTagName('A');
                if (sub_a.length > 0){
                    if (sub_a[0].href.match(regexp_sub)){
                        Element.addClassName(subli[ii], 'on');
                        Element.removeClassName(subli[ii], 'off');
                    }
                }
            }
        }
    }
}



/*================================================
	page scroll 
================================================*/

function setGotop()
{
    var pageTOP = document.createElement('DIV');
    pageTOP.id = "pageTop";
    //pageTOP.innerHTML = '<a href="#top"><span>ページトップへ</span></a>';
    pageTOP.innerHTML = '<span>ページトップへ</span>';
    var main = $('main');
    main.insertBefore(pageTOP, main.firstChild);

    //pageTOP.style.visibility = "hidden";
    if ($('honbun')){
        Event.observe($('honbun'), 'scroll', scrolloer);
    }
    if ($('pageTop')){
        Event.observe($('pageTop'), 'click', function(){gototop()});
    }
}

function scrolloer()
{
    var scrollTop  = document.body.scrollTop  || document.documentElement.scrollTop;
    var scrollTop = $('honbun').scrollTop;
    var pageTOP = $('pageTop');
    if (pageTOP){
        if(scrollTop > 10){
            pageTOP.style.visibility = "visible";
        }else{
            pageTOP.style.visibility = "hidden";
        }
    }
}

function setVerticalMiddle(targetObj){
		var contentsHeight = Element.getHeight(targetObj); 
		var mainHeight = Element.getHeight($('wrapper')); 
		targetObj.style.top = (mainHeight-contentsHeight)/2 + 'px';
}

function wResizeHandler(){
    if (!$('wrapper') || !$('honbun')){
        return ;
    }

	var mNaviHeight = 0;	//galleryとclubのみのnavi
	if($('mNavi')){
		mNaviHeight = Element.getHeight($('mNavi')); 
	}
	var mainHeight = Element.getHeight($('wrapper')); 
	var pageHeight = mainHeight-(111+mNaviHeight);
    
    var clubSelHeight = 0;
    if ($('clubSelBox')){
        pageHeight -= (Element.getHeight($('clubSelBox')) + 40) ;  // 40=padding
    }
    
    pageHeight -= 10; // honbun paddingtop

	$('honbun').style.height = pageHeight + 'px';
	
    // for narrow width pc
    if (screen.height < 768) {
        applyCSS(document, '/mt-static/themes/josuikan/css/layout-m.css');
    }
}

function gototop(){
	SmoothScroll.scrollTo( 'contents', 'honbun',{time: 300});
	//$('honbun').style.top = -1 + 'px';
}

// mNavi
function loadmNavi()
{
    var mNavi = $("mNavi");
    var archiveSelbox = $('archiveSelbox');
    if (mNavi && archiveSelbox){
        
        var alis = mNavi.getElementsByTagName('LI');
        for (var i=0,j=alis.length; i<j ; i++){
            if (alis[i].firstChild.href && alis[i].firstChild.href==location.href){
                Element.addClassName(alis[i], 'on');
            }
        }
        
        if (alis.length > 11){
            var selbox = archiveSelbox.getElementsByTagName('SELECT')[0];
            Event.observe(selbox, 'change', (function(sel){
                return function(e){
                    if (sel.value.match(/^http/)){
                        location.href = sel.value; 
                    }
                }
            })(selbox));
            Element.show(archiveSelbox);
            var insOptions = [];
            for (var i=alis.length,j=11; j<=i; i--){
                if (alis[i-1] != archiveSelbox){
                    insOptions.push(new Option(alis[i-1].firstChild.innerHTML, alis[i-1].firstChild.href));
                    Element.remove(alis[i-1]);
                }
            }
            for (var i=insOptions.length,j=0; i>j; i--){
                selbox.appendChild(insOptions[i-1]);
                if (location.href == insOptions[i-1].value){
                    insOptions[i-1].selected = true;
                    archiveSelbox.addClassName('on');
                }
            }
        }
    }
}

function appendLinkClasses(){
    $A($('contents').getElementsByTagName('A')).each(function(a){
        if (a.href.match(/\.pdf$/i)){
            var span = document.createElement('SPAN');
            Element.addClassName(span, 'pdf');
            a.appendChild(span);
        }
    });
}

// club page
function clubSelector()
{
    var sel = $("clubSelector");
    if (!sel) return ;
    
    Event.observe(sel, 'change', function(e){
        var s = Event.element(e);
        if (s.value){
            location.href = s.value;
        }
    });
    
    var ops = sel.options;
    for (var i=0,j=ops.length; i<j; i++){
        if (ops[i].value == location.href){
            ops[i].selected = true;
        }
    }
}



function randomLogoBackground()
{
    if (!$('navi')){
        return ;
    }
    var target = $('navi').getElementsByClassName('bg');
    
    if (target.length){
        var random = parseInt(Math.random()*100)%3+1;
        var image = '/mt-static/themes/josuikan/images/common/head_image'+random+'.jpg'
          Element.setStyle(target[0], {
              "backgroundImage": "url("+image+")"
            });
    }
}

function open_w(url)
{
    window.open(url, 'contactwindow', 'width=740,height=500,scrollbars=yes');
}


function applyCSS(doc, cssfile, overwrite)
{
    if (typeof overwrite == "undefined")
      overwrite = 0;      // デフォルト:CSSの追加

    // 既存のCSSを削除
    if (overwrite && doc.styleSheets.length >= 1) {
        var links = doc.getElementsByTagName("link");
        for (var i = 0 ; i < links.length ; i++) {
            if (links[i].rel == "stylesheet")
              links[i].parentNode.removeChild(links[i]);
        }
    }

    // CSS追加
    if (document.all) {
        doc.createStyleSheet(cssfile);
    } else {
        var link = doc.createElement("link");
        link.rel = "stylesheet";
        link.href = cssfile;
        link.type = "text/css"
          doc.getElementsByTagName('head')[0].appendChild(link);
    }
}


/*!!diawa!!*/
try { 
    document.execCommand('BackgroundImageCache', false, true); 
} catch(e) {
} 
