/****************************                                                                                                                                   
* raku-en javascript setting
*****************************/
/*****************************
* global setting
*/
/* animation speed */
display_anim_speed = 3000;
move_anim_speed = 1500;
/* timeout speed */
timeout_speed = 1000;
/*menu list num */
menu_list_num = 8;

/*****************************
* common method
*/
nodeUpper = function(node, limit_upper, judge_func){

    if(limit_upper == undefined) limit_upper = 2;
    if(judge_func == undefined){
        judge_func = function(t_node){
            return (t_node.id != '') ? true : false;
        };   
    }
    for(i=0;i<=limit_upper;i++){
        if(judge_func(node)){
            return node;
        }else{
            node = node.parentNode; 
        }
    }
    return false;
}

/*****************************
* main area common action
*/
calcAreaHeight = function(){
    //get html size
    var main_height = $('#main').height();
    //setting grobal value
    return main_height / menu_list_num;
}
var move_main_anim = false;
var selected_main_menu = false;
moveMainArea = function(e){
    if(e.target.tagName == 'A'){
        e.preventDefault(['mousedown']);
    }
    if(move_main_anim) return;
    //get target name
    targetNode = nodeUpper(e.target);
    var menu_name_array = targetNode.id.split('_');
    if(menu_name_array[2] != selected_main_menu && menu_name_array.length == 3){
        move_main_anim = true;
        $('#menu_list').addClass('selected_menu_area');
        $('#menu_list_' + menu_name_array[2]).addClass('selected_menu');
        $('#menu_list_' + selected_main_menu).removeClass('selected_menu');
        var main_area_height = calcAreaHeight();
        var scroll_height = main_area_height * (menu_name_array[2] - 1);
        if(jQuery.browser.mozilla || ( jQuery.browser.msie && (7 <= jQuery.browser.version))){
            $('html').animate({scrollTop:scroll_height}, move_anim_speed, 'easeInOutCubic', function(){
                    move_main_anim = false;
                    $('#menu_list').removeClass('selected_menu_area');
                    selected_main_menu = menu_name_array[2];
                });
        }else{
            $('body').animate({scrollTop:scroll_height}, move_anim_speed, 'easeInOutCubic', function(){
                    move_main_anim = false;
                    $('#menu_list').removeClass('selected_menu_area');
                    selected_main_menu = menu_name_array[2];
                });
        }
    }
}

/*****************************
* optional area common action
*/
displayAnimArea = function(area_array, speed_time){
    if(speed_time == undefined) speed_time = 1;
    for( i in area_array){
        $('#' + area_array[i]).fadeIn(display_anim_speed);
    }
}
displayNoneAnimArea = function(area_array){
    for( i in area_array){
        $('#' + area_array[i]).css('display','none');
    }
}
/*****************************
* info area action
*/
hideInfoArea = function(e){
    var class_name_array = e.target.className.split(' ');
    for(i in class_name_array){
        if(class_name_array[i] == 'float_right_top'){
            $('#info').fadeOut(display_anim_speed / 3);
        }
    }
}
/*****************************
* concept area action
*/
display_concept = 1;
concept_anim_on = false;
changeDisplayConcept = function(e){
    var changeConceptObj = nodeUpper(e.target);
    var concept_id_array = changeConceptObj.id.split('_');
    var concept_id = concept_id_array[2];
    if(concept_id != display_concept && concept_anim_on == false){
        var displayed_concept = display_concept;
        concept_anim_on = true;
        $('#concept_' + concept_id).removeClass('alpha');
        $('#concept_' + concept_id).css('z-index', 4);
        $('#concept_menu').addClass('selected_concept_menu');
        var anim_speed = display_anim_speed / 2;
        $('#concept_' + displayed_concept).animate({opacity : 0}, anim_speed, function(){
            $('#concept_' + displayed_concept).addClass('alpha');
            $('#concept_' + displayed_concept).css('z-index', 3);
            $('#concept_' + concept_id).css('z-index', 5);
            $('#concept_' + displayed_concept).css('opacity', 1.0);
            display_concept = concept_id;
            concept_anim_on = false;
            $('#concept_menu').removeClass('selected_concept_menu');
        });
        $('#concept_menu_' + displayed_concept).removeClass('selected');
        $('#concept_menu_' + concept_id).addClass('selected');
    }
}

/*****************************
* event listener
*/
//on dom ready
$(document).ready(function(){
    //add event move area action
    $('#menu_list').click(moveMainArea);
    //add event info area action
    $('#info').click(hideInfoArea);
    //add event concept area action
    $('#concept_menu').click(changeDisplayConcept);
    //add event gallary area action
    $(function(){
        $('a.lightbox').lightBox({
            overlayOpacity: 0.6
        });
    });
    /**/
    //display menu
    //displayNoneAnimArea(['top_background', 'top_left', 'top_right','menu','info']);
    displayNoneAnimArea(['top_background', 'top_front','menu','info']);
    setTimeout(function(){
        displayAnimArea(['top_background'], 1.5);
    }, timeout_speed * 0.2);
    setTimeout(function(){
        //displayAnimArea(['top_left', 'top_right']);
        displayAnimArea(['top_front']);
    }, timeout_speed);
    //display menu
    setTimeout(function(){
        displayAnimArea(['menu']);
    },timeout_speed * 3);
    setTimeout(function(){
        displayAnimArea(['info']);
    },timeout_speed * 5);
    if(jQuery.browser.msie && jQuery.browser.version < 7){
        /* menu scroll event*/
        $(window).scroll(function(){
            $('#menu').css('top', $('body').scrollTop() + 50);
        });
        $('#info').css('top', calcAreaHeight() - 110);
    }
});
