var http_request = false;
var url_for_google="";

function makePOSTRequest(url, parameters) {
	if (url_for_google != '') 	url_for_google = url + '?'+url_for_google;
	
 http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) {
		// set type accordingly to anticipated content type
		//http_request.overrideMimeType('text/xml');
		http_request.overrideMimeType('text/html');
	 }
  } 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) {
	 debug('Impossible de créer une instance XMLHTTP.');
	 return false;
  }  
  
  http_request.onreadystatechange = alertContents;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}

function alertContents() {
  if (http_request.readyState == 4) {
	 if (http_request.status == 200) {			 
		result = http_request.responseText;
			if( window.urchinTracker) {
			_uacct = "UA-1221141-1";
			debug('urchin : ' + url_for_google);
			 	if (url_for_google != '') urchinTracker(url_for_google); 
			}
		
		 if (!div_target) debug(result);
		 else {				 
		 div_target.innerHTML = result;
		 
		 	if (window.ecran_courant_JS()) ecran_courant_JS(); //cf millemoshop.js	 
		 }
	} else {
		debug('Problème de connexion au serveur.');
	 }
	 
	 if (document.getElementById && window.replace_comboboxes) {
	 eval(replace_comboboxes('commande'));
	 } 
  }
} 

var dbg_elts = new Array('pays','matieres','saved_pays','saved_matieres');

function ajax_submit(obj, div) {
var action=arguments[2]||obj.action||"";
var poststr='';	

	if (div&&div.getAttribute) {
	div_target=div;
	}
	else debug('ajax_submit@ajax_submit.js : attend un objet en 2e argument');
	
	if (globalPost!=''){ 
	//évite de refaire x fois le traitement si un submit entraine x refresh de divs
	//globalPost est initialisée dans millemoshop.js
	poststr	= globalPost;
	url_for_google='';
	}else{
		for (var i=0; i<obj.elements.length; i++) {
			if (typeof(obj.elements[i])!='undefined') {
				if (in_array(obj.elements[i].name, dbg_elts) ) debug('traitement de ' + obj.elements[i].name);
			
			var value = form_element_getvalue(obj.elements[i]);
			
				if (value=='' && in_array(obj.elements[i].name, dbg_elts)) debug(obj.elements[i].name+'.value vide');
			
				if (value!=''&&obj.elements[i].name.indexOf('document.combobox')<0) {
				//on ne poste pas les champs vides, les select dont le selectedIndex=0
				//et les champs texte servant à l'API de skinnage des combobox (cf combobox.js)
				poststr += (poststr.length>0?'&':'') + obj.elements[i].name + '=' + encodeURIComponent(value);
				}
				
				//creation url pour statistiques google
				if (obj.elements[i].name == 'ecran') {
				url_for_google = 'ecran' + '=' + encodeURIComponent(value);
				} 
			}
		}
	globalPost=poststr;
	}
	
	debug(div.getAttribute('id')+' : '+poststr);
  makePOSTRequest(action, poststr);
}

/////////////////////////////////////////////
// function form_element_getvalue(obj)
// Cette fonction gère toutes les valeurs
// postées par le formulaire de commande
////////////////////////////////////////////

function form_element_getvalue(obj) {
var alt=arguments[1]||"";	
var ret='';		

	if (obj.type.indexOf('radio')>=0) {
		if (obj.checked) {
			if (obj.value.indexOf('|')>=0) { var tmp=obj.value.split('|'); ret=tmp[0]; }
			else ret=obj.value;	
		}
	} else if (obj.type.indexOf('check')>=0) {
			if (obj.checked && alt.indexOf(obj.value)<0) {
			ret = alt=='-'?obj.value:alt+' '+obj.value;
			}
	}
	else if (obj.type.indexOf('select')>=0) {
		if (obj.selectedIndex>0) ret=obj.options[obj.selectedIndex].value;
		//else debug(obj.name+' ignoré : selectedIndex=0');
	}
	else if (obj.type.indexOf('textarea')>=0) {
	ret=obj.value; 
	}else{
	ret=obj.value;
	}	
	
return empty(ret)?alt:ret;
}

var div_target=null;