function getXMLHTTP(){
	var xhr=null;
	if(window.XMLHttpRequest){ // Firefox et autres
		xhr = new XMLHttpRequest();
	}else if(window.ActiveXObject){ // Internet Explorer
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}catch (e){
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e1) {
				xhr = null;
			}
		}
	}
	else { // XMLHttpRequest non supporté par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	}
	return xhr;
}

function renderNavAjax(param){

	var _xmlHttp = null; //l'objet xmlHttpRequest utilisé pour contacter le serveur
	if(_xmlHttp&&_xmlHttp.readyState!=0){
		_xmlHttp.abort();
	}
	_xmlHttp=getXMLHTTP();
	if(_xmlHttp){
		//appel à l'url distante
		//_xmlHttp.setRequestHeader("Content-type", "charset=iso-8859-1");
		_xmlHttp.open("POST","/static/admin/renderNavAjax.jsp?"+encodeURI(param),true);
		
		_xmlHttp.onreadystatechange=function() {
			
			if(_xmlHttp.readyState==4&&_xmlHttp.status == 200) {
				document.getElementById("navAjax").innerHTML=_xmlHttp.responseText;
			}
		};
		// envoi de la requete
		_xmlHttp.send(null);
		
	}
}


function getContent(divId, contentId, xslUrl) {

	var _xmlHttp = null; //l'objet xmlHttpRequest utilisé pour contacter le serveur
	if(_xmlHttp&&_xmlHttp.readyState!=0){
		_xmlHttp.abort();
	}
	_xmlHttp=getXMLHTTP();
	if(_xmlHttp){
	
		//appel à l'url distante
		//_xmlHttp.setRequestHeader("Content-type", "charset=iso-8859-1");
		_xmlHttp.open("POST","/static/jsp/getContent.jsp?contentId="+contentId+"&xslUrl="+xslUrl,true);
		
		_xmlHttp.onreadystatechange=function() {
			
			if(_xmlHttp.readyState==4&&_xmlHttp.status == 200) {
				document.getElementById(divId).innerHTML = _xmlHttp.responseText;
			}
		};
		// envoi de la requete
		_xmlHttp.send(null);
		
	}
}

function addToCart(productID, action, callback) {
    var loader = "<img id=\"cartLoader\" src=\"/specific/img/ajax-loader.gif\" alt=\"\"/>";
	var _xmlHttp = null; //l'objet xmlHttpRequest utilisé pour contacter le serveur
	if(_xmlHttp&&_xmlHttp.readyState!=0){
		_xmlHttp.abort();
	}
	_xmlHttp=getXMLHTTP();
	if(_xmlHttp){
		//appel à l'url distante	
		if (productID==0 && !action) {	
			document.getElementById("target_basket").innerHTML = loader;		    
			_xmlHttp.open("GET","/specific/formats/include/addToCartAjax.jsp");
		} else {
			if (!action || (action && action=="add")) {
				document.getElementById("target_basket").innerHTML = loader;		
				_xmlHttp.open("POST","/specific/formats/include/addToCartAjax.jsp?productID="+ productID +"&QT="+ document.getElementById("product" + productID).QT.value, true);			
			}
			else if (action=="remove_all") {
				document.getElementById("target_basket").innerHTML = loader;
				_xmlHttp.open("POST","/specific/formats/include/addToCartAjax.jsp?productID="+ productID +"&action=remove_all");
			}
			else if (action=="update") {
				var thisForm = null;
				var params = "";
				thisForm = document.getElementById("formCart");
				for (var i=0;i<thisForm.length;i++) {
				  if (i==0) {
				  	params = params + "?" + thisForm.elements[i].name + "=" + thisForm.elements[i].value;
				  }
				  else {
				  	params = params + "&" + thisForm.elements[i].name + "=" + thisForm.elements[i].value;
				  }
				}
				document.getElementById("target_basket").innerHTML = loader;
				_xmlHttp.open("POST","/specific/formats/include/addToCartAjax.jsp" + params);
			}
		}
		_xmlHttp.onreadystatechange=function() {			
			if(_xmlHttp.readyState==4 && _xmlHttp.status == 200) {					
				document.getElementById("target_basket").innerHTML = _xmlHttp.responseText;	
				if (callback)
						eval(callback);
					
			}				
		};
		// envoi de la requete
		_xmlHttp.send(null);	
	}
	
}

function submitUpdateCart(e) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;	
	if (keycode == 13)
	   {
	   document.getElementById('cartUpdate').click();
	   return false;
	   }
	else
	   return true;
}

function submitAddToCart(e, ref) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;	
	if (keycode == 13)
	   {
	   addToCart(ref);
	   return false;
	   }
	else
	   return true;
}

// meme fonction, mais sans avoir besoin d'un form
function addToCart2(productID, action) {
    var loader = "<img id=\"cartLoader\" src=\"/specific/img/ajax-loader.gif\" alt=\"\"/>";
	var _xmlHttp = null; //l'objet xmlHttpRequest utilisé pour contacter le serveur
	if(_xmlHttp&&_xmlHttp.readyState!=0){
		_xmlHttp.abort();
	}
	_xmlHttp=getXMLHTTP();
	if(_xmlHttp){
		//appel à l'url distante
	
		if (productID==0 && !action) {	
			document.getElementById("target_basket").innerHTML = loader;		    
			_xmlHttp.open("POST","/specific/formats/include/addToCartAjax.jsp");
		} else {
			if (!action) {
				document.getElementById("target_basket").innerHTML = loader;		
				_xmlHttp.open("POST","/specific/formats/include/addToCartAjax.jsp?productID="+ productID +"&QT="+ document.getElementById("qt" + productID).value, true);			
			}
			else if (action=='remove_all') {
				document.getElementById("target_basket").innerHTML = loader;
				_xmlHttp.open("POST","/specific/formats/include/addToCartAjax.jsp?productID="+ productID +"&action=remove_all");
			}
			else if (action=="update") {
				var thisForm = null;
				var params = "";
				thisForm = document.getElementById("formCart");
				for (var i=0;i<thisForm.length;i++) {
				  if (i==0) {
				  	params = params + "?" + thisForm.elements[i].name + "=" + thisForm.elements[i].value;
				  }
				  else {
				  	params = params + "&" + thisForm.elements[i].name + "=" + thisForm.elements[i].value;
				  }
				}
				document.getElementById("target_basket").innerHTML = loader;
				_xmlHttp.open("POST","/specific/formats/include/addToCartAjax.jsp" + params);
			}
		}
		_xmlHttp.onreadystatechange=function() {			
			if(_xmlHttp.readyState==4 && _xmlHttp.status == 200) {					
				document.getElementById("target_basket").innerHTML = _xmlHttp.responseText;
				if (productID!=0 || action) {
					showBasket();
					if(!action && document.getElementById("smoothMsg")!=undefined ) {
						smoothPrint(document.getElementById("smoothMsg"));
					}
				}
			}				
		};
		// envoi de la requete
		_xmlHttp.send(null);	
	}
}

function incQT(proId) {
var qt = parseInt(document.getElementById("qt"+proId).value);
if (isNaN(qt) || qt<0 ) {
qt = 0;
}
qt++;
document.getElementById("qt"+proId).value = qt;
}

function decQT(proId) {
var qt = parseInt(document.getElementById("qt"+proId).value);
if (isNaN(qt) || qt<1 ) {
qt = 1;
}
if ( qt > 1 ) {
qt--;
}
document.getElementById("qt"+proId).value = qt;
}


/**
* Récupère la liste des types de contenu
*
* @param contentTypeID : Identifiant du type de contenu "selected"
* @param fieldName : nom du champ "relation"
*/
function getContentTypeList(fieldName, contentTypeID) {
	var _xmlHttp = null; //l'objet xmlHttpRequest utilisé pour contacter le serveur
	if(_xmlHttp&&_xmlHttp.readyState!=0){
		_xmlHttp.abort();
	}
	_xmlHttp=getXMLHTTP();
	if(_xmlHttp && fieldName){
		//appel à l'url distante
		//_xmlHttp.setRequestHeader("Content-type", "charset=iso-8859-1");
		_xmlHttp.open("POST","/static/admin/ajaxGetContentTypeList.jsp?contentTypeID="+contentTypeID+"&fieldName="+fieldName,true);		
		_xmlHttp.onreadystatechange=function() {			
			if(_xmlHttp.readyState==4&&_xmlHttp.status == 200) {
				document.getElementById("ctid-" + fieldName).innerHTML = _xmlHttp.responseText;
			}
		};
		// envoi de la requete
		_xmlHttp.send(null);		
	}
}

/**
* Récupère la liste des nodes d'un type de contenu
*
* @param contentTypeID : Identifiant du type de contenu "selected"
* @param nodeName : node "selected"
* @param fieldName : nom du champ "relation"
*/
function getContentTypeNodes(fieldName, contentTypeID, nodeName) {
	var _xmlHttp = null; //l'objet xmlHttpRequest utilisé pour contacter le serveur
	if(_xmlHttp&&_xmlHttp.readyState!=0){
		_xmlHttp.abort();
	}
	_xmlHttp=getXMLHTTP();
	if(_xmlHttp && fieldName && contentTypeID){
		//appel à l'url distante
		//_xmlHttp.setRequestHeader("Content-type", "charset=iso-8859-1");
		_xmlHttp.open("POST","/static/admin/ajaxGetContentTypeNodes.jsp?contentTypeID="+contentTypeID+"&fieldName="+fieldName+"&nodeName="+nodeName,true);		
		_xmlHttp.onreadystatechange=function() {			
			if(_xmlHttp.readyState==4&&_xmlHttp.status == 200) {
				document.getElementById("fname-" + fieldName).innerHTML = _xmlHttp.responseText;
			}
		};
		// envoi de la requete
		_xmlHttp.send(null);		
	}
}

/**
* Récupère la liste des valeur du node d'un type de contenu
*
* @param contentTypeID : Identifiant du type de contenu
* @param nodeName : node
* @param fieldName : nom du champ "relation"
* @param value : valeur "selected" du champ
*/
function getContentTypeNodeValues(fieldName, contentTypeID, nodeName, value) {
	var _xmlHttp = null; //l'objet xmlHttpRequest utilisé pour contacter le serveur
	if(_xmlHttp&&_xmlHttp.readyState!=0){
		_xmlHttp.abort();
	}
	_xmlHttp=getXMLHTTP();
	if(_xmlHttp && fieldName && contentTypeID && nodeName){
		//appel à l'url distante
		//_xmlHttp.setRequestHeader("Content-type", "charset=iso-8859-1");
		_xmlHttp.open("POST","/static/admin/ajaxGetContentTypeNodeValues.jsp?contentTypeID="+contentTypeID+"&fieldName="+fieldName+"&nodeName="+nodeName+"&value="+value,true);		
		_xmlHttp.onreadystatechange=function() {			
			if(_xmlHttp.readyState==4&&_xmlHttp.status == 200) {
				document.getElementById(fieldName).innerHTML = _xmlHttp.responseText;
			}
		};
		// envoi de la requete
		_xmlHttp.send(null);		
	}
}

