
Evonux.Page = {};

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

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

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

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

    // 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];

    // Post form
    new Request.HTML ({url: U_ROOT + "/index.php?dyn=1", data: p_data, update: p_container, onComplete: p_complete, evalScripts: true}).post ();
}

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

    frm = $("frm-" + prefix);
    box = $("msg-box-" + prefix);
    msg = $("msg-" + prefix);

    // Save WYSIWYG content
    Evonux.Control.saveWysiwyg ();

    // Post request
    Evonux.Page.post (frm, msg, function ()
    {
	if (this.response.text)
	    box.style.display = "block";
	if (frm.save && frm.save.value)	    	       
	    frm.save.value = 0;	    
    });
}

Evonux.Page.reset = function (prefix)
{    
    var		frm = $('frm-' + prefix);
    
    if (frm.save && frm.save.value)
    {
	frm.save.value = 0;
    }
}

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

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 ? "content" : arguments[1]);
    p_complete = (arguments.length < 3 ? p_complete : arguments[2]);
    Evonux.Page.get (p_data, p_container, p_complete);
}

Evonux.Page.loadUrl = function (url)
{
    Evonux.Control.showLoader ();
    new Request.HTML ({url: url, data: "dyn=1", update: "content", onComplete: function () { Evonux.Control.updateText (); Evonux.Control.hideLoader (); }, evalScripts: true }).get ();
}

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

Evonux.Page.goBack = function (prefix, ref)
{
    var		frm = $('frm-' + prefix);
    var		url = "";
    var		go = true;

    // Display a confirm pop up if document not saved
    if (frm.save && frm.save.value == 1)
    {
	if (!confirm (metadatas['MSG_SAVE']))
	    go = false;
    }

    // Folow URL
    if (go == true)
    {
	if (frm.url && frm.url.value)
	{
	    ref = frm.url.value;
	}

	// Unload WYSIWYG
	Evonux.Control.unloadWysiwyg ();
	
	// Load URL & unlock item after
	Evonux.Page.load (ref ? 'module=webpage&action=view&ref=' + ref : 'module=webpage&action=view&ref=ADMIN', 'content', function () { 
	    Evonux.Control.updateText ();
	    Evonux.Control.hideLoader ();
	    Evonux.Page.get ('module=obj&action=lock&oid=' + frm.oid.value + '&value=0')
		});
    }
}

Evonux.Page.addSaveHandler = function (prefix)
{    
    var		frm = $('frm-' + prefix);
    var         items = $$ (".ctrl");
    
    for (var i = 0; i < items.length; i++)
    {
	var item = items[i];
	document.body.addEvent ('change', function (e) 	{ frm.save.value = 1; });
    }
}

