﻿// Masque le contrôle passé en paramètre
// Peut être appelé en utilisant soit directement le contrôle, soit son nom
function MasquerControle(controle)
{
    controle = GetControl(controle);
    if(controle != null)
    {
        controle.style.visibility = "hidden";
        controle.style.display = "none";
    }
}

// Affiche le contrôle passé en paramètre
// Peut être appelé en utilisant soit directement le contrôle, soit son nom
function AfficherControle(controle)
{
    controle = GetControl(controle);
    if(controle != null)
    {        
        controle.style.visibility = "visible";
        controle.style.display = "block";
    }
}

// Supprime un controle de la page
function SupprimerElement(controle)
{
    controle = GetControl(controle);

    // Récupération du controle parent
    if (controle != null)
    {
        var parent = controle.parentNode;

        // Suppression du controle (fils du père)
        if(parent != null)
            parent.removeChild(controle);
    }
}

// Remplace la valeur d'un contrôle par une valeur de remplacement, si la valeur actuelle du contrôle est la valeur par défaut
function MasquerValeurParDefaut(controle, valeurParDefaut, valeurRemplacement)
{
    controle = GetControl(controle);
    if(controle != null && controle.value != null && controle.value == valeurParDefaut)
        controle.value = valeurRemplacement;

    return true;
}

// Place le focus sur un contrôle
function MettreFocus(controle)
{
    controle = GetControl(controle);
    if(controle != null)
        controle.focus();
}

function AffecterValeurSiChampsVide(controle, valeur)
{
    controle = GetControl(controle);
    if (controle != null && controle.value == "")
        controle.value = valeur;
}

function AfficherControleSiChampsVide(controle, controleAAfficher)
{
    controle = GetControl(controle);
    if (controle != null && controle.value == "")
        AfficherControle(controleAAfficher);
}

function MasquerControleSiChampsNonVide(controle, controleAAfficher)
{
    controle = GetControl(controle);
    if (controle != null && controle.value != "")
        MasquerControle(controleAAfficher);
}



// Simule un clic sur le controle passé en paramètre lorsque la touche pressée en paramètre correspond à la touche Entrée
function SimulerClicQuandEntree(evenement, controle)
{
    /* Vérifications effectuées :
         - L'évènement est fournit et correspond à un appui de touche
         - La touche Entrée a été appuyée
         - Le contrôle est fournit 
         - La longueur de son champ href est supérieure à 11 caractères et commence par javascript:
    */

    controle = GetControl(controle);
    if (SaisieEstEntree(evenement) && controle != null && controle.toString() != null && controle.toString().length > 11 && controle.toString().substring(0, 11) == "javascript:")
    {
        eval(controle.toString().replace('javascript:', ''));
        return false;
    }

    return true;
}

// Clique sur un controle quand l'évènement Entrée est levé
function CliquerQuandEntree(evenement, controle)
{
    controle = GetControl(controle);
    if (SaisieEstEntree(evenement))
        controle.click();
}

// Execute du code Javascript si la touche appuyée est Entrée
function ExecuterJavaScriptQuandEntree(evenement, javascript)
{
    if(SaisieEstEntree(evenement) && javascript != null)
        eval(javascript.replace('javascript:', ''));
}

// Indique si une touche saisie correspond, ou non, a une touche Entrée
function SaisieEstEntree(evenement)
{
    // Le keyCode = 3 correspond à la touche "Entrée" de droite d'un clavier Mac
    if(evenement != null && evenement.keyCode != null && (evenement.keyCode == 13 || evenement.keyCode == 3))
        return true;
        
    return false;
}


//Cette fonction est appelée sur l'événement MouseOver d'une image
// Le paramètre contient l'image de remplacement.
var doRollOver_oldSrc = null;
var doRollOver_objLastImg = null;
function DoRollover(img, strImageRollover)
{
    doRollOver_objLastImg = img;
    doRollOver_oldSrc = img.src;
    img.src = strImageRollover;
    img.onmouseout = RemoveRollOver;
}

// private
// Utilisée automatiquement pour revenir à l'image initialle
function RemoveRollOver()
{
    doRollOver_objLastImg.src = doRollOver_oldSrc;
    doRollOver_objLastImg.onmouseout = null;
    doRollOver_objLastImg = null;
    doRollOver_oldSrc = null;
}

//
// Ouvre une nouvelle fenêtre de navigateur de dimensions donnés.
//
function Ouvrir(sUrl, iHauteur, iLargeur, scrollbar )
{
    if ( sUrl.length < 2 )
        alert('Veuillez choisir un magasin.');
    else
    {
        var objWindow;
        var option = 'width = ' + iLargeur + ', height = ' + iHauteur + ',status=no,menubar={ no | 0 },titlebar={ no | 0 },toolbar={ no | 0 },location={ no | 0 },fullscreen={ no | 0 },scrollbars='+ scrollbar;
        objWindow = window.open(sUrl,'_blank', option);
        objWindow.focus();
    }
    return false;
}

// Retourne le contrôle associé au paramètre fournit par l'utilisateur (soit le contrôle, soit l'ID du contrôle)
// Soit l'obj passé en paramètre est déjà un contrôle (c'est à dire, ayant un ID) et la méthode le renvoi
// Soit elle recherche dans la page les contrôles portant cet ID. Si trouvé : elle retourne le controle. Sinon -> null
function GetControl(obj)
{
    if(obj != null)
    {
        if(obj.id != null)
            return obj;
        else
            return document.getElementById(obj);
    }
    return null;
}

function OuvrirPopUpMagasin(codeMagasin)
{
    // Mise à jour du champ txtCarteFlashMagasinSelectionne qui doit contenir le code magasin cliqué
    var hfCarte_SelectionMagasin = GetControl('hfCarte_SelectionMagasin');
    if (hfCarte_SelectionMagasin != null && hfCarte_SelectionMagasin.value != null)
    {
        hfCarte_SelectionMagasin.value = codeMagasin;
        
        // Levée de l'évènement demandant d'afficher la pop-up
        // Pour un problème de mise à jour des updatePanel, nous sommes obligés de cliquer sur un élément de type non bouton, qui cliquera sur un élément de type bouton
        var btnCarte = GetControl('chkCarte_SelectionMagasin');
        if(btnCarte != null)
            btnCarte.click();
    }
}

function flashCommands(_variables)
{
    OuvrirPopUpMagasin(_variables);
}
function sendToActionScript(value) 
{
         thisMovie("anim").sendToActionScript(value);
}
function thisMovie(movieName) 
{
    if (navigator.appName.indexOf("Microsoft") != -1)
        return window[movieName];
    else
        return document[movieName];
}

function popEngagement()
{
    AfficherControle('divPopUpNosEngagements');
}


function openMagUrl(idmag) {
    OuvrirPopUpMagasin(idmag);
}

/* 
    Gestion de l'affichage des blocs avec et sans Flash en fonction de la version du plug-in installé chez le client
    Ce script aurait pu être placé à la fin pour être plus facilement repérable mais il est préférable de l'exécuter dès que possible pour éviter les problèmes d'affichage
    La visibilité de tous les éléments potentiellements supprimables doivent être masqués via CSS pour éviter les problèmes de chargement sur des connexions lentes
*/
function GererControlesAffichesAvecFlash()
{
    if (!DetectFlashVer(9, 0, 0))
    {
        // Si non plugin Flash
        SupprimerElement('divVideoAvecFlash');
        SupprimerElement('divCarteAvecFlashFiller');
        SupprimerElement('divPresentationFlash');
        SupprimerElement('divCarteAvecFlash');

        MasquerControle('divVideoAvecFlash');
        MasquerControle('divCarteAvecFlashFiller');
        MasquerControle('divPresentationFlash');
        MasquerControle('divCarteAvecFlash');

        AfficherControle('divPresentationSansFlash');
        AfficherControle('divCarteSansFlash');
    }
    else
    {
        // Si plugin Flash
        SupprimerElement('divPresentationSansFlash');
        SupprimerElement('divCarteSansFlash');

        MasquerControle('divPresentationSansFlash');
        MasquerControle('divCarteSansFlash');

        
        AfficherControle('divCarteAvecFlashFiller');
        AfficherControle('divPresentationFlash');
        AfficherControle('divCarteAvecFlash');
    }
}