//On document load
$(document).ready(
		function() {
			
			$("a.fancyBox").fancybox({ 
				'zoomOpacity': true,
				'zoomSpeedIn': 500, 
				'zoomSpeedOut': 300, 
				'overlayShow': true,
				'overlayOpacity' : '0.5'
				});
			
			$("a.fancyText").fancybox({ 
				'zoomOpacity': true,
				'zoomSpeedIn': 500, 
				'zoomSpeedOut': 300,
				'frameWidth':800,
				'frameHeight':600,
				'overlayShow': true,
				'overlayOpacity' : '0.5'
				});
			
			
			
			//Hover - changepetiteImageFiche
			$("img#petiteImageFiche0").mouseover(function(){
				//:hover cursor : pointer
				$("img#petiteImageFiche0").css("cursor","pointer");
				//Remplace la grande image par la petite
				$("a#fancyImageFiche img").attr("src",
						$("img#petiteImageFiche0").attr("src"));
				$("a#fancyImageFiche").attr("href",
						$("img#petiteImageFiche0").attr("alt"));
				});
			$("img#petiteImageFiche1").mouseover(function(){
				//:hover cursor : pointer
				$("img#petiteImageFiche1").css("cursor","pointer");
				//Remplace la grande image par la petite
				$("a#fancyImageFiche img").attr("src",
						$("img#petiteImageFiche1").attr("src"));
				$("a#fancyImageFiche").attr("href",
						$("img#petiteImageFiche1").attr("alt"));
				});
			
			$("img#petiteImageFiche2").mouseover(function(){
				//:hover cursor : pointer
				$("img#petiteImageFiche2").css("cursor","pointer");
				//Remplace la grande image par la petite
				$("a#fancyImageFiche img").attr("src",
						$("img#petiteImageFiche2").attr("src"));
				$("a#fancyImageFiche").attr("href",
						$("img#petiteImageFiche2").attr("alt"));
				});
			
			//Button hovers 
			$('img.hover, input.hover').each(function(i) {
				$(this).mouseover(function() {
					src = $(this).attr('src');
					ext = src.substring(src.lastIndexOf('.',src.length),src.length);
					$(this).attr('src',src.replace(ext,'_on'+ext));
				});
				$(this).mouseout(function() {
					$(this).attr('src',$(this).attr('src').replace('_on',''));
				});
			});
			
			//Input assist
			inputAssist('#conf_email', 'Confirmez votre e-mail');
			
			//Select pour IE
			selectIE();
		    
			
		});

//Select large pour IE
var wSelect = new Array();
var hasFocus = new Array();
var isIE = (navigator.appName.indexOf("Microsoft")!=-1);

function selectIE() {
	//Select large pour IE
	var wSelect = new Array();
	var hasFocus = new Array();
	if(isIE){
		$(".selectIE").each(function (i) {
	        
			$(this).css('position','absolute');
			
	        hasFocus[i] = false;
	        wSelect[i] = $(this).width()+2;
	
	        $(this).focus(function(){
	            hasFocus[i] = true;
	        });
	       
	      $(this).bind("mouseover", function(){
	           $(this).addClass('autoImportant');
	           if($(this).width()<wSelect[i]){
	        	   	$(this).removeClass('autoImportant');
	                }
	           });
	           
	      $(this).bind("mouseout", function(){
	            if(!hasFocus[i]){
	            	$(this).removeClass('autoImportant');
	            }
	           });
	          
	      $(this).blur(function(){
	             hasFocus[i] = false;
	             $(this).removeClass('autoImportant');
	           });
		});
	}
}

//Regex
var integer = "^[0-9]*$";
var validMail = "\\b[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}\\b";
var validDate = "^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(19|20)\\d\\d$";
var validTel = "^\\+?\\d{10,11}$";
var validMdp = "\\S{6,15}";

//Valide le contenu d'un ï¿½lï¿½ment par son id et une regex 
//sinon affiche le message
function isValid(expr, regex, message) {
	//Construction de la regex
	tester = new RegExp(regex);
	//Si regex invalide
	if ($(expr).attr('value')=="" || !tester.test($(expr).attr('value'))) {
		//afficher le message
		appendToToolTip(expr,message);
		return false;
	} else {
		removeFromToolTip(expr)
		return true;
	}
}

function isEqualValues(expr1, expr2, message) {
	if($(expr1).attr('value') == $(expr2).attr('value')) {
		return true;
		removeFromToolTip(expr1)
	} else {
		appendToToolTip(expr1,message);
		return false;
	}
}

function isEmptyValue(expr, message) {
	var empty = true;
	if($(expr).attr('type') == 'radio') {
		for (i=0; i<$(expr).size() ;i++){
			if ($(expr).get(i).checked ==true){
				empty=false;
				break
			}
		}	
	} else {
		empty = $(expr).val() == "";
	}

	if (empty) {
		//afficher le message
		appendToToolTip(expr, message);
		return true;
	} else {
		removeFromToolTip(expr);
		return false;
	}
}

function appendToToolTip(expr, message) {
	$(expr).css('border','#e31f1c 2px solid');
	exprErr = '#tooltipErreur';
	if(message != "") {
		if(!$(exprErr).html() == '') {
			$(exprErr).append('<br/>');
		}
		$(exprErr).append(message);
	}
}

function removeFromToolTip(expr) {
	$(expr).css('border','');
}

function majPrixFiche(prix) {
	var prixTotal = $('#selectQuantite').val()*prix;
	$('#prix_total').html(truncateFloat(prixTotal) +' &euro;');
}

function onEventChangeImage(expr,image) {
	$(expr).attr('src',image);
}

function boutonHover(expr, image) {
	var image2 = $(expr).attr('src');
	$(expr).mouseover(function() {$(expr).attr('src',image)});
	$(expr).mouseout(function() {$(expr).attr('src',image2)});
}

function onClickShowOrHide(expr) {
	$(expr).slideToggle("slow");
}

function onClickHide(expr) {
	$(expr).slideUp("slow");
}

function loadGmap() {
	 if (GBrowserIsCompatible()) {
   var map = new GMap2(document.getElementById("map"));
   map.setCenter(new GLatLng(44.871098693673936,-0.4656529426574707),15);
   var point = new GLatLng(44.871098693673936,-0.4656529426574707);
   map.addOverlay(new GMarker(point));
			map.addControl(new GMapTypeControl());
			map.addControl(new GSmallMapControl());
			map.checkResize();
	}
}

function changeUserBlock(userBlock) {
	
	$('#zone_droite > div:first').fadeOut(function(){
				$('#zone_droite > div:first').remove();
				$('#zone_droite').prepend(userBlock);
				$('#zone_droite > div:first').css('display','none');
				$('#zone_droite > div:first').fadeIn();
			});
}

function deconnectUtilisateur() {
	$.post("index.php?getD=deconnectUtilisateurAjax",function(data, textStatus) {
		changeUserBlock(data);
		location.reload(true);
	})
}

function connectUtilisateur() {
	$.post("index.php?getD=connectUtilisateurAjax", $("#connectionForm").serialize(),
			function(data, textStatus) {
				if(data.indexOf('Erreur : ',0) > 0) {
					showToolTipUpToElement('#validerConnexion',data);
				} else {
					location.reload(true);
				}
			});
}

function inputAssist(expr, assist) {
	if($(expr).val() == "")
		$(expr).val(assist);
	$(expr).focus(function() {
		if($(expr).val() == assist)$(expr).val("");
	});
	$(expr).blur(function() {
		if($(expr).val() == "") $(expr).val(assist);
	});
}

function genereSelectRecherche(nomForm, niv){
	
	var id = $('#selRub'+niv).val();
	var niv1 = 1;
	var niv2 = 2;
	var niv3 = 3;
	
	var id1 = $('#selRub'+niv1).val();
	var id2 = $('#selRub'+niv2).val();
	var id3 = $('#selRub'+niv3).val();
	
	if(niv != niv1) {
		// On vide la liste
		$('#selRub1 > option:not(#selRub1 > option:first)').remove();
		$.get('index.php?getD=listeProduit&id=' + id + '&idOld=' + id1, function(data) {
			if(data == ' ') {
				$('#selRub1').attr('disabled',true);
			} else {
				$('#selRub1').attr('disabled',false);
				$('#selRub1').append(data);
			}
		});
	}
	
	if(niv != niv2) {
		// On vide la liste
		$('#selRub2 > option:not(#selRub2 > option:first)').remove();
		$.get('index.php?getD=listePays&id=' + id + '&idOld=' + id2, function(data) {
			if(data == ' ') {
				$('#selRub2').attr('disabled',true);
			} else {
				$('#selRub2').attr('disabled',false);
				$('#selRub2').append(data);
			}
			
		});
	}
	
	if(niv != niv3) {
		// On vide la liste
		$('#selRub3 > option:not(#selRub3 > option:first)').remove();
		$.get('index.php?getD=listeAppelation&id=' + id + '&idOld=' + id3, function(data) {
			if(data == ' ') {
				$('#selRub3').attr('disabled',true);
			} else {
				$('#selRub3').attr('disabled',false);
				$('#selRub3').append(data);
			}
		});
	}
	
	if($('.rechercheAvancee').css('display') != 'none') {
	
		//On vide la liste des millésimes
		$('#millesime > option:not(#millesime > option:first)').remove();
		$.get('index.php?getD=listeMillesimes&id=' + id, function(data) {
			if(data == ' ') {
				$('#millesime').attr('disabled',true);
			} else {
				$('#millesime').attr('disabled',false);
				$('#millesime').append(data);
			}
		});
	
	}
}

function showToolTipUpToElement(expr, message) {
	exprErr = '#tooltip';
	if(message != "") {
		if($(exprErr).size() > 0) {
			$(exprErr).remove();
		}
		var toolTip = '<div id="tooltip" class="toolTip" '+ 
						'onClick="$(this).remove();">'+message+'</div>';
		$(expr).before(toolTip);
		var errOffsetTop = $(expr).offset().top - (-20);
		var errOffsetLeft = $(expr).offset().left - 50;
		
		$(exprErr).css('top',errOffsetTop);
		$(exprErr).css('left',errOffsetLeft);
		
	}
}

function showCaddieToolTip(message) {
	expr = "#panier";
	exprErr = '#tooltipCaddie';
	if(message != "") {
		if($(exprErr).size() > 0) {
			$(exprErr).remove();
		}
		var toolTip = '<div id="tooltipCaddie" class="toolTip" '+ 
						'onClick="$(this).remove();">'+message+'</div>';
		$(expr).before(toolTip);
		var errOffsetTop = $(expr).offset().top -30;
		var errOffsetLeft = $(expr).offset().left;
		
		$(exprErr).css('top',errOffsetTop);
		$(exprErr).css('left',errOffsetLeft);
		
	}
	$(exprErr).oneTime(5000, function() {$(exprErr).remove();});
}



function majPrixTotal(prix) {
	$('#prixTotal').html(truncateFloat(parseInt(prix)));
	majPanier();
}

function truncateFloat(float) {
	
	var res = float.toString();
	if(res.indexOf('.',0) != -1)
		res = res.substring(0,res.indexOf('.',0)+3)
	
	return res;
}

function majPanier() {
	$.getJSON("index.php?getD=getQteEtPrixTotalAjax",
	        function(data){
	            $('#panierPrixTotal').html(truncateFloat(data.prixTotal));
	            $('#panierQteTotale').html(truncateFloat(data.qteTotale));
	       });
}

function validerCommande() {
	$.getJSON("index.php?getD=getQteEtPrixTotalAjax",
	        function(data){
			     if(parseInt($('#prixTotal').html()) == parseInt(data.prixTotal)
	            	&& parseInt($('#panierQteTotale').html()) == parseInt( data.qteTotale)) {
	                   
	            	document.location = '?getA=payer_caddie';
	            } else {
	            	showToolTipUpToElement('#boutonValiderCommande', 'Le panier a été modifier,'
	            			+'rechargez la page pour voir les modifications et valider la commande.');
	            }
	            	
	       });
}

function validFormulaireAdresse(form) {

	$('#tooltipErreur').empty();
	
	var empty = isEmptyValue(form+" input[name='nom']",'Veuillez indiquer votre nom');
	empty = isEmptyValue(form+" input[name='civilite_f']",'Veuillez indiquer votre civilitée') || empty;
	empty = isEmptyValue(form+" input[name='prenom']",'Veuillez indiquer votre prénom') || empty;
	empty = isEmptyValue(form+" input[name='adresse']",'Veuillez indiquer l\'adresse') || empty;
	empty = isEmptyValue(form+" input[name='cp']",'Veuillez indiquer le code postal') || empty;
	empty = isEmptyValue(form+" input[name='ville']",'Veuillez indiquer la ville') || empty;
	
	var tel = isValid(form+" input[name='tel1']", validTel, 'Téléphone invalide');
	
	var date = isValid(form+" input[name='date_naissance']", validDate, 'Date invalide');

	if($('#tooltipErreur').html() != "") {
		var errOffsetTop = $(form).offset().top - -10;
		var errOffsetLeft = $(form).offset().left - -250;
		
		$('#tooltipErreur').css('top',errOffsetTop);
		$('#tooltipErreur').css('left',errOffsetLeft);
		$('#tooltipErreur').show();
	} 
	
	
	if(!empty && tel && date) {
		$(form).submit();
	}
}

function validFormulaireNewMail(form) {
	$('#tooltipErreur').empty();

	var mail = isValid(form+" input[name='mail']", validMail, 'Mail invalide');
	mail = isValid(form+" input[name='mail_conf']", validMail, 'Confirmation du mail invalide') && mail;
	if(mail) {
		mail = isEqualValues(form+" input[name='newmail']",
							form+" input[name='newmailconf']",
							'Le mail et sa confirmation ne correspondent pas') && mail;
	}
	
	if($('#tooltipErreur').html() != "") {
		var errOffsetTop = $(form).offset().top - -10;
		var errOffsetLeft = $(form).offset().left - -250;
		
		$('#tooltipErreur').css('top',errOffsetTop);
		$('#tooltipErreur').css('left',errOffsetLeft);
		$('#tooltipErreur').show();
	} 
	
	
	if(mail) {
		$(form).submit();
	}
}


function validFormulaireNewMdp(form) {
	$('#tooltipErreur').empty();

	var mdp = isValid('#s_mdp2', validMdp, 'Mot de passe invalide : 6 à 15 caracteres');
	mdp = isValid('#s_mdp3', validMdp, 'Confirmation du mot de passe invalide : 6 à 15 caracteres') && mdp;
	if(mdp) {
		mdp = isEqualValues('#s_mdp2','#s_mdp3','Le mot de passe et sa confirmation ne correspondent pas') && mdp;
	}	
	
	if($('#tooltipErreur').html() != "") {
		var errOffsetTop = $(form).offset().top - -10;
		var errOffsetLeft = $(form).offset().left - -250;
		
		$('#tooltipErreur').css('top',errOffsetTop);
		$('#tooltipErreur').css('left',errOffsetLeft);
		$('#tooltipErreur').show();
	} 
	
	
	if(mdp) {
		$(form).submit();
	}
}

function valideContact() {
	
	var form = '#formContact';
	
	$('#tooltipErreur').empty();
	
	var empty = isEmptyValue(form+" input[name='nom']",'Veuillez indiquer votre nom');
	//empty = isEmptyValue(form+" input[name='civilite']",'Veuillez indiquer votre civilitée') || empty;
	empty = isEmptyValue(form+" input[name='prenom']",'Veuillez indiquer votre prénom') || empty;
	
	//var tel = isValid(form+" input[name='tel']", validTel, 'Téléphone invalide');
	
	var mail = isValid(form+" input[name='mail']", validMail, 'Mail invalide');
	mail = isValid(form+" input[name='conf_email']", validMail, 'Confirmation du mail invalide') && mail;
	if(mail) {
		mail = isEqualValues(form+" input[name='mail']",
							form+" input[name='conf_email']",
							'Le mail et sa confirmation ne correspondent pas') && mail;
	}
	
	if($('#tooltipErreur').html() != "") {
		var errOffsetTop = $(form).offset().top - -10;
		var errOffsetLeft = $(form).offset().left - -250;
		
		$('#tooltipErreur').css('top',errOffsetTop);
		$('#tooltipErreur').css('left',errOffsetLeft);
		$('#tooltipErreur').show();
	} 
	
	
	if(!empty && mail) {
	
	$.post("index.php?getD=contactAjax", $('#formContact').serialize(),
		function (data) {
			if(data.indexOf('Erreur : ',0) > 0) {
			} else {
				$("#formContact *:not(#formContact input[type='hidden'])").val('');
			}
			dialogBox(data);
		});
	}	
}

function fenetre_magique(expr) {
	$(expr).dialog({
		draggable: false,
		resizable: false,
		title: 'Information',
		modal: true 
	});
	$(expr).click(function() {$(expr).dialog('close')});
	
	$('.ui-widget-overlay').click(function() {$(expr).dialog('close')});
	
	$(expr).oneTime(5000, function() {$(expr).dialog('close')});
}

function loadCommande() {
	if($('#commandeLoader').val() != '' &&
		$('#commandeLoader').val() != 'all') {
	
		$.post('index.php?getD=voirCommandeSeulAjax',$('#form_commande').serialize(),
			function(data) {
				$('#pageCommande').empty();
				$('#pageCommande').html(data);
			});
		}				
}

function addCommandeToPanier(idCommande) {
	$.get('index.php?getD=addCommandeToPanierAjax&idCom='+idCommande,
			function(data) {
				showCaddieToolTip(data);
				if(!(data.indexOf('Erreur : ',0) > 0)) {
					majPanier();
					document.location = "devis-nettoyage-bordeaux-gironde.html";
				}
			});
		}

function dialogBox(message) {
	
	var dialog = '#dialogBox';
	
	$('body').append('<div id="dialogBox">'+message+'</div>');
	
	$(dialog).dialog({
		draggable: false,
		resizable: false,
		title: 'Information',
		modal: true,
		close:function(){$(dialog).remove();}
	});
	
	$(dialog).click(function() {$(dialog).dialog('close')});
	
	$('.ui-widget-overlay').click(function() {$(dialog).dialog('close')});
	
	$(dialog).oneTime(5000, function() {$(dialog).dialog('close')});
}

function selectBesoinAjax() {
	cleanDevis('besoin');
	$.getJSON('index.php?getD=selectBesoinAjax&id='+$('#besoin').val(), function(data) {
		$.each(data, function(i,item){
            $("<option></option>").val(item.value).html(item.name).appendTo("#lieu");
          });
		if(data.length > 0) $("#lieu").attr('disabled','');
		else $("#lieu").attr('disabled','disabled');
		majButtonAdd();
		selectIE();
	});
}

function selectLieuAjax() {
	cleanDevis('lieu');
	$.getJSON('index.php?getD=selectLieuAjax&id='+$('#lieu').val(), function(data) {
		$.each(data, function(i,item){
            $("<option></option>").val(item.value).html(item.name).appendTo("#poste");
          });
		if(data.length > 0) $("#poste").attr('disabled','');
		else $("#poste").attr('disabled','disabled');
		majButtonAdd();
		selectIE();
	});
}

function selectPosteAjax() {
	cleanDevis('poste');
	$.get('index.php?getD=selectPosteAjax&id='+$('#poste').val(), function(data) {
		$("#uniteAff").html(data);
		if($('#poste').val() != '')
			$("#unite").attr('disabled','');
		majButtonAdd();
	});
}


function cleanDevis(select) {
	
	if(select == 'reset') {
		$("#besoin").val('');
	}
	if(select == 'reset' || select == 'besoin') {
		$("#lieu option:not(#lieu option:first)").remove();
		$("#lieu").attr('disabled','disabled');
	}
	
	if(select == 'reset' || select == 'besoin' || select == 'lieu') {
		$("#poste option:not(#poste option:first)").remove();
		$("#poste").attr('disabled','disabled');
	}
	
	if(select == 'reset' || select == 'besoin' || select == 'lieu' || select == 'poste') {
		$("#uniteAff").empty();
		$("#unite").attr('disabled','disabled');
		$("#unite").val('');
	}
	
}

function majButtonAdd() {
	if($('#unite').val() != '' && isValidOnKeyUp('#unite',integer)) {
		$('#buttonAdd').attr('disabled','');
	} else {
		$('#buttonAdd').attr('disabled','disabled');
	}
}


function addToCaddie() {
	
	var form = '#devis';
	
	$.getJSON("index.php?getD=addToCaddieAjax", $(form).serialize(),
			function (data) {
				
				prixHT = data.poste.prix * data.poste.quantite;
				
				prixTVA = truncateFloat(parseFloat(prixHT) * parseFloat(data.poste.tva) / 100);
					
				prixTTC = truncateFloat(parseFloat(prixHT) * (1+(parseFloat(data.poste.tva) / 100)));
		
				prixHT = truncateFloat(prixHT);
				
				ligne = '<tr class="ligne_'+data.lieu.id+'_'+data.poste.id+'">'+
				    '<td height="25" class="border_right">'+data.lieu.nom+'</td>'+
				    '<td class="border_right case_intervention">'+data.poste.nom+'</td>'+
				    '<td class="border_right">'+data.poste.prix+'</td>'+
				    '<td class="border_right alignLeft">'+
				    '<form id="form'+data.lieu.id+'_'+data.poste.id+'" class="inline">'+
				    '<input type="hidden" name="id_lieu" value="'+data.lieu.id+'"/>'+
				    '<input type="hidden" name="id_poste" value="'+data.poste.id+'"/>'+
				    '<input type="text" size="1" name="quantite" value="'+data.poste.quantite+'" style="text-align:right;" '+
				    '	onBlur="majCaddie('+data.lieu.id+','+data.poste.id+')"/>'+
				    '	</form>('+data.poste.unite+
				    ')</td>'+
				    '<td class="border_right prix_ht">'+prixHT+'</td>'+
				    '<td class="border_right tva">'+prixTVA+' ('+data.poste.tva+'%)</td>'+
				    '<td class="border_right prix_ttc">'+prixTTC+'</td>'+
				    '<td class="">'+
				    	'<img src="images/bouton_supprimer.png" width="54" height="16" class="main"'+
				    	'onClick="deleteFromCaddie('+data.lieu.id+','+data.poste.id+')"/></td>'+
				  '</tr>';
		
				if($('#besoin').val() != '') {
					$('#disp_'+$('#besoin').val()+' table').append(ligne);
				}
				
				majDisp();
				cleanDevis('reset');
				majButtonAdd();
	});
				
}

function majDisp() {
	
	if($('#disp_58 tr').size() <= 1) {
		$('#disp_58').hide();
	} else {
		$('#disp_58 tr:not(#disp_58 tr:first)').each(function (i) {
			$(this).removeClass('ligne_grise');
			$(this).removeClass('ligne_grise2');
			if(i%2 == 0) $(this).addClass('ligne_grise2');
			else $(this).addClass('ligne_grise');
		});
		$('#disp_58').show();
	}

	if($('#disp_59 tr').size() <= 1) {
		$('#disp_59').hide();
	} else {
		$('#disp_59 tr:not(#disp_59 tr:first)').each(function (i) {
			$(this).removeClass('ligne_grise');
			$(this).removeClass('ligne_grise2');
			if(i%2 == 0) $(this).addClass('ligne_grise2');
			else $(this).addClass('ligne_grise');
		});
		$('#disp_59').show();
	}

	
}

function majCaddie(idLieu, idElement) {
	$.getJSON("index.php?getD=majCaddieAjax", $('#form'+idLieu+'_'+idElement).serialize(),
	        function(data){
					$('.ligne_'+idLieu+'_'+idElement+' .prix_ht').html(data.prix_ht);
					$('.ligne_'+idLieu+'_'+idElement+' .tva').html(data.tva);
					$('.ligne_'+idLieu+'_'+idElement+' .prix_ttc').html(data.prix_ttc);
			});
	
}

function deleteFromCaddie(idLieu, idElement) {
	$.post("index.php?getD=deleteFromCaddieAjax", {idLieu:idLieu, idElement:idElement},
	        function(data){
				if(data.indexOf('Erreur : ',0) > 0) {
					
				} else {
					$('.ligne_'+idLieu+'_'+idElement).remove();
					majDisp();
				}
	       });
	
}

function getAdresseAjax() {
	val = $('#selectAdresse').val();
	if(val != '') {
		$('#modifAdresse').empty();
		$('#modifAdresse').load('?getD=getAdresseAjax',{idAdresse : val});
	}
}

function isValidOnKeyUp(expr, regex) {
	//Construction de la regex
	tester = new RegExp(regex);
	//Si regex invalide
	if ($(expr).val()=="" || !tester.test($(expr).val())) {
		//afficher le message
		$(expr).css('border','#e31f1c 2px solid');
		
		return false;
	} else {
		$(expr).css('border','1px solid #8B8C90');
		return true;
	}
}




