

Evonux.Page = {};

Evonux.Page.get = function (/* data, container, onComplete, disableId */) 
{
    var		p_data = null;
    var		p_container = null;
    var		p_complete = function () {};
    var		box;

    // Show progress bar
    /*$('progress-bar').addClass ("on");*/

    // Get arguments
    if (arguments.length >= 0)
    p_data = arguments[0] + "&dyn=1";
    if (arguments.length >= 1)
    {
	p_container = (arguments.length > 3 && arguments[3] ? arguments[1] : $(arguments[1]));

	// Show message 
	if (typeof (arguments[1]) == 'string' && arguments[1].substring (0, 3) == "msg")
	    {	
		box = p_container.getParent (".box");
		if (box)
		    box.addClass ("on");
	    }      	
    }
    if (arguments.length >= 2)
    p_complete = arguments[2];

    // Load ajax    
    new Request.HTML ({url: U_ROOT + "/index.php", data: p_data, update: p_container, onComplete: p_complete, charset: 'utf-8', evalScripts: true}).get ();
}

Evonux.Page.post = function (/* data, container, onComplete */)
{
    var         p_data = null;
    var         p_container = null;
    var         p_complete = function () {};

    // Show progress bar
    /*    $('progress-bar').addClass ("on");*/

    // Get arguments
    if (arguments.length > 0)
    p_data = $(arguments[0]);
    if (arguments.length > 1)
    p_container = $(arguments[1]);
    if (arguments.length > 2)
    p_complete = arguments[2];

    // Save Wysiwyg if needed
    var tiny = false;
    $$("textarea.wysiwyg").each (function (el) {
	tiny = true;
    });

    // Show message 
    if (arguments[1] && arguments[1].className == "msg")
    {	
	box = p_container.getParent (".box");
	if (box)
	    box.addClass ("on");
    }      	
    
    if (tiny)
    {
	tinyMCE.triggerSave ();
    }

    // Show message box if needed
    // ...    
    
    // Post form
    new Request.HTML ({url: U_ROOT + "/index.php?dyn=1", data: p_data, update: p_container, onComplete: function () { p_complete; $('progress-bar').removeClass ("on"); }, charset: 'utf-8', evalScripts: true}).post ();
}

Evonux.Page.submit = function (/* prefix */)
{    
    var		box;
    var		msg;
    var		frm;

    box = "box" + (arguments.length > 0 ? "-" + arguments[0] : '');
    msg = "msg" + (arguments.length > 0 ? "-" + arguments[0] : '');
    frm = "frm" + (arguments.length > 0 ? "-" + arguments[0] : '');
        
    Evonux.Page.post ($(frm), $(msg), function () { $(box).addClass ("on"); });
}

Evonux.Page.reset = function ()
{    
    $('frm').reset ();
}

Evonux.Page.load = function (/* data, container, onComplete */)
{   
    var         p_data = null;
    var         p_container = null;
    var         p_complete = function () {};
    
    // Default args
    p_data = arguments[0];
    p_container = (arguments.length < 2 ? "main-content" : arguments[1]);
    p_complete = (arguments.length < 3 ? p_complete : arguments[2]);
    Evonux.Page.get (p_data, p_container, function () { p_complete (); Evonux.Text.loadFonts (); });
}


Evonux.Page.loadUrl = function (/* url, container, oncomplete*/)
{   
    var		url = null;
    var         p_data = null;
    var         p_container = $("main-content");
    var         p_complete = null;

    url = arguments[0];
    if (arguments.length > 1)
    p_container = $(arguments[1]);
    if (arguments.length > 2)
    p_complete = arguments[2];

    // Clear existing timers
    /*    clearTimeout (timer_1);
	  clearTimeout (timer_2);*/

    new Request.HTML ({url: U_ROOT + "/" + url, data: "dyn=1", update: p_container, onComplete: p_complete, evalScripts: true}).get ();
}

Evonux.Page.refresh = function ()
{    
    Evonux.Page.load (document.location);
}

Evonux.Page.back = function (prefix)
{    
    var		frm = $('frm-' + prefix);

    if (frm.back.value)
    {
	Evonux.Page.goTo (unescape (unescape (frm.back.value)));
	//	Evonux.Page.goTo (unescape (unescape (frm.back.value)));
    }
    else
    {
        Evonux.Page.goTo (U_ROOT + '/?module=' + frm.module.value + '&state=' + state);
	//	Evonux.Page.loadUrl ("?module=home&state=show");
    }
}    

Evonux.Page.changeState = function (prefix, state, oid, type)
{
    var		frm = $('frm-' + prefix);

    Evonux.Page.get ('module=' + frm.module.value + '&state=' + state + (oid ? '&oid=' + oid : '') + (type ? '&type=' + type : '') + '&back=' + frm.url.value, 'main-content');
}

Evonux.Page.relocate = function (url)
{
    Evonux.Page.load (url);
}


Evonux.Page.goBack = function (prefix, state)
{
    var		frm = $('frm-' + prefix);
    
    if (frm.back.value)
    {
	Evonux.Page.goTo (unescape (unescape (frm.back.value)));
    }
    else
    {
	if (state)
	{
	    Evonux.Page.goTo (U_ROOT + '/?module=' + frm.module.value + '&state=' + state);
	}
	else
	{
	    Evonux.Page.goTo (U_ROOT + '/mon-ebenedate_4710.html');
	}
    }
}


Evonux.Page.delMessage = function (oid, msg, tab)
{
    if (confirm (msg))
    {
	Evonux.Page.get ("module=user&state=delMessage&oid="  + oid + '&tab=' + tab, "", function () { Evonux.Page.get ('module=webpage&state=show&oid=4772&tab=' + tab, 'main-content'); });
    }
}

Evonux.Page.delMessage3 = function (oid, msg, tab, offset)
{
    if (confirm (msg))
    {
	Evonux.Page.get ("module=user&state=delMessage&oid="  + oid, "", function () { document.location = 'messages_4772.html?tab=' + tab + '&offset=' + offset; });
    }
}

Evonux.Page.goTo = function (url)
{
    document.location = url;
}
