/*
 * Esemény hozzáadása egy objektumhoz
 */

function addEvent(obj, evType, fn) {
  if (obj.addEventListener) {
    obj.addEventListener(evType, fn, true);
    return true;
  } else if (obj.attachEvent) {
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
    return false;
  }
}

/*
 * Ajax obj. létrehozása
 */
function createRequestObject() {
	var ro;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer"){
		ro = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		ro = new XMLHttpRequest();
	}
	return ro;
}

var http;			// Ajax obj
var module = '';	// Modul neve

/*
 * Ajax objektum inicializálása
 */
function AjaxInit( mod ) {
	http = createRequestObject();
	module = mod;
}

/*
 * GET módú kérés 
 */
function sndReq(action) {
	if (module == '') {
		alert('No module set!');
	} else {
		http.open('get', 'rpc.php?p=' + module + '&m=' + action);
		http.onreadystatechange = handleResponse;
		http.send(null);
	}
}

/*
 * Post módú kérés
 */
function postReq( oForm ) {
    var sBody = getRequestBody(oForm);

    http.open('post', 'rpc.php');
    http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf8');
    http.onreadystatechange = handleResponse;
    http.send(sBody);
}

/*
 * Kérés-kezelő
 */
function handleResponse() {
	if(http.readyState == 4){
		var response = http.responseText;
		var update = new Array();
		var item = new Array();
		var i;
		var o;
		
		update = response.split('|*|'); 
				
		for(i in update) {
			if(update[i].indexOf('|' != -1)) {
				item = update[i].split('|');
				if (o = document.getElementById(item[0])) {
					o.innerHTML = item[1];
				}
			}
		}
	}
}

/*
 * POST kérés törzsének létrehozása
 */
function getRequestBody(oForm) {
    var aParams = new Array();
	aParams.push('p='+module);

    for (var i=0 ; i < oForm.elements.length; i++) {
        aParams.push(
        	encodeURIComponent(oForm.elements[i].name) +'='+ 
        	encodeURIComponent(oForm.elements[i].value)
        );
    }

    return aParams.join("&");
}

