
// ---oo--- A Type which register many functions with addCallback(call_back_function, ... params) and launch them together with process() ---oo--- //

function CallbackManager()
{
    // ------------ Private ------------ //
    var p_functions = new Array();
    
    // ------------ Public ------------ //
    
    //Execute all registered functions
    this.process = function()
    {
        var params;
        var next = '';
        for(var i = 0; i < p_functions.length; i++){
            params = "";
            for(var j = 0; j < p_functions[i].params.length; j++){
                if(j > 0) params += ", ";
                next = p_functions[i].params[j];
                if(typeof(next) == "string") next = '"' + next + '"';
                else if(typeof(next) == "object") next = 'new Array(' + next + ')';
                params += next;
            }
            eval("p_functions[i].func(" + params + ");");
        }
    }
    
    //Need a function and its parameters
    this.addCallback = function(call_back_function /*... params*/)
    {
        var parameters = new Array();
        var str = "";
        for(var i = 1; i < arguments.length; i++){
            parameters.push(arguments[i]);
        }
        p_functions.push({func:call_back_function, params:parameters});
    }
}

//CallbackManager which process when the page is loading
var loadCallBack = new CallbackManager();


var infos_num = 0;
var win_options = 0;
function closeOptions() {	if (win_options && win_options.open && !win_options.closed) win_options.close();	}
function openOptions() 	{	win_options = window.open('/displayoptions.php', 'options', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=420,height=750') }
