var ms_ajaxloadcb_forceNoCache=1; 
var ms_ajaxloadcb_reloadInterval = 9000;
var ms_ajaxloadcb_loadedObjects='';
var ms_ajaxloadcb_rootDomain='http://'+window.location.hostname;
var ms_ajaxloadcb_forceNoCacheParameter='';

var ms_ajaxloadcb_intervalReloadSetup = false;

var ms_ajaxloadcb_loadedFragments = new Array();
var ms_ajaxloadcb_intervalFragments = new Array();
var ms_ajaxloadcb_onLoadDone = false;

function ms_ajaxloadcb_loadResource(url_, callbackFunction_){
  var pageRequest = false;
  
  if (window.XMLHttpRequest){ // if Mozilla, Safari etc
	pageRequest = new XMLHttpRequest();
  } else if (window.ActiveXObject){ // if IE
	try {
	  pageRequest = new ActiveXObject('Msxml2.XMLHTTP');
	} 
	catch (e){
	  try{
		pageRequest = new ActiveXObject('Microsoft.XMLHTTP');
	  } 
	  catch (e){    
	  }
	} 
  } else{
	return false;
  } 
 
  pageRequest.onreadystatechange=function(){
	ms_ajaxloadcb_loadPage(pageRequest, callbackFunction_);
  }
  
  if (ms_ajaxloadcb_forceNoCache){ 
	ms_ajaxloadcb_forceNoCacheParameter = (url_.indexOf('?')!=-1)? '&'+new Date().getTime() : '?'+new Date().getTime();
  }
  
  pageRequest.open('GET', url_+ms_ajaxloadcb_forceNoCacheParameter, true);
  
  pageRequest.setRequestHeader("Pragma", "no-cache");
  pageRequest.setRequestHeader("Cache-Control", "no-cache");
  
  pageRequest.send(null);
  
  return true;
}

function ms_ajaxloadcb_loadResourceWithInterval(url_, callbackFunction_){
  ms_ajaxloadcb_loadResource(url_, callbackFunction_);

  var intervalResource = new Array();	
  intervalResource["url"] = url_;
  intervalResource["callbackFunction"] = callbackFunction_;

  ms_ajaxloadcb_intervalFragments.push(intervalResource);

  if(ms_ajaxloadcb_reloadInterval > 0 && !ms_ajaxloadcb_intervalReloadSetup){
	ms_ajaxloadcb_intervalReloadSetup = true;
	setTimeout("ms_ajaxloadcb_doIntervalReload()", ms_ajaxloadcb_reloadInterval);
  }
}

function ms_ajaxloadcb_doIntervalReload(){
  for (var i = 0; i < ms_ajaxloadcb_intervalFragments.length; i++) {
	var intervalResource = ms_ajaxloadcb_intervalFragments[i];
	ms_ajaxloadcb_loadResource(intervalResource["url"], intervalResource["callbackFunction"]);
  }

  if(ms_ajaxloadcb_reloadInterval > 0){
	ms_ajaxloadcb_intervalReloadSetup = true;
	setTimeout("ms_ajaxloadcb_doIntervalReload()", ms_ajaxloadcb_reloadInterval);
  }
}

function ms_ajaxloadcb_loadPage(pageRequest_, callbackFunction_){
	if (pageRequest_.readyState == 4 && (pageRequest_.status == 200 || window.location.href.indexOf('http') == -1)){
		var trimmed = pageRequest_.responseText.replace(/^\s+|\s+$/g, '');
	
		if(trimmed != ""){
			if(ms_ajaxloadcb_onLoadDone){
				callbackFunction_(trimmed);
			} else{
				var container = new Array();
				container["callbackFunction"] = callbackFunction_;
				container["content"] = trimmed;
				ms_ajaxloadcb_loadedFragments.push(container);
			}
		}
	}
}


function ms_ajaxloadcb_insertObjects(){
  ms_ajaxloadcb_onLoadDone = true;
  for (var i=0; i < ms_ajaxloadcb_loadedFragments.length; i++) {
	var container = ms_ajaxloadcb_loadedFragments[i];
	container["callbackFunction"](container["content"]);
  }
}