/**
 * Utility methods to handle layers
 *
 * by Matija Tomaskovic
 * 2004.-19.01.2005.
 */

var v_lastLayerIdShown = null;

function showLayer(id, display)
{
    try {
	    if (!display)
	        display = "block";
	    document.getElementById(id).style.visibility = "visible";
	    if (display != "undefined") {
	        document.getElementById(id).style.display = display;
	    }
	    
	    v_lastLayerIdShown = id;
    }
    catch(e) {
    	//alert("Layer not found to show: " + id);
    } 
}

function hideLastLayer() {
	if (v_lastLayerIdShown != null)
		hideLayer(v_lastLayerIdShown);
}

function hideLayer(id, display)
{
	try {
	    if (!display)
	        display = "none";
	    document.getElementById(id).style.visibility = "hidden";
	    if (display != "undefined") {
	        document.getElementById(id).style.display = display;
	    }
    }
    catch(e) {
    	//alert("Layer not found to hide: " + id);
    } 
}

function toggleLayer(id, type)
{
    if (!type)
        type = "block";

    var obj = document.getElementById(id);
    if (obj == "undefined") {
        alert("Not found: " + id);
        return;
    }
    var v = obj.style.visibility;
    var d = obj.style.display;
    if (v == "visible") {
        obj.style.visibility = "hidden";
        obj.style.display = "none";
        return false;
    }
    else if (v == "hidden") {
        obj.style.visibility = "visible";
        obj.style.display = type;
        return true;
    }
    else if (d != "none") {
        obj.style.visibility = "hidden";
        obj.style.display = "none";
        return false;
    }
    else {
        obj.style.visibility = "visible";
        obj.style.display = type;
        return true;
    }

}

function toggleLayers(v_id, v_from, v_to)
{
    for (var i=v_from; i <= v_to; i++) {
        toggleLayer(v_id+i);
	}

}

function showLayers(v_id, v_from, v_to)
{
    for (var i=v_from; i <= v_to; i++) {
        showLayer(v_id+i);
	}

}

function hideLayers(v_id, v_from, v_to)
{
    for (var i=v_from; i <= v_to; i++) {
        hideLayer(v_id+i);
	}

}


function deleteLayer(v_id) {
    var v_obj = document.getElementById(v_id);
    v_obj.parentNode.removeChild(v_obj);
    return false;
}


/**
 * @param layer_type    inline
 */
function toggleLayerWithCheckbox(objCheckBox, layer_id, layer_type) {
    if (objCheckBox.checked)
        showLayer(layer_id, layer_type);
    else
        hideLayer(layer_id, "none");
}

function toggle_all_layers(v_prefix) {
    var v_divs = document.getElementsByTagName("DIV");
    try {
        for (var i=0; i<v_divs.length; i++) {
            var v_div = v_divs[i];
            var v_id = v_div.id; //getAttribute('id');
            /*
				String.prototype.startsWith = function(str)
				{return (this.match("^"+str)==str)}
             */
            if (v_id.match("^"+v_prefix)==v_prefix) {
            	toggleLayer(v_id);
            }
        }
    }
    catch(err) {
        alert(err);
    }
}



