// JavaScript Document
var postAjaxTimer = setInterval('execPostAjaxFunction();',1000);
var postAjaxFunctionToExec = '';

function execPostAjaxFunction(){
	
	if(postAjaxFunctionToExec!=''){
		//alert(postAjaxFunctionToExec);
		setTimeout(postAjaxFunctionToExec,500);
		postAjaxFunctionToExec = '';
	}

}

/* ----------------------------------------------------------- */
// send params
/* ----------------------------------------------------------- */
function sendParams(){

	modalMessage('Traitement','Patientez...');

	document.location='index.php?module=mdp/&sous_module=send&action=send&email='+document.getElementById('email').value;
}
/* ----------------------------------------------------------- */
// END : send params
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// message modal
/* ----------------------------------------------------------- */
var infosMessages_win = false;

function closeModalMessage(){
	if(infosMessages_win)
		infosMessages_win.hide();
}

function modalMessage(title,val){
	

	if(!infosMessages_win){

		infosMessages_win = new Ext.Window({
			applyTo     : 'infos-messages-win',
			layout      : 'fit',
			width       : 200,
			height      : 80,
			closeAction :'hide',
			plain       : true,
			modal		: true,
			html : '<div id="modal-message" align="center"></div><br><div id="p3" align="center"></div>'		
		});

		var pbar3 = new Ext.ProgressBar({
			id:'pbar3',
			width:100,
			renderTo:'p3'
		});

		pbar3.wait({
			interval:100,
			duration:3000,
			increment:15
		});
	}

	document.getElementById('infos-messages-win-title').innerHTML = title;
	document.getElementById('modal-message').innerHTML = val;

	infosMessages_win.show();
}
/* ----------------------------------------------------------- */
// END : message modal
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// open add produit
/* ----------------------------------------------------------- */
var addProd_win;
var addProd_nextAction;
var addProd_formuleObj = null;

function addProd(id_produit,format,nextAction,nextAction2,formuleObj){
	
	if(!addProd_win){

		addProd_win = new Ext.Window({
			applyTo     : 'addProd-win',
			layout      : 'fit',
			width       : 400,
			height      : 450,
			closeAction :'hide',
			plain       : true,
			modal		: true,
			html : '<div id="add_produits_details"></div>',
			
			buttons: [{
				text     : 'Ajouter',
				id		 : 'btnAddProd',
				handler  : function(){
					addProd_win.hide();
					addProdToCde();
				}
			},{
				text     : 'Valider',
				id		 : 'btnValidateAddProd',
				handler  : function(){
					addProd_win.hide();
					addProdToCde();
				}
			},{
				text     : 'Annuler',
				id		 : 'btnCancelAddProd',
				handler  : function(){
					addProd_win.hide();
				}
			}]
		});
	}

	if(nextAction!='')
		addProd_nextAction = nextAction;
	else
		addProd_nextAction = '';
		
	addProd_win.show();

	if(formuleObj){
		var onFormule = 1;
		addProd_formuleObj = formuleObj;
		document.getElementById('btnAddProd').style.display = 'none';
		document.getElementById('btnValidateAddProd').style.display = '';
		document.getElementById('btnCancelAddProd').style.display = 'none';
	}else{
		var onFormule = 0;
		addProd_formuleObj = null;
		document.getElementById('btnAddProd').style.display = '';
		document.getElementById('btnValidateAddProd').style.display = 'none';
		document.getElementById('btnCancelAddProd').style.display = '';
	}

	sendData('id_produit='+id_produit+'&format='+format+'&onFormule='+onFormule, '?module=notre_carte/&sous_module=addProd', 'POST', 'add_produits_details', nextAction2, false);
}

function addIngredientAuto(ing){

	if(!document.getElementById('out')){
		setTimeout("addIngredientAuto('"+ing+"');",1000);
	}else{
		for(i=0;i<(document.getElementById('out').options.length);i++){
			if(document.getElementById('out').options[i].text==ing){

				document.getElementById('out').selectedIndex=i;
				document.getElementById('addButton').click();
			}
		}
	}
}

function addProdToCde(){

	modalMessage('Traitement','Patientez...');
	
	var id_produit 		= document.getElementById('id_produit').value;
	var format 			= document.getElementById('format').value;
	var prix_or 		= document.getElementById('prix_or').value;
	var prix_final 		= document.getElementById('prix_final').value;
	var quantite 		= document.getElementById('quantite').value;
	var prix_total 		= document.getElementById('prix_total').value;

	var add_ingredient 	= '';
	if(document.getElementById('in')){
		for(i=0;i<(document.getElementById('in').options.length);i++){
			if(document.getElementById('in').options[i].title=='new')
				add_ingredient+= document.getElementById('in').options[i].text+',';
		}
	}
	if(add_ingredient!='')
		add_ingredient 	= add_ingredient.substr(0,add_ingredient.length-1);
	
	var sub_ingredient 	= '';
	if(document.getElementById('out')){
		for(i=0;i<(document.getElementById('out').options.length);i++){
			if(document.getElementById('out').options[i].title=='ori')
				sub_ingredient+= document.getElementById('out').options[i].text+',';
		}
	}
	if(sub_ingredient!='')
		sub_ingredient 	= sub_ingredient.substr(0,sub_ingredient.length-1);


	if(addProd_formuleObj!=null){
		
		selectMenuID = addProd_formuleObj.id;
		
		var reg=new RegExp("(_val)", "g");	
		inputMenu_add_ingredientID = selectMenuID.replace(reg,"_add_ingredient");
		inputMenu_sub_ingredientID = selectMenuID.replace(reg,"_sub_ingredient");
		inputMenu_prixID = selectMenuID.replace(reg,"_prix");
		inputMenu_precisionsID = selectMenuID.replace(reg,"_precisions");

		document.getElementById(inputMenu_add_ingredientID).value = add_ingredient;
		document.getElementById(inputMenu_sub_ingredientID).value = sub_ingredient;
		document.getElementById(inputMenu_prixID).value = roundN(prix_final-prix_or,2);

		var reg=new RegExp("(< Par exemple : pizza bien cuite >)", "g");	
		var precision 	= document.getElementById('precision').value;
		precision 	= precision.replace(reg,"");
		document.getElementById(inputMenu_precisionsID).value = precision;

		/*
		alert('inputMenu_add_ingredientID='+document.getElementById(inputMenu_add_ingredientID).value);
		alert('inputMenu_sub_ingredientID='+document.getElementById(inputMenu_sub_ingredientID).value);
		alert('inputMenu_prixID='+document.getElementById(inputMenu_prixID).value);
		*/
		
		closeModalMessage();
	}else{

		var reg=new RegExp("(< Par exemple : pizza bien cuite >)", "g");	
		var precision 	= document.getElementById('precision').value;
		precision 	= precision.replace(reg,"");
		
		
		add_ingredient 	= escape(add_ingredient);
		sub_ingredient 	= escape(sub_ingredient);
		precision 	= escape(precision);
		
		var details_cde = "carte||";
		details_cde+= id_produit+"||";
		details_cde+= format+"||";
		details_cde+= prix_or+"||";
		details_cde+= prix_final+"||";
		details_cde+= quantite+"||";
		details_cde+= prix_total+"||";
		details_cde+= add_ingredient+"||";
		details_cde+= sub_ingredient+"||";
		details_cde+= precision+"##";

		if(addProd_nextAction!='')
			nextAction = addProd_nextAction;
		else{
			nextAction = "document.location='index.php?module=ma_commande/';";
		}
		
		sendData('details_cde='+details_cde, 'index.php?module=&sous_module=addProdToCde', 'POST', '', nextAction, false);//
	}
}
/* ----------------------------------------------------------- */
// END : open add produit
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// add menu
/* ----------------------------------------------------------- */
function addMenuToCde(id_menu,prix,menuItemsCount){
			
	var details_cde = "menu||";
	details_cde+= id_menu+"||";
	
	var stocks = "";
	var details = "";
	var prixMenu = prix*1;
	
	for(i=0;i<=menuItemsCount;i++){
				
		if( document.getElementById(id_menu+'_'+i+'_type').value == 'statique' ){
			details+= document.getElementById(id_menu+'_'+i).value+",";
		}else{
			if(document.getElementById(id_menu+'_'+i+'_val').value==''){
				alert('Veuillez renseigner tous les composants du menu !');
				return false;
			}else{
				details+= document.getElementById(id_menu+'_'+i+'_txt').value+" "+document.getElementById(id_menu+'_'+i+'_val').options[document.getElementById(id_menu+'_'+i+'_val').selectedIndex].text+",";
				
				if(document.getElementById(id_menu+'_'+i+'_add_ingredient').value!='')
					details+= "avec:"+document.getElementById(id_menu+'_'+i+'_add_ingredient').value+",";

				if(document.getElementById(id_menu+'_'+i+'_sub_ingredient').value!='')
					details+= "sans:"+document.getElementById(id_menu+'_'+i+'_sub_ingredient').value+",";

				if(document.getElementById(id_menu+'_'+i+'_precisions').value!='')
					details+= "précisions:"+document.getElementById(id_menu+'_'+i+'_precisions').value+",";

				if(document.getElementById(id_menu+'_'+i+'_add_ingredient').value!='')
					prixMenu = prixMenu + (document.getElementById(id_menu+'_'+i+'_prix').value*1);

				if(document.getElementById(id_menu+'_'+i+'_stocks'))
					stocks+= document.getElementById(id_menu+'_'+i+'_val').value+"::"+document.getElementById(id_menu+'_'+i+'_stocks').value+";";
			}
		}
	}
	
	details_cde+= roundN(prixMenu,2)+"||";
	details_cde+= details+"||";
	
	details_cde+= stocks+"##";
	
	modalMessage('Traitement','Patientez...');

	sendData('details_cde='+escape(details_cde), 'index.php?module=&sous_module=addMenuToCde', 'POST', '', 'document.location=document.location;', false);//
}
/* ----------------------------------------------------------- */
// END : add menu
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// annul cde
/* ----------------------------------------------------------- */
function annulCde(){
	
	if(!confirm('Etes-vous sûre ?')){
		return 0;
	}
	
	document.location = 'index.php?action=annulCde';
}
/* ----------------------------------------------------------- */
// END : annul menu
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// add cde
/* ----------------------------------------------------------- */
function addCde(ouverture){
	
	if(ouverture==0){	
		if(!confirm('Attention notre restaurant est actuellement fermé ! Votre commande sera prise en compte à la prochaine ouverture. Voulez-vous continuer ?')){
			return 0;
		}
	}
	
	if(parseInt(document.getElementById('total_cde').value)<parseInt(document.getElementById('min_cde').value)){
		alert('Le montant minimum d\'une commande est '+document.getElementById('min_cde').value+' € !');
		return 0;
	}

	var ladate=new Date();
	
	/*
	alert(ladate.getFullYear());
	alert(parseInt(document.getElementById('year').value));

	alert(ladate.getMonth()+1);
	alert(parseInt(document.getElementById('month').value));

	alert(ladate.getDate());
	alert(parseInt(document.getElementById('day').value));

	alert(ladate.getHours());
	alert(parseInt(document.getElementById('hour').value));
	*/
	var minute_min = (ladate.getMinutes()+(document.getElementById('delais_livraison').value*1)+5);
	var heure_min = ladate.getHours();
	
	if(minute_min>60){
		minute_min = minute_min - 60;
		heure_min++;
	}
	//alert(heure_min+':'+minute_min+' '+(document.getElementById('hour').value*1)+':'+(document.getElementById('minute').value*1));
	
	if((ladate.getFullYear()*1)>(document.getElementById('year').value*1)){
		alert('Date de remise de la commande impossible !');
		return 0;
	}else if((ladate.getFullYear()*1)==(document.getElementById('year').value*1) 
			&& (ladate.getMonth()+1)>(document.getElementById('month').value*1)){
		alert('Date de remise de la commande impossible !');
		return 0;
	}else if((ladate.getFullYear()*1)==(document.getElementById('year').value*1) 
			&& (ladate.getMonth()+1)==(document.getElementById('month').value*1)
			&& (ladate.getDate()*1)>(document.getElementById('day').value*1)){
		alert('Date de remise de la commande impossible !');
		return 0;
	}else if((ladate.getFullYear()*1)==(document.getElementById('year').value*1) 
			&& (ladate.getMonth()+1)==(document.getElementById('month').value*1)
			&& (ladate.getDate()*1)==(document.getElementById('day').value*1)
			&& heure_min>(document.getElementById('hour').value*1)){
		alert('Date de remise de la commande impossible !');
		return 0;
	}else if((ladate.getFullYear()*1)==(document.getElementById('year').value*1) 
			&& (ladate.getMonth()+1)==(document.getElementById('month').value*1)
			&& (ladate.getDate()*1)==(document.getElementById('day').value*1)
			&& heure_min>(document.getElementById('hour').value*1)
			&& minute_min>(document.getElementById('minute').value*1)){
		alert('Date de remise de la commande impossible !');
		return 0;
	}

	if(!confirm('Etes-vous sûre ?')){
		return 0;
	}
		
	modalMessage('Traitement','Enregistrement de votre commande...');

	var reg=new RegExp("(< Par exemple : prévoir de la monnaie sur 50€ >)", "g");	
	var precisions_cde 	= document.getElementById('precisions_cde').value;
	precisions_cde 	= precisions_cde.replace(reg,"");
	
	var mode_cde 		= document.getElementById('mode_cde').value;
	
	if(document.getElementById('confirm_cde').checked)
		var confirm_cde = 1;
	else
		var confirm_cde = 0;
		
	var total_cde 		= document.getElementById('total_cde').value;
	var date_remise_cde	= document.getElementById('year').value+'-'+document.getElementById('month').value+'-'+document.getElementById('day').value+' '+document.getElementById('hour').value+':'+document.getElementById('minute').value+':00';
	
	var use_status 		= document.getElementById('use_status').value;
	var notif 		= document.getElementById('notif').value;
	var url 		= document.getElementById('url').value;

	var statut = 0;

	var points 		= document.getElementById('points').value;
	
	precisions_cde 	= escape(precisions_cde);

	//sendData('action=addCde&precisions_cde='+precisions_cde+'&mode_cde='+mode_cde+'&confirm_cde='+confirm_cde+'&total_cde='+total_cde+'&date_remise_cde='+date_remise_cde, 'soap_client.php', 'POST', '', 'document.location="index.php?module=mes_commandes/";', false);//
	sendData('precisions_cde='+precisions_cde+'&mode_cde='+mode_cde+'&confirm_cde='+confirm_cde+'&total_cde='+total_cde+'&date_remise_cde='+date_remise_cde+'&statut='+statut+'&notif='+notif+'&url='+url+'&points='+points, 'index.php?module=ma_commande/&sous_module=nothing&action=addCde', 'POST', '', 'document.location="index.php?module=mes_commandes/&alertNewCde=1";', false);//
	
}
/* ----------------------------------------------------------- */
// END : add cde
/* ----------------------------------------------------------- */


/* ----------------------------------------------------------- */
// add client
/* ----------------------------------------------------------- */
function addClient(){
	
	/**/
	var nom 		= document.formCli.nom.value;
	var prenom 		= document.formCli.prenom.value;
	var societe 	= document.formCli.societe.value;
	var num_rue 	= document.formCli.num_rue.value;
	var adresse 	= document.formCli.adresse.value;
	var batiment  	= document.formCli.batiment.value;
	var etage 		= document.formCli.etage.value;
	var digicode 	= document.formCli.digicode.value;
	var interphone 	= document.formCli.interphone.value;
	var ville 		= document.formCli.ville.value;
	var telephone 	= document.formCli.telephone.value;
	var email 		= document.formCli.email.value;
	var password 	= document.formCli.password.value;
	
	
	modalMessage('Traitement','Enregistrement de votre compte...');


	ret = true;
	
	if(nom=='' || prenom=='' || num_rue=='' || adresse=='' || telephone=='' || email=='' || password==''){
		closeModalMessage();
		alert('Veuillez renseigner tous les champs obligatoires !');
		ret = false;
	}

	if(ret)
		document.formCli.submit();

	//sendData('nom='+nom+'&prenom='+prenom+'&societe='+societe+'&num_rue='+num_rue+'&adresse='+adresse+'&batiment='+batiment+'&etage='+etage+'&digicode='+digicode+'&interphone='+interphone+'&ville='+ville+'&telephone='+telephone+'&email='+email+'&password='+password, 'index.php?module=mon_compte/&sous_module=nothing&action=addClient', 'POST', '', 'document.location="index.php?module=mon_compte/";', false);//
}
/* ----------------------------------------------------------- */
// END : add client
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// update client
/* ----------------------------------------------------------- */
function updateClient(){
	
	/*
	var nom 		= document.formCli.nom.value;
	var prenom 		= document.formCli.prenom.value;
	var societe 	= document.formCli.societe.value;
	var num_rue 	= document.formCli.num_rue.value;
	var adresse 	= document.formCli.adresse.value;
	var batiment  	= document.formCli.batiment.value;
	var etage 		= document.formCli.etage.value;
	var digicode 	= document.formCli.digicode.value;
	var interphone 	= document.formCli.interphone.value;
	var ville 		= document.formCli.ville.value;
	var telephone 	= document.formCli.telephone.value;
	var email 		= document.formCli.email.value;
	var password 	= document.formCli.password.value;
	*/
	
	modalMessage('Traitement','Modification de votre compte...');

	document.formCli.submit();

	//sendData('nom='+nom+'&prenom='+prenom+'&societe='+societe+'&num_rue='+num_rue+'&adresse='+adresse+'&batiment='+batiment+'&etage='+etage+'&digicode='+digicode+'&interphone='+interphone+'&ville='+ville+'&telephone='+telephone+'&email='+email+'&password='+password, 'index.php?module=mon_compte/&sous_module=nothing&action=updateClient', 'POST', '', 'document.location="index.php?module=mon_compte/";', false);//
}
/* ----------------------------------------------------------- */
// END : update client
/* ----------------------------------------------------------- */


/* ----------------------------------------------------------- */
// select changer
/* ----------------------------------------------------------- */
function selectChanger(fromHtmlObject,toHtmlObject){

	if(fromHtmlObject.selectedIndex>=0){
		var newOption = document.createElement('option');
		newOption.text = fromHtmlObject.options[fromHtmlObject.selectedIndex].text;
		newOption.value = fromHtmlObject.options[fromHtmlObject.selectedIndex].value;
		newOption.title = fromHtmlObject.options[fromHtmlObject.selectedIndex].title;
		
		try {
		  toHtmlObject.add(newOption, null); // standards compliant; doesn't work in IE
		}
		catch(ex) {
		  toHtmlObject.add(newOption); // IE only
		}
		
		if(fromHtmlObject.id=='out')
			calculProd(fromHtmlObject.options[fromHtmlObject.selectedIndex].value);
		else
			calculProd(fromHtmlObject.options[fromHtmlObject.selectedIndex].value*-1);
			
		fromHtmlObject.remove(fromHtmlObject.selectedIndex);
	}else
		setTimeout("document.getElementById('"+fromHtmlObject.id+"').selectedIndex=-1;",1000);
}
/* ----------------------------------------------------------- */
// END : select changer
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// calcul prod
/* ----------------------------------------------------------- */
function calculProd(val){

	if(val)
		document.getElementById('prix_final').value = (document.getElementById('prix_final').value*1)+(val*1);

	if( (document.getElementById('prix_final').value*1)<(document.getElementById('prix_or').value*1) )
		document.getElementById('prix_final').value = document.getElementById('prix_or').value;

	document.getElementById('prix_total').value = roundN( (document.getElementById('prix_final').value*1)*(document.getElementById('quantite').value*1),2);
}
/* ----------------------------------------------------------- */
// END : calcul prod
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// load tooltip
/* ----------------------------------------------------------- */
function loadQuickTip(title,textContext, htmlTarget){
	new Ext.ToolTip({
		target: htmlTarget,
		title: title,
		width:200,
		html: textContext,
		trackMouse:true
	});	
}
/* ----------------------------------------------------------- */
// END : load tooltip
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// load commande
/* ----------------------------------------------------------- */
function loadCde(id_cde,url){
	//alert(id_cde);
	modalMessage('Chargement','Ouverture de la commande...');
	sendData('id_cde='+id_cde+'&url='+url, 'index.php?module=mes_commandes/&sous_module=nothing&action=detailsCdeClient', 'POST', 'listeCdes', 'closeModalMessage();', false);//
}
/* ----------------------------------------------------------- */
// END : load commande
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// changeMode
/* ----------------------------------------------------------- */
function changeMode(newMode){
	modalMessage('Traitement','Patientez...');
	sendData('newMode='+newMode, 'index.php?module=ma_commande/&sous_module=nothing&action=changeMode', 'POST', '', 'document.location=document.location;', false);//
}
/* ----------------------------------------------------------- */
// END : changeMode
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// execPromo
/* ----------------------------------------------------------- */
function execPromo(promoId){
	modalMessage('Traitement','Patientez...');
	sendData('promoId='+promoId, 'index.php?module=ma_commande/&sous_module=nothing&action=execPromo', 'POST', '', 'document.location=document.location;', false);//
}
/* ----------------------------------------------------------- */
// END : execPromo
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// roundN
/* ----------------------------------------------------------- */
function roundN(nombre, nbChiffres) {
	
	tmp = ''+Math.round(nombre*Math.pow(10,nbChiffres))/Math.pow(10,nbChiffres);

	var reg=new RegExp("[.]+", "g");
	var tableau=tmp.split(reg);

	if( !tableau[1] )
		return tableau[0]+'.00';
	else if( tableau[1].length == 1 )
		return tableau[0]+'.'+tableau[1]+'0';
	else
		return tableau[0]+'.'+tableau[1];
} 
/* ----------------------------------------------------------- */
// END : roundN
/* ----------------------------------------------------------- */

/* ----------------------------------------------------------- */
// forms verification
/* ----------------------------------------------------------- */
function vf(formRef){

	var ret = true;
	var desc = '';
	
	var reg=new RegExp("[#]", "g");
	var tmp=formRef.verifTab.value.split(reg);
	
	for (var i=0; i<tmp.length; i++) {
		if(tmp[i]!='' && desc==''){
			var reg=new RegExp("[|]", "g");
			var tmp2=tmp[i].split(reg);
			
			switch(tmp2[1]){
				//-------------------------------------------------------------------------
				case 'string_not_null':
					eval('test = formRef.'+tmp2[0]+'.value');

					if(test == ''){
						ret = false;
						desc = 'Veuillez renseigner tous les champs obligatoires !';
					}else{
						if(tmp2[2]!=''){
							eval('test = formRef.'+tmp2[0]+'.value.length');
							if(test > tmp2[2]){
								ret = false;
								desc = 'Trop de caractères pour le champ '+tmp2[0];
							}
						}
					}
				break;
				//-------------------------------------------------------------------------
				case 'string_id':
					eval('test = formRef.'+tmp2[0]+'.value');

					if(test == ''){
						ret = false;
						desc = 'Veuillez renseigner tous les champs obligatoires !';
					}else{
						if( !document.getElementById('verif_custom_id_alert_exist') ){
							ret = false;
							desc = 'Caractère(s) invalide(s) ou libellé déjà existant pour le champ [Libellé unique]';
						}else{
							if(document.getElementById('custom_id_alert').lang==0 || document.getElementById('verif_custom_id_alert_exist').lang==0){
								ret = false;
								desc = 'Caractère(s) invalide(s) ou libellé déjà existant pour le champ [Libellé unique]';
							}
						}	
					}
				break;
				//-------------------------------------------------------------------------
				case 'table_not_null':
					eval('test = formRef.'+tmp2[0]+'.value');

					if(test == ''){
						ret = false;
						desc = 'Veuillez renseigner tous les champs obligatoires !';
					}
				break;
				//-------------------------------------------------------------------------
				default:
				break;
			}
		}
	}

	if(desc!='')alert(desc);
	
	return ret;
}
/* ----------------------------------------------------------- */
// END : form verification
/* ----------------------------------------------------------- */