// JavaScript Document

function autoMenu_arraySum(array) {
    sum = 0;
    while (array.length) {
        sum += parseInt(array.pop(),10);
    }
    return sum;
}

function autoMenu_init() {
    // メニュー自動生成
    // <div class="autoMenu">
    //   <a href="foo.html">foo</a>
    //   <a href="bar.html">bar</a>
    // </div>
    // div必須style：width,height
    // divオプション属性
    //   itemDs・・・各項目の幅（horizontalの場合）、高さ（verticalの場合）をカンマ区切りで列記、デフォルトは項目数で等分
    //   itemDirection・・・メニューの方向、「vertical」「horizontal」デフォルトは「horizontal」
    jQuery('[rel="autoMenu"]').each(function () {
        menu = jQuery(this);
        menu.css({
            "background-position": "top left",
            "background-repeat": "no-repeat",
            "display": "block"
        });

        items = menu.children('a');
        //		jQuery('[rel="autoGlobalMenu"] a');
        itemCount = items.size();
        // メニューの方向をチェック、デフォルトは横
        if (menu.attr("itemdirection") && menu.attr("itemdirection") == "vertical") {
            itemDirection = "vertical";
        } else {
            itemDirection = "horizontal";
        }

        // メニュー項目の横幅指定をチェック、デフォルトはメニュー幅÷メニュー数
        if (menu.attr("itemsize") && menu.attr("itemsize").split(",").length == itemCount) {
            itemDs = menu.attr("itemsize").split(",");
        } else {
            if (itemDirection == "horizontal") {
                itemD = Math.floor(menu.width() / itemCount);
            } else {
                itemD = Math.floor(menu.height() / itemCount);
            }
            itemDs = jQuery.map(new Array(itemCount), function (n, i) {
                return itemD;
            });
        }

        itemNo = 0;

        items.each(function () {
            jQuery(this).attr('itemNo', itemNo++);
            if (jQuery(this).attr('itemNo') === 0) {
                d = 0;
            } else {
                d = autoMenu_arraySum(itemDs.slice(0, jQuery(this).attr('itemNo')));
            }
            jQuery(this).attr('d', d);
            jQuery(this).css({
                "background-image": menu.css("background-image"),
                "display": "block",
                "position": "absolute",
                "text-indent": "-1000em"
            });
            if (itemDirection == "horizontal") {
                jQuery(this).css({
                    "width": itemDs[jQuery(this).attr('itemNo')],
                    "height": jQuery(this).closest('[rel="autoMenu"]').height(),
                    "left": d,
                    "background-position": "-" + d + "px 0px",
                    "top": 0
                });
				if( jQuery(this).attr('rel') == 'current' ) {
					jQuery(this).css({"background-position": "-" + jQuery(this).attr('d') + "px -" + jQuery(this).closest('[rel="autoMenu"]').height()*2 + "px"});
				} else {
                jQuery(this).hover(

                function () {
                    jQuery(this).css({
                        "background-image": jQuery(this).closest('[rel="autoMenu"]').css("background-image"),
                        "background-position": "-" + jQuery(this).attr('d') + "px -" + jQuery(this).closest('[rel="autoMenu"]').height() + "px"
                    });
                }, function () {
                    jQuery(this).css({
                        "background-image": null,
                        "background-position": "-" + jQuery(this).attr('d') + "px 0px"
                    });
					if( jQuery(this).attr('rel') == 'current' ) {
						jQuery(this).css({"background-position": '-' + jQuery(this).attr('d') + 'px -' + jQuery(this).closest('[rel="autoMenu"]').height()*2 + "px"});
					}
					
                });
				}
            } else {
                jQuery(this).css({
                    "width": jQuery(this).closest('[rel="autoMenu"]').width(),
                    "height": itemDs[jQuery(this).attr('itemNo')],
                    "top": d,
                    "background-position": "0px -" + d + "px",
                    "left": 0
                });
				if( jQuery(this).attr('rel') == 'current' ) {
					jQuery(this).css({"background-position": '-' + jQuery(this).closest('[rel="autoMenu"]').width()*2 + "px -" + jQuery(this).attr('d') + "px"});
				} else {
                jQuery(this).hover(

                function () {
                    jQuery(this).css({
                        "background-image": jQuery(this).closest('[rel="autoMenu"]').css("background-image"),
                        "background-position": "-"+jQuery(this).closest('[rel="autoMenu"]').width() + "px -" + jQuery(this).attr('d') + "px"
                    });
                }, function () {
                    jQuery(this).css({
                        "background-image": null,
                        "background-position": "0px -" + jQuery(this).attr('d') + "px"
                    });
					if( jQuery(this).attr('rel') == 'current' ) {
						jQuery(this).css({"background-position": '-' + jQuery(this).closest('[rel="autoMenu"]').width()*2 + "px -" + jQuery(this).attr('d') + "px"});
					}
                });
				}
            }
        });
    });
}

function get_autoMenu_param(id) {
	jQuery.each( jQuery(id).attr('className').split(' '), function(){
		if( this.match("autoMenu") ){
			p = this.split("_");
			if( p[1] == 'itemdirection' || p[1] == 'itemsize' ) jQuery(id).attr(p[1],p[2]);
		}
	});
	jQuery(id).attr('rel','autoMenu');
}



jQuery.noConflict();

jQuery('[class*="autoMenu"]').ready(function(e) {
	jQuery('[class*="autoMenu"]').each(function(){ get_autoMenu_param( this ); });
    autoMenu_init();
});

jQuery(document).ready(function () {
	
	leftMenuSlide = function(e){
		if(jQuery(window).scrollTop() < jQuery("#body").position().top){
			y = 0;
		}else if(jQuery(window).scrollTop() > jQuery("#body").height() - jQuery("#businessMenuLeft").height() + jQuery("#body").position().top - 21-25){
			y = jQuery("#body").height() - jQuery("#businessMenuLeft").height() -21 - 25;
		}else{
			y = jQuery(window).scrollTop() - jQuery("#body").position().top;
		}
		jQuery("#businessMenuLeftFloater").animate({top:y},{duration:500,queue:false});
	}
	jQuery(window).scroll(leftMenuSlide);
	jQuery(window).resize(leftMenuSlide);
	jQuery(window).load(leftMenuSlide);
	jQuery("dt.autoHeight").each(function(index, element) {
		jQuery(element).css("line-height", (jQuery(element).next().innerHeight()-16)+"px");
	});
	
});
