/**
 * scripts
 * macharron@inpix.ca
 * Last edit: 2010-05-25
 */


/**
 * open links with rel='external' in new tabs
 * @author http://www.456bereastreet.com/archive/200610/opening_new_windows_with_javascript_version_12/
 */
var JSTarget={init:function(att,val,warning){if(document.getElementById&&document.createElement&&document.appendChild){var strAtt=((typeof att==='undefined')||(att===null))?'class':att;var strVal=((typeof val==='undefined')||(val===null))?'non-html':val;var strWarning=((typeof warning==='undefined')||(warning===null))?' (opens in a new window)':warning;var oWarning;var arrLinks=document.getElementsByTagName('a');var oLink;var oRegExp=new RegExp("(^|\\s)"+strVal+"(\\s|$)");for(var i=0;i<arrLinks.length;i++){oLink=arrLinks[i];if((strAtt=='class')&&(oRegExp.test(oLink.className))||(oRegExp.test(oLink.getAttribute(strAtt)))){oWarning=document.createElement("em");oWarning.appendChild(document.createTextNode(strWarning));oLink.appendChild(oWarning);oLink.onclick=JSTarget.openWin;}oWarning=null;}}},openWin:function(e){var event=(!e)?window.event:e;if(event.shiftKey||event.altKey||event.ctrlKey||event.metaKey){return true;}else{var oWin=window.open(this.getAttribute('href'),'_blank');if(oWin){if(oWin.focus){oWin.focus();}return false;}oWin=null;return true;}},addEvent:function(obj,type,fn){if(obj.addEventListener){obj.addEventListener(type,fn,false);}else if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event);};obj.attachEvent("on"+type,obj[type+fn]);}}};JSTarget.addEvent(window,'load',function(){JSTarget.init("rel","external","");});

/** *******************************************************
 * ColorBox v1.3.16 - a full featured, light-weight, customizable lightbox based on jQuery 1.3+
 * @author 2011 Jack Moore - jack@colorpowered.com Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
 */
(function(a,b,c){function ba(b){if(!T){O=b,Z(a.extend(J,a.data(O,e))),x=a(O),P=0,J.rel!=="nofollow"&&(x=a("."+V).filter(function(){var b=a.data(this,e).rel||this.rel;return b===J.rel}),P=x.index(O),P===-1&&(x=x.add(O),P=x.length-1));if(!R){R=S=!0,q.show();if(J.returnFocus)try{O.blur(),a(O).one(k,function(){try{this.focus()}catch(a){}})}catch(c){}p.css({opacity:+J.opacity,cursor:J.overlayClose?"pointer":"auto"}).show(),J.w=X(J.initialWidth,"x"),J.h=X(J.initialHeight,"y"),U.position(0),n&&y.bind("resize."+o+" scroll."+o,function(){p.css({width:y.width(),height:y.height(),top:y.scrollTop(),left:y.scrollLeft()})}).trigger("resize."+o),$(g,J.onOpen),I.add(C).hide(),H.html(J.close).show()}U.load(!0)}}function _(){var a,b=f+"Slideshow_",c="click."+f,d,e,g;J.slideshow&&x[1]&&(d=function(){E.text(J.slideshowStop).unbind(c).bind(i,function(){if(P<x.length-1||J.loop)a=setTimeout(U.next,J.slideshowSpeed)}).bind(h,function(){clearTimeout(a)}).one(c+" "+j,e),q.removeClass(b+"off").addClass(b+"on"),a=setTimeout(U.next,J.slideshowSpeed)},e=function(){clearTimeout(a),E.text(J.slideshowStart).unbind([i,h,j,c].join(" ")).one(c,d),q.removeClass(b+"on").addClass(b+"off")},J.slideshowAuto?d():e())}function $(b,c){c&&c.call(O),a.event.trigger(b)}function Z(b){for(var c in b)a.isFunction(b[c])&&c.substring(0,2)!=="on"&&(b[c]=b[c].call(O));b.rel=b.rel||O.rel||"nofollow",b.href=a.trim(b.href||a(O).attr("href")),b.title=b.title||O.title}function Y(a){return J.photo||/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i.test(a)}function X(a,b){b=b==="x"?y.width():y.height();return typeof a=="string"?Math.round(/%/.test(a)?b/100*parseInt(a,10):parseInt(a,10)):a}function W(c,d){var e=b.createElement("div");c&&(e.id=f+c),e.style.cssText=d||!1;return a(e)}var d={transition:"elastic",speed:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,inline:!1,html:!1,iframe:!1,fastIframe:!0,photo:!1,href:!1,title:!1,rel:!1,opacity:.9,preloading:!0,current:"image {current} of {total}",previous:"previous",next:"next",close:"close",open:!1,returnFocus:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,overlayClose:!0,escKey:!0,arrowKey:!0},e="colorbox",f="cbox",g=f+"_open",h=f+"_load",i=f+"_complete",j=f+"_cleanup",k=f+"_closed",l=f+"_purge",m=a.browser.msie&&!a.support.opacity,n=m&&a.browser.version<7,o=f+"_IE6",p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J={},K,L,M,N,O,P,Q,R,S,T=!1,U,V=f+"Element";U=a.fn[e]=a[e]=function(b,c){var f=this,g;if(!f[0]&&f.selector)return f;b=b||{},c&&(b.onComplete=c);if(!f[0]||f.selector===undefined)f=a("<a/>"),b.open=!0;f.each(function(){a.data(this,e,a.extend({},a.data(this,e)||d,b)),a(this).addClass(V)}),g=b.open,a.isFunction(g)&&(g=g.call(f)),g&&ba(f[0]);return f},U.init=function(){y=a(c),q=W().attr({id:e,"class":m?f+(n?"IE6":"IE"):""}),p=W("Overlay",n?"position:absolute":"").hide(),r=W("Wrapper"),s=W("Content").append(z=W("LoadedContent","width:0; height:0; overflow:hidden"),B=W("LoadingOverlay").add(W("LoadingGraphic")),C=W("Title"),D=W("Current"),F=W("Next"),G=W("Previous"),E=W("Slideshow").bind(g,_),H=W("Close")),r.append(W().append(W("TopLeft"),t=W("TopCenter"),W("TopRight")),W(!1,"clear:left").append(u=W("MiddleLeft"),s,v=W("MiddleRight")),W(!1,"clear:left").append(W("BottomLeft"),w=W("BottomCenter"),W("BottomRight"))).children().children().css({"float":"left"}),A=W(!1,"position:absolute; width:9999px; visibility:hidden; display:none"),a("body").prepend(p,q.append(r,A)),s.children().hover(function(){a(this).addClass("hover")},function(){a(this).removeClass("hover")}).addClass("hover"),K=t.height()+w.height()+s.outerHeight(!0)-s.height(),L=u.width()+v.width()+s.outerWidth(!0)-s.width(),M=z.outerHeight(!0),N=z.outerWidth(!0),q.css({"padding-bottom":K,"padding-right":L}).hide(),F.click(function(){U.next()}),G.click(function(){U.prev()}),H.click(function(){U.close()}),I=F.add(G).add(D).add(E),s.children().removeClass("hover"),a("."+V).live("click",function(a){a.button!==0&&typeof a.button!="undefined"||a.ctrlKey||a.shiftKey||a.altKey||(a.preventDefault(),ba(this))}),p.click(function(){J.overlayClose&&U.close()}),a(b).bind("keydown."+f,function(a){var b=a.keyCode;R&&J.escKey&&b===27&&(a.preventDefault(),U.close()),R&&J.arrowKey&&x[1]&&(b===37?(a.preventDefault(),G.click()):b===39&&(a.preventDefault(),F.click()))})},U.remove=function(){q.add(p).remove(),a("."+V).die("click").removeData(e).removeClass(V)},U.position=function(a,c){function g(a){t[0].style.width=w[0].style.width=s[0].style.width=a.style.width,B[0].style.height=B[1].style.height=s[0].style.height=u[0].style.height=v[0].style.height=a.style.height}var d,e=Math.max(b.documentElement.clientHeight-J.h-M-K,0)/2+y.scrollTop(),f=Math.max(y.width()-J.w-N-L,0)/2+y.scrollLeft();d=q.width()===J.w+N&&q.height()===J.h+M?0:a,r[0].style.width=r[0].style.height="9999px",q.dequeue().animate({width:J.w+N,height:J.h+M,top:e,left:f},{duration:d,complete:function(){g(this),S=!1,r[0].style.width=J.w+N+L+"px",r[0].style.height=J.h+M+K+"px",c&&c()},step:function(){g(this)}})},U.resize=function(a){if(R){a=a||{},a.width&&(J.w=X(a.width,"x")-N-L),a.innerWidth&&(J.w=X(a.innerWidth,"x")),z.css({width:J.w}),a.height&&(J.h=X(a.height,"y")-M-K),a.innerHeight&&(J.h=X(a.innerHeight,"y"));if(!a.innerHeight&&!a.height){var b=z.wrapInner("<div style='overflow:auto'></div>").children();J.h=b.height(),b.replaceWith(b.children())}z.css({height:J.h}),U.position(J.transition==="none"?0:J.speed)}},U.prep=function(b){function h(b){U.position(b,function(){var b,d,g,h,j=x.length,k,n;!R||(n=function(){B.hide(),$(i,J.onComplete)},m&&Q&&z.fadeIn(100),C.html(J.title).add(z).show(),j>1?(typeof J.current=="string"&&D.html(J.current.replace(/\{current\}/,P+1).replace(/\{total\}/,j)).show(),F[J.loop||P<j-1?"show":"hide"]().html(J.next),G[J.loop||P?"show":"hide"]().html(J.previous),b=P?x[P-1]:x[j-1],g=P<j-1?x[P+1]:x[0],J.slideshow&&E.show(),J.preloading&&(h=a.data(g,e).href||g.href,d=a.data(b,e).href||b.href,h=a.isFunction(h)?h.call(g):h,d=a.isFunction(d)?d.call(b):d,Y(h)&&(a("<img/>")[0].src=h),Y(d)&&(a("<img/>")[0].src=d))):I.hide(),J.iframe?(k=a("<iframe/>").addClass(f+"Iframe")[0],J.fastIframe?n():a(k).load(n),k.name=f+ +(new Date),k.src=J.href,J.scrolling||(k.scrolling="no"),m&&(k.frameborder=0,k.allowTransparency="true"),a(k).appendTo(z).one(l,function(){k.src="//about:blank"})):n(),J.transition==="fade"?q.fadeTo(c,1,function(){q[0].style.filter=""}):q[0].style.filter="",y.bind("resize."+f,function(){U.position(0)}))})}function g(){J.h=J.h||z.height(),J.h=J.mh&&J.mh<J.h?J.mh:J.h;return J.h}function d(){J.w=J.w||z.width(),J.w=J.mw&&J.mw<J.w?J.mw:J.w;return J.w}if(!!R){var c=J.transition==="none"?0:J.speed;y.unbind("resize."+f),z.remove(),z=W("LoadedContent").html(b),z.hide().appendTo(A.show()).css({width:d(),overflow:J.scrolling?"auto":"hidden"}).css({height:g()}).prependTo(s),A.hide(),a(Q).css({"float":"none"}),n&&a("select").not(q.find("select")).filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one(j,function(){this.style.visibility="inherit"}),J.transition==="fade"?q.fadeTo(c,0,function(){h(0)}):h(c)}},U.load=function(b){var c,d,g=U.prep;S=!0,Q=!1,O=x[P],b||Z(a.extend(J,a.data(O,e))),$(l),$(h,J.onLoad),J.h=J.height?X(J.height,"y")-M-K:J.innerHeight&&X(J.innerHeight,"y"),J.w=J.width?X(J.width,"x")-N-L:J.innerWidth&&X(J.innerWidth,"x"),J.mw=J.w,J.mh=J.h,J.maxWidth&&(J.mw=X(J.maxWidth,"x")-N-L,J.mw=J.w&&J.w<J.mw?J.w:J.mw),J.maxHeight&&(J.mh=X(J.maxHeight,"y")-M-K,J.mh=J.h&&J.h<J.mh?J.h:J.mh),c=J.href,B.show(),J.inline?(W().hide().insertBefore(a(c)[0]).one(l,function(){a(this).replaceWith(z.children())}),g(a(c))):J.iframe?g(" "):J.html?g(J.html):Y(c)?(a(Q=new Image).addClass(f+"Photo").error(function(){J.title=!1,g(W("Error").text("This image could not be loaded"))}).load(function(){var a;Q.onload=null,J.scalePhotos&&(d=function(){Q.height-=Q.height*a,Q.width-=Q.width*a},J.mw&&Q.width>J.mw&&(a=(Q.width-J.mw)/Q.width,d()),J.mh&&Q.height>J.mh&&(a=(Q.height-J.mh)/Q.height,d())),J.h&&(Q.style.marginTop=Math.max(J.h-Q.height,0)/2+"px"),x[1]&&(P<x.length-1||J.loop)&&(Q.style.cursor="pointer",Q.onclick=function(){U.next()}),m&&(Q.style.msInterpolationMode="bicubic"),setTimeout(function(){g(Q)},1)}),setTimeout(function(){Q.src=c},1)):c&&A.load(c,function(b,c,d){g(c==="error"?W("Error").text("Request unsuccessful: "+d.statusText):a(this).contents())})},U.next=function(){!S&&x[1]&&(P<x.length-1||J.loop)&&(P=P<x.length-1?P+1:0,U.load())},U.prev=function(){!S&&x[1]&&(P||J.loop)&&(P=P?P-1:x.length-1,U.load())},U.close=function(){R&&!T&&(T=!0,R=!1,$(j,J.onCleanup),y.unbind("."+f+" ."+o),p.fadeTo(200,0),q.stop().fadeTo(300,0,function(){q.add(p).css({opacity:1,cursor:"auto"}).hide(),$(l),z.remove(),setTimeout(function(){T=!1,$(k,J.onClosed)},1)}))},U.element=function(){return a(O)},U.settings=d,a(U.init)})(jQuery,document,this);

/* ########################################################### */
/* !vars */

var isIe = false;
var isOp = false;
var isSaf = false;

/**
 * if browser is IE
 */
if ($.browser.msie) {
    isIe = true;
}
/**
 * if browser is Opera
 */
if ($.browser.opera) {
    isOp = true;
}
/**
 * if browser is Safari
 */
if ($.browser.safari) {
    isSaf = true;
}

/**
 * put elements at the same height
 * @param group: jquery selector of the elements to equalize
 */
var equalHeight = {
    init: function(group) {
        tallest = 0;
        group.each(function() {
            thisHeight = jQuery(this).height();
            if (thisHeight > tallest) {
                tallest = thisHeight;
            }
        });
        group.height(tallest);
    }
};


/**
 * remove and put back default values in field
 * @param targ: jquery selector of the chosen field
 */
var inputLabel = {
	/**
	 * add events on field and set default value;
	 */
	init: function(targ){
		var val1 = '';

		$(targ).each(function(){
			$(targ).focus(function(){
				if(val1 == ''){val1 = $(this).val();}
				inputLabel.clear(targ, val1);
			})
			.blur(function(){
				inputLabel.blur(targ, val1);
			})
			.addClass("label-in");
		});
	},
	/**
	 * clear the field of default value
	 */
	clear: function(targ, startValue){

		if($(targ).val() !== startValue){
			$(targ).val();
		}else{
			$(targ).val("").removeClass("label-in");
		}
	},
	/**
	 * put the default value back
	 */
	blur: function(targ, startValue){

		if($(targ).val() !== ""){
			$(targ).val();
		}else{
			$(targ).val(startValue).addClass("label-in");
		}
	}
};

/**
 * loader to insert just before ajax calls
 */
var loader = '<p class="loader center"><img src="/img/ajax-loader.gif" alt="" /></p>';


/**
 * popup creator
 * @param _selector: action link id
 * @param _popId: id of popup
 * @param _title: popup titlebar text
 * @param _width: popup width
 */

var popup = {
    init: function(_selector, _popId, _title, _width, _msg) {
		this.popId = '#'+_popId;
		var popHtml = '<div id="'+_popId+'"></div>';
		$('body').append(popHtml);
		
		var url = $(_selector).attr('href');

		$(_selector).click(function(){

			$(popup.popId).load(url, function(){
				$(popup.popId).dialog({
					modal: true,
					autoOpen: false,
					title: _title,
					draggable: false,
					width: _width
				}).hide();

				$('.bt-cancel', this).click(function(){
					$(popup.popId).dialog('close');
					return false;
				});
				
				$('form').prepend('<p class="spaced">'+ _msg +'</p>');
				
				$('form.validate').zdgForm({
					_container: 'div'
				});

				$(popup.popId).dialog('open');
			});

			return false;
		});

    }
};


/**
 * Fonction to relaunch after an ajax refresh
 */
var slider = {
    init: function() {
		this.list = '#main-slider ul';
		this.dist = parseInt($('#main-slider').height(), 10);
		this.x = 0;
		this.count = $(this.list + ' li').length - 1;

		this.inter = setInterval(slider.move, 5000);


    },
	move: function(){


		$(slider.list).fadeOut(1500, function(){

			$(slider.list).animate({
				marginTop: parseInt($(slider.list).css('marginTop'),10) - slider.dist + 'px'
			}, 10, function(){
				$(slider.list).fadeIn(1500);
			});
		});


		if(slider.x >= slider.count){
			$(slider.list).stop(1, 0).fadeOut(1500, function(){
				$(slider.list).animate({
					marginTop: 0
				}, 10, function(){
					$(slider.list).fadeIn(1500);
				});
			});
			slider.x = 0;
		}

		slider.x++;
	}
};


/**
 * Fonction to relaunch after an ajax refresh
 * @param ele string: jQuery element of the word to modify
 */
var firstWord = {
    init: function(ele) {
		$(ele).each(function(){
			var txt = $(this).text();
			var html = $(this).html();

			txt = txt.split(' ');
			html = html.replace(txt[0] + ' ', '<em>'+txt[0]+'</em>');

			$(this).html(html);
		});
    }
};


/**
 * Fonction change section page in ajax
 */
var nav = {
    init: function() {
		if(isIe === false || (isIe === true && $.browser.version > 6) ){
			$('#nav-bar a').click(nav.load);
		}
    },
	load: function() {
		var _url = $(this).attr('href');
		var height = $('#content').height();
		var count = 0;

		//$('#content').height(height);
		//$('#content>div').fadeOut(400, function(){

			if(count<1){
				$('#content').load(_url, function(){

					//$('#content').slideDown(500);

//					var allHeight = ($('#main-bloc').height() + $('#nav-bar').height() + $('#col').height());
//					$('#col, #main-bloc, #nav-bar').hide().fadeIn(100, function(){
//						$('#content').animate({
//							height: allHeight
//						}, 400);
//					});
					
					nav.init();
					ajax.init();
				});
			}
			count++;

		//});

		return false;
	}
};


/**
 * Fonction to show christmas schedule
 * @return false
 */
var noel = {
    init: function() {
		$('#link-horaire').click(function(){
			$('#horaire-fetes').slideToggle(500);
			return false;
		});
    }
};

/**
 * Fonction to relaunch after an ajax refresh
 */
var ajax = {
    init: function() {
		JSTarget.init("rel", "external", "");
    }
};


/**
 * Fonctions to call on DOM ready
 */

$(document).ready(function() {

	if($('#ls-menu')[0]){
		firstWord.init('#ls-menu>ul>li>a');
	}

	if($('#main-slider')[0]){
		slider.init();
	}
	
	if($('#ls-vids')[0]){
		$('#ls-vids li a').each(function(){
			$(this).colorbox({
				iframe: true,
				innerWidth: 444,
				innerHeight: 282
			});
		});
	}

	if($('#acc-sem .popup')[0]){
		popup.init('#acc-sem .popup', 'pop-circ', 'Recevez notre circulaire par courriel!', 350, 'Remplissez le court formulaire ci-dessous afin de recevoir notre circulaire hebdomadaire par courriel.');
	}

	if($('#main-bloc .popup')[0]){
		popup.init('#main-bloc .popup', 'pop-circ', 'Recevez notre circulaire par courriel!', 350, 'Remplissez le court formulaire ci-dessous afin de recevoir notre circulaire hebdomadaire par courriel.');
	}

	if($('#col .circulaire-links .popup')[0]){
		popup.init('#col .circulaire-links .popup', 'pop-circ2', 'Recevez notre circulaire par courriel!', 350, 'Remplissez le court formulaire ci-dessous afin de recevoir notre circulaire hebdomadaire par courriel.');
	}
	
/*
	if($('#link-horaire')[0] && (isIe == true && $.browser.version > 6) || isIe === false){
		noel.init();
	}
*/
	
	$('form.validate').zdgForm({
		_container: 'div'
	});

});

$(window).load(function() {
	(function(){
		if(typeof(google) == 'object' && $('#gmap')[0]){
			var latlng = new google.maps.LatLng(45.7408799, -73.6100979);
			var options = {
				zoom: 15,
				center: latlng,
				mapTypeId: google.maps.MapTypeId.TERRAIN,
				mapTypeControlOptions: {
					style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
				},
				navigationControlOptions: {
					style: google.maps.NavigationControlStyle.SMALL
				},
				scrollwheel: false
			};

			var map = new google.maps.Map(document.getElementById('gmap'), options);

			var marker = new google.maps.Marker({
				position: new google.maps.LatLng(45.74090305151347, -73.61013650894165),
				map: map,
				title: 'Citron que c\'est bon',
				clickable: false
				//icon: '/img/marker.png'
			});
		}

	})();

	if($('#acc-sem')[0] && $('#acc-epi')[0]){
		equalHeight.init($('#col .inner h4'));
		equalHeight.init($('#col .inner'));
	}

});
