function getXhr(){
	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) {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	} else { // XMLHttpRequest non supporté par le navigateur 
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
		xhr = false; 
	}
	return xhr;
}

// Renvoie le texte de l'objet ActiveXObject le plus récent depuis une liste
var pickRecentProgID = function (idList) {
	// found progID flag
	var bFound = false;
	for(var i=0; i < idList.length && !bFound; i++) {
		try {
			var oDoc = new ActiveXObject(idList[i]);
			o2Store = idList[i];
			bFound = true;
		}
		catch (objException) {
			// trap; try next progID
		};
	};
	if (!bFound) {
		throw ("Aucun ActiveXObject n'est valide sur votre ordinateur, pensez à mettre à jour votre navigateur");
	}
	idList = null;
	return o2Store;
}

// Retourne un nouvel objet XmlHttpRequest
var GetXmlHttpRequest_AXO=null
var GetXmlHttpRequest=function () {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest()
	} else if (window.ActiveXObject) {
		if (!GetXmlHttpRequest_AXO) {
			GetXmlHttpRequest_AXO=pickRecentProgID(["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]);
		}
		return new ActiveXObject(GetXmlHttpRequest_AXO)
	}
	return false;
}

// Compatibilité avec le tuto
agetXhr=GetXmlHttpRequest;

function check_qte(event) {
	if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode > 31) { event.returnValue = false; }
	else if ((event.which < 48 || event.which > 57) && event.which > 31) { return false; }
}

function check_mail(checkStr) {
	if (checkStr == "") { return false; }
	var checkEmail = "@.";
	var EmailValid = false;
	var EmailAt = false;
	var EmailPeriod = false;
	for (i = 0;  i < checkStr.length;  i++) {
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkEmail.length;  j++) {
			if (ch == checkEmail.charAt(j) && ch == "@") { EmailAt = true; }
			if (ch == checkEmail.charAt(j) && ch == ".") { EmailPeriod = true; }
			if (EmailAt && EmailPeriod) { break; }
			if (j == checkEmail.length) { break; }
		}
		if (EmailAt && EmailPeriod) {
			EmailValid = true
			break;
		}
	}
	return EmailValid;
}

function verif_tel(num_tel) {
	if (num_tel == "") { return (true); }
	var regex = new RegExp(/^(01|02|03|04|05|06|08|09)[0-9]{8}/gi);
	return (regex.test(num_tel));
}

function submit_commander(form) {
	if (form.nom.value == "") {
		alert("Veuillez compléter votre nom");
		form.nom.focus();		
	} else if (form.prenom.value == "") {
		alert("Veuillez compléter votre prénom");
		form.prenom.focus();
	} else if (form.adresse.value == "") {
		alert("Veuillez compléter votre adresse");
		form.adresse.focus();
	} else if (form.cp.value == "") {
		alert("Veuillez compléter votre code postal");
		form.cp.focus();
	} else if (form.ville.value == "") {
		alert("Veuillez compléter votre ville");
		form.ville.focus();
	} else if (form.telephone.value == "" || !verif_tel(form.telephone.value)) {
		alert("Veuillez compléter/rectifier votre numéro de téléphone");
		form.telephone.focus();
	} else if (!check_mail(form.email.value)) {
		alert("L'email est incorrect ou vide");
		form.email.focus();
	} else {
		var nom = form.nom.value;
		var prenom = form.prenom.value;
		var adresse = form.adresse.value;
		var adresse2 = form.adresse2.value;
		var cp = form.cp.value;
		var ville = form.ville.value;
		var telephone = form.telephone.value;
		var email = form.email.value;
		var commentaire = form.commentaire.value;
		var mode_reg = form.mode_reg.value;
		
		var xhr = getXhr();
		xhr.onreadystatechange = function() {
			try {
				if (xhr.readyState == 4 && xhr.status == 200) {
					contenu_final_commande_text = xhr.responseText;
					if (session(contenu_final_commande_text)) {
						if (contenu_final_commande_text == "500") {
							afficher_info("Votre panier est vide");
							afficher_liste();
						} else {
							if (mode_reg == "cb") {
								document.getElementById('contenu').innerHTML = contenu_final_commande_text;
								document.getElementById('head_title').innerHTML = "Le paiement...";
								var head_info = "";
								document.getElementById('head_info').innerHTML = head_info;
							} else {
								afficher_info(contenu_final_commande_text);
								maj_panier();
								afficher_liste();
							}
						}
					}
				}
			} catch(e) {}
		}
		xhr.open("POST","scripts/final_commander.php",true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send('nom='+nom+'&prenom='+prenom+'&adresse='+adresse+'&adresse2='+adresse2+'&cp='+cp+'&ville='+ville+'&telephone='+telephone+'&email='+email+'&commentaire='+commentaire+'&mode_reg='+mode_reg+'&cmd_submit=1');
	}
	return (false);
}

function upper(obj) {
	obj.value=obj.value.toUpperCase();
}

function commander() {
	var xhr = getXhr();
	xhr.onreadystatechange = function() {
		try {
			if (xhr.readyState == 4 && xhr.status == 200) {
				contenu_commander_text = xhr.responseText;
				if (session(contenu_commander_text)) {
					if (contenu_commander_text == "500") {
						afficher_info("Votre panier est vide");
						afficher_liste();
					} else {
						document.getElementById('contenu').innerHTML = contenu_commander_text;
						document.getElementById('head_title').innerHTML = "Votre commande...";
						var head_info = "";
						document.getElementById('head_info').innerHTML = head_info;
					}
				}
			}
		} catch(e) {}
	}
	xhr.open("POST","scripts/commander.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send('');
}

function session(etat) {
	if (etat == "session_expire") {
		afficher_info("Votre session a expir&eacute;");
		afficher_liste();
		maj_panier();
		return false;
	} else {
		return true;
	}
}

function afficher_liste() {
	var xhr = getXhr();
	xhr.onreadystatechange = function() {
		try {
			if (xhr.readyState == 4 && xhr.status == 200) {
				contenu_afficher_liste_text = xhr.responseText;
				if (session(contenu_afficher_liste_text)) {
					document.getElementById('bloc_panier').style.display = "";
					document.getElementById('contenu').innerHTML = contenu_afficher_liste_text;
					document.getElementById('head_title').innerHTML = "Les portraits...";
					var head_info = "Choisissez le type de portrait que vous voulez :";
					document.getElementById('head_info').innerHTML = head_info;
				}
			}
		} catch(e) {}
	}
	xhr.open("POST","scripts/voir_liste_articles.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send('');
}

// Détermine si le panier est vide ou non (synchrone)
function panier_vide() {
	var xhr = getXhr();
	xhr.open("POST","scripts/voir_panier.php",false);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send('');
	panier_vide_text = xhr.responseText;
	if (panier_vide_text == "500") { return (true); }
	return (false);
}

function supprimer_article(idarticle) {
	if (confirm("Êtes-vous sûr de vouloir supprimer cet article ?")) {
		var xhr = getXhr();
		xhr.onreadystatechange = function() {
			try {
				if (xhr.readyState == 4 && xhr.status == 200) {
					supprimer_article_text = xhr.responseText;
					if (session(supprimer_article_text)) {
						maj_panier();
						if (!panier_vide()) {
							afficher_panier();
							afficher_info(supprimer_article_text);
						} else {
							// Panier vide
							afficher_info("Votre panier est vide");
							afficher_liste();
						}
					}
				}
			} catch(e) {}
		}
		xhr.open("POST","scripts/supprimer_article.php",true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send('id='+idarticle);
	}
}

function afficher_panier() {
	var xhr = getXhr();
	xhr.onreadystatechange = function() {
		try {
			if (xhr.readyState == 4 && xhr.status == 200) {
				afficher_panier_text = xhr.responseText;
				if (session(afficher_panier_text)) {
					if (afficher_panier_text == 500) {
						afficher_info("Votre panier est vide");
						afficher_liste();
					} else {
						document.getElementById('bloc_panier').style.display = "none";
						document.getElementById('contenu').innerHTML = afficher_panier_text;
						document.getElementById('head_title').innerHTML = "Votre panier...";
						var head_info = "Veuillez vérifier si le contenu de votre panier est correct avant de commander<br/><u>N'oubliez pas de choisir vos photos !</u><br/><br/>";
						document.getElementById('head_info').innerHTML = head_info;
					}
				}
			}
		} catch(e) {}
	}
	xhr.open("POST","scripts/voir_panier.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send('');
}

var num_boxinfo = 0;

function afficher_info(contenu_boxinfo) {
	var nouveauDiv = document.createElement('div');
	nouveauDiv.id = 'boxinfo_'+num_boxinfo;
	nouveauDiv.innerHTML = contenu_boxinfo;
	nouveauDiv.style.visibility = "visible";
	nouveauDiv.className = "infobox";
	nouveauDiv.onclick = function() { this.style.visibility = "hidden"; };
	setTimeout("cacher_info('boxinfo_"+num_boxinfo+"')", 2500);
	document.body.appendChild(nouveauDiv);
	num_boxinfo++;
}

function cacher_info(box_id) {
	element = document.getElementById(box_id);
	if (element) {
		element.style.visibility = "hidden";
		document.body.removeChild(element);
	}
}

function maj_total_panier() {
	var xhr = getXhr();
	xhr.onreadystatechange = function() {
		try {
			if (xhr.readyState == 4 && xhr.status == 200) {
				contenu_total_panier_text = xhr.responseText;
				if (session(contenu_total_panier_text)) {
					if (contenu_total_panier_text != 0) {
						document.getElementById('num_total').innerHTML = contenu_total_panier_text;
						document.getElementById('total_panier').style.display = 'block';
					} else {
						document.getElementById('num_total').innerHTML = "0";
						document.getElementById('total_panier').style.display = '';
					}
				}
			}
		} catch(e) {}
	}
	xhr.open("POST","scripts/total_panier.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send('');
}

function maj_panier() {
	var xhr = getXhr();
	xhr.onreadystatechange = function() {
		try {
			if (xhr.readyState == 4 && xhr.status == 200) {
				contenu_panier_text = xhr.responseText;
				if (session(contenu_panier_text)) {
					document.getElementById('panier').innerHTML = contenu_panier_text;
					maj_total_panier();
				}
			}
		} catch(e) {}
	}
	xhr.open("POST","scripts/maj_panier.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send('');
}

function ajouter(idproduit) {
	var xhr = getXhr();
	xhr.onreadystatechange = function() {
		try {
			if (xhr.readyState == 4 && xhr.status == 200) {
				contenu_ajouter_text = xhr.responseText;
				if (session(contenu_ajouter_text)) {
					maj_panier();
					afficher_info(contenu_ajouter_text);
				}
			}
		} catch(e) {}
	}
	xhr.open("POST","scripts/ajouter.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send('id='+idproduit+'&qte=1');
}

function vider_panier() {
	if (confirm("Êtes-vous sûr de vouloir vider le panier ?")) {
		var xhr = getXhr();
		xhr.onreadystatechange = function() {
			try {
				if (xhr.readyState == 4 && xhr.status == 200) {
					vider_panier_text = xhr.responseText;
					if (session(vider_panier_text)) {
						afficher_info(vider_panier_text);
						afficher_liste();
						maj_panier();
					}
				}
			} catch(e) {}
		}
		xhr.open("POST","scripts/vider_panier.php",true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send('');
	}
}

function choisir_photos(idproduit) {
	var xhr = getXhr();
	xhr.onreadystatechange = function() {
		try {
			if (xhr.readyState == 4 && xhr.status == 200) {
				choisir_photos_text = xhr.responseText;
				if (session(choisir_photos_text)) {
					document.getElementById('contenu').innerHTML = choisir_photos_text;
					document.getElementById('head_title').innerHTML = "Vos photos...";
					var head_info = "";
					document.getElementById('head_info').innerHTML = head_info;
				}
			}
		} catch(e) {}
	}
	xhr.open("POST","scripts/choix_photos.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send('id='+idproduit);
}

function maj_liste_photos(idproduit) {
	var xhr = getXhr();
	xhr.onreadystatechange = function() {
		try {
			if (xhr.readyState == 4 && xhr.status == 200) {
				maj_liste_photos_text = xhr.responseText;
				if (session(maj_liste_photos_text)) {
					document.getElementById('liste_photos').innerHTML = maj_liste_photos_text;
				}
			}
		} catch(e) {}
	}
	xhr.open("POST","scripts/maj_liste_photos.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send('id='+idproduit);
}

/* File upload */

/**
*
*  AJAX IFRAME METHOD (AIM)
*  http://www.webtoolkit.info/
*
**/

AIM = {

	frame : function(c) {
		var n = 'f' + Math.floor(Math.random() * 99999);
		var d = document.createElement('DIV');
		d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="AIM.loaded(\''+n+'\')"></iframe>';
		document.body.appendChild(d);
		var i = document.getElementById(n);
		if (c && typeof(c.onComplete) == 'function') {
			i.onComplete = c.onComplete;
		}
		return n;
	},

	form : function(f, name) {
		f.setAttribute('target', name);
	},

	submit : function(f, c) {
		AIM.form(f, AIM.frame(c));
		if (c && typeof(c.onStart) == 'function') {
			return c.onStart();
		} else {
			return true;
		}
	},

	loaded : function(id) {
		var i = document.getElementById(id);
		if (i.contentDocument) {
			var d = i.contentDocument;
		} else if (i.contentWindow) {
			var d = i.contentWindow.document;
		} else {
			var d = window.frames[id].document;
		}
		if (d.location.href == "about:blank") {
			return;
		}
		if (typeof(i.onComplete) == 'function') {
			i.onComplete(d.body.innerHTML);
		}
	}
}

function startCallback() {  
	fichier = document.getElementById("file_name").value;
	if (fichier != '') {
		fichier = fichier.split(".");
		ext = fichier[fichier.length - 1].toLowerCase();
		// jpeg, jpg, gif, png, bmp, tiff
		if (ext == "jpeg" || ext == "jpg" || ext == "gif" || ext == "png" || ext == "bmp" || ext == "tiff") { return true; }
		afficher_info("Vous devez envoyer un fichier de type image");
	} else {
		afficher_info("Vous devez dans un premier temps spéficier un fichier");
	}
	return false;
}   
function completeCallback(response) {  
	// Vérif de la session
	if (session(response)) {
		if (response == "200") {
			// La photo est bien uploadé
			afficher_info("La photo a bien été uploadée");
			// On met à jour la liste des photos
			maj_liste_photos(document.getElementById("idproduit").value);
		} else {
			// Erreur..
			afficher_info(response);
			//document.getElementById('r').innerHTML = response; 
		}
	}
}

// Supprimer une photo
function supprimer_photo(idphoto,idarticle) {
	if (confirm("Êtes-vous sûr de vouloir supprimer cette photo ?")) {
		var xhr = getXhr();
		xhr.onreadystatechange = function() {
			try {
				if (xhr.readyState == 4 && xhr.status == 200) {
					supprimer_photo_text = xhr.responseText;
					if (session(supprimer_photo_text)) {
						if (panier_vide()) {
							// Panier vide
							afficher_info("Votre panier est vide");
							afficher_liste();
						} else {
							maj_liste_photos(idarticle);
							afficher_info(supprimer_photo_text);
						}
					}
				}
			} catch(e) {}
		}
		xhr.open("POST","scripts/supprimer_photo.php",true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send('id='+idphoto);
	}
	return false;
}
