﻿var ycoord = 120;

var messenger =
{
    init: function()
    {
        messenger.align();

        new Effect.Opacity('message-box', { from: 1.0, to: 0.0, duration: 1.0,

            afterFinish: function()
            {
                $('message-box').style.display = 'none';
            }
        });
    },
    
    
    is_messenger_open: function()
    {
        return ($('message-box').style.display != 'none');
    },

    align: function()
    {
        $('message-box').style.display = 'block';
        $('message-box').style.marginLeft = "-" + parseInt($('message-box').offsetWidth / 2) + "px";
        $('message-box').style.top = (((document.viewport.getHeight() / 2) - ($('message-box').offsetHeight / 2)) + document.viewport.getScrollOffsets().top) + "px";
    },

    close: function()
    {
        new Effect.Opacity('message-box', { from: 1.0, to: 0.0, duration: 1.0,

            afterFinish: function()
            {
                messenger.align();
                
                $('message-box').style.display = 'none';

                if ($('message-box-holder') != null)
                    $('message-box-holder').remove();
                    
                
            }
        });
    },

    update: function(heading, body)
    {
        $('message-box-head').innerHTML = heading;
        $('message-box-body').innerHTML = body;
    },

    open: function(heading, body)
    {
        messenger.align();

        if ($('message-box-holder') != null)
            $('message-box-holder').remove();

        $('message-box-head').style.display = "block";
        $('message-box-body').style.display = "block";

        if ($('message-box').style.visibility == "hidden")
            $('message-box').style.visibility = "visible";

        $('message-box-close').style.display = "block";
        $('message-box-close').className = "close";

        $('message-box-head').innerHTML = heading;
        $('message-box-body').innerHTML = body;

        new Effect.Opacity('message-box', { from: 0.0, to: 1.0, duration: 1.0 });
    },

    quick: function(heading, body)
    {
        messenger.align();

        if ($('message-box-holder') != null)
            $('message-box-holder').remove();

        $('message-box-head').style.display = "block";
        $('message-box-body').style.display = "block";

        if ($('message-box').style.visibility == "hidden")
            $('message-box').style.visibility = "visible";

        $('message-box-close').style.display = "none";
        $('message-box-close').className = "";

        $('message-box-head').innerHTML = heading;
        $('message-box-body').innerHTML = body;

        new Effect.Opacity('message-box', { from: 0.0, to: 1.0, duration: 1.0 });

        new PeriodicalExecuter(
            function(executer)
            {
                messenger.close();
                executer.stop();
            }, 4);
    },

    quickUpdate: function(heading, body)
    {


        $('message-box-head').innerHTML = heading;
        $('message-box-body').innerHTML = body;

        new PeriodicalExecuter(
            function(executer)
            {
                messenger.close();
                executer.stop();
            }, 4);
    },

    custom: function(controller, action, message, params)
    {
        messenger.align();

        $('message-box-head').style.display = "none";
        $('message-box-body').style.display = "none";

        $('message-box-close').style.display = "block";
        $('message-box-close').className = "close";

        if ($('message-box').style.visibility == "hidden")
            $('message-box').style.visibility = "visible";

        aTag = $('message-box-content').innerHTML;

        new Effect.Opacity('message-box', { from: 0.0, to: 1.0, duration: 1.0 });

        $('message-box-content').innerHTML = '<div id="message-box-holder" class="print-content">' + message + '</div>' + aTag;

        new Ajax.Request('/' + controller + '/' + action,
        {
            method: 'post',
            parameters: params,

            onSuccess: function(transport)
            {
                $('message-box-holder').innerHTML = transport.responseText;
                messenger.align();
            },

            onComplete: function()
            {

            },

            onFailure: function()
            {
                alert('failure');
            },

            onException: function(requester, exception)
            {
                alert(exception.message);
            }
        });
    }
}

//function addLoadEvent(func) {
//  var oldonload = window.onload;
//  if (typeof window.onload != 'function') {
//    window.onload = func;
//  } else {
//    window.onload = function() {
//      if (oldonload) {
//        oldonload();
//      }
//      func();
//    }
//  }
//}
