function cart(type, id, name, prix, tps, tvq)
{		
	var valData = '';
	var qte = '';
	var refreshDo = false;
	if (type == 'ajout' || type == 'modif')
		qte = document.getElementById('quantite' + id).value;
	switch (type)
	{
		case "ajout":
			valData = 'action=ajout&id=' + id + '&nom=' + name + '&prix=' + prix + '&qte=' + qte + '&tps=' + tps + '&tvq=' + tvq;
			break;
		case "suppression":
			valData = 'action=suppression&id=' + id;
			refreshDo = true;
			break;
		case "modif":
			valData = 'action=modif&id=' + id + '&qte=' + qte;
			refreshDo = true;
			break;
		case "supprimePanier":
			valData = 'action=supprimePanier';
			refreshDo = true;
			break;	
		default:
			break;
	}
	
	document.getElementsByTagName('body')[0].style.cursor = 'wait';	
	$.ajax({
		type: "POST",
		url: "admin/script/function_panier.php",
		data: valData,	
		success: function(msg)
		{
			if (msg == '')
			{			
				alert('Une erreur est survenue, veuillez essayer de nouveau.');
				document.getElementsByTagName('body')[0].style.cursor = 'default';
			}
			else
			{
				newMsg = msg.split(';');
				//document.getElementById('nbArticle').innerHTML = newMsg[0] + ' items dans ' + newMsg[1] + ' articles';
				if (newMsg[0] > 0)
					document.getElementById('nbArticle').innerHTML = '(' + newMsg[0] + ' articles)';
				else
					document.getElementById('nbArticle').innerHTML = '(0 articles)';					
			}
		}	
	});	


	if (refreshDo)
	{
		setTimeout(function(){
			refreshPanier();
		},500);	
	}
	else
	{
		document.getElementsByTagName('body')[0].style.cursor = 'default';
	}
		
}

function refreshPanier()
{
	$.ajax({
		type: "POST",
		url: "admin/script/function_panier.php",
		data: 'action=afficherPanier',
		
		success: function(msg)
		{
			if (msg == 'erreur')
			{			
				panierVide('none');
			}
			else
			{	
				setTimeout(function(){
					var tempCart = document.getElementById("cart");
					tempCart.innerHTML = msg;			
					panierVide('block');
					setTimeout(function(){
						document.getElementsByTagName('body')[0].style.cursor = 'default';
					},100);
				},500);
				
				/*var mainCart = document.getElementById("mainCart");
			
				while (mainCart.firstChild) 
				{
				  mainCart.removeChild(mainCart.firstChild);
				}
			
				var cart = document.createElement("div");
				cart.id = "cart";
				cart.className = "simpleCart_items";

				cart.innerHTML = msg;
				mainCart.appendChild(cart);	*/	
			}
		}
	});	
}

function keypressed(e,elm)
{
	if (window.event) { e = window.event; }
		if (e.keyCode == 13)
		{
			elm.blur();
		}
}

//*************************************************************************************************
// Thanks to Peter-Paul Koch for these cookie functions! (http://www.quirksmode.org/js/cookies.html)
//*************************************************************************************************
function createCookie(name,value,days) 
{	
	var valueTemp;
	if (days) 
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	valueTemp = escape(value);
	document.cookie = name+"="+valueTemp+expires+"; path=/";
}

function readCookie(name) 
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) 
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) 
			//alert(unescape(c.substring(nameEQ.length,c.length)));
			return unescape(c.substring(nameEQ.length,c.length));
	}
	return null;
}

function eraseCookie(name) 
{
	createCookie(name,"",-1);
}

function IsNumeric(sText)
{
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;	
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
	  	Char = sText.charAt(i); 
	 	if (ValidChars.indexOf(Char) == -1) 
		{
		IsNumber = false;
		}
	}
	return IsNumber;
}

function commande()
{				
	if (checkFormPop('formCommande'))
	{
		var nom = document.getElementById('eNom').value;
		var prenom = document.getElementById('ePrenom').value;
		var adresse = document.getElementById('eAdresse').value;
		var ville = document.getElementById('eVille').value;
		var postal = document.getElementById('ePostal').value;
		var phone = document.getElementById('ePhone').value;		
		var email = document.getElementById('eEmail').value;
		var comment = document.getElementById('eComment').value;
	
		var url = 'admin/script/validePanier.php';
		
		var parametres = "nom=" + nom + "&prenom=" + prenom + "&adresse=" + adresse + "&ville=" + ville + "&postal=" + postal + "&phone=" + phone + "&email=" + email + "&comment=" + comment + "&fonction=commande";

		$('div.popup').block({ 
			message: '<h1><img src="admin/image/busy.gif" /> Envoi du formulaire en cours...</h1>', 
			css: { border: '3px solid #bbb' } 
		});
		
		var xhr = getXhr()
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function()
		{
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200)
			{
				if (xhr.responseText == 'commandeOK')
				{	
					setTimeout('afficheLoading("La commande a \351t\351 envoy\351e.", "Commande envoy\351e.", "true")', 1000);	
				}
				else if (xhr.responseText == 'commandeErreur')
				{
					setTimeout('afficheLoading("Une erreur est survenue durant la commande.", "Erreur", "false")', 500);
				}
				else if (xhr.responseText == 'noData')
				{		
					setTimeout('afficheLoading("Une erreur est survenue.", "Erreur", "false")', 500);
				}
				else
				{
					setTimeout('afficheLoading("Une erreur est survenue, veuillez essayer de nouveau.", "Erreur", "false")', 500);	
				}
			}
		}
		xhr.open("POST",url,true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr.send(parametres);
	}
}

function afficheLoading(alertTexte, titre, fermer)
{		
	etatFade('hide');
	  
	jAlert(alertTexte, titre, 
	function(r) 
	{
		if (fermer == 'true')
		{						
			//cart('supprimePanier');
			panierVide('none');
		}		
	});		
}

function checkFormPop(id)
{
	els = window.document.getElementById(id); 
	valRempli = true;
	var els = els.elements; // éléments du formulaire
	for ( var i = 0 ; i < els.length ; i++ ) 
	{ // on boucle sur les éléments du formulaire		
		if (els[i].id == 'eEmail')
		{
			if (!isEmail(els[i].id))
			{
				valRempli = false;
			}
		}
		else
		{
			if(els[i].name != '')
			{ // test si le champs est à valider		
				switch(els[i].type)
				{ //Chaque élément à son test personnalisé
					
				 //test des champs de type text
					case "text":
						if(trim(els[i].value).length <= 0)
						{
							changeClassInput(els[i].id, 'inputPopAlert');	
							valRempli = false;
						}
						else
						{ // test si c'est un champs contenant un email
							regExEmail = /^test-email-(.+)/;
							if(regExEmail.test(trim(els[i].name.toString())))
							{
								if(!isEmail(els[i].value))
								{
									alert("l'email saisie est invalide");
									valRempli = false;
								}
							}
						}
					continue;
					
				  //test des champs de type textarea
					case "textarea":
						if(trim(els[i].value).length <= 0)
						{
							changeClassInput(els[i].id, 'textareaPopAlert');	
							valRempli = false;
						}
					continue;
	
				  //test des champs de type file
					case "file":
						if(trim(els[i].value).length <= 0)
						{	
							changeClassInput(els[i].id, 'inputPopAlert');	
							valRempli = false;
						}
						else
						{
							//test si l'extention est valide
							if( /^(.+)\.(jpg|gif)/i.test(trim(els[i].value.toLowerCase())) == false)
							{
								alert("vous devez choisir un fichier 'jpeg' ou 'gif'");
								valRempli = false;
							}
						}
					continue;
	
				  //test des champs de type radio
					case "radio": // test pour les champs radio
						var test = false;
						var nom_champ = els[i].name; // si des champs radio se suivent et ne porte pas le même nom on les traites séparément
						// on boucle sur les champs radio pour savoir si au moins un champs est sélectionné
							while(els[i].type == "radio" && nom_champ == els[i].name)
							{
								if(els[i].checked)
								{
								   test = true; 
								}
								i++;
							}
							i--;
						if(!test)
						{
							changeClassInput(els[i].id, 'inputPopAlert');	
							valRempli = false;
						}
					continue;
	
				//test des champs de type checkbox
					case "checkbox":
						if(!els[i].checked)
						{
							changeClassInput(els[i].id, 'inputPopAlert');	
							valRempli = false;
						}
					continue;
			
				//test des champs de type select où une seul sélection est possible
					case "select-one":
						var test = false;
						for(var x=0; x < els[i].length; x++)
						{
						   if (!els[i].disabled)
						   {
								if(els[i][x].selected && els[i][x].text != '')
								{
									test = true;
								}						   
						   }
						   else
						   {
								test = true;  
						   }
						}
						
						if(!test)
						{
							changeClassInput(els[i].id, 'selectFormAlert');	
							valRempli = false;
						}   
					continue;
	
				//test des champs de type select où plusieurs sélections sont possible
					case "select-multiple":
						var test = false;
						for(var x=0; x < els[i].length; x++)
						{
							if(els[i][x].selected && els[i][x].value != '-1'&& trim(els[i][x].value) != '')
							{
								test = true;
							}
						}
						
						if(!test)
						{
							changeClassInput(els[i].id, 'selectFormAlert');	
							valRempli = false;
						}
					continue;
						
				 } // fin du switch
			  } // fin du for
			} // fin du if
		}
	return valRempli;
}

function checkInputPop(id)
{
	els = window.document.getElementById(id); 
	switch(els.type)
	{ //Chaque élément à son test personnalisé
		
	 //test des champs de type text
		case "text":
			if(trim(els.value).length <= 0)
			{
				if (els.name = 'email')// test si c'est un champs contenant un email
				{
					regExEmail = /^test-email-(.+)/;
					if(regExEmail.test(trim(els.name.toString())))
					{
						if(!isEmail(els.value))
						{
							alert("le courriel saisie est invalide");
							return false;
						}
					}
					else
					{
						changeClassInput(els.id, 'inputPop');
					}
				}
			}
			else
			{
				changeClassInput(els.id, 'inputPop');
			}
			
		 break;


	  //test des champs de type textarea
		case "textarea":
			if(trim(els.value).length <= 0)
			{
				changeClassInput(els.id, 'textareaPop');	
			}
			else
			{
				changeClassInput(els.id, 'textareaPop');	
			}
		 break;

	  //test des champs de type file
		case "file":					
			if(trim(els.value).length <= 0)
			{
				changeClassInput(els.id, 'inputPop');	
			}
			else
			{
				//test si l'extention est valide
				if( /^(.+)\.(jpg|gif)/.test(trim(els.value.toLowerCase())) == false)
				{
					alert("vous devez choisir un fichier 'jpeg' ou 'gif'");
					changeClassInput(els.id, 'inputPop');	
				}
				else
				{
					changeClassInput(els.id, 'inputPop');	
				}
			}
		 break;


	  //test des champs de type radio
		case "radio": // test pour les champs radio
			var test = false;
			var nom_champ = els.name; // si des champs radio se suivent et ne porte pas le même nom on les traites séparément
			// on boucle sur les champs radio pour savoir si au moins un champs est sélectionné
				while(els.type == "radio" && nom_champ == els.name)
				{
					if(els.checked)
					{
						test = true;
					}
					i++;
				}
				i--;
			if(!test)
			{	
				changeClassInput(els.id, 'inputPop');	
			}
			else
			{	
				changeClassInput(els.id, 'inputPop');	
			}
		 break;


	//test des champs de type checkbox
		case "checkbox":
			if(!els.checked)
			{
				changeClassInput(els.id, 'inputPop');	
			}
			else
			{
				changeClassInput(els.id, 'inputPop');	
			}
		 break;


	//test des champs de type select où une seul sélection est possible
		case "select-one":			
			var test = false;
			for(var x=0; x < els.length; x++)
			{
				/*if(els[x].selected && els[x].value != '-1'&& trim(els[x].value) != '')
				{
					test = true;
					
				}*/
				if(els[x].selected && els[x].text != '')
				{
					test = true;
				}
			}
			
			if(!test)
			{
				changeClassInput(els.id, 'selectForm');	
			}
			else
			{
				changeClassInput(els.id, 'selectForm');	
			}
		 break;


	//test des champs de type select où plusieurs sélections sont possible
		case "select-multiple":
			var test = false;
			for(var x=0; x < els.length; x++)
			{
				if(els[x].selected && els[x].value != '-1'&& trim(els[x].value) != '')
				{
					test = true;
				}
			}
			
			if(!test)
			{
				changeClassInput(els.id, 'selectForm');	
			}
			else
			{
				changeClassInput(els.id, 'selectForm');	
			}
		 break;
	} // fin du switch
	if(test)
	{
		return false;
	}
}

function redirectionPanier(page)
{
	var valPage;
	if (page)
		valPage = page;
	else
		valPage = 'panier.php';
		
	if (getVar('debut') != '')
	{	
		location.href = valPage + '?debut=' + getVar('debut') + '&recherche=' + getVar('recherche');
	}
	else if (getVar('categorie') != '')
	{		
		location.href = valPage + '?categorie=' + getVar('categorie') + '&nom_categorie=' + getVar('nom_categorie');
	}
	else if (getVar('sous_categorie') != '')
	{
		location.href = valPage + '?sous_categorie=' + getVar('sous_categorie') + '&nom_sous_categorie=' + getVar('nom_sous_categorie');
	}
	else
	{	
		location.href = valPage + '?recherche=' + getVar('recherche');
	}	
}

function redirectionProduitListe()
{
	if (getVar('debut') != '')
	{	
		location.href = 'produit_liste.php?debut=' + getVar('debut') + '&recherche=' + getVar('recherche');
	}
	else if (getVar('categorie') != '')
	{		
		location.href = 'produit_liste.php?categorie=' + getVar('categorie') + '&nom_categorie=' + getVar('nom_categorie');
	}
	else if (getVar('sous_categorie') != '')
	{
		location.href = 'produit_liste.php?sous_categorie=' + getVar('sous_categorie') + '&nom_sous_categorie=' + getVar('nom_sous_categorie');
	}
	else
	{	
		location.href = 'produit_liste.php?recherche=' + getVar('recherche');
	}	
}

function panierVide(etat)
{
	document.getElementById("cart").style.display = etat;
	if (etat == 'none')
	{
		document.getElementById("btnContinuer").style.visibility = 'hidden';
		document.getElementById("btnCommand").style.visibility = 'hidden';	
	}
	else
	{
		document.getElementById("btnContinuer").style.visibility = 'visible';
		document.getElementById("btnCommand").style.visibility = 'visible';	
	}
	
	document.getElementById("infoCart").style.display = etat;
	afficherRecherche();
}

function afficheJalert(alertTexte, titre, fermer)
{		
	Nom = navigator.appName;	
	if (Nom == 'Opera') 
	{
		alert(alertTexte);
	}
	else
	{
		jAlert(alertTexte, titre);
	}

}

function viderPanier()
{
	cart('supprimePanier');
	document.getElementById("btnCommand").style.visibility = 'hidden';
	document.getElementById("infoCart").style.visibility = 'hidden';
}

function afficherRecherche()
{
	if (getVar('recherche') || getVar('categorie') || getVar('sous_categorie'))
	{
		document.getElementById("btnContinuer").style.visibility = 'visible';	
	}	
	else
	{
		document.getElementById("btnContinuer").style.visibility = 'hidden';
	}
}

function showDiv() 
{ 	
	formID = window.document.getElementById('formCommande');
	var valID = formID.elements; // éléments du formulaire
	for ( var i = 0 ; i < valID.length ; i++ )
	{
		if(valID[i].name != '')
		{			
			if (valID[i].type == 'textarea')
			{
				changeClassInput(valID[i].id, 'textareaPop');
			}
			else
			{
				changeClassInput(valID[i].id, 'inputPop');	
			}
		}
	}
} 

function showCommande(statusCommande, statusFade) 
{		
	document.getElementById('commande').style.display = statusCommande;
	document.getElementById('fade').style.display = statusFade;
}

function etatFade(status) 
{	
	switch(status) 
	{
		case 'show':
			$("#fade").css({
				position: 'absolute',
				zIndex: 1,
				top: '0px',
				left: '0px',
				width: '100%',
				height: $(document).height(),
				backgroundColor: '#000000',
				opacity: '0.8'
			});
			showCommande('block', 'block'); 
			showDiv();
		break;
		case 'hide':
			document.getElementById('commande').style.display = 'none';
			document.getElementById('fade').style.display = 'none';		
		break;
	}
}
