function ajax_load_script(url){
	script_id = "ajax-djs-script";
	var djs = document.getElementById(script_id);
	if(djs)document.body.removeChild(djs);

	var djs = document.createElement("script");
	djs.type="text/javascript";
	djs.id = script_id;
	rd = Math.random()*100000;
	djs.src = url.indexOf("?")>-1 ? url+"&rd="+rd : url+"?rd="+rd;
	document.body.appendChild(djs);
}

function ajax_request(url,method,params,callback){
	var req = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
	req.onreadystatechange = (function(me){ return function () {
			if (req.readyState == 4 && req.status == 200) {
				callback(req.responseText.replace(/^\s\s*/, '').replace(/\s\s*$/, ''));
			
			}else{
				// alert( this.toString() + " error code:" + this.status);
			}
		}
	})(req);

	params["rand"] = Math.random();
 	var params_str = "";
 	for(var key in params){
		params_str += key + "=" + encodeURIComponent(params[key]) + "&";
	}
	
	switch(method.toUpperCase()){
		case "GET":
			url = url+(url.indexOf("?") > -1 ? "&" : "?") + params_str;
			req.open("GET",url,true);
			req.send(null);
			break;
		case "POST": 	
			req.open("POST", url, true); 
 			req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			req.send(params_str);
			break;
	}
	
}

function ajax_get(url,callback){
	ajax_request(url,'GET',{},callback);
}

function ajax_post(form_id,callback){
    
	var form = document.getElementById(form_id);
	var data = {};
	for(var i=0; i< form.elements.length; i++){
		el = form.elements[i];
		data[el.name] = el.value;
	}
	ajax_request(form.action,'POST',data,callback);	
}
