/*  create layer functions  */
showinglayer = false;
function showLayer(url, params)
{
    //  set params and show layer
    if (!params) params = '';
    $('layer').setOpacity(0.5).show();

    //  Load content
    new Ajax.Updater('layer_content',url,{
        evalScripts: true,
        parameters: params,
        onComplete: function(transport) {
            if ( document.showinglayer == true ) {
                showLayerContent('layer_content_holder');
            } else {
                hideLayer();
            }
        }
    });

    // show layer_content_loading
    showLayerContent('layer_loading_holder');
}

function showLayerContent(elem)
{
    document.showinglayer = true;
    viewportsize = document.viewport.getDimensions();
    size = $(elem).getDimensions();
    $(elem).style.top = (viewportsize.height/2 - (size.height/2)) + 'px';
    $(elem).style.left = (viewportsize.width/2 - (size.width/2)) + 'px';
    myEffect = new Effect.Appear(elem, {
        duration: 0.5,
        beforeUpdate: function() {
            if ( document.showinglayer == false ) {
                myEffect.cancel();
                hideLayer();
            }
        }
    });
}

function hideLayer()
{
    document.showinglayer = false;
    $('layer_loading_holder').hide();
    $('layer_content_holder').hide();
    $('layer_content').innerHTML = '';
    new Effect.Fade('layer', { duration: 0.5 });
}
