//phylum_ajax

function AJAX(a_sURL, a_sDiv, selObj){
  	if (a_sURL != undefined){this.m_sURL = a_sURL;}
  	if (a_sDiv != undefined){this.m_sDiv = a_sDiv;}
  	if (this.m_Request != undefined){this.m_Request.abort(); delete this.m_Request;}
  	this.m_Request = this.createReqestObject();
  	var m_This = this;
  	this.m_Request.onreadystatechange = function() {m_This.handleResponse();}
  	this.m_Request.open("POST", this.m_sURL, true);
  	this.m_Request.send(null);}
  
  AJAX.prototype.m_sURL = undefined;
  AJAX.prototype.m_sDiv = undefined;
  AJAX.prototype.m_Request = undefined;
  
  AJAX.prototype.createReqestObject = function(){var req;
  	try{req = new XMLHttpRequest();}//all
    catch (error){try{req = new ActiveXObject("Microsoft.XMLHTTP");}//IE
      catch (error){try{req = new ActiveXObject("Msxml2.XMLHTTP");}//IE
        catch (error){req = false;}}}
  	return req;}
  
  AJAX.prototype.handleResponse = function(){
  	if (this.m_Request.readyState == 4){
  		// On regarde pour 0 à cause d'un bug dans Firefox.
  		if (this.m_Request.status == "200" || this.m_Request.status == "0"){
  			var content=getById(this.m_sDiv);
			var res=this.m_Request.responseText;
			content.innerHTML = res;
			if(res.substr(0,6)=="logon:"){window.location="/?id="+res.substr(7);}
  			if (this.onDraw != undefined){this.onDraw();}}
	else{	
		if (this.onError != undefined){
			this.onError({status:this.m_Request.status,
						 statusText:this.m_Request.statusText});}}
			delete this.m_Request;}
		else{
			if(this.m_sDiv.substr(0,7)=="reponse"){
			getById(this.m_sDiv).innerHTML = '';}
	}}
  
function getById(a_id){
  	if (document.getElementById){return document.getElementById(a_id);}
  	else if (document.all){return document.all[a_id];}
  	else if (document.layers){return document.layers[a_id];}
  	return null;}
	
/* recups */
//function strreplace(val,need,haystack){return val.split(need).join(haystack);}
function entity_decode(val){
	var quotes = new Array;
	quotes = {"20":" ","21":"!","22":'"',"23":"#","24":"$","25":"%","26":"&","27":"'","2C":",","3A":":","3B":";","3D":"=","3F":"?","5B":"[","5D":"]","5E":"^","7B":"{","7C":"|","7D":"}","7E":"~","A7":"§","B0":"°","E9":"é","E8":"è","E7":"ç","E0":"à","F9":"ù","B5":"µ","A3":"£","E2":"â","C0":"À","C9":"É","EA":"ê","EB":"ë","EE":"î","EF":"ï","F4":"ô","FB":"û","FC":"ü"};
	for(i in quotes){val=clean_entity(val,"%"+i,quotes[i]);}
return val;}

function clean_entity(v,a,b){
	for(i=0;i<100;i++){v=v.replace(a,b);}
	return v;}
	
function prep_item(lm,ln){
	ln=clean_entity(ln,"_","*");
	//ln=ln.replace(/"_"/g,"*");
	//ln=ln.split("'").join("\'");
	ln=ln.replace(/"%20"/g,"");
	if(ln && ln!=1){var lna=ln+":";}else{var lna="";}
	lm=lm.replace("_","*");
	var item=lna+lm;
	return item;
}
	
function serializeList(list,sv,d,m){
		var items = list.getElementsByTagName("li");
		var array = new Array();
			
	if(sv=="add"){
		var bar = escape(document.getElementById("modbar").value).replace("_","*");
		var po = escape(document.getElementById("modpos").value).replace("_","*");
		po=po.replace("%3A",":").replace("%3A",":");
		var pod = po.split(":"); 
		if(pod[0]){var pob = pod[0];} else {var pob = "1" ;}
		if(pod[1]){var pob = pob+":"+pod[1].replace("_","*");} 
		//else {var pob = po.replace("_","*");}
		if(pod[2]){var pob = pob+":"+pod[2].replace("_","*");}
	}
	if(pob=="-"){array.push(bar);}
	
		for (var i = 0, n = items.length; i < n; i++) {
		//	var ditems = list.getElementsByTagName("div")
		//place
			var lm = escape(items[i].getElementsByTagName("input").lm.value);//conn
			var ln = escape(items[i].getElementsByTagName("input").ln.value);//value
			ln=clean_entity(ln,"_","*");
			//ln=ln.replace(/"_"/g,"*");
			ln=ln.replace(/"%20"/g,"");
			if(ln && ln!=1){var lna=ln+":";}else{var lna="";}
			lm=clean_entity(lm,"_","*");
			//lm=lm.replace(/"_"/g,"*");
			var item=lna+lm;
		//	var item=prep_item(lm,ln);
			var todel=lm+ln;
			todel=entity_decode(todel);
			if(ln!="1") var toadd=ln+":"+lm; else toadd=lm;
			toadd=toadd.replace(/"%3A"/g,":");
		//alert(todel+"##"+d);			
			//del
			if(sv=="del" && todel!=d){array.push(item);}
			//save
			if(sv=="sav"){
				if(todel==d){
				var lm = escape(document.getElementById("lmedit").value);//conn
				var ln = escape(document.getElementById("lnsav").value);//value
		//	alert(ln);
				ln=clean_entity(ln,"%26","~");//replace & by ~
				ln=clean_entity(ln,"%23","");//# => used separator
				ln=clean_entity(ln,"%7C","");//| => subseparator
				ln=clean_entity(ln,"%22","");//" => impossible to save
				ln=clean_entity(ln,"%u2019","'");//’ 
				//ln=clean_entity(ln,"%27","'");//' 
				
				var item = prep_item(lm,ln);}
			else{}
		//alert(item+"#"+d+"#");
			array.push(item);}
			//add
			if(sv=="add"){
				array.push(item);
				if(pob==toadd){array.push(bar);}
			}
			//move
			if(sv=="move"){
				if(todel==d){
					if(array[(i-1)]){
						var itemb=array[(i-1)]; 
						array[(i-1)]=item;
						array.push(itemb);
					}
					else{array.push(item);}
				}
				else{array.push(item);}
			}
		}
		//if(m=="MENUS"){var separator=", ";}else{var separator=" ";}
		return array.join("|"); //separator
	}
	
function SaveB(val){ //admin_config_Gsav
  dn = val.split("_"); 
  var cal = dn[0];
  var dir = dn[1];
  var sav = dn[2];
  	if(sav){//var cond=saveconditions();
		var vas=serializeList(document.getElementById(cal+dir),sav,dn[3],dir);}
	if(sav=="del" && vas==""){var vas="nothing";}
	var URL = 'progb/ajax.php?dir='+cal+"_"+dir+"_"+vas;//+"_"+dn[3]+"="+cond
	var ajax = new AJAX(URL, cal+dir); 
	if(sav=="del"){Close("popup");}
	if(sav=="sav"){Close("popup");}
	if(sav=="add"){Close("popup");}
	//	var bar = escape(document.getElementById("modbar").value).replace("_","*");
	//	SaveBe(dn[0]+"_"+dn[1]+"_"+bar+"_1");
	}

/*function saveconditions(){
	var c0=""; var c1=""; var c2=""; var c3=""; var c4=""; 
	var c0=document.getElementById("cond_0").checked;
	var c1=document.getElementById("cond_1").checked;
	var c2=document.getElementById("cond_2").checked;
	var c3=document.getElementById("cond_3").checked;
	var c4=document.getElementById("cond_4").value;
	return c0+":"+c1+":"+c2+":"+c3+":"+c4;}*/
	
function SaveBb(val){ //admin_config_mod
  dn = val.split("_"); 
	var URL = 'progb/ajax.php?dir='+val;
	var ajax = new AJAX(URL, dn[0]+dn[1]); 
	}
	
function SaveBe(val){ //admin_config_mod //popup
  //dn = val.split("_"); 
  //window.outerHeight //hauteur globale
  var URL = 'progb/ajax.php?dir='+val;
	var ajax = new AJAX(URL, "popup"); //dn[0]+dn[1]
	popup(550,150);
  }
  
function popup(w,h){
  //ha=document.defaultView.getComputedStyle(getById("popup"), null).height;
  //la=document.defaultView.getComputedStyle(getById("popup"), null).width;
  //alert(la);
  pospage=window.pageYOffset+h;
  //margeh=(window.innerheight-ha)/2;
  margel=(window.innerWidth-w)/2;
	document.getElementById("popup").style.marginTop = pospage+"px";//style/cssText
	document.getElementById("popup").style.marginLeft = margel+"px"; 
  }

function SaveBc(val){ //toggleart 
  dn = val.split("_"); 
  var op = document.getElementById("toggleart"+dn[1]).innerHTML;
  if(op=="ouvrir"){var nb = 3 ; 
  document.getElementById("toggleart"+dn[1]).innerHTML = "fermer";
  document.getElementById("toggleart"+dn[1]).className = "txtred";} //style/cssText
  else{var nb = 2 ; ob = "ouvrir";
  document.getElementById("toggleart"+dn[1]).innerHTML = "ouvrir";
  document.getElementById("toggleart"+dn[1]).className = "txtx";}
	var URL = 'progb/ajax.php?dir='+val+"_"+nb;
	var ajax = new AJAX(URL, dn[0]+dn[1]); 
	}
	
function SaveTg(val){ //toggles
  dn = val.split("_");
  var op = document.getElementById(dn[1]+dn[4]).className;
  if(op!="txtred"){
	document.getElementById("art"+dn[4]).className = "tab";
	document.getElementById(dn[1]+dn[4]).className = "txtred";
	if(dn[0]=="editart"){document.getElementById("art"+dn[4]).className = "tabb";}
	var URL = 'progb/ajax.php?dir='+dn[0]+"_"+dn[4];
	var ajax = new AJAX(URL, dn[3]+dn[4]);}
  else{Close(dn[3]+dn[4]);
	document.getElementById(dn[1]+dn[4]).className = "txt"+dn[2];
	if(dn[0]=="editart"){document.getElementById("art"+dn[4]).className = "tab";}}
}

function Savenav(val){ //conns
	dn = val.split("_");
	var op = document.getElementById(dn[1]).className;
		if(op!="txtred"){var css="txtred";
	var URL = 'progb/ajax.php?dir='+dn[0]+'_'+dn[1];
	var ajax = new AJAX(URL, dn[0]+dn[1]);}
		else{var css="txtx"; Close(dn[0]+dn[1]);}
	document.getElementById(dn[1]).className = css;
}
	
function SaveA(val){ //admin_config
  dn = val.split("_"); 
  var cal = dn[0];
  var dir = dn[1];
	var URL = 'progb/ajax.php?dir='+val+'_' + escape(document.getElementById(dir).value);
	var ajax = new AJAX(URL, cal+dir); 
	}
	
function Save(val){ //même IDcible que case_name in ajax
  dn = val.split("_"); 
  var cal = dn[0];
  var dir = dn[1];
	var URL = 'progb/ajax.php?dir='+val;
	var ajax = new AJAX(URL, cal);
	}

function SaveD(val){
  dn = val.split("_"); 
	var URL = 'progb/ajax.php?dir='+dn[1]+'_'+dn[2]+'_'+dn[3]+'_'+dn[4];
	var ajax = new AJAX(URL, dn[0]);
	}
  
function Envoyer(val){
  dn = val.split("_"); 
  var nb = dn[1];
	var URL = 'progb/ajax.php?dir='+val;
	var ajax = new AJAX(URL, 'reponse'+nb);
	}

function SaveR(val){
	dn = val.split("_"); 
	var src = escape(document.getElementById(val).value);
	var URL = '/progb/ajax.php?dir='+val+'&nom=' + src;
	var ajax = new AJAX(URL, 'reponse'+dn[1]);
	}
	
//////////////////

function SaveRr(cmd,tar,id){
	var src = escape(document.getElementById(id).value);
	var URL = '/progb/ajax.php?dir='+cmd+'&nom=' + src;
	var ajax = new AJAX(URL, tar);
	if(id=="newtags"){Close("popup");}
	}
function SaveRb(cmd,tar,get){
	var URL = '/progb/ajax.php?dir='+cmd+'&nom=' + get;
	var ajax = new AJAX(URL, tar);
	}

//////////////////
	
function SaveI(val){//import
  	var nobr="";
	if(document.getElementById("nobr").checked==true){var nobr="&nobr=ok";}
	var src=escape(document.getElementById(val).value.replace('http://',''));
	var URL = 'progb/ajax.php?dir='+val+'&nom='+src+nobr
	var ajax = new AJAX(URL, 'textarea_1');
	var ajax = new AJAX(URL+'&t==', 'suj_1');
	}
function SaveIb(val,id){//import_in_place
  	var src = prompt("Source","http://").replace('http://','');
	var src = clean_entity(src,"&","$");
	var URL = '/progb/ajax.php?dir='+val+'&nom='+src+"&import="+id;
	var ajax = new AJAX(URL, 'textarea_1');
	}
function SaveIc(val){//preview
  	var goto = escape(document.getElementById("textarea_1").value);
	var lght=goto.length;
	if(lght>8136){
	alert("Sélection trop longue ("+lght+") : limite : 8136 caractères");}
	else{
	var URL = '/progb/ajax.php?dir=articlearea_'+val+'&nom=' + goto;
	var ajax = new AJAX(URL, 'reponse');
	}}

function SaveChat(val){
  var nam=escape(document.forms['chat'+val]["name"].value);
  var msg=escape(document.forms['chat'+val]["msg"].value);
	var msg=verifSend(msg,"msg"); 
	if(msg){
	var URL = 'progb/ajax.php?dir=chat_'+val+"_"+nam+"&nom="+msg;
	var ajax = new AJAX(URL, val);}
	getById('msg'+val).value = '';
}
function verifSend(val,defo){
	if(val==defo){	var val = prompt("message: ");	}
	return val ;
}

function SaveForm(val){
	/*alert(val);*/
	dn = val.split("_"); 
	var res = "";
	var nb = escape(document.getElementById('nbr').value);
	var formname = escape(document.getElementById('formname').value);
	for (var i = 1 ; i < nb; i++) {
		var nm = escape(document.getElementById('rfe'+i).value);
		var il = escape(document.getElementById('ref'+i).value);
		if(il==""){	var il = prompt("Remplir ce champ : "+nm);}
			if(nm=="email"){
			if(il.indexOf("@",0)<0) {var il = prompt("Spécifier : adresse mail");}}
		var res = res + nm + " : " + il + "<br>" ;
	}
	if(il!="" && il!=null){alert(il);
	var URL = 'progb/ajax.php?dir=form_'+formname+'_'+res;
	var ajax = new AJAX(URL, dn[0]+dn[1]);}
}
	 
function Close(val){
//	document.getElementById("popup").style.height = "0px"; 
		var content = getById(val);
		content.innerHTML = "";
	}

/* keyPressEnter */
function checkEnter(e,frm){ 
	var character	
		if(e && e.which){ e = e
		characterCode = e.which }
		else{e = event
		characterCode = e.keyCode }	
	if(characterCode == 13){ 
	document.forms[frm].submit()
	return false}
	else{return true}
}

function login(id){var mail="";
	var usr=document.forms[id]['user'].value;
	var pass=document.forms[id]['pass'].value;
	if(id=="create_hub"){var mail=document.forms[id]['mail'].value;}
	var URL = 'progb/ajax.php?dir=login_'+usr+"_"+pass+"_"+mail;
	var ajax = new AJAX(URL, "valid");
}

/* menus */
function jumpMenuCat(n,nb,selObj){
	var add=selObj.form.elements['cat'+n+nb].options[selObj.form.elements['cat'+n+nb].selectedIndex].value;
	document.getElementById("frm"+n+'_'+nb).form.elements['cat'+n].value=add;
}
function jumpMenuTags(n,nb,selObj){
	var deb=document.getElementById("frm"+n+'_'+nb).form.elements['cat'+n].value;
	var add=selObj.form.elements['cat'+n+nb].options[selObj.form.elements['cat'+n+nb].selectedIndex].value;
	if(deb) {var add=deb+', '+add;}
	document.getElementById("frm"+n+'_'+nb).form.elements['cat'+n].value=add;
}
function jumpMenu_menu(tar,selObj){
	var val = selObj.options[selObj.selectedIndex].value ;
	var URL = 'progb/ajax.php?dir=comdbar_'+val;
	var ajax = new AJAX(URL, tar);
}
function jumpMenu_text(obj,tar,selObj){
	//var add=selObj.elements[obj].options[selObj.elements[obj].selectedIndex].value;//form.
	var add = selObj.options[selObj.selectedIndex].value;
	document.getElementById(tar).value=add;
}
function jumpMenu_insert(selObj){//styls
	var add = selObj.options[selObj.selectedIndex].value;
	insert(add);
}

// formulaire.submit()
function ValiderMail(formulaire) {
	if(formulaire.mail.value.indexOf("@",0)<0){alert("bad");}
	else {alert("ok");}
}

//function help(txt){document.getElementById("help").innerHTML=txt;}

/*	function Horloge() {
       var dt=new Date();
       window.status=dt.getHours()+":"+dt.getMinutes()+":"+dt.getSeconds();
   }
   var timer=setInterval("Horloge()", 1000);*/
//<a href='javascript:clearInterval(timer)'>Arrêter l'horloge</a>

/*function Attendre(Duree){
  string="Affiche("+Duree+");";
  a = setTimeout(string,Duree);
}

function Affiche(Duree){
  alert(Duree/1000+" seconds se sont écoulées");}*/

 