var results_settings = {
    containerId        : 'results_container',
    statusId           : 'status',
    processUrl         : '',
    statusSuccessColor : '#99ff99',
    statusErrorColor   : '#ff9999'
};

/////////////////////////////////////////////////
// Commons
function setStatus(msg) {
    var isError = typeof arguments[1] == 'boolean' && arguments[1];
    var status = $(results_settings.statusId);

    var options = {
        startcolor : isError ?
                        results_settings.statusErrorColor :
                        results_settings.statusSuccessColor,
        afterFinish : function() {
            //this.update(this.defaultContent);
        }.bind(status)
    };

    status.update(msg);
    new Effect.Highlight(status, options);
}

//Event.observe(window, 'load', init);

/////////////////////////////////////////////////
// Providers
t0 = new Date();
function loadResults(url) {
    //console.log("loadResults(" + url + ")");

    $(results_settings.statusId).defaultContent = $(results_settings.statusId).innerHTML;
	
	var options = {
        method     : 'get',
        parameters : '',
        onSuccess  : loadResultsSuccess,
        onFailure  : loadResultsFailure
    };

	t0 = new Date();

	setStatus('Loading results');
	results_settings.processUrl = url;
	new Ajax.Request(results_settings.processUrl, options);
}

function loadResultsFailure(transport) {
	setStatus('Error loading provides', true);
}

function loadResultsSuccess(transport) {

	var r = transport.responseText;
	var t1 = new Date();
       var container = $(results_settings.containerId);
	try {
		//container.update();
		container.innerHTML = r;
		var t2 = new Date();
		setStatus("Execution time = " + eval(t2-t0) + " => server call = " + eval(t1 - t0) + ", rendering = " + eval(t2 - t1));
		var points = $$('#myMap');
		if (points.length > 0) eval("createMap();");
		for(idx = 0; idx < points.length; idx ++) {
			var jcode = points[idx].innerHTML;
			jcode = jcode.replace(/\r/g, '')
			jcode = jcode.replace(/\n/g, ' ')
			jcode = jcode.replace(/'s/g, "\\'s")
			//alert(jcode);
			setTimeout(jcode, 200);
		}
	} catch (e) {
		alert("Ajax Exception:" + e);
	}
}
