function childNavi(method, animateTargetId){
    animateObj = $("#CONT_keyvisual").find(".childnavi");
    targetObj = $("#" + animateTargetId);
    vacationSearchObj = $("#CONT_keyvisual").find(".vacationsearch");
    keyvisualSearchObj = $("#CONT_keyvisual").find("div.keyvisualSearch");

    if(method == "show"){

        newHeight = animateObj.children(".content").outerHeight();

        if(!animateObj.hasClass("active")){
          vacationSearchObj.fadeOut();
          keyvisualSearchObj.fadeOut();
          animateObj.addClass("active").animate({height: newHeight}, "slow");
        }

        if(!targetObj.hasClass("active")){
          animateObj.children(".content").children(".active").slideUp().removeClass("active");
          targetObj.addClass("active").slideDown();
        }

    }else if(method == "hide"){
        newHeight = 0;
        animateObj.children(".content").children(".active").slideUp("fast").removeClass("active");
        animateObj.animate({height: newHeight}, "fast", function(){$(this).removeClass("active")});
        vacationSearchObj.fadeIn();
        keyvisualSearchObj.fadeIn();
    }else if(method == "clear"){
      animateObj.children(".content").children(".active").slideUp().removeClass("active");
    }
}

function subChildNavi(method, animateObj){

    if(method == "show"){
        if(!animateObj.hasClass("active")){
            animateObj.parent().parent().find(".active").removeClass("active").fadeOut().removeAttr("id");
            animateObj.addClass("active").fadeIn().attr("id","activeChildNaviPoint");
        }
    }else if(method == "hide"){
        animateObj = $("#activeChildNaviPoint");
        animateObj.removeClass("active").fadeOut().removeAttr("id");
    }

}


$(document).ready(function(){



    //flyout navigation subtrees of topnavi
    $("#CONT_keyvisual").find(".naviMiddle").find("li.right").mouseenter(function(){
        animateObj = $(this).children(".sub:not(:animated)");
        newHeight = animateObj.children("ul").outerHeight();
        animateObj.addClass("active");
        animateObj.animate({height: newHeight});
    });

    $("#CONT_keyvisual").find(".naviMiddle").find("li.right").mouseleave(function(){
        newHeight = 0;
        $(this).children(".sub").animate({height: newHeight},"fast", function(){
          $(this).removeClass("active");
        });
    });


    //flyout childnavigation from topnavi
    var hideChildNaviTimeout = "";
    var hideSubChildNaviTimeout = "";
    $("#CONT_keyvisual").find(".naviMiddle").find("li").mouseenter(function(){
        window.clearTimeout(hideChildNaviTimeout);
        if($(this).attr("id")){
            animateTargetId = "childnavi_" + $(this).attr("id").substr(7);
            childNavi("show", animateTargetId);
        }else if(!$(this).hasClass("separator")){
          subChildNavi('hide');
          childNavi("hide");
        }
    });
    $("#CONT_keyvisual").find(".naviMiddle").find("li").mouseleave(function(){
        if($(this).attr("id")) hideChildNaviTimeout = window.setTimeout("childNavi('hide')", 2000);
    });
    $("#CONT_keyvisual").find(".childnavi").mouseenter(function(){
        window.clearTimeout(hideChildNaviTimeout);
    });
    $("#CONT_keyvisual").find(".childnavi").mouseleave(function(){
        hideChildNaviTimeout = window.setTimeout("childNavi('hide')", 2000);
    });

    $("#CONT_keyvisual").find(".childnavi").find("li").mouseenter(function(){
        animateObj = $(this).children("ul");

        if(animateObj.length > 0){
            window.clearTimeout(hideSubChildNaviTimeout);
            subChildNavi("show", animateObj);
        }

    });
    $("#CONT_keyvisual").find(".childnavi").children(".content").children("ul").children("li").mouseleave(function(){
        window.clearTimeout(hideSubChildNaviTimeout);
        hideSubChildNaviTimeout = window.setTimeout("subChildNavi('hide')", 1000);
    });
});