/*----------------------------------------------------------------------------//
// Javascript pour le site client  -------------------------------------------//
//----------------------------------------------------------------------------//
// Client : -
// Note   : -
// Date   : -
//----------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------*/
// Inclusion dynamique des fichiers externes javascripts
/*----------------------------------------------------------------------------*/
function importJavascript(src)
{
	document.write("<script type=\"text/javascript\" src=\"" + src + "\"></scr" + "ipt>");
}
function importCss(href, media)
{
	document.write('<link rel="stylesheet" type="text/css" media="' + media + '" href="' + href + '" />');
}

/*----------------------------------------------------------------------------*/
// Importations de fichiers
/*----------------------------------------------------------------------------*/
importJavascript("/includes/js/plugins/abso.thickbox.js");
importJavascript("/includes/js/plugins/jquery.ui.core.js");
importJavascript("/includes/js/plugins/jquery.ui.datepicker.js");
importJavascript("/includes/js/plugins/colorbox/colorbox.js");
importCss("/includes/js/plugins/abso.thickbox.css", "screen");
importCss("/includes/js/plugins/jquery.ui.datepicker.css", "screen");
importCss("/includes/js/plugins/colorbox/styles/colorbox.css", "screen");

/*----------------------------------------------------------------------------*/
// Declarations jQuery
/*----------------------------------------------------------------------------*/
$(document).ready(function() {
	
	if(!jQuery("body").hasClass("Coveo")){
		jQuery("#Contenu a[href$='.pdf'], #ColonneLaterale a[href$='.pdf']").addClass("LienPDF");
	}
	
	jQuery("a.LienBouton").each(function() {
		$(this).html("<span>" + $(this).text() + "</span>");
	});	

    jQuery(".BlocSection:last").css("background", "none");
    jQuery("#Contenu ul.ListeNouvelles li:last").css("border-bottom", "none");

    jQuery("td", "#Calendar tr:last").css("border-bottom", "none");
    jQuery("td:last", ".Tableau tr").css("border-right", "none");
    jQuery("#ColonneLaterale ul:last").css("background", "none");
	
	// -----------------------------------------------------------------------------------------------------------------
    // Changement de la grosseur des caractères ------------------------------------------------------------------------
    // -----------------------------------------------------------------------------------------------------------------
    jQuery("#AjustementTexte a").each(function() {
        jQuery(this).attr("href", "javascript:void(0);");
        jQuery(this).click(function() {
            //Get size type
            var sizeType = jQuery(this).attr("rel");
            switch (sizeType) {
                case "Grand":
                    newSize = grandpx;
                    break;
                case "Moyen":
                    newSize = moyenpx;
                    break;
                case "Normal":
                default:
                    newSize = normalpx;
            }
            var formattedSize = (newSize * onepixel) + "%";
            jQuery("body").css("font-size", formattedSize);
            putcookie("font-size", formattedSize, 30);
            putcookie("font-size-type", sizeType, 30);
            //Ajout de la classe active
            jQuery("#AjustementTexte a").removeClass("Actif");
            jQuery(this).addClass("Actif");
        });
    });

	
	// -----------------------------------------------------------------------------------------------------------------
    // Input label focus -----------------------------------------------------------------------------------------------
    // -----------------------------------------------------------------------------------------------------------------
    if (jQuery(".LblFocus").length > 0) {
        jQuery(".LblFocus").each(function() {
            jQuery(this).focus(function() {
                if (jQuery(this).val().length == 0 || jQuery(this).val() == jQuery(this).attr("title")) {
                    jQuery(this).val("");
                }
            });
            jQuery(this).blur(function() {
                if (jQuery(this).val().length == 0 || jQuery(this).val() == jQuery(this).attr("title")) {
                    jQuery(this).val(jQuery(this).attr("title"));
                }
            });
        });
    }

    // -----------------------------------------------------------------------------------------------------------------
    // Alignement vertical du texte dans les boutons de la navigation rapide -------------------------------------------
    // -----------------------------------------------------------------------------------------------------------------
    jQuery("#NavigationRapide li a").each(function() {
        var btnHeight = $(this).height();
        var btnText = $("span", this);
        var btnTextHeight = $(btnText).height();
        var difference = Math.round(((btnHeight - btnTextHeight) / 2) - 1);
        $(btnText).css("padding-top", difference);
    });

	//InitCalendar();
});

function CookiesEnabled()
{
	var cookieEnabled = (navigator.cookieEnabled) ? true : false;
	if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled)
	{ 
		document.cookie="Enabled";
		cookieEnabled = (document.cookie.indexOf("Enabled") != -1) ? true : false;
	}
	return (cookieEnabled);
}

function InitUrgenceMessage(isActive) {
    if (isActive && CookiesEnabled() && getcookie("VVDMessage")=="") {
        putcookie("VVDMessage",1,1)
        setTimeout(function(){
            $.colorbox({
                inline:true, 
                opacity:0.8,
                speed:500,
                initialWidth:60,
                initialHeight:10,
                maxWidth:600,
                href:"#MessageUrgence", 
                OnComplete: $("#colorbox").appendTo('form')
            })
        }, 1);
    } 
}

function InitCalendar() {
    SetSpecialDays();
}

function SetSpecialDays() {
    $.ajax({
        cache: false,
        type: "POST",
        url: "/Logic/Ajax/GetSpecialDaysForCurrentMonth.aspx",
        data: "",
        success: function(msg) {
            $("#hfSpecialDays").val(msg);
            SetSpecialClasses(msg);
        }
    });
}

function SetSpecialClasses(pDays) {
    $.ajax({
        cache: false,
        type: "POST",
        url: "/Logic/Ajax/GetSpecialClassesForCurrentMonth.aspx",
        data: "days=" + pDays,
        success: function(msg) {
            $("#hfSpecialClasses").val(msg);
            $("#Calendar").datepicker({
                onSelect: function(dateText, inst) { ShowEventsForSelectedDate(inst.currentYear, inst.currentMonth + 1, inst.currentDay); },
                beforeShowDay: function(thedate) {

                    var currentTime = new Date()
                    var currentMonth = currentTime.getMonth() + 1;
                    var currentDay = currentTime.getDate();
                    var currentYear = currentTime.getFullYear();

                    var theyear = thedate.getFullYear();
                    var themonth = thedate.getMonth() + 1;
                    var theday = thedate.getDate();

                    var className = "";
                    if (theyear == currentYear && themonth == currentMonth && theday == currentDay)
                        className = "On";

                    var specialDays = BuildArray($("#hfSpecialDays").val());
                    var position = $.inArray(theyear + "-" + themonth + "-" + theday, specialDays);
                    if (position == -1) return [false, className];
                    var specialClasses = BuildArray($("#hfSpecialClasses").val());
                    return [true, 'Evenement'];
                }
            });
        }
    });
}

function ShowEventsForSelectedDate(pYear, pMonth, pDay) {
    $.ajax({
        cache: false,
        type: "POST",
        url: "/Logic/Ajax/GetInfoForCurrentDate.aspx",
        data: "year=" + pYear + "&month=" + pMonth + "&day=" + pDay + "&l=fr-CA",
        success: function(msg) {
            $("#ListeEvenements").show();
            $(".JourneeSelectionnee").html(pDay + " " + GetStringMonth(pMonth) + " " + pYear);
            var html = "<ul>";
            var eventTab = msg.split("[~~]");
            for (var i in eventTab) {
                if (i % 3 == 0 && i != 0)
                    html += "</ul><ul>";
                fieldTab = eventTab[i].split("~");
                var name = fieldTab[0];
                var time = fieldTab[1];
                var path = fieldTab[2];
                var cssClass = fieldTab[3];

                if (time != "")
                    time = "(" + time + ")";

                html += "<li class=\"" + cssClass + "\"><a href='" + path + "'>" + name + "</a>&nbsp;" + time + "</li>";
            }
            html += "</ul>"
            $("#ListeEvenementsContenu").html(html);
            $("#Legende").css("display", "block");
            BindEventThicker();
        }
    });
}

function BuildArray(pString) {
    pString = pString.substring(1, pString.length - 1);
    return pString.split(",");
}

function GetStringMonth(pMonth) {
    var array = ['Janvier', 'F&eacute;vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Ao&ucirc;t', 'Septembre', 'Octobre', 'Novembre', 'D&eacute;cembre'];
    return array[pMonth - 1];
}

function BindEventThicker() {
    var nbGroupesEvenements = jQuery("#ListeEvenementsContenu ul").length;
    var cptGroupesEvenements = 0;
    var selectionGroupe = "";
    
    jQuery("#ListeEvenementsContenu ul").css("display", "none");
    jQuery("#ListeEvenementsContenu ul:nth(" + cptGroupesEvenements + ")").css("display", "block");
    selectionGroupe = jQuery("#ListeEvenementsContenu ul:nth(" + cptGroupesEvenements + ")");
	
	jQuery(".BtEvenementsSuivants").click(function() {
        if (cptGroupesEvenements < (nbGroupesEvenements - 1)) {
            jQuery(selectionGroupe).css("display", "none");
            cptGroupesEvenements++;
            jQuery("#ListeEvenementsContenu ul:nth(" + cptGroupesEvenements + ")").css("display", "block");
            selectionGroupe = jQuery("#ListeEvenementsContenu ul:nth(" + cptGroupesEvenements + ")");
        }
        else {
            jQuery(selectionGroupe).css("display", "none");
            cptGroupesEvenements = 0;
            selectionGroupe = jQuery("#ListeEvenementsContenu ul:nth(" + cptGroupesEvenements + ")").css("display", "block");
        }
        return false;
    });
}

/*Global Vars*/
var onepixel = 6.26; //1px in %
var normalpx = 10;
var moyenpx = 11;
var grandpx = 12;

/* -- Fonction initialisation Taille du texte
   -------------------------------------------*/
function initFontSize(){
	//Set last size
	var cookieSize = getcookie("font-size");
	var cookieSizeType = getcookie("font-size-type");
	//alert(cookieSize);
	if(cookieSize) {
		jQuery("body").css("font-size", cookieSize);
		//Ajout de la classe active
		jQuery("#AjustementTexte a").removeClass("Actif");
		jQuery("#AjustementTexte a."+cookieSizeType).addClass("Actif");
	}
}

/* -- Fonctions pour la gestion des cookies
   -------------------------------------------*/
function putcookie(name, value, days) {
    var today = new Date();
    today.setTime( today.getTime() );
    var expires = new Date( today.getTime() + (days * 1000 * 60 * 60 * 24) );
	document.cookie =  name+"="+value+";expires=" + expires.toGMTString() + ";path=/;domain=villevaudreuil.dev.absolunet.com";
}

function getcookie(name){
  var cookieValue = "";
  var search = name + "=";
  if(document.cookie.length > 0)
  { 
    offset = document.cookie.indexOf(search);
    if (offset != -1) { 
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      cookieValue = unescape(document.cookie.substring(offset, end))
    }
  }
  return cookieValue;
}


function ValidateForm(groupName, OnlyOneErrorByField, classError) {
    var msg = new Array();
    var ctl = new Array();
    if (classError != '') jQuery('.' + classError).removeClass(classError);
    //Ne pas oublier d'appliquer "Page_ClientValidate()" avant d'appeler cette procédure
    for (var i = 0; i < Page_Validators.length; i++) {
        if (Page_Validators[i].validationGroup == groupName && !Page_Validators[i].isvalid) {
            if (OnlyOneErrorByField) {
                var exist = false;
                for (var y = 0; y < ctl.length; y++) {
                    if (ctl[y] == Page_Validators[i].controltovalidate)
                        exist = true;
                }
                if (!exist) {
                    msg[msg.length] = Page_Validators[i].errormessage;
                    if (classError != '') jQuery('#' + Page_Validators[i].controltovalidate).addClass(classError);
                }
            }
            else {
                msg[msg.length] = Page_Validators[i].errormessage;
                if (classError != '') jQuery('#' + Page_Validators[i].controltovalidate).addClass(classError);
            }
            ctl[i] = Page_Validators[i].controltovalidate;
        }
    }
    return msg;
}

function CheckNewsletterForm() {
    if (typeof (Page_ClientValidate) == 'function') {
        if (!Page_ClientValidate("NewsLetterValidation")) {
            ValidateForm("NewsLetterValidation", true, "Erreur");
            return false;
        }
    }
    return true;
}
