////////////////////////////////////
// DEFINE UNIVERSAL VARIABLES

var left_nav_menu_page = 0;
var left_nav_menu_pages = 0;

var left_nav_menu_selected_generic_id = 0;

////////////////////////////////////

function left_menu_button_state_change(event, div)
{    
    if (event.type == 'mouseover') {
        remove_class_name(div, 'leftMenuButton_passive');
        add_class_name(div, 'leftMenuButton_active');
    } else if (event.type == 'mouseout') {
        remove_class_name(div, 'leftMenuButton_active');
        add_class_name(div, 'leftMenuButton_passive');
    }
}

function add_class_name(object, class_name)
{
    var class_found = false;
    var class_string = object.className;
    
    if (class_string) {
        class_elements = class_string.split(' ');
        for (i in class_elements) {
            if (class_elements[i] == class_name) {
                class_found = true;
            }
        }
    }
    
    if (! class_found) {
        object.className = object.className + ' ' + class_name;
    }
}

function remove_class_name(object, class_name)
{
    var class_string = object.className;
    
    if (class_string) {
        class_elements = class_string.split(' ');
        for (i in class_elements) {
            if (class_elements[i] == class_name) {
                delete class_elements[i];
            }
        }
        object.className = class_elements.join(' ');
    }    
}

function deactivate_active_menu_tab(generic_id)
{
    var e = document.getElementById('left_nav_button_'+generic_id);
    if (e) {
        e.onmouseover = function() 
        {
            // do nothing
        }
        e.onmouseout = function() 
        {
            // do nothing
        }
        e.onclick = function() 
        {
            // do nothing
        }
        remove_class_name(e, 'leftMenuButton_passive');
        remove_class_name(e, 'leftMenuButton_active');
        add_class_name(e, 'leftMenuButton_disabled');
    }
}

function set_left_nav_navigation_state(page_number)
{
    // set universal variable
    left_nav_menu_page = page_number;
    
    // enable back button
    element = document.getElementById('left_nav_menu_left_navigation_button');    
    if (page_number > 1) {
        remove_class_name(element, 'left_nav_menu_navigation_button_disabled');
        add_class_name(element, 'left_nav_menu_navigation_button');
        element.onclick = function() {
            load_left_nav_page(page_number - 1);
        }
    } else {
        remove_class_name(element, 'left_nav_menu_navigation_button');
        add_class_name(element, 'left_nav_menu_navigation_button_disabled');
    }
    
    // enable forward button
    element = document.getElementById('left_nav_menu_right_navigation_button');    
    if (page_number < left_nav_menu_pages) {
        remove_class_name(element, 'left_nav_menu_navigation_button_disabled');
        add_class_name(element, 'left_nav_menu_navigation_button');
        element.onclick = function() {
            load_left_nav_page(page_number + 1);
        }        
    } else {
        remove_class_name(element, 'left_nav_menu_navigation_button');    
        add_class_name(element, 'left_nav_menu_navigation_button_disabled');
    }
}

function load_left_nav_page(page_number)
{
    left_nav_menu_page = page_number;
    
    var ajax = new Ajax();
    ajax.response_type = 'RAW';
    ajax.post('http://'+location.host+'/ajax/left_nav_page/', {"page":page_number}, function(data) {
        document.getElementById('left_nav_subjects').innerHTML = data;
        set_left_nav_navigation_state(page_number);
        deactivate_active_menu_tab(left_nav_menu_selected_generic_id);    
    });
            
}

function toggle_trak(subject_id, trak, theme)
{
    var ajax = new Ajax();
    ajax.response_type = 'RAW';
    ajax.post('http://'+location.host+'/ajax/trak/'+subject_id+'/'+trak, {"theme":theme}, function(data) {
        document.getElementById('trak_button_'+subject_id).innerHTML = data;
    });
    document.getElementById('trak_button_'+subject_id).innerHTML = '...';

}

