function ajaxRequest(method, url, postData, responseHandler, handlerParams, responseType){
	if(window.XMLHttpRequest)
		var ajax = new XMLHttpRequest();
	else if(window.ActiveXObject)
		var ajax = new ActiveXObject('Msxml2.XMLHTTP');
	else
		return false;
		
	if(method.match(/get/i))
		url += '?'+buildPostStr(postData);
		
	ajax.open(method, url, true);
	
	ajax.onreadystatechange = function(){
		if(ajax.readyState==4){
			if(responseType=='xml')
				responseHandler(ajax.responseXML, handlerParams);
			else
				responseHandler(ajax.responseText, handlerParams);
		}
	}
	
	if(method=='POST'){
		ajax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
		postStr = buildPostStr(postData);
	}
	else	
		postStr = null;
		
	ajax.send(postStr+'&');
}

function buildPostStr(postData, aryName){
	var vars = [];
	
	for(name in postData){
		var type = typeof(postData[name]);
		
		if(type=='number' || type=='string' || type=='boolean'){
			if(aryName)
				vars.push(aryName+'['+name+']='+encodeURIComponent(postData[name]));
			else
				vars.push(name+'='+encodeURIComponent(postData[name]));
		}
		else if(type=='object')
			vars.push(buildPostStr(postData[name], name));
	}
		
	return vars.join('&');
}

function ajaxNotifyVis(elmId, state){
	document.getElementById(elmId).style.visibility = (state) ? 'visible' : 'hidden';
}

function ajaxNotify(state, elmId, imgSrc){
	var elm = document.getElementById(elmId);

	if(state)
		elm.innerHTML = "<img class='vam' src='"+imgSrc+"'/>";
	else
		elm.innerHTML = '&nbsp;';
}