
$(document).ready(function () {
	$("fieldset.toggle legend").click( function() {
	    legend = $(this)
	    if (legend.hasClass('hiddenLegend')) {
    	    legend.removeClass('hiddenLegend');
    		$(">:not(legend):not(.hidden)",this.parentNode).show("slow");
	    }
	    else
	    {
	        legend.addClass('hiddenLegend');
            $(">:not(legend) ",this.parentNode).hide("slow");
	    }
	});
	
	// hides automaticaly the fieldset's content, if the legend has the 'hiddenLegend' class
	$('fieldset.toggle legend.hiddenLegend').each(function() {
	    $(this).parent().children().not($(this)).css('display', 'none');
	});
});





/*
    TOGGLE JavaScript Functions
    by Buchheim, Martin
    Copyright 2006, celanio GmbH
*/
function toggle(id, visibleToggleValue)
{
	if (typeof visibleToggleValue == "undefined") {
		visibleToggleValue = "block";
	}

    if(document.getElementById(id))
    {
        var element = document.getElementById(id);
        element.style.display = (element.style.display == visibleToggleValue ? 'none' : visibleToggleValue);
    }
};

function toggleIfChecked(toggleId, checkboxId)
{
    if(document.getElementById(toggleId) && document.getElementById(checkboxId))
    {
        var element = document.getElementById(toggleId);
        var checkbox = document.getElementById(checkboxId);

        if (checkbox.checked)
            element.style.display = 'block';
        else
            element.style.display = 'none';
    }
};

/*
    OVERLAY JavaScript Functions
    by Buchheim, Martin
    Copyright 2007, celanio GmbH
*/
var layer_element;

function showOverlay(id)
{
    if(document.getElementById(id))
    {
        layer_element = document.getElementById(id);
        layer_element.style.display = 'block';
    }
};

function closeOverlay()
{
    layer_element.style.display = 'none';
};


/*
    TOGGLE STRONG JavaScript Functions
    by Kiefel, Max
    Copyright 2007, celanio GmbH
*/
function toggleStrong(toggleId, checkboxId, labelId)
{
    if (document.getElementById(toggleId) && document.getElementById(checkboxId) && document.getElementById(labelId))
    {
        var element = document.getElementById(toggleId);
        var checkbox = document.getElementById(checkboxId);
        var label = document.getElementById(labelId);

        label.className = (checkbox.checked) ? 'bold' : 'nofloat';
        element.style.display = (checkbox.checked) ? 'block' : 'none';
    }
};

/**
 * Toggle all with given name
 * 
 * @param name Name of fields for toggle 
 * @autor Vietz,Martin
 */ 
function toggleAll(name) {
    var elements = document.getElementsByName(name);
	for (i=0;elements.length > i;i++) {
		toggle(elements[i].id);	
	}
};

/**
 * Toggle between an small furled fieldset and normal
 *
 * use like this:
 * <fieldset id="export" style="overflow:hidden; height:5px">
 * <legend onclick="toggleFieldset('export')" style="cursor:pointer;">{$auto.export_labels.legend}</legend>
 *
 * @param id Id of fieldset for toggle 
 * @autor Vietz,Martin
 */
function toggleFieldset(id) {
	var fieldset = document.getElementById(id);
	if (fieldset.style.height == '5px') {
		fieldset.style.height = 'auto';
	} else  {
		fieldset.style.height = '5px';
	}
};

/**
 * Checks/unchecks all checkboxes of listContainer together with triggerCheckbox
 * Use it to mark all entries in a list over a single checkbox
 *
 * @author Kiefel, Max
 * @param triggerCheckbID - id of the toggle trigger checkbox
 * @param listContainerID - id of the list container, such as tbody or ul
 */
function toggleChild(triggerCheckbID, listContainerID)
{
    var triggerCheckbox = document.getElementById(triggerCheckbID);
    var listContainer = document.getElementById(listContainerID);

    if (!triggerCheckbox || !listContainer)
        return;

    var childElements = listContainer.getElementsByTagName('input');
    for (var i=0; i<childElements.length; i++)
    {
        if (childElements[i].getAttribute('type') == 'checkbox')
            childElements[i].checked = (triggerCheckbox.checked == true) ? true : false;
    }
};

/**
 * 
 * @param [String] key
 * @param [Boolean] force
 * @return [null]
 */
function toggleActive(key, force) { 
    if (!form_editable && !force) return;
    
    var eh = document.getElementById('hidden_'+key);
    var e1 = document.getElementById('enabled_1_'+key);
    var e0 = document.getElementById('enabled_0_'+key);
    var ev = document.getElementById('value_'+key);
    var er = document.getElementById('row_'+key); 
    if (e1.disabled) {
        eh.value = true;
        e1.checked = true;
        e1.disabled = false;
        e0.disabled = false;
        if (ev) ev.disabled = false;
        if (er.className == 'inactive') {
            er.className = 'active';
        } else {
            er.className = 'active critical';
        }
    } else {
        eh.value = false;
        e1.checked = false;
        e0.checked = false;
        e1.disabled = true;
        e0.disabled = true;
        if (ev) ev.disabled = true;
        if (er.className == 'active') {
            er.className = 'inactive';
        } else {
            er.className = 'inactive critical';
        }
    };
};
