//AJAX
//to detect if browser understands AJAX
var isAjax = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
	isAjax = new XMLHttpRequest();
} 
else if (window.ActiveXObject) { // IE
	try {
	    isAjax = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	    try {
	        isAjax = new ActiveXObject("Microsoft.XMLHTTP");
	    } catch (e) {}
	}
}

//appel pour retour HTML: makeRequest("URL?params", "ID_du_DIV_cible");
//appel pour retour XML: makeRequest("URL?params", "ID_du_DIV_cible", "XML");
function makeRequest(hurle, container, loadW, typ) {
	//affichage loading ////revoir INNERHTML
	document.getElementById(container).innerHTML = '<div align="center" class="inline ml_10"><img src="/images/common/ajax_load.gif" height="'+loadW+'" width="'+loadW+'" /></div>';
	var http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
		    if (typ == "XML") http_request.overrideMimeType('text/xml');
		}
	} 
	else if (window.ActiveXObject) { // IE
		try {
		    http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
		    try {
		        http_request = new ActiveXObject("Microsoft.XMLHTTP");
		    } catch (e) {}
		}
	}
	if (!http_request) {
		alert('Abandon :( Impossible de créer une instance XMLHTTP');
		return false;
	}
	http_request.onreadystatechange = function() {
	//alert("onreadystatechange(), http_request.readyState = " + http_request.readyState);
		if (http_request.readyState == 4) {
			//alert("http_request.readyState = " + http_request.readyState)
			if (typ == "XML"){
				parseContents(http_request, container);
			}
			else {
				afficheContents(http_request, container); 
			}
		}
	}
	http_request.open('GET', hurle, true);
	http_request.send(null);	
	/**/
}
function afficheContents(http_request, div) {
	//if (http_request.readyState == 4) {
		//alert("http_request.status = " + http_request.status);
		if (http_request.status == 200) {
			document.getElementById(div).innerHTML = http_request.responseText;
			//document.getElementById(div).style.display = "block";
			} 
		else {
			alert('Un problème est survenu avec la requête.');
			//document.getElementById(div).innerHTML = http_request.responseText;
		}
	//}
}
function affichDetail(hurle,cible)
	{
	if(isAjax)
		{
		if(cible==undefined || cible==''){cible="detail_popin"}
		document.getElementById(cible).style.display="block";
		posX=mouse_x;
		posY=mouse_y;
		if(posY == 0)
			{
			posX = (document.documentElement.scrollLeft)+150;
			posY = (document.documentElement.scrollTop)+300;
			}
		else
			{
			if(posX>390) posX=390;
			//alert("mouse_x = " + mouse_x + " && posX = " + posX);
			//alert("mouse_y = " + mouse_y + " && posY = " + posY);
			var posY_Window=window.outerHeight;
			var high=(posY-posY_Window);
			if(high>600){posY=(posY_Window+500);}
			}
		
		document.getElementById(cible).style.left = posX+"px";
		document.getElementById(cible).style.top = (posY-150)+"px";
		makeRequest(hurle,cible);
		return false;
		}
	}
//FIN AJAX
//addevent
function addEvent(obj, evType, fn){ 
	if (obj.addEventListener){ 
		obj.addEventListener(evType, fn, false); 
		return true; 
	}
	else if (obj.attachEvent){ 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	}
	else { 
		//alert("Handler could not be added");
		return false; 
	} 
}
function removeEvent(obj, evType, fn){
	if (obj.removeEventListener){
		obj.removeEventListener(evType, fn, false);
		return true;
	}
	else if (obj.detachEvent){
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	}
	else {
		//alert("Handler could not be removed");
		return false; 
	}
}
//execution du window.onload se fait dans l'ordre inverse de déclaration pour IE...!
//addEvent(window, "load", init2);
//fin addEvent
var ns4=(document.layers);var ie4=(document.all&&!document.getElementById);var ie5=(document.all&&document.getElementById);var ns6=(!document.all&&document.getElementById);var mac=(navigator.appVersion.indexOf("Mac")>=0)?1:0;var dom=(document.getElementById)?1:0;var ie=(ie4||ie5)?1:0
function layer(lyr){if(ns4){obj=document.layers[lyr]}else if(ie4){obj=document.all[lyr].style}else if(dom){obj=document.getElementById(lyr).style}return obj;}
function left(lyr){if(!ns4&&!mac){obj=parseInt(layer(lyr).left.substring(0,layer(lyr).left.indexOf("p")));}else if(dom&&mac&&!ie){obj=parseInt(layer(lyr).left.substring(0,layer(lyr).left.indexOf("p")));}else{obj=parseInt(layer(lyr).left);}return obj}
function pot(lyr){if(!ns4&&!mac)obj=parseInt(layer(lyr).top.substring(0,layer(lyr).top.indexOf("p")));else if(dom&&mac&&!ie)obj=parseInt(layer(lyr).top.substring(0,layer(lyr).top.indexOf("p")));else{obj=parseInt(layer(lyr).top)}return obj;}
function showHide(lyr,what){layer(lyr).visibility=what;}
function setDisplay(lyr,what){layer(lyr).display=what;}
function posLeft(lyr,x){layer(lyr).left=x;}
function posTop(lyr,y){layer(lyr).top=y;}
function setWidth(DivId,w){layer(DivId).width=w;}
function setHeight(DivId,h){layer(DivId).height=h;}
function setZ(lyr,z){layer(lyr).zIndex=z;}
function setClip(DivId,MyClip){if(!ns4){layer(DivId).clip="rect("+MyClip[0]+"px "+MyClip[1]+"px "+MyClip[2]+"px "+MyClip[3]+"px)";}else{document.layers[DivId].clip.top=MyClip[0];document.layers[DivId].clip.right=MyClip[1];document.layers[DivId].clip.bottom=MyClip[2];document.layers[DivId].clip.left=MyClip[3];}}
function getHeight(DivId){if((ie5&&!mac)||ns6)return(document.getElementById(DivId).offsetHeight);else if(ie4)return(document.all[DivId].clientHeight);else if(ns4)return(document.layers[DivId].document.height);else if(ie5&&mac)return(document.all[DivId].offsetHeight);else return(document.getElementById(DivId).offsetHeight);}
function getWidth(DivId){if((ie5&&!mac)||ns6)return(document.getElementById(DivId).offsetWidth);else if(ie4)return(document.all[DivId].clientWidth);else if(ns4)return(document.layers[DivId].document.width);else if(ie5&&mac)return(document.all[DivId].offsetWidth);else return(document.getElementById(DivId).offsetWidth);}
function aleft(MyObject){if(dom||ie4){if(MyObject.offsetParent){return(MyObject.offsetLeft+aleft(MyObject.offsetParent));}else{return(MyObject.offsetLeft);}}if(ns4){return(MyObject.x);}}
function atop(MyObject){if(dom||ie4){if(MyObject.offsetParent){return(MyObject.offsetTop+atop(MyObject.offsetParent));}else{return(MyObject.offsetTop);}}if(ns4){return(MyObject.y);}}
function setToAnchor(AnchorName,lyr){var MyAnchor;if(dom){MyAnchor=document.getElementById(AnchorName);}else if(ie4){MyAnchor=document.all[AnchorName];}else if(ns4){MyAnchor=document.anchors[AnchorName];}if(arguments.length==2){posLeft(lyr,aleft(MyAnchor));posTop(lyr,atop(MyAnchor));}else{if(arguments[2]=="x"){posLeft(lyr,aleft(MyAnchor));}else{posTop(lyr,atop(MyAnchor));}}}
var mouse_x=0
var mouse_y=0
function positionSouris(evt){
	//alert("positionSouris");
	if( !evt ) evt=window.event;
	mouse_x=evt.clientX+(document.documentElement.scrollLeft || document.body.scrollLeft);
	mouse_y=evt.clientY+(document.documentElement.scrollTop || document.body.scrollTop);
	}
addEvent(window, "load", initMouse);
function initMouse(){
	//alert("initMouse");
	//document.onmousemove=positionSouris;
	addEvent(document, "mousemove", positionSouris);
	}
/***** DISPLAY MANAGEMENT *****/
//generic fonction to display or not an element
function displayElement(elmt, disp){
	document.getElementById(elmt).style.display=disp;
	}
