// JavaScript Document
//
// Fournit les methodes AJAX pour PHP



function loadjscssfile(filename, filetype){
	if (filetype=="js"){ //if filename is a external JavaScript file
		scripts=document.getElementsByTagName('script');
		for(i=0;i<scripts.length;i++){
			if(scripts[i].getAttribute("src")==filename)return;
		}
		var fileref=document.createElement('script');
		fileref.setAttribute("type","text/javascript");
		if(loadjscssfile.arguments.length>2){
			callback = loadjscssfile.arguments[2];
			if (fileref.addEventListener)
				fileref.addEventListener("load", callback, false);
			else
				fileref.onreadystatechange = function() {
						if (this.readyState == "complete") callback.call(this);
					}
		}
		fileref.setAttribute("src", filename);
	} else 
		if (filetype=="css"){ //if filename is an external CSS file
			var fileref=document.createElement("link")
			fileref.setAttribute("rel", "stylesheet")
			fileref.setAttribute("type", "text/css")
			fileref.setAttribute("href", filename)
		}
	if (typeof fileref!="undefined")
		document.getElementsByTagName("head")[0].appendChild(fileref)
}

var httpObject = null;

// Get the HTTP Object
function getHTTPObject(){
	if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
	else if (window.XMLHttpRequest) return new XMLHttpRequest();
	else {
		alert("Your browser does not support AJAX.");
		return null;
	}
} 

// Implement business logic
function doWork(method, url, sendString){
	httpObject = getHTTPObject();
	if (httpObject != null) {
		
		httpObject.open(method, url, false);
		if(method=='POST'){
			httpObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			httpObject.send(sendString);
		} else {
			httpObject.send(null);
		}
				
		if(httpObject.readyState==4 && httpObject.status==200){
			return httpObject.responseText
		} else {
			return false;
		}
	}
}


function lister_champs(theform)//icic la fonction qui va g?rer les ?ments a envoyerz
{
	var url='';
	for (i=0; i<theform.elements.length; i++)
	{
		if(((theform.elements[i].type=='radio' ||theform.elements[i].type=='checkbox') && theform.elements[i].checked==true) || (theform.elements[i].type!='radio' &&theform.elements[i].type!='checkbox'))//control si c'est des radio ou check box et incr?nte le r?ltat QUE si c'est coch?sans ?il prendrais les deux)
		{
			if(theform.elements[i].type=='select-multiple' || theform.elements[i].type=='select' )//si c'est un select multiple
			{
				for(j = theform.elements[i].length-1; j >= 0; j-=1)//on parcours les element du select multiple
				{
					if(theform.elements[i].options[j].selected)//si selectionn?n incremente
					{
						if(url){url+='&';}
						url+=theform.elements[i].name+'='+theform.elements[i].options[j].value;
					}
				}
			}
			
			
			if(theform.elements[i].type!='select-multiple' && theform.elements[i].name != ""){
				if(url){url+='&';}
				if((theform.elements[i].type=='text' || theform.elements[i].type=='textarea') && $(theform.elements[i]).hasClass("empty") && $(theform.elements[i]).hasClass("emptyTitleValue"))
					url+=theform.elements[i].name+'=';
				else
					url+=theform.elements[i].name+'='+encodeURIComponent(theform.elements[i].value);
			}
		}
	}
	return url;//onretourne le resultat vers la fonction appel?
}

function ajaxSubmit(theform)
{
	if(ajaxSubmit.arguments.length>1){
		method=ajaxSubmit.arguments[1];
	} else {
		method=false;
	}	
	if(ajaxSubmit.arguments.length>2){
		methodAfter=ajaxSubmit.arguments[2];
	} else {
		methodAfter=false;
	}
	xhr = getHTTPObject();
	xhr.onreadystatechange = function()
	{
		if(xhr.readyState == 4 && xhr.status == 200)
		{
			// Nous remplacons le contenu du div mondiv par le retour de "ajax.php"
			pbloc = theform.parentNode;
			
			if(method!=false){
				eval("responseText = "+method+"(xhr.responseText);");
				if(responseText!= null && responseText!= false && responseText!=""){
					pbloc.innerHTML = responseText;
				}
				
			} else {
				pbloc.innerHTML = xhr.responseText;
			}
			if(methodAfter!=false){
				eval(methodAfter+"(xhr.responseText, pbloc);");				
			}
		}
	}
	xhr.open("POST",theform.action,true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=ISO-8859-1');
	xhr.send(lister_champs(theform));
	return false; // /!\il est important d'ajouter ?afin que la page ne soit pas rappel?par le post!!/!\
}
function redirectTo(url){
	window.location.href=url;
}
