//var cache = new Array();
var nLoading=0;

function getData(element,dataSource){
	var XMLHttpRequestObject = false;
	if(dataSource.match(/\?/)){
		dataSource+='&rnd='+Math.random();
	}else{
		dataSource+=Math.random()+'/';
	}
//alert(dataSource);
/*	if(cache[element]){
		if(element!='script'){
//			document.getElementById('debug').innerHTML='<pre>Cache hit: '+element+'</pre>'+document.getElementById('debug').innerHTML;
			document.getElementById(element).innerHTML=cache[element];
			return;
		}//else{
//			eval(cache[element]);
//		}
//		return;
	}*/
//	document.getElementById(element).innerHTML='<b>Loading ..</b>';
	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	} else {
		if (window.ActiveXObject) {
			XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHttp");
		}
	}
	if(XMLHttpRequestObject) {
//		document.getElementById('loading').style.display="block";
//		nLoading++;
		XMLHttpRequestObject.open("GET", dataSource);
		XMLHttpRequestObject.onreadystatechange = function(){
			if (XMLHttpRequestObject.readyState == 4){
				if(XMLHttpRequestObject.status == 200) {
					if(element!='script'){
//						alert(element);
						if(element.innerHTML!=null){
							element.innerHTML = XMLHttpRequestObject.responseText;
						}else{
							if(document.getElementById(element)){
								document.getElementById(element).innerHTML = XMLHttpRequestObject.responseText;
								if(document.getElementById(element).getElementsByTagName('script').length){
									eval(document.getElementById(element).getElementsByTagName('script')[0].innerHTML);
								}
							}else{
								alert('AJAX Error: No element with id: '+element);
							}
						}
					}else{
						eval(XMLHttpRequestObject.responseText);	//Run if JavaScipt
					}
				}else{
					//ERROR!!
					alert('AJAX Error');
				}
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
//				nLoading--;
//				if(nLoading<=0){
//					document.getElementById('loading').style.display="none";
//				}
			}
		}
		XMLHttpRequestObject.send(null);
		return true;
	}else{
		return false;
	}
}

function postData(element,dataSource,data){
//	document.getElementById('debug').innerHTML='<pre>'+dataSource+'</pre>'+document.getElementById('debug').innerHTML;
//	document.getElementById('debug').innerHTML='<pre>'+data+'</pre>'+document.getElementById('debug').innerHTML;
	var XMLHttpRequestObject = false;
	dataSource+=Math.random()+'/'
	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	} else {
		if (window.ActiveXObject) {
			XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHttp");
		}
	}
	if(XMLHttpRequestObject) {
//		document.getElementById('loading').style.display="block";
//		nLoading++;
		XMLHttpRequestObject.open("POST", dataSource, true);
		XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		XMLHttpRequestObject.onreadystatechange = function(){
			if (XMLHttpRequestObject.readyState == 4){
				if(XMLHttpRequestObject.status == 200) {
// alert(XMLHttpRequestObject.responseText);
					if(element!='script'){
						if(element.tagName){
							oEl=element;
						}else{
							oEl=document.getElementById(element);
						}
						oEl.innerHTML=XMLHttpRequestObject.responseText;
						if(oEl.getElementsByTagName('script')){
							for(i=0;i<oEl.getElementsByTagName('script').length;i++){
								eval(oEl.getElementsByTagName('script')[i].innerHTML);
							}
						}
					}else{
//							document.getElementById('debug').innerHTML='<pre>'+XMLHttpRequestObject.responseText+'</pre>'+document.getElementById('debug').innerHTML;
						eval(XMLHttpRequestObject.responseText);	//Run if JavaScipt
					}
				}else{
//						alert('ERROR!!');
//						alert(XMLHttpRequestObject.status);
				}
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
//				nLoading--;
//				if(nLoading<=0){
//					document.getElementById('loading').style.display="none";
//				}
			}
		}
		XMLHttpRequestObject.send(data);
		return true;
	}else{
		return false;
	}
}


