function q(url) {
	return (url.indexOf('?') != -1) ? url + '&' : url + '?';
}
function getAjax(url,divi,type,descr,descr2,descr3,descr4,special){
	var ajaxRequest;  // The variable that makes Ajax possible!
	
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
		}
	}
	// Create a function that will receive data sent from the server
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			var ajaxDisplay = document.getElementById(divi);
			if (ajaxDisplay && ajaxDisplay.innerHTML) { 
            	ajaxDisplay.innerHTML = ajaxRequest.responseText;
			}
		}
	}
	if (type == 'select') {
		box = document.getElementById(descr);
		var cor = box.options[box.selectedIndex].value;
		url = q(url)  + 'select=' + escape(cor) + '&';
		if ((descr2 != '')&&(descr3=='')&&(descr4=='')) {
			box2 = document.getElementById(descr2);
			var cor2 = box2.options[box2.selectedIndex].value;
			url = q(url)  + 'select=' + escape(cor) + '&select2=' + escape(cor2) + '&';
		} else if ((descr2 != '')&&(descr3!='')&&(descr4=='')) {
			box2 = document.getElementById(descr2);
			box3 = document.getElementById(descr3);
			var cor2 = box2.options[box2.selectedIndex].value;
			var cor3 = box3.options[box3.selectedIndex].value;
			url = q(url)  + 'select=' + escape(cor) + '&select2=' + escape(cor2) + '&select3=' + escape(cor3) + '&';
		} else if ((descr2 != '')&&(descr3!='')&&(descr4!='')) {
			box2 = document.getElementById(descr2);
			box3 = document.getElementById(descr3);
			box4 = document.getElementById(descr4);
			var cor2 = box2.options[box2.selectedIndex].value;
			var cor3 = box3.options[box3.selectedIndex].value;
			var cor4 = box4.options[box4.selectedIndex].value;
			url = q(url)  + 'select=' + escape(cor) + '&select2=' + escape(cor2) + '&select3=' + escape(cor3) + '&select4=' + escape(cor4) + '&';
		}
	}
	if (type == 'text') {
		box = document.getElementById(descr);
		var cor = box.value;
		url = q(url)  + 'text=' + escape(cor) + '&';
		if ((descr2 != '')&&(descr3=='')&&(descr4=='')) {
			box2 = document.getElementById(descr2);
			var cor2 = box2.value;
			url = q(url)  + 'text=' + escape(cor) + '&text2=' + escape(cor2) + '&';
		} else if ((descr2 != '')&&(descr3!='')&&(descr4=='')) {
			box2 = document.getElementById(descr2);
			box3 = document.getElementById(descr3);
			var cor2 = box2.value;
			var cor3 = box3.value;
			url = q(url)  + 'text=' + escape(cor) + '&text2=' + escape(cor2) + '&text3=' + escape(cor3) + '&';
		} 		
	}
	if (type == 'exact') {
			url = q(url) + 'exact=' + escape(descr);
	}
	if (type == '') {
			url = q(url);
	}
	if (special!='') {
		url = q(url) + 'special=' + escape(special) + '&';
	}
	var queryString = url + "sid=" + Math.random();
	ajaxRequest.open("GET", queryString, true);
	ajaxRequest.send(null); 
}



function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}

function recalculateAchat(id) {
	var achatArray = new Array();
	achatArray['REC1'] = 5;
	achatArray['REC2'] = 10;
	box = document.getElementById(id);
	var discount = box.value;
	for(remise in achatArray){
		if (remise == discount) {
			var value = achatArray[remise];
			getAjax('achat.php','achat','exact',value,'','','');
			break;
		}
	}
}

var address_nom_2 = "";
var address_prenom_2 = "";
var address_societe_2 = "";
var address_address1_2 = "";
var address_address2_2 = "";
var address_address3_2 = "";
var address_cp_2 = "";
var address_ville_2 = "";
var address_porte_2 = "";
var address_telephone1_2 = "";

function InitSaveVariables(form) {
	address_nom_2 = document.getElementById('address_nom_2').value;
	address_prenom_2 = document.getElementById('address_prenom_2').value;
	address_societe_2 = document.getElementById('address_societe_2').value;
	address_address1_2 = document.getElementById('address_address1_2').value;
	address_address2_2 = document.getElementById('address_address2_2').value;
	address_address3_2 = document.getElementById('address_address3_2').value;
	address_cp_2 = document.getElementById('address_cp_2').value;
	address_ville_2 = document.getElementById('address_ville_2').value;
	address_porte_2 = document.getElementById('address_porte_2').value;
	address_telephone1_2 = document.getElementById('address_telephone1_2').value;
}

function sameAddress(form) {
	if (document.getElementById('copy').checked) {
	InitSaveVariables(form);
		document.getElementById('address_nom_2').value = document.getElementById('address_nom_1').value;
		document.getElementById('address_prenom_2').value = document.getElementById('address_prenom_1').value;
		document.getElementById('address_societe_2').value = document.getElementById('address_societe_1').value;
		document.getElementById('address_address1_2').value = document.getElementById('address_address1_1').value;
		document.getElementById('address_address2_2').value = document.getElementById('address_address2_1').value;
		document.getElementById('address_address3_2').value = document.getElementById('address_address3_1').value;
		document.getElementById('address_cp_2').value = document.getElementById('address_cp_1').value;
		document.getElementById('address_ville_2').value = document.getElementById('address_ville_1').value;
		document.getElementById('address_porte_2').value = document.getElementById('address_porte_1').value;
		document.getElementById('address_telephone1_2').value = document.getElementById('address_telephone1_1').value;
	} else {
		document.getElementById('address_nom_2').value = address_nom_2;
		document.getElementById('address_prenom_2').value = address_prenom_2;
		document.getElementById('address_societe_2').value = address_societe_2;
		document.getElementById('address_address1_2').value = address_address1_2;
		document.getElementById('address_address2_2').value = address_address2_2;
		document.getElementById('address_address3_2').value = address_address3_2;
		document.getElementById('address_cp_2').value = address_cp_2;
		document.getElementById('address_cp_2').value = address_cp_2;
		document.getElementById('address_ville_2').value = address_ville_2;
		document.getElementById('address_porte_2').value = address_porte_2;
		document.getElementById('address_telephone1_2').value = address_telephone1_2;
	}
}

function goto(page) {
	if(page) {
		location.href = page;
	}
}

function multiSubmit(form,url) {
	document.getElementById(form).action=url;
}

function ifagree(id,id2,formId,url) {
	if (document.getElementById(id2).value.length == 0) {
		alert('Où avez-vous connu Chocolat de Mariage ?');
		setTimeout("document.getElementById(id2).focus()",250); 
		return false;
	} else if (document.getElementById(id).checked == false) {
		alert('Veuillez accepter les Conditions Générales de Vente.');
		return false;
	} else {
		if(url) {
			document.getElementById(formId).action=url;
			document.getElementById(formId).submit();
			//location.href = url;
		} else {
			return true;
		}
	}
}
/*
function ifempty(id){
	if(document.getElementById(id).value.length == 0){
		alert('Où avez-vous connu Chocolat de Mariage ?');
		elem.focus(); // set the focus to this input
		return true;
	}
	return false;
}*/



function videPanier() {
var agree=confirm("Voulez-vous vraiment vider le panier?");
	if (agree) {
		location.href='emptyCarte.php';
	} else {
		return false;
	}
}

	function lookup_list(arr, map) {
		var a = [];
		for (var i in map) {
			if (typeof arr[i] != 'undefined') {
				var temp = arr[i].match(/[^\~]+$/);
				a.push(map[i] + '~' + temp);
			}
		}
		return a;
	}


	function subChoc(qnty,totale,prix,chocArray,count,action,id,ajaxArr,editArr) {
		//alert(dump(ajaxArr)); // problem is here, I'm always getting the same array as it was at the beginning.
		chocobox = document.getElementById(qnty);
		chocoPrice = document.getElementById(totale);
		hidvalue = document.getElementById('quote_values');
		if (chocobox && chocobox.value && chocoPrice && chocoPrice.innerHTML && action) {
			if ( (action == 'plus') || ((action == 'minus') && (chocobox.value != 0)) || (action == '') ) {
					if (action == 'plus') {
						chocobox.value = Number(chocobox.value)+1;
					} else if (action == 'minus') {
						chocobox.value = Number(chocobox.value)-1;
					} else if (action == '') {
						chocobox.value = Number(chocobox.value);
					} 					
				
				//alert(editArr);
				if (editArr) {
					var chArr = editArr.split("~");
					ajaxArr = lookup_list(ajaxArr, chArr);
					//alert(dump(ajaxArr));
				}
				ajaxArr[count] = (Number(id) + "~" + chocobox.value);					
				chocoPrice.innerHTML = Number(prix) * Number(chocobox.value);	
				chocArray[count] = chocobox.value + "~" + chocoPrice.innerHTML;
				var total = 0; var price = 0; var i=0;
				for(i=0;i<chocArray.length;i++) {
					var splitMe = chocArray[i].split("~");
					if (Number(splitMe[0]) == 0) {
						price = 0;
					} else {
						price = Number(splitMe[1]);
					}
					total = Number(total) + Number(price);
				}					
				chocoTotal = document.getElementById('gr_totale');
				chocoTotal.innerHTML = total;
				//alert(dump(ajaxArr));
				var strValue = ajaxArr.join(";");				
				hidvalue.value = strValue;				
			} else {
				chocobox.value = chocobox.value;
			}
		}
	}
	
	function onloadEvents(cid,countNo,cprix){
		var inter = document.getElementById('chocQnty_'+cid);
        if (inter && inter.value) {
            var cqnty = inter.value;
        } else {
            var cqnty = 0;
        }                  
        chocArray[countNo] = cqnty+ "~" + cqnty*cprix;
        ajaxArr[countNo] = cid + "~" + cqnty;
		/*alert(dump(ajaxArr));*/
		/*alert(dump(chocArray));*/
        subChoc('chocQnty_'+cid,'totale_'+cid,cprix,chocArray,countNo,"",cid,ajaxArr);
	}	
	
	function resetArray() {
		chocArray.length = 0;
	}
	
	function checkDate(val) {
		var datex=getDateFromFormat(val,'dd/MM/yyyy');
		if (datex==0) { 
			alert('Merci d’écrire votre date au format JJ/MM/AAAA'); 
			setTimeout("document.form1.date.focus()",250); 
			return false; 
		}
		return true;
	}
	
	function _isInteger(val) {
		var digits="1234567890";
		for (var i=0; i < val.length; i++) {
			if (digits.indexOf(val.charAt(i))==-1) { return false; }
			}
		return true;
		}
	function _getInt(str,i,minlength,maxlength) {
		for (var x=maxlength; x>=minlength; x--) {
			var token=str.substring(i,i+x);
			if (token.length < minlength) { return null; }
			if (_isInteger(token)) { return token; }
			}
		return null;
	}

	
	function getDateFromFormat(val,format) {
	val=val+"";
	format=format+"";
	var i_val=0;
	var i_format=0;
	var c="";
	var token="";
	var token2="";
	var x,y;
	var now=new Date();
	var year=now.getYear();
	var month=now.getMonth()+1;
	var date=1;
	var hh=now.getHours();
	var mm=now.getMinutes();
	var ss=now.getSeconds();
	var ampm="";
	
	while (i_format < format.length) {
		// Get next token from format string
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
			}
		// Extract contents of value based on format token
		if (token=="yyyy" || token=="yy" || token=="y") {
			if (token=="yyyy") { x=4;y=4; }
			if (token=="yy")   { x=2;y=2; }
			if (token=="y")    { x=2;y=4; }
			year=_getInt(val,i_val,x,y);
			if (year==null) { return 0; }
			i_val += year.length;
			if (year.length==2) {
				if (year > 70) { year=1900+(year-0); }
				else { year=2000+(year-0); }
				}
			}
		else if (token=="MMM"||token=="NNN"){
			month=0;
			for (var i=0; i<MONTH_NAMES.length; i++) {
				var month_name=MONTH_NAMES[i];
				if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
					if (token=="MMM"||(token=="NNN"&&i>11)) {
						month=i+1;
						if (month>12) { month -= 12; }
						i_val += month_name.length;
						break;
						}
					}
				}
			if ((month < 1)||(month>12)){return 0;}
			}
		else if (token=="EE"||token=="E"){
			for (var i=0; i<DAY_NAMES.length; i++) {
				var day_name=DAY_NAMES[i];
				if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {
					i_val += day_name.length;
					break;
					}
				}
			}
		else if (token=="MM"||token=="M") {
			month=_getInt(val,i_val,token.length,2);
			if(month==null||(month<1)||(month>12)){return 0;}
			i_val+=month.length;}
		else if (token=="dd"||token=="d") {
			date=_getInt(val,i_val,token.length,2);
			if(date==null||(date<1)||(date>31)){return 0;}
			i_val+=date.length;}
		else if (token=="hh"||token=="h") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>12)){return 0;}
			i_val+=hh.length;}
		else if (token=="HH"||token=="H") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>23)){return 0;}
			i_val+=hh.length;}
		else if (token=="KK"||token=="K") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>11)){return 0;}
			i_val+=hh.length;}
		else if (token=="kk"||token=="k") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>24)){return 0;}
			i_val+=hh.length;hh--;}
		else if (token=="mm"||token=="m") {
			mm=_getInt(val,i_val,token.length,2);
			if(mm==null||(mm<0)||(mm>59)){return 0;}
			i_val+=mm.length;}
		else if (token=="ss"||token=="s") {
			ss=_getInt(val,i_val,token.length,2);
			if(ss==null||(ss<0)||(ss>59)){return 0;}
			i_val+=ss.length;}
		else if (token=="a") {
			if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}
			else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}
			else {return 0;}
			i_val+=2;}
		else {
			if (val.substring(i_val,i_val+token.length)!=token) {return 0;}
			else {i_val+=token.length;}
			}
		}
	// If there are any trailing characters left in the value, it doesn't match
	if (i_val != val.length) { return 0; }
	// Is date valid for month?
	if (month==2) {
		// Check for leap year
		if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
			if (date > 29){ return 0; }
			}
		else { if (date > 28) { return 0; } }
		}
	if ((month==4)||(month==6)||(month==9)||(month==11)) {
		if (date > 30) { return 0; }
		}
	// Correct hours value
	if (hh<12 && ampm=="PM") { hh=hh-0+12; }
	else if (hh>11 && ampm=="AM") { hh-=12; }
	var newdate=new Date(year,month-1,date,hh,mm,ss);
	return newdate.getTime();
	}


	
	/*Array.prototype.remove = function(from, to) {
	  var rest = this.slice((to || from) + 1 || this.length);
	  this.length = from < 0 ? this.length + from : from;
	  return this.push.apply(this, rest);
	};*/
	// Remove the second item from the array
	//array.remove(1);
	// Remove the second-to-last item from the array
	//array.remove(-2);
	// Remove the second and third items from the array
	//array.remove(1,2);
	// Remove the last and second-to-last items from the array
	//array.remove(-2,-1);
	
	/*Array.prototype.removeValue=function(s){
	  for(i=0;i<this .length;i++){
		if(s==this[i]) this.splice(i, 1);
	  }
	}*/
	/*var a=['one','two','three','four'];
	a.removeValue('three');*/




	
