/*
*--------------------------------------------------------------------------------------------------------------------------
* Le code JQuery pour le site Internet
*--------------------------------------------------------------------------------------------------------------------------
*/

function ajouterClassesObligatoires(nomFormulaire){
		if(typeof(nomFormulaire) == 'undefined'){
			nomFormulaire = 'Donnees';
		}

		var nomFormulaire = "form[name=" + nomFormulaire +"]";
		$(nomFormulaire).find(':input,select,textarea').each(function(){
			if($(this).rules().required == true) {
				if($(this).is(':radio')){
					//$(this).closest('.ensembleCheckbox').sibblings('label').addclass('obl');
					$('#lbl_' + $(this).attr('name')).addClass('obl');
				}else if($(this).is(':checkbox')){
					$(this).closest('.boiteChamp').children('label').addClass('obl');
				}else{
					// Retirer le "for^" par Steeve 2010-09-16
					$(nomFormulaire +' :[for='+ $(this).attr('name').replace('[]','') +']').addClass('obl');
				}
			}
		});
}

function smoothScrollToFirstError(){
	var listeErreurs = ($(formTMP).find('.error'));
	
	$.smoothScroll({
		scrollTarget: $(listeErreurs[0]),
		offset :  -150,
		easing: 'easeOutBack'
	});
}

$(document).ready(function() {
	
	
	$("img.image").wrap('<div class="imageContenu floatDroit"></div>');
	$("img.image").wrap('<div class="interieur"></div>');
	$(".imageContenu").prepend('<div class="exterieur"></div>');
	$(".imageContenu").append('<div class="fond"></div>');
	
	//Patch pour les images dans les tableaux
	$(".tableau td .imageContenu").css('margin-left', '0px');

	$("#infoslide .fond").fadeTo(0, 0.75);
	
	activerMenus('nav', 200);
	
	
	
	var contenuPremiereSlide=$("#slideshow .slide:eq(0)");
	if($(contenuPremiereSlide).find('>a').length > 0){
		$("#conteneurSlideshow").find('.lienPlusDInfo').css('display','block').attr('href',$(contenuPremiereSlide).find('>a').attr('href'))
	}else{
		$("#conteneurSlideshow").find('.lienPlusDInfo').css('display','none')
	}
	
	if($('#nbImagesSlideshow').val() > 1){
		$("#slideshow").bxSlider({
			controls: true,
			auto: true,
			speed:750,
			pause:6000,
			prevSelector:'#conteneurSlideshow .prev',
			nextSelector:'#conteneurSlideshow .next',
			captions: true,
			captionsSelector: $("#infoslide div.interieur"),
			onBeforeSlide: function(currentSlideNumber, totalSlideQty, currentSlideHtmlObject){
				if(currentSlideHtmlObject.find('>a').length > 0){
					$("#conteneurSlideshow").find('.lienPlusDInfo').css('display','block').attr('href',currentSlideHtmlObject.find('>a').attr('href'));
				}else{
					$("#conteneurSlideshow").find('.lienPlusDInfo').css('display','none');
				}
			}
		});
	}
	else{
		$("#slideshow").bxSlider({
			auto:false,
			controls: false,
			prevSelector:'#conteneurSlideshow .prev',
			nextSelector:'#conteneurSlideshow .next',
			captions: true,
			captionsSelector: $("#infoslide div.interieur"),
			onBeforeSlide: function(currentSlideNumber, totalSlideQty, currentSlideHtmlObject){
				if(currentSlideHtmlObject.find('>a').length > 0){
					$("#conteneurSlideshow").find('.lienPlusDInfo').css('display','block').attr('href',currentSlideHtmlObject.find('>a').attr('href'));
				}else{
					$("#conteneurSlideshow").find('.lienPlusDInfo').css('display','none');
				}
			}
		});
		$("#conteneurSlideshow").find('.prev').css('display','none');
		$("#conteneurSlideshow").find('.next').css('display','none');
	}

	
	$('#courrielNewsletter').focus(function(){
		if(jQuery.trim($(this).val().toLowerCase())=='votre courriel'){
			$(this).attr('value','');
			$(this).removeClass('gris').addClass('normal');
		}
	});
	$('#courrielNewsletter').blur(function(){
		if(jQuery.trim($(this).val().toLowerCase())=='' || jQuery.trim($(this).val().toLowerCase())=='votre courriel'){
			$(this).attr('value','Votre courriel');
			$(this).removeClass('normal').addClass('gris');
		}
	});
	$('#courrielNewsletter').blur();
	
	$("a.lienExterne").click(function() {
		window.open($(this).attr('href'));
		return false;
	});
	
	$("a#submitNewsletter").click(function() {
		$("form#formNewsletter").submit();
		return false;
	});
	
	
	if ($('input#inputCourriel').length > 0) {
		$('#inputCourriel').focus(function(){
		if(jQuery.trim($(this).val().toLowerCase())=='votre courriel')
		{
			$(this).attr('value','');
		}
	});
	
	$('#inputCourriel').blur(function() {
		if(jQuery.trim($(this).val().toLowerCase())=='' || jQuery.trim($(this).val().toLowerCase())=='votre courriel')
		{
			$(this).attr('value','Votre courriel');
			$(this).removeClass('normal').addClass('gris');
		}
	});
		
	$('#inputCourriel').blur();
	}
});

jQuery.fn.FormaterTelIPhone = function () {
	if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
		    $(this).wrapInner('<a href="tel:'+$(this).text().replace(/[^0-9]+/g,'')+'"></a>');
	}
}

function populerListeVilles(fonction,destination,param,valeur,champVille){
	if (typeof(champVille) == 'undefined')
		champVille = $("#noVille");

	if(param.val() != 0){
		$.ajax({
				url: '/utilitaires/run.php?ajax=1',
				data: { executer: fonction, parametre: param.val(), defaut: valeur, langue:cfg["langue"]}, 
				type: 'get',
				async: false,
				cache: true,
				dataType: "json",
				success: function(data) {
					var obj = destination;
					if(data.length > 0 ){
						obj.html('');
						$.each(data,function(key,values){
							$(obj).append($('<option></option>').attr("value",values.valeur).text(values.texte).attr('selected', values.selected ));
						});
						obj.show().attr("disabled","");
						obj.next().hide().attr("disabled","disabled");
						champVille.show().next().hide().attr("disabled","disabled");
					}else{
						obj.hide().attr("disabled","disabled");
						obj.val("");
						obj.next().show().attr("disabled","");
						champVille.hide().attr("disabled","disabled");
						champVille.val("");
						champVille.next().show().attr("disabled","");
					}
				},
				error: function() {
					alert("Failed to load names");
				}
		});
	}
	return true;
}


function GererErreur(XMLHttpRequest, textStatus, errorThrown)
   {
   alert('ERREUR : \n\n' + XMLHttpRequest.responseText);
//   document.getElementById('formulaireAAfficher').style.display = 'block';
//   $("#formulaireAAfficher").css('display', 'block');
	$.unblockUI();
   }



$(function() {
	/*****************  Template  *****************/
	$(".numeroDeTelephone").FormaterTelIPhone();
	
	/* hauteur bas de page */
	var hauteurPage=$('#page').height();
	//le -51 est pour la barre du bas
	var hauteurFenetre=$(window).height()-51;
	if(hauteurFenetre-hauteurPage > 0){
		var difference=hauteurFenetre-hauteurPage
		$('#basDePage').css('height',($('#basDePage').height()+difference)+'px')
	}
	
	/* Gestion des champs autres */
	$('select:not(#noPays):not(#noProvince):not(#noVille)').each(function(){
		var objName = ($(this).attr('name'));
		objName = (objName.substring(2,objName.length));
		if($('#autre' + objName).length == 1){
			affichageChampAutre($(this));
			$(this).bind('change blur keyup',function(){
				affichageChampAutre($(this));
			});
		}
	});

	function affichageChampAutre(obj){
		var objName = $(obj).attr('name');
		objName = objName.substring(2,objName.length);
		if($(obj).val() == 'autre'){
			$('#autre' +objName).attr('disabled','');
			$(obj).next('.boiteChampAutres').stop(true,true).fadeIn(100);
		}else{
			$(obj).next('.boiteChampAutres').stop(true,true).slideUp(100);
			$('#autre' +objName).attr('disabled','disabled');
		}
	}
	
	/*http://www.scorchsoft.com/news/youtube-z-index-embed-iframe-fix*/
	/*Fixed. My Youtube iframe z-index is ignored and is above a fixed div*/
	$('iframe').each(function(){
		var url = $(this).attr("src");
		if ((typeof(url) != 'undefined') && (url.indexOf('http://www.youtube.com/embed/') == 0)) 
			$(this).attr("src",url+"?wmode=transparent");
	});	

	/*Pour le textarea conter dans les formulaires */
	if(jQuery().jqEasyCounter) {
		$('.charCounter').jqEasyCounter({
		   'maxChars': 500
		});
	};
		
	/*Pour tous les liens, qui n'ont pas le même nom de domaine, on ajouter un target blank, et si le lien ne contient pas d'image et n'a pas de ID, on ajoute une icone après le lien*/
	$("a[href^='http:'],a[href^='https:']")
			.not("[href*='" + location.hostname + "']").attr('target','_blank')
			.not(":has(img)")
			.not("[id]")
			.not(".twitter-share-button")
			.after('<img src="/images/icones/icone_externe.gif" width="12" height="12" alt="external link" style="margin-left:3px;"/>');


	/*Pour l'antispam des courriels */
    $('.antiSpam').each(function(i) {
	  jQuery(this).html(AntiSpam(jQuery(this).html())).toggle();
    });

	/* Ajouter un target blank pour les fichiers  */
	$("a[href$='.pdf'],a[href$='.doc'],a[href$='.docx'],a[href$='.rar'],a[href$='.zip']").attr('target','_blank');


    /* Set le cookie pour la redirection sur la page index */
    $("#autreLangue a").click( function(e) {
	      var langue = this.rel;
		  if (!isNaN(langue))
		  	 $.cookie('langue',langue,{ path: '/', expires: 60 });
	      return true;
    });

	$.nyroModalSettings({
		processHandler: function(settings) {
			//$(settings.from).attr('class');
			var scaleRatio = 1;
			var from = settings.from;
			if (from && from.href && (from.href.indexOf('http://www.youtube.com/watch?v=') == 0|| from.href.indexOf('http://www.youtube.com/p/') == 0)) {
				$.nyroModalSettings({
					type: 'swf',
					zIndexStart : 99999,
					width: (990 * scaleRatio),
					height: (580 * scaleRatio),
					url: (from.href.replace(new RegExp("watch\\?v=", "i"), 'v/')) //+ '&autoplay=1'
				});
			} else if (from && from.href && ($(settings.from).attr('id') == 'lienEnvoyerAmi')) {
				switch (cfg.langueAbr){
					case 'fr' : 
						var tmpURL = '/' + cfg.langueAbr + '/envoyer-a-un-ami/?r=' + Math.random() + '&pageReferer=' + window.location;
						break;
					case 'en' : 
						var tmpURL = '/' + cfg.langueAbr + '/send-to-a-friend/?r=' + Math.random() + '&pageReferer=' + window.location;
						break;
				}
				$.support.boxModel = 0;
				$.nyroModalSettings({
					type : 'iframe',
					zIndexStart : 99999,
					width:  530,
					height: 650,
					url: tmpURL
				});
			} else if (from && from.href && (from.href.indexOf('/demande-d-information/') > 0 || from.href.indexOf('/information-request/') > 0 || from.href.indexOf('/demande-d-information-affaires/') > 0 || from.href.indexOf('/corporate-information-request/') > 0)){
				var tmpURL = from.href + '&r=' + Math.random();
				$.nyroModalSettings({
					type : 'iframe',
					zIndexStart : 99999,
					width:  580,
					height: 650,
					url: tmpURL
				});
			} else if (from && from.href && (from.href.indexOf('/banque-d-images/') > 0 || from.href.indexOf('/image-bank/') > 0)) {
				var tmpBoxmodel = $.support.boxModel;
				$.support.boxModel = 0;
				$.nyroModalSettings({
					type : 'iframe',
					zIndexStart : 99999,
					width:  667,
					height: 542,
					padding: 0,
					url: from.href
				});
			}
		}
	});

	/***********************  Site   ***********************/


	switch (cfg["langueAbr"]){
		   case "fr":
			  $.datepicker.setDefaults({
				  buttonText: 'Selection',
				  closeText: 'Fermer',
				  prevText: '&#x3c;Préc',
				  nextText: 'Suiv&#x3e;',
				  currentText: 'Courant',
				  monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
				  monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun','Jul','Aoû','Sep','Oct','Nov','Déc'],
				  dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
				  dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
				  dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
				  dateFormat	: 'd MM, yy',
				  altFormat		: 'yy-mm-dd'
			   });
			   break;
		   case "en":
				$.datepicker.setDefaults({
					dateFormat		: 'd MM yy',
					altFormat		: 'yy-mm-dd'
				});

			   break;

		   case "es":
			  $.datepicker.setDefaults({
				  buttonText: 'Selection',
				  closeText: 'Cerrar',
				  prevText: '&#x3c;Ant',
				  nextText: 'Sig&#x3e;',
				  currentText: 'Hoy',
				  monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
				  monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'],
				  dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;bado'],
				  dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
				  dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
				  dateFormat: 'd MM, yy',
				  altFormat		: 'yy-mm-dd'
				});
			   break;
		}

	$('input.datepicker').each(function(){
			var prefix = "texte";
			$(this).clone(false).attr("id", prefix + $(this).attr('id'))
								.attr("name", prefix + $(this).attr('name'))
								.attr("readonly", true)
								.insertAfter($(this));

			$('#' + prefix + this.id).datepicker({
					altField		: '#' + this.id,
					showOn			: 'both'
			}).next('button').text('»').button({icons:{primary : 'ui-icon-calendar'}});

			if($.trim($(this).val()).length > 0){
				var dateTmp = $(this).val().split('-');
				$('#' + prefix + this.id).datepicker('setDate', new Date(dateTmp[1],dateTmp[2],dateTmp[3]));
			}

			$(this).removeClass('datepicker').hide();
	 });	
	
	var uploadConfigDefaut = {
       uploader   : '/flash/jquery.uploadify.swf',
       script     : '/utilitaires/uploadify.php',
       cancelImg  : '/images/jquery.uploadify/cancel.png',
	   folder     : '/uploadifyTemp',
       buttonText : 'Parcourir',
	   //rollover	  :true,
       fileDesc   : '*.doc;*.docx;*.pdf;*.gif;*.jpg;*.jpeg',
       fileExt    : '*.doc;*.docx;*.pdf;*.gif;*.jpg;*.jpeg',
	   auto       : true,
	   
       onComplete : function(event, queueID, fileObj, resultat, data) {
            	   		if (DevMode())
            			  alert(resultat);
						  
						resultat = eval("(" + resultat + ")");
						
                        if (resultat.etat ==1){
    						$("#" + event.currentTarget.id + queueID + " a").attr("href", "javascript:UploadifySupprimer('" + event.currentTarget.id + "', '" + queueID + "')"); // Change le lien Cancel pour supprimer
    						$('#' + event.currentTarget.id + 'Hidden').val($.trim(resultat.nomFichier));
														
//							$("#titreUpload").val(fileObj.name);
							
							/* Aller checher les informations sur la photo */	
							  var eventCurrentTargetId = event.currentTarget.id;
							  
							  $("#" + event.currentTarget.id + queueID).after('<div id="infoFichier">En traitement... <' + 'img src="/images/icones/ajax-loader.gif" alt="Traitement..."' + '></div>');

                              $.ajax({
                                 type: "GET",
                                 url: "/utilitaires/uploadify.php",
                                 data: "fichierInfo=" + resultat.nomFichier,
                            	 dataType: "json",	 
                                 "error": function (XMLHttpRequest, textStatus, errorThrown) {
									alert('Erreur');
									if (DevMode())
                                	  alert('Erreur : ' + XMLHttpRequest.status + XMLHttpRequest.responseText + ' ' + textStatus + ' ' + errorThrown);
                                 },		  	 
                                 success: function(resultat){
                            		 if (DevMode())
                            			  alert(print_r(resultat));
                            			    
                                     if (resultat.etat != 1){
                            		   	alert('Erreur : ' + resultat.message);
                            		 }
									 else{
									 	$("#" + eventCurrentTargetId + "Uploader").hide(); // Cache le btn parcourir en flash									 
										if (typeof(resultat.largeur) != 'undefined') {
											$("#infoFichier").html('<img src="' + resultat.fichier + '"><br />Dimensions : ' + resultat.largeur + ' x ' + resultat.hauteur + 'px');
											$('#' + eventCurrentTargetId + 'LargeurHidden').val($.trim(resultat.largeur));
											$('#' + eventCurrentTargetId + 'HauteurHidden').val($.trim(resultat.hauteur));
											$('#' + eventCurrentTargetId + 'PesanteurHidden').val($.trim(resultat.pesanteur));
											}
										else {
											$("#infoFichier").html('<a href="' + resultat.fichier + '" target="_blank">Télécharger</a>');
											$('#' + eventCurrentTargetId + 'PesanteurHidden').val($.trim(resultat.pesanteur));
											}
							
										if (typeof UploadifyOnCompleteSuccess == "function"){
										   UploadifyOnCompleteSuccess();
										}									 
									 }
                                 }
                            	 
                               });							
						}
						else
                		   	alert('Erreur : ' + resultat.message);					
						
						return false;
                      },					  
					  
      sizeLimit   : 15728640, // 15 meg - 5120000  4.88
      multi 	  : false
    };
	
	$("input.fichier").uploadify(uploadConfigDefaut);	
    $("input.fichierCSV").uploadify($.extend(uploadConfigDefaut,{fileDesc: '*.csv',fileExt: '*.csv'}));	
    $("input.fichierImages").uploadify($.extend(uploadConfigDefaut,{fileDesc: '*.gif;*.jpg;*.jpeg;*.png',fileExt: '*.gif;*.jpg;*.jpeg;*.png'}));	
    $("input.fichierDocuments").uploadify($.extend(uploadConfigDefaut,{fileDesc: '*.doc;*.docx;*.pdf;*.txt;*.xls;*.csv;*.zip;*.rar;*.gif;*.jpg;*.jpeg;*.png',fileExt: '*.doc;*.docx;*.pdf;*.txt;*.xls;*.csv;*.zip;*.rar;*.gif;*.jpg;*.jpeg;*.png'}));	
	
	

	jQuery.validator.setDefaults({
			errorElement: 'p'
	});
	
	// jQuery validator
	/*Pour bien positionner les errors selon le type de champ*/
	jQuery.validator.defaults.errorPlacement = function(error, element){
		if(element.attr('name') == 'publications[]' || element.hasClass('publicationSelect')){
			error.appendTo('#containerErreurPublication');
		}else if(element.is(':checkbox')){
			error.appendTo(element.closest('.ensembleCheckbox').parent());
		}else if(element.is(':radio')){
			error.appendTo(element.closest('.ensembleCheckbox').parent());
		}else{
			error.appendTo(element.parent());
		}
	};

	
	jQuery.validator.defaults.invalidHandler = function(form, validator){
		formTMP = (form.target);
		setTimeout('smoothScrollToFirstError()',15);
		
	}
	
	$("#DonneesNews").validate({
			rules:{
				courrielClient: { required: true, email : true }
			},
			submitHandler: function(form) {
				donnees = $(form).serialize().CorrigerSerialize();
				var tmpAction = $(form).attr('action');
				$.ajax({
					type: "post",
					url : tmpAction + 'abonnement-traitement/?ajax=1',
					dataType: 'json',
					data : donnees,
					"error": function (XMLHttpRequest, textStatus, errorThrown) {
						alert( "Erreur");
						if (DevMode()){
							alert(XMLHttpRequest + ' ' + textStatus + ' ' + errorThrown);
						}
					},
					success: function(resultat){
						if (DevMode())
							alert(print_r(resultat));
						if (resultat.etat == 0)
							alert('Erreur : ' + resultat.message);

						$(form).attr('action' , tmpAction + '?noClient=' + resultat.noClient);
						$.support.boxModel = 0;
						$(form).nyroModalManual({
							forceType: 'iframe',
							width: 500,
							height: 650,
							zIndexStart : 99999
						});
						$(form).attr('action' , tmpAction);
					}
				});
		},
		invalidHandler: function(form, validator) {
			var errors = validator.numberOfInvalids();
			if(errors > 0){
				alert('Vous devez entrer un courriel valide.');
			}
		},
		errorElement: "div",
		errorPlacement: function(error, element){
			error.appendTo($(element).closest('form'));
		}
	});

});
