var refreshing_web_page;
var refreshing_page_params;
var refreshing_web_page_interval;
var content_div_intervarl_id;
var stop_refresh = 0;

function ajaxObject(url, callbackReady, callbackLoading, item_id)
{
	var that=this;

	this.updating = false;
	this.abort = function()
	{
		if (that.updating)
		{
			that.updating=false;
			that.AJAX.abort();
			that.AJAX=null;
		}
	}

	this.update = function(passData,postMethod)
	{
		if (that.updating)
		{
			return false;
		}

		that.AJAX = null;

		if (window.XMLHttpRequest)
		{
			that.AJAX=new XMLHttpRequest();
		}
		else
		{
			that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
		}

		if (that.AJAX==null)
		{
			return false;
		}
		else
		{
			that.AJAX.onreadystatechange = function() 
			{
				if  (that.AJAX.readyState==1)
            	{
            		that.callback1(item_id);
           		}

            	if (that.AJAX.readyState==4)
           		{
            		that.updating=false;
            	    that.callback4(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML,item_id);
            	    that.AJAX=null;
           	 	}
			}

        	that.updating = new Date();

        	if (/post/i.test(postMethod))
        	{
        		var uri=urlCall+'?'+that.updating.getTime();
            	that.AJAX.open("POST", uri, true);
            	that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            	that.AJAX.setRequestHeader("Content-Length", passData.length);
            	that.AJAX.send(passData);
			}
        	else
        	{
        		var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime());
            	that.AJAX.open("GET", uri, true);
            	that.AJAX.send(null);
			}

        	return true;
		}
	}
                
    var urlCall = url;
    this.callback4 = callbackReady || function () { };
    this.callback1 = callbackLoading || function () { };
}

function update_content_div(_web_page_, _refresh_, _params_)
{
	// We clear any possible content div refreshing "thread"
	clearInterval(content_div_intervarl_id);
	
	if(_refresh_ == 0)
	{
	 	// We don't want to refresh the content page.
		_update_content_div(_web_page_, _params_);
	}
	else
	{
			// We want to keep refreshing the content page.
			_update_content_div(_web_page_, _params_);
			
			refreshing_web_page 		 = _web_page_;
			refreshing_page_params 		 = _params_;
			refreshing_web_page_interval = _refresh_;
			content_div_intervarl_id = setInterval('_update_content_div(refreshing_web_page)', refreshing_web_page_interval);			
	}
}

function _update_content_div(_web_page_, _params_)
{
	//var url = "/" + _web_page_;
	var url = _web_page_;
    // var params = "from=" + escape( from_msisdn );
	var params = _params_;

    var page1 = new ajaxObject(url, update_content_ready, update_content_loading, _web_page_);
    page1.update(params, 'POST');
}

function update_content_ready(responseText, responseStatus, responseXML, item_id)
{
	if( responseStatus == 200)
    {
    	document.getElementById('content-div').innerHTML = responseText;
    }
    else
    {
    	document.getElementById('content-div').innerHTML = responseText;
    }
    
    document.getElementById('content-div-loading').style.display = 'none';
}

function update_content_loading(item_id)
{
		document.getElementById('content-div-loading').innerHTML = "<IMG src='/css/images/loading.gif'> <b>Loading ...</b>";
		document.getElementById('content-div-loading').style.display = 'inline';
}

// New added at 31.10.2007 - Tuomas
function update_defined_div(_web_page_, _params_, _div_)
{
	var url = _web_page_;
	var params = _params_;

    var page1 = new ajaxObject(url, update_defined_div_ready, update_defined_div_loading, _div_);
    page1.update(params, 'POST');
}

function update_defined_div_ready(responseText, responseStatus, responseXML, _div_)
{
	if( responseStatus == 200)
    {
    	document.getElementById(_div_).innerHTML = responseText;
    }
    else
    {
    	document.getElementById(_div_).innerHTML = responseText;
    }
    
    document.getElementById(_div_ + '-loading').style.display = 'none';
    //alert("Setting div '" + _div_ + "-loading' to 'none'");
}

function update_defined_div_loading(_div_)
{
		//document.getElementById(_div_ + '-loading').innerHTML = "<IMG src='/css/images/loading.gif'> <b>Chargement ... </b>";
		document.getElementById(_div_ + '-loading').style.display = 'inline';
}

