// This code is executed after all elements (DOM) have been loaded in the browser.
// Requires jQuery.

$(document).ready(function()
{
	// Sends the specified email address to 'req_newsletter_subscription.php' via ajax.
	$("#frm_infolettre").submit(function()
	{
		var message_container = $('form .message');
		
		if (lang == "fr") {
			var success_message = "Votre inscription &agrave; l'infolettre s'est effectu&eacute;e avec succ&egrave;s.";
		} else {
			var success_message = "Your subscription to the newsletter has been sent succesfully.";
		}
		
		// Gets the email address.
		var email_input = $("#iCourrielInfolettre");
		var email_address = jQuery.trim(email_input.val());

		// Ajax POST request if email address is present.
		if (email_address != "")
		{

			var parameters = {"email":email_address};
			var baseHref = document.getElementsByTagName("base")[0].href;
			
			// Some browsers put an xtra slash to the base href. Let's get rid of it.
			if (baseHref.lastIndexOf("/") > 8) {
				baseHref = baseHref.substr(0, baseHref.length-1);
			}
			
			$.post(baseHref + '/modules/mailing_list/req-newsletter-subscription.php', parameters, function(data)
			{
				if (!data.error)
				{
					// Success!
					if (email_input.hasClass("error")) {
						email_input.removeClass("error");
						message_container.removeClass("error");
					}
					if (!message_container.hasClass("success")) {
						message_container.addClass("success");
					}
					message_container.html(success_message);
					message_container.css('display','block');
					$("#frm_infolettre fieldset").css('display','none');
				}
				else
				{
					// Error occured.
					if (!email_input.hasClass("error")) {
						email_input.addClass("error");
					}
					if (!message_container.hasClass("error")) {
						message_container.addClass("error");
					}
					message_container.html(data.error);
					message_container.css('display','block');
					email_input.focus();
				}
			}, 'json');
		}
		else
		{
			if (!email_input.hasClass("error")) {
				email_input.addClass("error");
			}
		}
		
		return false;
	});
	

	//****************************************************************************
	// Appelle la fonction qui va retourner le code HTML+evenements du calendrier.
	get_calendar();
	
	
	//****************************************************************************
	// Champ de recherche.
	var searchInput = $("#iSearch");
	searchInput.css('border','none');		// Overwrite Google search input box borders.

	//	Gere la valeur par defaut (placeholder) des textbox.iCourrielInfolettre
	var newsletterInput = $("#iCourrielInfolettre");
	if (lang == "fr") {
		var newsletterPlaceholder = "Entrez votre adresse courriel";
	} else {
		var newsletterPlaceholder = "Enter your email address";
	}
	
	newsletterInput.val(newsletterPlaceholder);
	newsletterInput.addClass("placeholder");
	
	newsletterInput.focus(function()
	{
		if (newsletterInput.val() == newsletterPlaceholder) {
			newsletterInput.val("");
			newsletterInput.removeClass("placeholder");
		}
	});
	newsletterInput.blur(function()
	{
		if (newsletterInput.val() == "") {
			newsletterInput.val(newsletterPlaceholder);
			newsletterInput.addClass("placeholder");
		}
	});
	
	
	
	//****************************************************************************
	// Applique une animation de deplacement entre les liens pointant sur une ancre et leur ancre (href='#ancre').
	$('a[href*=#]').click(function()
	{
		var linkPathName = this.pathname;
		
		if (linkPathName == "")
		{
			this.pathname = location.pathname;	// S'assure que les liens pointant vers les ancres (entrees via le CMS) contiennent le chemin complet de la page.
		}
		
		if (location.hostname == this.hostname)
		{
			var $target = $(this.hash);
			$target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
			if ($target.length)
			{
				var targetOffset = $target.offset().top;
				$('html,body').animate({scrollTop: targetOffset-20}, 500);
				return false;
			}
		}
	});
	
	
	
	//****************************************************************************
	// Cache les elements possedant la classe 'archives" au chargement de la page.
	$(".archives").hide();
	
	//****************************************************************************
	// Affiche ou cache l'element possedant la classe 'archives" qui suit (dans le DOM) le lien clique.
	$("a[rel=show]").click(function()
	{
		var linkContainer = $(this).parent();
		var blocContainer = linkContainer.parent();
		var myHiddenElement = blocContainer.find(".archives");
		var linkText = $(this).text();
		
		if (linkText.indexOf("plus") > 0) {
			var newLinkText = linkText.replace("plus","moins");
		}
		else {
			var newLinkText = linkText.replace("moins","plus");
		}
		
		if (myHiddenElement.is(':hidden')) {
			myHiddenElement.slideDown();
			$(this).text(newLinkText);
			$(this).attr("title",newLinkText);
		} else {
			myHiddenElement.slideUp();
			$(this).text(newLinkText);
			$(this).attr("title",newLinkText);
		}
		
		//return false;
	});
});

