// FICHIER DE FONCTIONS COMMUNES ///////////////////////////////////
$(document).ready(function(){
	bindMenu();
	bindFooterSlider();
	bindSlideshow();
	
	// Track events
	$('a').filter(':[href$=pdf],:[href$=doc],:[href$=docx]').bind('click', bindDocumentClick);
});

function bindDocumentClick() {
	var category = 'download';
	var action = 'click';
	var label = $(this).attr('href');
	
	if (typeof(_gaq) != 'undefined') {
		_gaq.push(['_trackEvent', category, action, label]); 
	}
}

/**
 *	Menu principale d'entête
 */
function bindMenu() {
	var segments = window.location.href.split('/');

	if (segments.length <= 5) {
		return false;
	}

	$('.nav-principale a[href*=' + segments[segments.length - 2] + ']:first').addClass('actif');

	Cufon.refresh('#entete ul.nav-principale li a.actif');
}

/**
 *	Centre de documentation en bas de page
 *	Slide up and down
 */
function bindFooterSlider() {
	$('p.slider a').click(
		function(){
			if ($('#footer .documents').is(':visible')) {
				$('#footer .documents').slideUp(500);
			} else {
				$('#footer .documents').slideDown(500);

				$('html, body').animate({scrollTop:$('body').height()}, 500);
			}

			return false;
		}
	);

	$('.close a').click(function(){
		$('p.slider a').trigger('click');

		return false;
	})
}


/**
 *	Slideshow
 *	 - Bandeaux page d'accueil
 *	 - Bas de de page centre doc
 */
function bindSlideshow() {
	$('.slideshow').each(function(){
		var slideshow = $(this);
		slideshow.find('ul.slides > li:not(:first)').hide();

		slideshow.find('ul.slides').width(slideshow.find('ul.slides').width() * slideshow.find('ul.slides > li').length);
		slideshow.find('ul.nav li a:not(.prev, .next)').click(function() {
			var current = slideshow.find('ul.slides > li:visible:first');
			var next = slideshow.find('ul.slides > li' + $(this).attr('href'));
			
			if (current.attr('id') == next.attr('id')) {
				return false;
			}

			current.fadeOut(500);
			next.css({left:'-' + next.width() + 'px', opacity:0}).show().animate({left:0, opacity:1}, 500);

			slideshow.find('ul.nav li a').removeClass('actif');
			$(this).addClass('actif');

			return false;
		});

		slideshow.find('ul.nav li a.next').click(function(){
			var current = slideshow.find('ul.slides > li:visible:first');
			var next = current.next();

			if (!next.length) {
				next = slideshow.find('ul.slides > li:first');
			}

			console.log(next.position().left);

			current.fadeOut(500);
			next.css({left:'-' + next.width() + 'px', opacity:0}).show().animate({left:0, opacity:1}, 500);

			return false;
		});

		slideshow.find('ul.nav li a.prev').click(function(){
			var current = slideshow.find('ul.slides > li:visible:first');
			var prev = current.prev();

			if (!prev.length) {
				prev = slideshow.find('ul.slides > li:last');
			}

			console.log(prev);

			current.fadeOut(500);
			prev.css({left:'' + prev.width() + 'px', opacity:0}).show().animate({left:0, opacity:1}, 500);

			return false;
		});
	})
}

/**
 *	Accueil
 */

function bindHome() {
	var time = 7000;
	var interval = setInterval('changeHomeSlideshow()', time);

	$('.slideshow:first').mousedown(function() {
		clearInterval(interval);
	});
}

function changeHomeSlideshow() {
	var item = $('.slideshow:first ul.nav li').has('a.actif').next().find('a');
	
	if (!item.length) {
		item = $('.slideshow:first ul.nav li:first a');
	}


	item.trigger('click');
}

/**
 *	Testez vos habitudes
 */
function bindQuestions() {
	$('.result').hide();

	$('.questions > div:not(:first)').hide();

	var left = $('.questions > div:first').position().left;

	$('.nav a').click(function(){
		var next_id = $(this).attr('href');

		if (next_id == '#results') {
			var total = 0;

			for(var i in score) {
				total += parseInt(score[i]);
			}

			if (total <= 12) {
				$('.result.score-3').show();
			} else if (total <= 29) {
				$('.result.score-2').show();
			} else {
				$('.result.score-1').show();
			}
		}

		// Vers la prochaine question
		if ($(this).parent().hasClass('next')) {
			var input = $(this).parents('div.boite-grise-question').find('input:checked');
			
			// Pas de réponse choisie
			if (!input.length) {
				return false;
			}
			
			var value = input.val();
			var score_id = next_id.replace(/#/g, '');
			
			score[score_id] = value;
		}

		// Animation de transition prev next
		var current = $('.questions > div:not('+ next_id + ')');
		var next = $('.questions div'+ next_id + '');

		current.fadeOut(500);
		if ($(this).parent().hasClass('next')) {
			next.css({left:'-' + next.width() + 'px', opacity:0})
				.show()
				.animate(
					{
						left:left, opacity:1
					},
					500,
					function() {
						if ($.browser.msie) {
							this.style.removeAttribute('filter');
						}
					}
				);
		} else {
			next.css({left:'' + next.width() + 'px', opacity:0})
				.show()
				.animate(
					{
						left:left, opacity:1
					},
					500,
					function() {
						if ($.browser.msie) {
							this.style.removeAttribute('filter');
						}
					}
				);
		}
		
		return false;
	});
}

/**
 *	Mise sur toi
 */
function bindMiseSurToi() {
	 $('.content .left.half > div').css('width', $('.content .left.half').width());
	 $('.content .left.half > div:not(:first)').hide();

	$('.left.quart a').click(function() {
		 var id = $(this).attr('href');

		 $('.content .left.half > div:not(' + id + ')').slideUp(500);
		 $(id).slideDown(500);

		 return false;
	});
}

/**
 *	Mise sur toi
 */
function bindCentreAide() {
	 $('form.centres select[name=region]').change(function(){
		var id = $(this).val();
		console.log(id);
		$('form.centres select[name=ville]').attr('disabled', true).hide();
		$('form.centres select[name=ville][id=region_' + id + ']').attr('disabled', false).show();
	 });
	 $('form.centres select[name=region]').trigger('change');
}

function bindFormBonCommande(){
	$('#loader').hide();
	$('#complete').hide();
	$('#fCommande').bind('submit', function(e){
		e.preventDefault();
		
		if(validerFormulaire($(this)) == 0){
			$('#loader').show();
			$.ajax({
				url: 'http://'+$('#server_name').val()+'/fr/ajax/send-commande.php',
				data:{
					prenom: 		$('#prenom').val(),
					nom: 			$('#nom').val(),
					courriel: 		$('#courriel').val(),
					organisme: 		$('#organisme').val(),
					adresse: 		$('#adresse').val(),
					ville: 			$('#ville').val(),
					province: 		$('#province').val(),
					code_postal: 	$('#code_postal').val(),
					telephone: 		$('#telephone').val(),
					telecopieur: 	$('#telecopieur').val(),
					qty_depliant_fr:$('#qty_depliant_fr').val(),
					qty_depliant_en:$('#qty_depliant_en').val(),
					qty_brochure_fr:$('#qty_brochures_fr').val(),
					qty_brochure_en:$('#qty_brochures_en').val()
				},
				type: 'POST',
				success:function(msg){
					$('#loader').hide();
					$('#complete').show();
				}
			});
		} else {
			// C'EST ICI QU'IRAS LE CODE POUR FAIRE APPARAITRE LES MESSAGES D'ERREURS	
			// PR�SENTEMENT SEULEMENT LE STYLE CHANGE, LE PARENT OBTIENT LA CLASSE ERREUR
			// LIBRE A TOI DE STYLER LE TOUT � TA FA�ON
		}
	});
}

function validerFormulaire(__frm) {
	var erreur = 0;
	$(".requis:input").not($(".checkbox .requis:input", __frm)).each(function(){
		if($.trim($(this).val()) == "" || $(this).val() == 0){
			$(this).parent().addClass("erreur");
			erreur++;
		} else {
			$(this).parent().removeClass("erreur");
		}
	});
	
	$(".checkbox .requis:input").each(function(){
		tagname = $(".checkbox").get(0).tagName
		if(!$(this).attr("checked")){
			$(this).parents(tagname).addClass("erreur");
			erreur++;
		} else {
			$(this).parents(tagname).removeClass("erreur");
		}
		
	});
	
	$(".courriel").each(function(){
		if(!validerCourriel($.trim($(this).val()))){
			$(this).parent().addClass("erreur");
			erreur++;
		} else {
			$(this).parent().removeClass("erreur");
		}
	});
	
	$('.same').each(function(){
		var other = 'confirmation_'+$(this).attr('name');
		if($(this).attr('name').indexOf('confirmation')!=-1){
			other = $(this).attr('name').substring(13);
		}
		
		if(($(this).val() != $('input[name='+other+']').val()) || $(this).val()==''){
			$(this).parent().addClass("erreur");
			$('input[name=confirmation_'+$(this).attr('name')+']').addClass("erreur");
			erreur++	
		}else if(($(this).hasClass('courriel') && validerCourriel($.trim($(this).val()))) || !$(this).hasClass('courriel')){
			
			$(this).parent().removeClass("erreur");
			$('input[name=confirmation_'+$(this).attr('name')+']').removeClass("erreur");
		}
	});
	
	
	return erreur;
}
function validerCourriel(val){
	var reg =/^[_a-zA-Z0-9.\-]*@[a-zA-Z0-9]([_a-zA-Z0-9\-]+\.)+([a-zA-Z]{2,10})$/;
	if(val.match(reg)) {
		return true;
	} else {
		return false;
	}
}

function shuffle(array) {
	var s = []; 
	while (array.length) s.push(array.splice(Math.random() * array.length, 1)); 
	while (s.length) array.push(s.pop());
} 
//
//  jQuery IE Fade Fix
//
//  Adapted from code found at http://jquery.malsup.com/fadetest.html.
//
//  This is only needed for IE 7 and earlier, so this is best added to your page using IE's conditional comments
//  (http://msdn.microsoft.com/en-us/library/ms537512%28VS.85%29.aspx) as follows:
//      <!--[if lt IE 8]><script type="text/javascript" src="jquery-ie-fade-fix.js"></script><![endif]-->
//
(function($) {
    $.fn.fadeIn = function(speed, callback) {
        return this.animate({opacity: 'show'}, speed, function() {
                if ( $.browser.msie )
                {
                        this.style.removeAttribute('filter');
                }
                if ( $.isFunction(callback) )
                {
                        callback.call(this);
                }
        });
    };

    $.fn.fadeOut = function(speed, callback) {
        return this.animate({opacity: 'hide'}, speed, function() {
                if ( $.browser.msie )
                {
                        this.style.removeAttribute('filter');
                }
                if ( $.isFunction(callback) )
                {
                        callback.call(this);
                }
        });
    };

    $.fn.fadeTo = function(speed, to, callback) {
        return this.animate({opacity: to}, speed, function() {
                if ( to == 1 && $.browser.msie )
                {
                        this.style.removeAttribute('filter');
                }
                if ( $.isFunction(callback) )
                {
                        callback.call(this);
                }
        });
    };
})(jQuery);
