// AjaxScript adaptation multi-navigateurs : Internet Explorer, Safari, Mozilla Firefox pour Windows, Mac, Linux.
// Permet surtout l'exécution des codes javascripts appellés en Ajax.
// A utiliser librement !!! by Cyrilouletouriste, le 18 Janvier 2007.
function sendData2(data, page, div)
	{  
	if(document.all)
		{
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
		}
	else
		{
		var XhrObj = new XMLHttpRequest();
		}
	var content = document.getElementById(div);
	XhrObj.open("POST", page);
	XhrObj.onreadystatechange = function() 
		{
		// Affichage des données cherchées et exécution des scripts Javascript selon le navigateur utilisé par le client //
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
			{
			if(navigator.appName=='Netscape' && navigator.appVersion.indexOf("Safari",0)<0)
				{
				content.innerHTML = XhrObj.responseText;
				var allscript = content.getElementsByTagName('script');
				for(var i=0;i< allscript.length;i++){window.eval(allscript[i].text);}
				}
			else
				{
				var tmp = XhrObj.responseText;
				//tmp=utf8_decode(utf8_decode(tmp));
				//alert(tmp);
				document.getElementById(div).innerHTML= tmp;
				y_exec_scripts(document.getElementById(div));
				
				function y_exec_scripts(obj)
					{
					scripts = obj.getElementsByTagName("script");
					for(i=0;i<scripts.length;i++)
					eval(scripts[i].innerHTML);
					}
				}
			} 
		// Fin d'affichage des données et des scripts d'exécution selon le navigateur //
		}	
		XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		XhrObj.send(data); 
	}

function sendData(data, page, div)
	{  
	if(document.all)
		{
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
		}
	else
		{
		var XhrObj = new XMLHttpRequest();
		}
	var content = document.getElementById(div);
	XhrObj.open("POST", page);
	XhrObj.onreadystatechange = function() 
		{
		// Affichage des données cherchées et exécution des scripts Javascript selon le navigateur utilisé par le client //
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
			{
			if(navigator.appName=='Netscape' && navigator.appVersion.indexOf("Safari",0)<0)
				{
				content.innerHTML = XhrObj.responseText;
				var allscript = content.getElementsByTagName('script');
				for(var i=0;i< allscript.length;i++){window.eval(allscript[i].text);}
				}
			else
				{
				var tmp = XhrObj.responseText;
				//tmp=utf8_decode(utf8_decode(tmp));
				//alert(tmp);
				document.getElementById(div).innerHTML= tmp;
				y_exec_scripts(document.getElementById(div));
				
				function y_exec_scripts(obj)
					{
					scripts = obj.getElementsByTagName("script");
					for(i=0;i<scripts.length;i++)
					eval(scripts[i].innerHTML);
					}
				}
			} 
		// Fin d'affichage des données et des scripts d'exécution selon le navigateur //
		}	
		XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		XhrObj.send(data); 
	}

function utf8_decode ( str_data ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // *     example 1: utf8_decode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'
 
    var string = "", i = 0, c = c1 = c2 = 0;
 
    while ( i < str_data.length ) {
        c = str_data.charCodeAt(i);
        if (c < 128) {
            string += String.fromCharCode(c);
            i++;
        } else if((c > 191) && (c < 224)) {
            c2 = str_data.charCodeAt(i+1);
            string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
            i += 2;
        } else {
            c2 = str_data.charCodeAt(i+1);
            c3 = str_data.charCodeAt(i+2);
            string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    }
 
    return string;
}

function utf8_encode ( str_data ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // *     example 1: utf8_encode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'
 
    str_data = str_data.replace(/\r\n/g,"\n");
    var utftext = "";
 
    for (var n = 0; n < str_data.length; n++) {
        var c = str_data.charCodeAt(n);
        if (c < 128) {
            utftext += String.fromCharCode(c);
        } else if((c > 127) && (c < 2048)) {
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
        } else {
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
        }
    }
 
    return utftext;
}