function AJAX(method){
  var xmlhttp = false;
	if(window.XMLHttpRequest){
		xmlhttp = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	}
  if (xmlhttp){
	xmlhttp.onreadystatechange=function(){
		if (xmlhttp.readyState == 4){
			if (xmlhttp.status == 200){
				if(method == "GET"){
          xmlhttpValue = xmlhttp.responseText
					xmlhttpXML = xmlhttp.responseXML
          setTimeout("xsm_set()",300);
				}else{
					xmlhttpValue = xmlhttp.responseText
					xmlhttpXML = xmlhttp.responseXML
					setTimeout("xsm_set()",300);
				}
			}
		}else if (xmlhttp.readyState == 3){
			setprogess("transfering", "100");
		}else if (xmlhttp.readyState == 2){
			setprogess("processing", "75");
		}else if (xmlhttp.readyState == 1){
			setprogess("connected", "50");
		}else if (xmlhttp.readyState == 0){
			setprogess("init", "65");
		}
	}
  }
  return xmlhttp;
}

/********************************* SEND DATA **************************************************************************/
var xmlhttp;
var t;
var xmlhttpXML;
var xmlhttpValue;
var appendTo = 0; 


function sendData(method, url, data) {
	xmlhttp = AJAX(method);
	if (!xmlhttp){
		return false;
	}
	if(method == "GET"){
		if(data == 'null'){
			xmlhttp.open("GET", url, true); //ouverture asynchrone
		}else{
			xmlhttp.open("GET", url+"?"+data, true);
		}
		xmlhttp.send(null);
	}else if(method == "POST"){
		xmlhttp.open("POST", url, true); //ouverture asynchrone
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xmlhttp.send(data);
	}
	return true;
}

/********************************* APPEND METHOD **************************************************************************/

function xsm_append(url,target) {
  appendTo = "yes";
  xsm_get(url,target);
}


function xsm_get(url,target) {
	if (target=="" || typeof(target) == "undefined"){target = "fragment-2";}
	if (url.indexOf(".loader.php")!=-1 && url.indexOf(XUSERVER_FOLDERNAME) == -1){
    url=XUSERVER_URL_XMLCOM+url;
  }
  t = document.getElementById(target);
	setprogess("sending", "80");
  url=url+"&ajaxDivId="+target;
	sendData("GET", url, "null")
}
function xsm_set(){
  if(appendTo=="yes"){
    t.innerHTML += xmlhttpValue;
    appendTo="no"
  }else{
    t.innerHTML = xmlhttpValue;
    appendTo="no"
  }
	
	ajax_afterscript();
	setprogess("ready", "140");
}


function setprogess(label, prog){
  setTimeout("wait()",300);
  if (label=="ready"){
    $('body').css('cursor', 'default'); 
    document.getElementById("ajax_loader").innerHTML = "<div style='width:100%;background:transparent;height:13px'>ready</div>";
  }else if (label=="canceled"){
    document.getElementById("ajax_loader").innerHTML = "<div style='width:100%;background:transparent;height:13px'>canceled</div>";
  }else{
    $('body').css('cursor', 'wait'); 
    document.getElementById("ajax_loader").innerHTML = "<div style='width:"+prog+"%;background:#afa;height:13px'>"+label+"</div>";
  }
}
function xsm_cancel(){
  xmlhttp.abort();
  setprogess("canceled", 100);
  document.getElementById("div_loading").innerHTML ="";
  document.getElementById("div_loading").style.visibility='hidden';
}

function wait(){}
/********************************* POST **************************************************************************/
function xsm_post(url,target, form) {
	//ajax_loader 	= document.getElementById("ajax_loader");
	setprogess("sending", "80");
	if (target=="" || typeof(target) == "undefined"){target = "xsm_loader";}
	f = document.getElementById(form);
	data = '';
	for (var i=0; i<f.elements.length;i++) {
    if (!f.elements[i].name==""){
      if (f.elements[i].type=="checkbox"){
       if (f.elements[i].checked) {
          data += f.elements[i].name + "=" + encodeURIComponent (f.elements[i].value) + "&";
       } else {
          data += f.elements[i].name  + "=&";
          
       }
      }else if(f.elements[i].type=="radio"){
        if (f.elements[i].checked) {
          data += f.elements[i].name + "=" + encodeURIComponent (f.elements[i].value) + "&";
        }
      }else{
        data += f.elements[i].name + "="+ encodeURIComponent (f.elements[i].value) + "&";
      }
      
    }
	
  }
	t= document.getElementById(target);
  //t.innerHTML ="<div id='div_loading' style='padding:5px;margin-top:10px;margin-left:10px;z-index:12;position:absolute;float:left;width:90px;border:1px solid black;background-color:#fff;'><img src='"+XUSERVER_URL_IMAGES+"sys/sys_loading.gif' alt='' /><a href='javascript:xsm_cancel()'> posting ...</a></div>" +t.innerHTML ;
  //t.innerHTML ="<div class='dropshadow'><div class='innerbox'><p><img src='system/images/sys_loading.gif' alt='' /> sending ...</p></div></div>" +t.innerHTML ;
	data = data.substring(0,data.length-1)
	if (url.indexOf(".loader.php")!=-1 && url.indexOf(XUSERVER_FOLDERNAME) == -1) url=XUSERVER_URL_XMLCOM+url;
  url+="&ajaxDivId="+target;
	sendData("POST", url, data)
}


function ajax_afterscript(){
  var scripts = xmlhttpXML.getElementsByTagName('script');
  
  for(var j=0;j<scripts.length;j++){
    eval(scripts[j].firstChild.nodeValue);
  }
}

function popup(url){
	window.open(url,'popup','left=200,top=200,menubar=0,toolbar=0,location=0,resizabble=0');
}
function winup(url){
	window.open(url,'newwin','');
}


function updateChat() {
  num = Math.random();
  t = document.getElementById('chatareaText');
  sendData("GET", XUSERVER_URL_XMLCOM+'jquery.chatter.php?'+num, "null");
  //xsm_get(XUSERVER_URL_XMLCOM+'jquery.chatter.php?'+num, 'chatarea');
  setTimeout('updateChat()', 5000);       
}


/*********************************** AJAX TABLE SUBMISSION  ********************************************************/
var table_active;
var table_active_innerHTML

function table_setField(module, concept, dbid, target, name, value){
	if(typeof(table_active) != "undefined"){
		table_active.innerHTML =table_active.initialHTML;
		if(table_active.id==target){
			table_active.innerHTML =table_active.initialHTML;
			return true;
		}
	}
	table_active= document.getElementById(target);
	table_active.initialHTML = table_active.innerHTML
	table_active.module = module;
	table_active.concept = concept;
	table_active.dbid = dbid;
	table_active.target = target;
	table_active.name = name;
	table_active.value = value;
  l = value.length ;
	table_active.innerHTML ="<input style=\"font-size:9px;width:"+l+"em\" onkeypress=\"table_sendField(event, table_active,this)\" type=\"text\" name=\""+name+"\" value=\""+value+"\" />";
}

function table_sendField(oEvent,obj,field){
	if ((oEvent.keyCode && oEvent.keyCode==13) || (oEvent.which && oEvent.which==13)){
		xmlCom = "xsm.html.loader.php?"
		+"&module="+obj.module
		+"&concept="+obj.concept
		+"&id="+obj.dbid
		+"&method=table_sendField"
		+"&name="+obj.name
		+"&value="+escape(field.value);
		t = document.getElementById(obj.target);
		t.innerHTML = "<font color='red'>sending ...</font>";		
		
		xsm_get(xmlCom,obj.target)
		//document.write(xmlCom);
	}else if ((oEvent.keyCode && oEvent.keyCode==27) || (oEvent.which && oEvent.which==27)){
	 	table_active.innerHTML =table_active.initialHTML;
		if(table_active.id==target){
			table_active.innerHTML =table_active.initialHTML;
			return true;
		}
  }
}

/*********************************** CLX ************************************************************************/

