/* French initialisation for the jQuery UI date picker plugin. */
/* Written by Keith Wood (kbwood{at}iinet.com.au),
			  Stéphane Nahmani (sholby@sholby.net),
			  Stéphane Raimbault <stephane.raimbault@gmail.com> */
(function( factory ) {
	if ( typeof define === "function" && define.amd ) {

		// AMD. Register as an anonymous module.
		define([ "../jquery.ui.datepicker" ], factory );
	} else {

		// Browser globals
		factory( jQuery.datepicker );
	}
}(function( datepicker ) {
	datepicker.regional['fr'] = {
		closeText: 'Fermer',
		prevText: 'Précédent',
		nextText: 'Suivant',
		currentText: 'Aujourd\'hui',
		monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin',
			'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
		monthNamesShort: ['janv.', 'févr.', 'mars', 'avril', 'mai', 'juin',
			'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
		dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
		dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
		dayNamesMin: ['D','L','M','M','J','V','S'],
		weekHeader: 'Sem.',
		dateFormat: 'dd/mm/yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
	datepicker.setDefaults(datepicker.regional['fr']);

	return datepicker.regional['fr'];

}));


$(document).ready(function() {
	//chat_scroll() ;
	chat_tabs_gamme_saison() ;	
	//chat_slideshow() ;
	$('[data-toggle="tooltip"]').tooltip() ;
	chat_systeme_commande() ;
        chat_profil_user() ;
}) ;

function chat_profil_user() {
    if($('#profil-user').size()) {
        if($('#user-no_mail').is(':checked')) {
            $('#mails-jours-prod').hide() ;
        }
        $('#user-no_mail').change(function() {
            if($('#user-no_mail').is(':checked')) {
                $('#mails-jours-prod').hide() ;
            }
            else {
                $('#mails-jours-prod').fadeIn() ;
            }
        }) ;
    }
}

function chat_event_click_point_vente(id) {
	$('#commande-id_point_vente').val(id) ;
	
	$('#points-vente .point-vente').removeClass('selected') ;
	$('.point-vente-'+id).addClass('selected') ;
	$('.point-vente-'+id).hide().fadeIn('fast') ;
	
	var pain = parseInt($('.point-vente-'+id).data('pain')) ;
	var vrac = parseInt($('.point-vente-'+id).data('vrac')) ;
	
	if(pain) {
		$('#pain .table').show() ;
		$('#pain .indisponible').hide() ;
	}
	else {
		$('#pain .table').hide() ;
		$('#pain .indisponible').show() ;
	}
	
	if(vrac) {
		$('#vrac .table').show() ;
		$('#vrac .indisponible').hide() ;
	}
	else {
		$('#vrac .table').hide() ;
		$('#vrac .indisponible').show() ;
	}
	
	$('#produits, .valider-commande, .btn-commentaire').fadeIn() ;
}

function chat_init_horaire_point_vente(date) {
	$('#points-vente .horaires .jour').hide() ;
	var selector_jour = '#points-vente .horaires .jour-'+date.getDay() ; 
	$(selector_jour).show() ;

	// on cache les points de vente si la livraison n'est pas cochée
	$('#points-vente .point-vente').show() ;
	if($('#livraison').val() == 0) {
		$('#points-vente .point-vente').hide() ;
		$('#points-vente .point-vente').each(function() {
			if($(this).find('.nom').html() == 'Le Chat des Noisettes') {
				$(this).show() ;
			}
		}) ;
	}
	
	// on cache les points de vente qui sont fermés
	//$('#points-vente .point-vente').removeClass('disabled') ;
	$(selector_jour).each(function() {
		if($(this).html() == 'Fermé') {
			//$(this).parent().parent().parent().addClass('disabled') ;
			$(this).parent().parent().parent().hide() ;
		}
	}) ;
}

function chat_systeme_commande() {
	
	if($('.commande-form').size()) {
		// affichage des différentes parties du formulaire
		if(!$('#commande-id_production').val()) {
			$('.field-commande-id_point_vente, #points-vente, #produits, .valider-commande, #info-horaire-retrait-commande, .btn-commentaire').hide() ;
		}
		else if(!$('#commande-id_point_vente').val()) {
			$('#produits, .valider-commande, .btn-commentaire').hide() ;
		}
		
		if($('#commande-id_point_vente').val())
			chat_event_click_point_vente($('#commande-id_point_vente').val()) ;
		
		$('#points-vente .point-vente').click(function() {
			var id = parseInt($(this).find('.id').html()) ;
			chat_event_click_point_vente(id) ;
		}) ;	
		
		// datepicker
		var dates_production = [] ;
		$('#dates div').each(function() {
			dates_production.push($(this).find('.date').html()) ;
		}) ;
		
		//var var_datepicker = $.datepicker ;
		
		$('#datepicker-production').datepicker({
		    beforeShowDay: function(date){
		        var string = $.datepicker.formatDate('dd/mm/yy', date);
		        
		        for(var i=0; i<dates_production.length; i++) {
		        	//alert(dates_production[i]+' '+string) ;
		        	if(dates_production[i] == string)
		        		return [1] ;
		        }
		        
		        return [0] ;
		        
		        // désactivé car internet explorer plante
		        //return [ dates_production.indexOf(string) != -1 ] ;
		    },
		    onSelect: function(selectedDate) {
		    	
		    	$('#has-commande-en-cours').hide() ;
		    	
		    	var tab_date = selectedDate.split('/') ;
		    	var date = new Date(tab_date[2],tab_date[1]-1,tab_date[0]) ;
		    	
		    	// set id production
		    	var id_production = 0 ;
		    	$('#dates div .date').each(function() {
		    		if($(this).html() == selectedDate) {
		    			id_production = $(this).parent().find('.id_production').html() ;
		    		}
		    	});
		    	$('#commande-id_production').val(id_production) ;
		    	
		    	// verif si le gars a une commande en cours pour cette production
		    	var has_commande_en_cours = false ;
		    	$('#commandes-en-cours .commande').each(function() {
		    		if($(this).data('idproduction') == id_production) {
		    			//alert('bada') ;
		    			$('#has-commande-en-cours a').attr('href',$(this).data('href')) ;
		    			$('#has-commande-en-cours').show() ;
		    			has_commande_en_cours = true ;
		    			
		    			$('.field-commande-id_point_vente, #points-vente, #produits, #info-horaire-retrait-commande').hide() ;
		    		}
		    	}) ;
		    	
		    	if(!has_commande_en_cours) {
			    	
		    		chat_systeme_commande_produits_dispos(tab_date[2]+'-'+tab_date[1]+'-'+tab_date[0], date) ;
		    		
			    	$('#produits, .valider-commande, .btn-commentaire').hide() ;
			    	
			    	// déselection points de vente
			    	$('#points-vente .point-vente').removeClass('selected') ;
			    	$('#commande-id_point_vente').val('') ;
			
			    	// affichage points de vente
			    	$('.field-commande-id_point_vente, #points-vente, #info-horaire-retrait-commande').fadeIn() ;
		    	}
		    	
		    }
		}) ;
		
		if($('#commande-id_production').val()) {
			$("#dates .id_production").each(function() {
				if($(this).html() == $('#commande-id_production').val()) {
					var tab_date = $(this).parent().find('.date').html().split('/') ;
					var date = new Date(tab_date[2],tab_date[1]-1,tab_date[0]); 
					$('#datepicker-production').datepicker('setDate',date) ;
					chat_systeme_commande_produits_dispos(tab_date[2]+'-'+tab_date[1]+'-'+tab_date[0], date) ;
					chat_init_horaire_point_vente(date) ;
				}
			}) ;
		}
		
		
		// tableau produits
		$('.commande-form .move-quantity').click(function() {
			
			var vrac = ($(this).parent().parent().parent().parent().parent().parent().parent().attr('id') == 'vrac') ;
			
			if(vrac) {
				var quantite = parseInt($(this).parent().parent().find('input.quantity').val()) ;
				
				if($(this).hasClass('moins') && quantite != 0)
					quantite -= 500 ;
				if($(this).hasClass('plus'))
					quantite += 500 ;
				
				$(this).parent().parent().find('input.quantity').val(quantite) ;
				
				chat_systeme_commande_maj_table_prix();
				
			}
			else {
				var quantite_totale = 0 ;
				$('.quantity').each(function() {
					quantite_totale += parseInt($(this).val()) ;
				}) ;
				
				if($(this).hasClass('plus') && quantite_totale > 2 && $('#confiance').val() == 0) {
					$('html, body').animate({  
				        scrollTop: $('#produits').offset().top  - 150
				    }, 'normal', function() {
				    	$('#mess-limit-quantity').fadeOut('fast',function() {
				    		$(this).fadeIn('fast') ;
				    	})
				    });
				}
				else {
					var quantite = parseInt($(this).parent().parent().find('input.quantity').val()) ;
					var quantite_restante = parseInt($(this).parent().parent().parent().find('.quantite-restante .nb').html()) ;
					
					//alert('bada') ;
					if($(this).hasClass('moins') && quantite != 0)
						quantite -- ;
					if($(this).hasClass('plus')){
						
						if(quantite + 1 <= quantite_restante) {
							quantite ++ ;
						}
						else {
							if(quantite_restante <= 5) {
								$(this).parent().parent().parent().find('.quantite-restante').hide().fadeIn() ;
							}
							else {
								// alert ?
								// ...
							}
						}
					}
					
					$(this).parent().parent().find('input.quantity').val(quantite) ;
					
					chat_systeme_commande_maj_table_prix();
				}
			}
			
		}) ;
		chat_systeme_commande_maj_table_prix() ;
	}
        
        // commentaire commande
        $('.commande-form .btn-commentaire').click(function() {
            if($('.field-commande-commentaire').css('display') == 'none') {
                $('.field-commande-commentaire').slideDown() ;
            }
            else {
                $('.field-commande-commentaire').slideUp() ;
            }
            return false ;
        }) ;
        
	
}

function chat_systeme_commande_produits_dispos(str_date, date) {
	// produits dispos à la vente à cette date
	$.get('index.php',{
		r: 'commande/infos-production',
		date: str_date, 
	}, function(data) {
		
		if(data.produits_dispos) {
			$.each(data.produits_dispos, function( id_produit, produit ) {
				
				if(produit.actif) $('.produit-'+id_produit).show() ;
				else $('.produit-'+id_produit).hide() ;
				
				var quantite_restante = produit.quantite_max - produit.quantite_commandee ;
				//if(quantite_restante > 0 || !produit.epuise) {
				/*if(quantite_restante > 0) {
					$('.produit-'+id_produit+' .epuise').hide() ;
					$('.produit-'+id_produit+' .input-group').show() ;
					$('.produit-'+id_produit+' .quantite-restante .nb').html(quantite_restante) ;
					
					if(parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) > 5) {
						$('.produit-'+id_produit+' .quantite-restante').hide() ;
					}
					else {
						$('.produit-'+id_produit+' .quantite-restante').show() ;
					}
				}
				else {
					$('.produit-'+id_produit+' .epuise').show() ;
					$('.produit-'+id_produit+' .quantite-restante').hide() ;
					$('.produit-'+id_produit+' .input-group').hide() ;
				} */
				
				
				
				if((!produit.vrac && (!quantite_restante || quantite_restante < 0 || produit.epuise)) ||  (produit.vrac && produit.epuise)) {
					$('.produit-'+id_produit+' .epuise').show() ;
					$('.produit-'+id_produit+' .quantite-restante').hide() ;
					$('.produit-'+id_produit+' .input-group').hide() ;
				}
				else {
					$('.produit-'+id_produit+' .epuise').hide() ;
					$('.produit-'+id_produit+' .input-group').show() ;
					$('.produit-'+id_produit+' .quantite-restante .nb').html(quantite_restante) ;
					
					if(parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) > 5) {
						$('.produit-'+id_produit+' .quantite-restante').hide() ;
					}
					else {
						$('.produit-'+id_produit+' .quantite-restante').show() ;
					}	
				}
				
				
			});
		}
		
		$('#livraison').val(data.livraison) ;
		chat_init_horaire_point_vente(date) ;
		
	}, 'json') ;
}

function chat_systeme_commande_maj_table_prix() {
	
	// produits pain
	var prix = 0 ;
	$('.commande-form #table-produits tbody tr').each(function() {
		var quantite = parseInt($(this).find('.quantity').val()) ;
		var prix_produit = parseFloat($(this).find('.prix').html()) ;
		var prix_total_produit = quantite * prix_produit ; 
		
		if(prix_total_produit)
			$(this).find('.total').html(formate_prix(prix_total_produit)+' €') ;
		else
			$(this).find('.total').html('--') ;
		
		if(quantite > 0)
			prix += prix_total_produit ;
	}) ;
	
	$('#total-commande strong').html(formate_prix(prix)+' €') ;
	var prix_global = prix ;
        
	// produits vrac
	var prix = 0 ;
	$('.commande-form #table-produits-vrac tbody tr').each(function() {
		var quantite = parseInt($(this).find('.quantity').val()) ;
		var prix_produit = parseFloat($(this).find('.prix').html()) ;
		var prix_total_produit = quantite/1000 * prix_produit ; 
		
		if(prix_total_produit)
			$(this).find('.total').html(formate_prix(prix_total_produit)+' €') ;
		else
			$(this).find('.total').html('--') ;
		
		if(quantite > 0)
			prix += prix_total_produit ;
	}) ;
	
	$('#total-commande-vrac strong').html(formate_prix(prix)+' €') ;
        
        prix_global += prix ;
        
        
        $('#total-commande-bottom span').html(formate_prix(prix_global)) ;
        
        if(prix_global)
            $('#total-commande-bottom').fadeIn() ;
        else
            $('#total-commande-bottom').hide() ;
}

function formate_prix(prix) {
	return prix.toFixed(2).replace( ".", "," ) ;
}

function chat_slideshow() {
	if($('body').hasClass('home')) {
		var base_url = $('#base_url').val() ;
		$.vegas('slideshow', {
	        backgrounds:[
	            //{ src:'./img/background/back2.jpg' },
		        { src:base_url+'/img/background/four.jpg' },
		        { src:base_url+'/img/background/gueulard.jpg' }
	        ], 
	        walk: function() {
	        	$('.vegas-loading').css('display','none') ;
	        	$('.vegas-background').css('position','absolute') ;
	        }
	    })('overlay');
	}
}

function chat_scroll() {
	if($('body').hasClass('home')) {
		$('#header nav ul a[href^="#"]').click(function(){  
		    var the_id = $(this).attr("href");  
		    $('html, body').animate({  
		        scrollTop: $(the_id).offset().top  - 100
		    }, 'normal');  
		
		    return false;  
		  });  

			$(window).scroll(function() {
				chat_event_scroll() ;
			}) ;
			chat_event_scroll() ;
	}
}

function chat_event_scroll() {
	var scroll_top = $(window).scrollTop() ;
	//console.log(scroll_top + ' '+ ($('#horaires').offset().top-100)) ;
	$('#header nav ul a').each(function() {
		var top = $($(this).attr('href')).offset().top ;
		var test = top + $($(this).attr('href')).height() - 150 ;
		//console.log($(this).attr('href')+' : '+scroll_top+ ' | '+ test) ;
		if(scroll_top <= top + $($(this).attr('href')).height() - 150) {
			$('#header a').removeClass('selec') ;
			$(this).addClass('selec') ;
		}
	}) ;
}

function chat_tabs_gamme_saison() {
	$('#tab-gamme-saison a').click(function (e) {
	  e.preventDefault(); 
	  $(this).tab('show');
	});
}