/**
 *	AJAX
 */
var sep1 = ',';
var sep2 = '>';
var sep3 = '<';

function httpObject() {
	var HTTPo;
	var msxmlhttp = new Array('Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0',
		'Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP');
	for (var i = 0; i < msxmlhttp.length; i++) {
		try {
			HTTPo = new ActiveXObject(msxmlhttp[i]);
		} catch (e) {
			HTTPo = null;
		}
	}

	if(!HTTPo && typeof XMLHttpRequest != "undefined")
		HTTPo = new XMLHttpRequest();
	if (!HTTPo)
		alert("Nie moge utworzyc obiektu AJAX");
	return HTTPo;
}

var http = httpObject();

function handleResponse() {
    if(http.readyState == 4){	// odebrano
    	var response = http.responseText;
    	var data = response.split('<');		// data[0] - action name, data[1] - actual data
    	//alert(response);
    	//$('rmContent').innerHTML = response;
    	if($('ajaxloading'))
    		$('ajaxloading').style.display='none';
    	dispatchResponse(data, response);	// 	interpretacja danych z AJAXa, funkcja dispatchResponse
											//zaimplementowana w poszeczgolnych plikach JS
	}
}

function sndReq(rpcName,action,aParams) {
	var method = 'POST';
  	var params = '';
  	var params1 = '';
  	for (i in aParams) {
		if (typeof(aParams[i])== "object"){
		    for (a in aParams[i]) {
	    		params += '&'+i+'['+ a + ']=' + encodeURIComponent(aParams[i][a]);
			}
		}
		else
			params += '&'+ i + '=' + encodeURIComponent(aParams[i]);
	}
	sentUrl = '/rpc/'+rpcName+'?act='+action+params+params1+'&ms=' + new Date().getTime();
	method = method.toUpperCase();
	if($('ajaxloading'))
		$('ajaxloading').style.display='block';
    if (method == 'GET'){
		http.open('GET', sentUrl);
		http.onreadystatechange = handleResponse;
	    http.send(sentUrl);
	}
	else {
	  	http.open('POST', '/rpc/'+rpcName, true);
        http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	    http.send('act='+action+params+params1+'&ms=' + new Date().getTime());
	    if ($('ajaxlogs'))
	    	$('ajaxlogs').innerHTML = '/rpc/'+rpcName+'?act='+action+params+params1+'&ms=' + new Date().getTime();
	  	http.onreadystatechange = handleResponse;
	}
}