﻿var animation_speed = 500;

var declic =
{
	general:
	{
		init : function()
		{
			$("#main_content div.liens ul li a")
				.hover(
					function(){
						$(this).parents("li").addClass("hover");
					},
					function(){
						$(this).parents("li").removeClass("hover");
					}
				);
			
			$("#main_content div.intro, #main_content div.archives, #main_content div.archives ul li.selected, #main_content div.a_propos, #main_content div.recherche, #main_content div.equipe, #main_content div.service div.description, #main_content div.outils ul.tags li, #main_content div.incitatifs_emploi, #main_content div.blogue div.article h4, #confirmation").corner("10px");
			
			$("a[href=#]").click(function(e){
				e.preventDefault();
			});
		}
	},
	services:
	{
		init: function()
		{
			var $item = $("#main_content div.service div.description div.item");
			$item.each(function(){
				var $p_elements = $(this).children(":not(h5)");
				var p_count = $p_elements.length;
				if(p_count > 1)
				{
					$(this).children(":not(h5):not(:eq(0))").wrapAll('<div class="extra" />');
					var $extra = $(this).find("div.extra");
					var extra_height = $extra.height();
					$extra.css({height: extra_height});
					$('<p class="links"><a href="#" class="details">[ + voir tous les détails ]</a></p>').insertAfter($(this).find("div.extra"));
					$extra.hide();
				}
			});
			
			$item.find("a.details").click(function(e){
				e.preventDefault();
				var $extra = $(this).parents("div.item").find("div.extra");
				if($extra.is(":visible"))
				{
					$extra.stop().slideUp(animation_speed);
					$(this).text("[ + voir tous les détails ]");
				}
				else
				{
					$extra.stop().slideDown(animation_speed);
					$(this).text("[ - cacher les détails ]");
				}
			});
			
		}
	},
	tools:
	{
		init: function()
		{
			$("#fs_age ul li, #fs_categorie ul li")
				.each(function(){
					var $cb = $(this).find("input[type=checkbox]");
					var cb_id = $cb.attr("id");
					var checked = '';
					if($cb.is(":checked"))
					{
						checked = ' checked';
					}
					$('<a href="#" rel="'+cb_id+'" class="checkbox'+checked+'"></a>').prependTo($(this));
					$(this).find("input[type=checkbox]").hide();
				})
				.find("a.checkbox, label").click(function(e){
					e.preventDefault();
					var $el = $(this);
					
					if($el.is("label"))
					{
						$el = $el.parents("li").find("a.checkbox");
					}
					
					var cb_id = $el.attr("rel");
					if($el.hasClass("checked"))
					{
						$el.removeClass("checked");
						$("#"+cb_id).removeAttr("checked");
					}
					else
					{
						$el.addClass("checked");
						$("#"+cb_id).attr("checked", "checked");
					}
				});
			
			$('<div class="input" contenteditable="true">'+$("#mot_cle").val()+'</div>').appendTo("#fs_mot_cle");
			
			if($("#fs_mot_cle div.input")[0].contentEditable != null)
			{
				$("#mot_cle").hide();
				$("#fs_mot_cle div.input").keyup(function(){
					$("#mot_cle").val($(this).text());
				});
			}
			else
			{
				$("#fs_mot_cle").remove("div.input");
			}
			
			$("#fs_submit input[type=submit]").each(function(){
				$('<a href="#" class="btn" rel="'+$(this).attr("id")+'">'+$(this).val()+'</a>').appendTo($("#fs_submit"));
				$(this).hide();
			});
			
			$("#fs_submit a.btn").click(function(e){
				e.preventDefault();
				$("#"+$(this).attr("rel")).trigger("click");
			});
			
			
			$("#main_content div.outils div.video a.voir, #main_content div.outils div.video h3 a")
				.prettyPhoto({
					theme: 'facebook'
				});
		}
	},
	jobs:
	{
		init: function()
		{
			$("#main_content div.emplois div.poste").each(function(){
				var $p_elements = $(this).children(":not(h3):not(p.links)");
				var p_count = $p_elements.length;
				if(p_count > 1)
				{
					$(this).children(":not(h3):not(p.links):not(:eq(0))").wrapAll('<div class="extra" />');
					var $extra = $(this).find("div.extra");
					var extra_height = $extra.height();
					$extra.css({height: extra_height});
					$('<a href="#" class="details">[ + voir tous les détails ]</a>').prependTo($(this).find("p.links"));
					$extra.hide();
				}
			});
			
			$("#main_content div.emplois div.poste a.details").click(function(e){
				e.preventDefault();
				var $extra = $(this).parents("div.poste").find("div.extra");
				if($extra.is(":visible"))
				{
					$extra.stop().slideUp(animation_speed);
					$(this).text("[ + voir tous les détails ]");
				}
				else
				{
					$extra.stop().slideDown(animation_speed);
					$(this).text("[ - cacher les détails ]");
				}
			});
		}
	},
	contact:
	{
		init: function()
		{
			$("#fs_sujet ul li")
				.each(function(){
					var $input = $(this).find("input[type=radio]");
					var cb_id = $input.attr("id");
					$('<a href="#" rel="'+cb_id+'" class="checkbox"></a>').prependTo($(this));
					if($input.attr("checked"))
					{
						$(this).find("a.checkbox").addClass("checked");
					}
					$(this).find("input[type=radio]").hide();
				})
				.find("a.checkbox, label").click(function(e){
					e.preventDefault();
					var $el = $(this);
					if($el.is("label"))
					{
						$el = $el.parents("li").find("a.checkbox");
					}
					
					var cb_id = $el.attr("rel");
					if(!$el.hasClass("checked"))
					{
						$("#fs_sujet ul li a.checkbox").removeClass("checked");
						$el.addClass("checked");
						$("#"+cb_id).trigger("click");
					}
				});
			
			$('<div class="input" contenteditable="true"></div>').appendTo("#fs_nom, #fs_courriel");
			$('<div class="area" contenteditable="true"></div>').appendTo("#fs_message");
			
			if($("#fs_nom div.input")[0].contentEditable != null)
			{
				var max_character = 2000;
				$("#fs_nom input, #fs_courriel input, #fs_message textarea").hide();
				$('<div id="word_count"><span>0</span> / '+max_character+' caractères</div>').appendTo("#fs_message");
				$("#fs_message div.area")
					.keydown(function(e){
						switch(e.keyCode)
						{
							case 46: // Backspace (46)
							case 8:  // Delete (8)
							case 37: // Left key (37)
							case 39: // Right key (39)
							case 38: // Up key (38)
							case 40: // Down key (40)
							case 9 : // Tab (9) 
								break;
							default:
								var message_length = $(this).text().length;
								if(message_length >= max_character)
								{
									e.preventDefault();
								}
						}
					})
					.keyup(function(){
						var message = $(this).text();
						var message_length = message.length;
						$(this).parents("fieldset").find("textarea").val(message);
						$("#word_count span").text(message_length);
					});
				$("#fs_nom div.input, #fs_courriel div.input").keyup(function(){
					$(this).parents("fieldset").find("input").val($(this).text());
				});
				
			}
			else
			{
				$("#fs_nom, #fs_courriel, #fs_message").remove("div.input, div.area");
			}
			
			$("#fs_submit input[type=submit]").each(function(){
				$('<a href="#" class="btn" rel="'+$(this).attr("id")+'">'+$(this).val()+'</a>').appendTo($("#fs_submit"));
				$(this).hide();
			});
			
			$("#fs_submit a.btn").click(function(e){
				e.preventDefault();
				
				var error_found = false;
				$("#fs_nom, #fs_courriel").find("div.form_error").remove();
				
				// Validation Nom
				var nom = $.trim($("#txt_nom").val());
				var courriel = $.trim($("#txt_courriel").val());
				
				if(nom.length == 0)
				{
					error_found = true;
					$('<div class="form_error">Votre nom est requis</div>').appendTo($("#fs_nom"));
				}
				if(courriel.length == 0)
				{
					error_found = true;
					$('<div class="form_error">Votre courriel est requis</div>').appendTo($("#fs_courriel"));
				}
				else if(!isValidEmailAddress(courriel))
				{
					error_found = true;
					$('<div class="form_error">Votre courriel est invalide</div>').appendTo($("#fs_courriel"));
				}
				
				if(!error_found)
				{
					$("#"+$(this).attr("rel")).trigger("click");
				}
			});
			
			var $map_link = $("#main_content div.intro a.carte");
			var map_url = $map_link.attr("href");
			map_url = map_url + "&amp;output=embed&amp;iframe=true";
			$map_link
				.attr("href", map_url)
				.prettyPhoto({
					default_width: "80%",
					default_height: "80%",
					theme: 'facebook'
				});
			var $image_link = $("#main_content div.equipe a img").parents("a");
			$image_link.click(function(e){
				e.preventDefault();
				var $link = $(this);
				var $img = $link.find("img");
				var url = $link.attr("href");
				var title = $img.attr("alt");
				var desc = $link.attr("title");
				$.prettyPhoto.open(url,title,desc);
			});
			
			if($("#confirmation").length > 0)
			{
				$("#confirmation").delay(10000).fadeTo(500, 0, function(){$(this).hide();});
			}
			
			function isValidEmailAddress(emailAddress)
			{
				var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
				return pattern.test(emailAddress);
			}
		}
	}
}




