// tab_name => group_name
var tab_groups = [];
// group_name => [tab_name, tab_name, tab_name, ...]
var tabs = [];
// slot_group_name => [index, max, items => [data, data, data, ...]]
var slots = [];

function toggle_tab(tab_name) {
	var tab_group = tabs[tab_name];
	var group_tabs = tab_groups[tab_group];
    
	for (var i = 0; i < group_tabs.length; i++) {
		var tab = gebi(group_tabs[i]);
		var tab_caption = gebi('cap_' + group_tabs[i]);
		
		var class_name = tab.className;
		var cap_class_name = tab_caption.className;
		
		class_name = class_name.replace(/\w*hide\w*/, '');

        if (isIE) {
            cap_class_name = cap_class_name.replace(/\w*active\-/, '');
        }
        
        cap_class_name = cap_class_name.replace(/\w*active\w*/, '');
		
		class_name += ' hide';
		
        tab.className = class_name;
        tab_caption.className = cap_class_name;
	}

    tab = gebi(tab_name);
	tab_caption = gebi('cap_' + tab_name);

    class_name = tab.className;
    cap_class_name = tab_caption.className;

    if (isIE) {
        if (cap_class_name.match(/\w*first-child\w*/)) {
            cap_class_name = cap_class_name.replace(/\w*first\-child\w*/, 'active-first-child');
        } else if (cap_class_name.match(/\w*last-child\w*/)) {
            cap_class_name = cap_class_name.replace(/\w*last-child\w*/, 'active-last-child');
        } else {
			cap_class_name += ' active';
		}
    } else {
        cap_class_name += ' active';
    }
    
    tab.className = class_name.replace(/\w*hide\w*/, '');
	tab_caption.className = cap_class_name;
}

function slot_push(slot_group_name, dir) {
	var slot_group = slots[slot_group_name];
	
	var slot_index = slot_group['index'];
	var items = slot_group['items'];
	var max_num = slot_group['max'];
	var num = items.length;
	
	if (((dir == -1) && (slot_index <= 0)) ||
	 ((dir == 1) && (slot_index >= (num - max_num)))){
		return;
	}
	
	slots[slot_group_name]['index'] += dir;
	slots_fill(slot_group_name);
}

function slots_fill(slot_group_name) {
	var slot_group = slots[slot_group_name];
	
	var first_index = slot_group['index'];
	var items = slot_group['items'];
	var max_num = slot_group['max'];
	var num = items.length;
	
	for (var i = 0; i < max_num; i++) {
		var slot = gebi(slot_group_name+'_'+i);
		
		var slot_index = first_index + i;
		if ((slot_index < 0) || (slot_index > (num - 1))) {
			slot_html = '';
		} else {
			slot_html = '<div class="alt" id="'+ slot_group_name+'_'+i+'_alt' +'"><div class="a lt"></div><div class="a rt"></div><div class="a lb"></div><div class="a rb"></div><div class="a l"></div><div class="a r"></div><div class="a t"></div><div class="a b"></div>';
			if (items[slot_index][2] && items[slot_index][2] != 0) {
				slot_html += '<div class="exp">'+items[slot_index][2]+'</div>';
			}
			slot_html += '<div class="note">'+items[slot_index][1];
			if (items[slot_index][3]) {
				slot_html += ': ' +items[slot_index][3];
			}
			slot_html += '</div></div>';
		}
		
		slot.innerHTML += slot_html;
	}
}

function slots_fill_all() {
	for (var slot_group in slots) {
		slots_fill(slot_group);
	}
}

function getPreviousSibling (elem) {
    elem = document.getElementById(elem);
    while (elem.tagName == 'undefined') {
        elem = elem.previousSibling;
    }

    return elem;
}


function getNextSibling (elem) {
    elem = document.getElementById(elem);
    while (elem.tagName == 'undefined') {
        elem = elem.nextSibling;
    }
    return elem;
}

function mounts_autoselect() {
	var id = $.cookie('user_info_'+user_id+'_selected_mount');
	var lis = $('.mounts > li');
	if (!lis.length)
		return;
	if (id && !$('.mounts #mount_item'+id).length)
		id = 0;
	if (!id)
		id = lis.eq(0).attr('id').replace('mount_item', '');
	mounts_select(id, true);
}

function mounts_select(id, autoselect) {
	$('.mounts > li').removeClass('act');
	$('.mounts #mount_item'+id).addClass('act');
	$('.mounts_info > div').hide();
	$('.mounts_info #mount_info_item'+id).show();
	if (!autoselect)
		$.cookie('user_info_'+user_id+'_selected_mount', id);
}

