/*----------------------------------------------------------------------------//
// Javascript pour le site client  -------------------------------------------//
//----------------------------------------------------------------------------//
// Client : Technologia
// Date   : juin 2010
//----------------------------------------------------------------------------*/

(function (w, $, undefined) {

    var ie6 = !!($.browser.msie && parseInt($.browser.version) <= 6)

    var T = {};


    /*----------------------------------------------------------------------------*/
    // 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
    /*----------------------------------------------------------------------------*/

    // Label focus
    importJavascript("/includes/js/plugins/abso.labelfocus.min.js");

    // Coins ronds 
    /*if (jQuery.browser.msie) {
    importJavascript("/includes/js/plugins/dd-roundies.js");
    }*/
    // Caroussel
    importJavascript("/includes/js/plugins/abso.caroussel.js");

    // Add This
    if (!($.browser.msie && parseInt($.browser.version) <= 6) && window.location.protocol != "https:") {
        importJavascript("//s7.addthis.com/js/250/addthis_widget.js#username=xa-4c1f7803208d1eb7&async=1");
    }

    // importCss("/includes/js/plugins/jquery.plugin.css", "screen");

    /*----------------------------------------------------------------------------*/
    // Declarations jQuery
    /*----------------------------------------------------------------------------*/
    $(document).ready(function () {
        //InitOldBrowser();

        if ($.browser.msie) {
            $('html').addClass('patch-is-ie');
        }

        T.Lang = $('body').attr('id').split('-')[1].toLowerCase();

        //w.addthis_config = { ui_offset_top: '-10' }; 	  
        w.addthis_config = {
            data_ga_property: 'UA-2791253-2',
            data_track_clickback: true,
            ui_language: T.Lang
        };
        if (!($.browser.msie && parseInt($.browser.version) <= 6) && window.location.protocol != "https:") {
            w.addthis.init();
        }






        if (($.browser.msie && parseInt($.browser.version) > 6 && parseInt($.browser.version) < 9)) {
            $('.ConteneurCoinsRonds, .BlocGris.CoinsRonds, #PanierEtapes li, .CoinsRondsComparaison, pre, .IECoinsBorderBlanc, .IECoinsBorderGris, .IECoinsNoBorderBlanc, .IECoinsNoBorderGris, .IECoinsNoBorderGauge').each(T.IECoinsRonds);
        }

        /*  Char limit for multiline textbox
        ------------------------------------*/
        $('.comment').keypress(function (event) {
            var key = event.which;
            if (key >= 33 || key == 13) {
                var maxLength = 400;
                var length = this.value.length;
                if (length >= maxLength)
                    event.preventDefault();
            }
        });



        /*  Caroussels
        ------------------------------------*/
        AbsoCaroussel.init({
            id: 'AccTechnologiaPartenaires',
            wrap: true,
            autostart: {
                interval: 10000
            }
        });

        AbsoCaroussel.init({
            id: 'AccPartenaire',
            wrap: true,
            autostart: {
                interval: 10000
            }
        });

        AbsoCaroussel.init({
            id: 'AccAccreditation',
            wrap: true,
            autostart: {
                interval: 10000
            }
        });

        AbsoCaroussel.init({
            id: 'AccEntete',
            wrap: true,
            autostart: {
                interval: 10000
            }
        });

        AbsoCaroussel.init({
            id: 'ServicesConseilsEntete',
            wrap: true
        });

        AbsoCaroussel.init({
            id: 'FicheFormateurs',
            wrap: true
        });

        AbsoCaroussel.init({
            id: 'FicheAutresCours',
            wrap: true
        });

        AbsoCaroussel.init({
            id: 'FicheAccreditations',
            wrap: true
        });

        AbsoCaroussel.init({
            id: 'AccBlocGaucheListe',
            wrap: true,
            transition: 'fade',
            autostart: {
                interval: 5000
            }
        });
        AbsoCaroussel.init({
            id: 'AccBlocDroiteListe',
            wrap: true,
            transition: 'fade',
            autostart: {
                interval: 5000
            }
        });

        AbsoCaroussel.init({
            id: 'ComparaisonCours01',
            wrap: true
        });
        AbsoCaroussel.init({
            id: 'ComparaisonCours02',
            wrap: true
        });
        AbsoCaroussel.init({
            id: 'ComparaisonCours03',
            wrap: true
        });
        AbsoCaroussel.init({
            id: 'ComparaisonCours04',
            wrap: true
        });
        AbsoCaroussel.init({
            id: 'PriveeGauche',
            wrap: true,
            transition: 'fade',
            autostart: {
                interval: 5000
            }
        });
        AbsoCaroussel.init({
            id: 'PriveeDroite',
            wrap: true,
            transition: 'fade',
            autostart: {
                interval: 5000
            }
        });
        AbsoCaroussel.init({
            id: 'ConseillerRightCol',
            wrap: true,
            transition: 'fade',
            autostart: {
                interval: 5000
            }
        });


        function refreshEqualHeights() {
            for (var i = 1; i <= 10; ++i) {
                equalHeight($('.Equal-' + i), true);
            }
        }
        refreshEqualHeights();

        // Plus-moins
        //------------------------------- */
        $('.Plus, .Moins').click(function () {
            var $this = $(this);
            var $input = $this.parent().find('input.PlusMoins');

            if (!$input.attr('disabled')) {
                $input
				.val(Number($input.val()) + (($this.hasClass('Plus')) ? 1 : -1))
				.change()
			;
            }

            return false;
        });

        // <input>
        $('input.PlusMoins').change(function () {
            var $this = $(this);
            var val = Number($this.val());

            $this.val(
    			(isNaN(val) || val < 0)
    				? 0
    				: (
    					(val > 99)
    						? 99
    						: val
    				)
		    );

            return false;
        });



        // Colonne droite : Panier / Souhait (Supprimer)
        $('#ColD .ListeCours li span').click(function () {
            $(this).parents('li').fadeOut('normal', function () {
                $(this).remove();
                //                $('#ColD .ListeCours span strong').html($('#ColD .ListeCours ul').find('>li').length);
            });
            return false;
        });


        /*  Panier d'achats
        ------------------------------------*/
        T.Panier = {};

        // Panier Étape 1 - Diffusion (Supprimer)
        $('body.PanierAchat #Principal tr.Diffusion td.Code span').click(function () {
            $(this).parents('tr.Diffusion').fadeOut('normal', function () {
                $tr = $(this).parents('tr.Diffusions');
                var occurrenceId = $(".OccurrenceId", this).val();
                $(this).remove();

                panierUpdateTotal($tr);
                panierRemoveOccurrence(occurrenceId);

                if ($tr.find('tr.Diffusion').length == 0) {
                    var 
                        $titre = $tr.prev('tr.Titres'),
                        $cours = $titre.prev('tr.Cours')
                    ;

                    $titre.remove();
                    $cours.remove();

                    if ($tr.siblings('tr.Cours').length == 0) {
                        $(".Prochain").attr("disabled", "disabled");
                        $(".Prochain").removeAttr("href");
                        
                    }
                    $tr.remove();
                }

            });


            return false;
        });

        // Panier Étape 1 - Diffusion (Calcul total)
        function panierUpdateTotal($tr) {
            updateTotal($tr);
        }






        // Souhaits - (Supprimer cours)
        $('body.PanierAchat #Souhaits tr.Cours td.Supprimer span').click(function () {
            $(this).parents('tr.Cours').nextUntil('tr.Cours').andSelf().fadeOut('normal', function () {
                $(this).remove();
            });
            RemoveCourse($(this));
            return false;
        });

        // Souhaits - (Supprimer tous)
        $('body.PanierAchat #Souhaits .PanierNav p').click(function () {
            $('body.PanierAchat #Souhaits tr:not(.Header)').add(this).fadeOut('normal', function () {
                $(this).remove();
            });
            RemoveAllCourse();
            return false;
        });

        /*if (jQuery.browser.msie) {

        DD_roundies.addRule('.CoinsRondsHaut', '7px 7px 0 0');
        DD_roundies.addRule('.CoinsRondsBas', '0 0 7px 7px');
        DD_roundies.addRule('.CoinsRonds', '9px');
            
        //DD_roundies.addRule('.PetitsCoinsRonds', '2px');
        //DD_roundies.addRule('.Numero', '2px');
        //DD_roundies.addRule('a.Btn', '9px');
        }*/
        $('a.Btn, a.BtnGros').each(function () {
            var $this = $(this);
            if (!$this.has('span').length) {
                $this.wrapInner('<span>');
            }
        });


        // Comparaison - (Supprimer tous)
        $('#Comparaison #ListeComparaison .Supprimer span').click(function () {
            $(this).parents('li').fadeOut('normal', function () {
                $(this).remove();
                $('#Comparaison .PanierNav h2 span').html($('#Comparaison #ListeComparaison').find('>li').length);

                var classes = ['Simple', 'Double', 'Triple'];
                $('#Comparaison #ListeComparaison > li')
					.removeClass("Simple Double Triple")
					.addClass(classes[$('#Comparaison #ListeComparaison > li').length - 1]);
                ;

                $('*[class*="Equal-"]').css('height', 'auto');
                refreshEqualHeights();
            });
            return false;

        });

        // Comparaison - (Supprimer tous)
        $('#Comparaison .PanierNav p').click(function () {
            $('#Comparaison #ListeComparaison').add(this).fadeOut('normal', function () {
                $(this).remove();
            });
            return false;
        });



        $("input.LabelFocus").labelfocus();
        $('.Imprimer').click(function () { window.print(); return false; });


        // Formateurs
        $(".BlocFormateur").each(function () {
            var current = $(this);

            $("a.BtnBioFormateur, a img, h2 a", current).click(function () {
                if (this.href && this.href.toString().substr(0, 4) != 'http') {
                    $("a.BtnBioFormateur", current).toggleClass("On");
                    $(".BioComplete", current).slideToggle("fast");
                }
            });
        });

        // InfoBulle Formateurs
        $("#ListeFormateurs ul li").each(function () {
            var CurrentFormateur = $(this);

            $("a img", CurrentFormateur).hover(function () {
                $(".InfoBulle", CurrentFormateur).fadeIn("fast");
            }, function () {
                $(".InfoBulle", CurrentFormateur).hide();
            });
        });

        // InfoBulle
        $("a.Aide, a.Info").each(function () {
            var CurrentAide = $(this);

            $(this).hover(function () {
                $(".InfoBulle", CurrentAide).fadeIn("fast");
            }, function () {
                $(".InfoBulle", CurrentAide).hide();
            });
        });

        // Onglets couleurs	
        $("#PanierEtapes").not(".OngletStatique").find("a").click(function () {
            var currParent = $(this).parents("ul");

            $("li", currParent).removeClass("On");
            $(".FAQ #PanierEtapes li, .ListeFormateurs #PanierEtapes li, .Contact #PanierEtapes li, .Onglets #PanierEtapes li").css({ 'background-color': '#E6E6E6' });
            $("a", currParent).each(function () {
                $($(this).attr("href")).hide();
            });

            $(this).parents("li").addClass("On");
            $($(this).attr("href")).show();
            $(this).parents(".FAQ #PanierEtapes li, .ListeFormateurs #PanierEtapes li, .Contact #PanierEtapes li, .Onglets #PanierEtapes li").css({ 'background-color': '#003F65' });

            $('#SeparateurOnglet')
			.removeClass('Technologie Gestion Capital')
			.addClass($(this).attr('href').split('#')[1]);
            return false;
        });


        $('#ModifProfil .FonctionTI p.Radio input').change(function () {
            if ($('#ModifProfil p.Radio input:checked').val() == $('#ModifProfil p.Radio input:first').val()) {
                $('#ModifProfil .FonctionTI > div > ul').slideDown('fast');
            } else {
                $('#ModifProfil .FonctionTI ul').slideUp('fast');
                $('#ModifProfil .FonctionTI div input:checked').removeAttr('checked');
            }
        });

        $('#ModifProfil .FonctionTI a').click(function (e) {
            e.preventDefault();
            $(this).siblings('ul').slideToggle('normal');
        });

        $('body.CoursSeminaires div.DomainContainer #BlocTI').height($('body.CoursSeminaires div.DomainContainer').height() - 6 + ((ie6) ? -13 : 0));
        $('body.ListeFormateurs div.DomainContainer #BlocTI').height($('body.ListeFormateurs div.DomainContainer').height() - 2 + ((ie6) ? -13 : 0));

        $('.CreditButton').click(function () {
            showModalDiv();
            return false;
        });
    });


    // Coins ronds IE
    T.IECoinsRonds = function (obj) {

        var $this = (obj instanceof jQuery) ? obj : $(this);

        var TL = false;
        var TR = false;
        var BL = false;
        var BR = false;

        $this.addClass('CoinFixIE');

        // CoinsRondsComparaison	
        if ($this.hasClass('CoinsRondsComparaison')) {
            TR = BL = BR = true;

            // PanierEtapes    
        } else if ($this.parent('#PanierEtapes').length) {
            TL = TR = true;

            // Default    
        } else {
            var h = $this.hasClass('Haut');
            var b = $this.hasClass('Bas');

            // Haut
            if (h || (!h && !b)) {
                TL = TR = true;
            }

            // Bas
            if (b || (!h && !b)) {
                BL = BR = true;
            }
        }

        // add corners
        if (TL) { $this.append($('<span>').addClass('CoinIeTopLeft')); }
        if (TR) { $this.append($('<span>').addClass('CoinIeTopRight')); }
        if (BL) { $this.append($('<span>').addClass('CoinIeBottomLeft')); }
        if (BR) { $this.append($('<span>').addClass('CoinIeBottomRight')); }
    };



    /* - Fonction : Equalcols height
    ------------------------------------*/
    w.equalHeight = function (group) {
        tallest = 0;
        group.each(function () {
            thisHeight = jQuery(this).height();
            if (thisHeight > tallest) {
                tallest = thisHeight;
            }
        });

        group.each(function () {
            jQuery(this).height(tallest + "px");
        });
    }
    w.clearEqualHeight = function (group) {
        group.each(function () {
            jQuery(this).css("height", "");
        });
    }

    w.Technologia = T;

})(window, jQuery);

function ValidateForm(groupName, OnlyOneErrorByField, classError) {
    var msg = new Array();
    var ctl = new Array();
    var showsummary = false;
    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) {
            showsummary = true;
            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;
        }
    }
    if (showsummary) {
        $(".ValidationSummary").css('display', 'inline');
    }
    else {
        $(".ValidationSummary").css('display', 'none');
    }
    
    return msg;
}

function CheckForm(validationGroup) {
    if (typeof (Page_ClientValidate) == 'function') {
        if (!Page_ClientValidate(validationGroup)) {
            var msg = ValidateForm(validationGroup, true, "Erreur");
            return false;
        }
    }
    return true;
}


function SubmitOnEnter(textboxclass, buttonclass, validationgroup) {
    // -----------------------------------------------------------------------------------------------------------------
    // Submit Form On Enter Keypress -----------------------------------------------------------------------------------
    // -----------------------------------------------------------------------------------------------------------------
    jQuery("." + textboxclass).keypress(function(e) {
        var c = e.which ? e.which : e.keyCode;
        if (c == 13) {
            if (validationgroup == undefined || CheckForm(validationgroup)) {
                var submitUrl = jQuery('.' + buttonclass).attr("href");
                window.location.href = submitUrl;
            }
            return false;
        }
    });
}

function RegenerateRightColumnItem(blockId, langue) {
    var url = "/WS/BlockGenerationService.asmx/RegenrateCustomBlock";
    var data = '{"blockId":"' + blockId + '", "langue":"' + langue + '"}';
    callWS(url, data, function(data, textStatus) { $("#block" + blockId).html(data.d.html); });
}

function RegenerateCoveoControl(page, track, trackingUrl) {
    var url = "/WS/CoveoSearchService.asmx/GetControl";
    var data = buildJSON(page);
    callWS(url, data, function(data, textStatus) {
        $("#ColResultats").html(data.d.html);
        $(".NbResultats").html(data.d.NbResultats);
        $(".RechercheTitle").html(data.d.RechercheTitle);

        if (track) {
            //alert(trackingUrl + '&results=' + data.d.NbResults);
            _gaq.push(['_trackPageview', trackingUrl + '&results=' + data.d.NbResults]);
        }

        Technologia.IECoinsRonds($("#ColResultats"));

        $(".Comparer").unbind("change");
        $(".Comparer").change(function() {
            return fillCompareValues(this);
        });
        $(".CompareButton").unbind("click");
        $(".CompareButton").click(function() {
            redirectCompareButton();
            return false;
        });
        $(".AddWishlist").unbind("click");
        $(".AddWishlist").click(function() {
            addWishlist($(this).attr("rel"));
        });
    });
}

function callWS(url, data, success) {
    $.ajax({
        url: url,
        data: data,
        type: "POST",
        processData: true,
        contentType: "application/json; charset=utf-8",
        timeout: 10000,
        dataType: "json",
        success: success,
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            //alert(XMLHttpRequest.responseText);
        }
    });
    
}
function getJSONParam(key, value) {
    var paramFormat = '"{0}": "{1}"';
    return paramFormat.format(key, value);

}

/* Modal Div functions */

function disableScrolling() {
    if (document.all) {
        document.body.scroll = "no";
    }
    else {
        var oTop = document.body.scrollTop;
        document.body.style.overflow = "hidden";
        document.body.scrollTop = oTop;
    }
}

function enableScrolling() {
    if (document.all) {
        document.body.scroll = "yes";
    }
    else {
        var oTop = document.body.scrollTop;
        document.body.style.overflow = "auto";
        document.body.scrollTop = oTop;
    }
}

function removeModalDiv() {
    $('html, body').css('overflow', 'auto');
    document.getElementById('Popup').style.display = 'none';
    document.getElementById('overlay').style.display = 'none';
}

function showModalDiv() {
    $('html, body').css('overflow', 'hidden').animate({ scrollTop: 0 }, 'slow');
    document.getElementById('Popup').style.display = 'block';
    document.getElementById('overlay').style.display = 'block';
    $('body').append($('#Popup'));
}

