/*
Arie Nugraha 2008
this file need prototype. js
library to works

AJAX related functions
*/

var lastAJAXcontainer = 'ajaxContent';
var ajaxURLhistory = new Array();
var urlNum = 0;
var loader = new Object();
var loadingImage = './templates/images/loader.gif';
var defaultAJAXurl = '';

/* set the content of layer */
var setContent = function(strContainer, strURL, strMethod)
{
    // fill the lastAJAXcontainer global var
    lastAJAXcontainer = strContainer;
    // fill the lastAJAXurl global var
    ajaxURLhistory[urlNum] = strURL
    urlNum++;

    var ajaxParams = '';
    var isEvalScript = false;
    if (arguments[3] != undefined) {
        ajaxParams = arguments[3];
    }

    if (arguments[4] != undefined) {
        isEvalScript = arguments[4];
    } else { isEvalScript = true; }

    // escape single quotes chars
    strURL = strURL.sub('\'', '\\\'');
    showLoading();
    var ajaxObj = new Ajax.Updater(
        strContainer,
        strURL,
        {
            method: strMethod,
            parameters: ajaxParams,
            evalScripts: isEvalScript,
            onFailure: errorReport,
            onComplete: hideLoading
        });
}

/* show error when ajax updater failed */
var errorReport = function(ajaxObj)
{
    // set error message
    alert('AJAX request error!');
}

/* show loading box when ajax updater is in middle of requesting */
var showLoading = function()
{
    var ajaxContainer = $(lastAJAXcontainer);
    // emptying content
    ajaxContainer.update('&nbsp;');
    // show loader image
    ajaxContainer.setStyle({backgroundImage: 'url(' + loadingImage + ')',
        backgroundPosition: 'center center',
        backgroundRepeat: 'no-repeat'});
}

/* show loading box when ajax updater complete the request */
var hideLoading = function(ajaxObj)
{
    $(lastAJAXcontainer).setStyle({background: '#FFFFFF'});
}

/* get previous AJAX url */
var getPreviousAJAXurl = function()
{
    if (urlNum > 1) {
        return ajaxURLhistory[urlNum-2];
    } else {
        ajaxURLhistory[0] = defaultAJAXurl;
        return defaultAJAXurl;
    }
}

/* get latest AJAX url */
var getLatestAJAXurl = function()
{
    if (urlNum > 0) {
        return ajaxURLhistory[urlNum-1];
    } else {
        return defaultAJAXurl;
    }
}

