﻿/* Pour ajouter des concerts à l'horaire personnalisé */
function changerMesConcerts(horaireId) {
    if ($(".btnDeconnexionAccueil").length > 0) {
        var action = $(".colonneMC" + horaireId + " .actionMesConcerts").text();

        if ($.trim(action) == "AJOUTER À" || $.trim(action) == "ADD TO") {
            mesConcertsServices.addToMyConcerts(horaireId, addConcertSuccess, addConcertFailed);
        }
        else if ($.trim(action) == "RETIRER DE" || $.trim(action) == "REMOVE FROM") {
            mesConcertsServices.removeFromMyConcerts(horaireId, removeConcertSuccess, removeConcertFailed);
        }
    }
    else {
        if (langue == "fr") {
            document.location.href = "/mes-francos/mes-francos.aspx";
        }
        else {
            document.location.href = "/my-francos/my-francos.aspx";
        }
    }
}

function addConcertSuccess(result, eventArgs) {

    $("#hpCount").val(result.concertsCount);

    if (langue == "fr") {
        //On met à jour le texte du mini pop-up    
//        if (result < 2) {
//            $(".hp_text").html("Ce spectacle a été ajouté<br /> à votre sélection.<br /> Vous avez <strong>" + result.concertsCount + "</strong> spectacle");
//        }
//        else {
//            $(".hp_text").html("Ce spectacle a été ajouté<br /> à votre sélection.<br /> Vous avez <strong>" + result.concertsCount + "</strong> spectacles");
//        }

        $(".hp_text").html("Ce spectacle a été ajouté<br /> à votre sélection.");

        //On change le texte de l'action
        $(".colonneMC" + result.horaireId + " .actionMesConcerts").text("RETIRER DE");

        //On change le texte du «tooltip» du bouton «Mes Francos»
        $(".colonneMC" + result.horaireId + " .btnHorairePerso").attr("title", "Retirer ce concert de votre liste personnalisée");
    }
    else {
        //On met à jour le texte du mini pop-up       
//        if (result < 2) {
//            $(".hp_text").html("This show has been added<br /> to your selection.<br /> You have <strong>" + result.concertsCount + "</strong> show.");            
//        }
//        else {
//            $(".hp_text").html("This show has been added<br /> to your selection.<br /> You have <strong>" + result.concertsCount + "</strong> shows.");           
//        }

        $(".hp_text").html("This show has been added<br /> to your selection.");
        
        //On change le texte de l'action
        $(".colonneMC" + result.horaireId + " .actionMesConcerts").text("REMOVE FROM");

        //On change le texte du «tooltip» du bouton «Mes Francos»
        $(".colonneMC" + result.horaireId + " .btnHorairePerso").attr("title", "Remove this concert from your list");
    }

    //On dévoile la zone pour l'ajout d'un commentaire
    if ((document.childNodes) && (!document.all) && (!navigator.taintEnabled) && (!navigator.accentColorName)) {
        //On laisse tomber l'animation dans Safari    
        $(".commentaire" + result.horaireId).css('display', 'block');
    }
    else {
        $(".commentaire" + result.horaireId).show("slow");
    }
}

function addConcertFailed(error) {
    var errorMsg;

    if (langue == "fr") {
        errorMsg = "Une erreur s'est produite lors de l'ajout d'un concert dans votre liste personalisé : ";
    }
    else {
        errorMsg = "An error occured while saving a concert in your personalized schedule: ";
    }

    alert(errorMsg + error.get_message());
}

/* Pour ajouter / modifier un commentaire sur un de mes concerts */
function updateCommentaire(horaireId) {
    if (typeof listeMesConcerts !== "undefined") {
        var regexHTML = /(<([^>]+)>)/ig;

        var commentaire = $(".commentaire" + horaireId + " textarea").val();

        if (commentaire == "Votre commentaire" || commentaire == "Your comment") {
            if (langue == "en") {
                alert("You must add the comment that you would like to share.");
            }
            else {
                alert("Vous devez écrire le commentaire que vous désirez partager.");
            }
        }
        else if (regexHTML.test(commentaire)) {

            if (langue == "fr") {
                alert("Les balises HTML ne sont permises dans les commentaires.");
            } else {
                alert("HTML tags are not allowed in comments.");
            }

            $(".commentaire" + horaireId + " textarea").val(commentaire.replace(regexHTML, ""));
        }
        else {
            mesConcertsServices.updateCommentaire(horaireId, commentaire, langue, updateCommentaireSuccess, updateCommentaireFailed);
        }
    }
    else {
        if (langue == "fr") {
            document.location.href = "/mes-francos/mes-francos.aspx";
        }
        else {
            document.location.href = "/my-francos/my-francos.aspx";
        }
    }
}

function updateCommentaireSuccess(result, eventArgs) {
    //On change le texte du bouton de soumission du commentaire
    var currentComment = ".commentaire" + result.horId + " .btnPartagerCommentaire";
    var commentaire = $(".commentaire" + result.horId + " textarea").val();

    if (commentaire.length > 0) {
        if (langue == "fr") {
            $(currentComment).fadeOut(function() { $(currentComment).text("MODIFIER").fadeIn() });
        }
        else {
            $(currentComment).fadeOut(function() { $(currentComment).text("EDIT").fadeIn() });
        }
    }
    else {
        if (langue == "fr") {
            $(currentComment).fadeOut(function() { $(currentComment).text("PARTAGER").fadeIn() });
            $(".commentaire" + result.horId + " textarea").val("Votre commentaire");
        }
        else {
            $(currentComment).fadeOut(function() { $(currentComment).text("SHARE").fadeIn() });
            $(".commentaire" + result.horId + " textarea").val("Your comment");
        }    
    }

    if ($('#popupPartage').length > 0) {
        //Si l'option de partage n'est pas activée ou que le courriel 
        //n'est pas validé, on montre une modal popup qui invite à le faire
        if (result.courrielOk == false || result.partageOk == false) {

            if (result.partageOk == false) {
                $("#msgActivationPartage").show();
            }
            else {
                $("#msgActivationPartage").hide();
            }

            if (result.courrielOk == false) {
                $("#msgCourrielNonValide").show();
                $("#msgCourrielValide").hide();
            }
            else {
                $("#msgCourrielNonValide").hide();
                $("#msgCourrielValide").show();
            }

            //Get the screen height and width
            var maskHeight = $(document).height();
            var maskWidth = $(window).width();

            //Set heigth and width to mask to fill up the whole screen
            $('#maskModal').css({ 'width': maskWidth, 'height': maskHeight });

            //transition effect		
            $('#maskModal').fadeIn(500);
            $('#maskModal').fadeTo("fast", 0.8);

            //Get the window height and width
            var winH = $(window).height();
            var winW = $(window).width();

            //Set the popup window to center
            $("#popupPartage").css('top', (winH / 2 - $("#popupPartage").height() / 2) + $(window).scrollTop());
            $("#popupPartage").css('left', winW / 2 - $("#popupPartage").width() / 2);

            //transition effect
            $("#popupPartage").fadeIn(1000);
        }
    }
}

function updateCommentaireFailed(error) {
    var errorMsg;

    if (langue == "fr") {
        errorMsg = "Une erreur s'est produite lors de l'ajout de votre commentaire. Veuillez contacter le Webmestre à l'adresse webmestre_francos@equipespectra.ca.\n\n";
    }
    else {
        errorMsg = "An error occured while saving your comment. Please contact the Webmaster at webmestre_francos@equipespectra.ca.\n\n";
    }

    alert(errorMsg + error.get_message());
}

/* Pour retirer un concert de l'horaire personnalisé */
function removeConcertSuccess(result, eventArgs) {

    $("#hpCount").val(result.concertsCount);

    if (langue == "fr") {
        //On met à jour le texte du mini pop-up    
//        if (result < 2) {
//            $(".hp_text").html("Ce spectacle a été retiré<br /> de votre sélection.<br /> Vous avez <strong>" + result.concertsCount + "</strong> spectacle");
//        }
//        else {
//            $(".hp_text").html("Ce spectacle a été retiré<br /> de votre sélection.<br /> Vous avez <strong>" + result.concertsCount + "</strong> spectacles");
//        }

        $(".hp_text").html("Ce spectacle a été retiré<br /> de votre sélection.");
        
        //On change le texte de l'action
        $(".colonneMC" + result.horaireId + " .actionMesConcerts").text("AJOUTER À");

        //On change le texte du «tooltip» du bouton «Mes Francos»
        $(".colonneMC" + result.horaireId + " .btnHorairePerso").attr("title", "Ajouter ce concert à votre liste personnalisée");

        //On change le champ de commentaire correspondant
        $(".commentaire" + result.horaireId + " textarea").val("Votre commentaire");

        //On change le texte du bouton soumission de commentaire
        $(".commentaire" + result.horaireId + " .btnPartagerCommentaire").text("PARTAGER");
    }
    else {
        //On met à jour le texte du mini pop-up       
//        if (result < 2) {
//            $(".hp_text").html("This show has been removed<br /> from your selection.<br /> You have <strong>" + result.concertsCount + "</strong> show.");
//        }
//        else {
//            $(".hp_text").html("This show has been removed<br /> from your selection.<br /> You have <strong>" + result.concertsCount + "</strong> shows.");
//        }

        $(".hp_text").html("This show has been removed<br /> from your selection.");

        //On change le texte de l'action
        $(".colonneMC" + result.horaireId + " .actionMesConcerts").text("ADD TO");

        //On change le texte du «tooltip» du bouton «Mes Francos»
        $(".colonneMC" + result.horaireId + " .btnHorairePerso").attr("title", "Add this concert to your list");

        //On ré-initialise le champ de commentaire correspondant
        $(".commentaire" + result.horaireId + " textarea").val("Your comment");

        //On change le texte du bouton soumission de commentaire
        $(".commentaire" + result.horaireId + " .btnPartagerCommentaire").text("SHARE");
    }

    //On masque la zone pour l'ajout d'un commentaire
    if ((document.childNodes) && (!document.all) && (!navigator.taintEnabled) && (!navigator.accentColorName)) {
        //On laisse tomber l'animation dans Safari    
        $(".commentaire" + result.horaireId).css('display', 'none');
    }
    else {
        $(".commentaire" + result.horaireId).hide("slow");
    }
}

function removeConcertFailed(error) {
    var errorMsg;

    if (langue == "fr") {
        errorMsg = "Une erreur s'est produite lors du retrait d'un concert dans votre liste. Veuillez contacter le Webmestre à l'adresse webmestre_francos@equipespectra.ca.\n\n";
    }
    else {
        errorMsg = "An error occured while removing a concert from your schedule. Please contact the Webmaster at webmestre_francos@equipespectra.ca.\n\n";
    }

    alert(errorMsg + error.get_message());
}

//Vide les textareas de leur contenu par défaut lorsqu'ils gagnent le focus
$(document).ready(function() {
    $(".mesFrancosCommentaire textarea").focus(function() {
        if ($(this).val() == "Votre commentaire" || $(this).val() == "Your comment") {
            $(this).val("");
        }
    });
});

//Pour dévoiler les concerts de la liste personnalisée au chargement de la page, lorsque l'usager est logué
function initMesConcerts(arrayConcerts) {
    //On modifie l'avatar
    $(".avatarCommentaire").attr("src", $("#avatarPath").val());

    if (typeof listeMesConcerts !== "undefined") {

        for (i = 0; i < arrayConcerts.length; i++) {
            var concert = arrayConcerts[i];
            
            if (concert.commentaire.length > 0) {
                //On change le texte du champ de commentaire
                $(".commentaire" + concert.horaireId + " textarea").val(concert.commentaire);
            }

            //On dévoile la zone de commentaire    
            $(".commentaire" + concert.horaireId).css('display', 'block');

            if (langue == "fr") {
                if (concert.commentaire.length > 0) {
                    //On change le texte du bouton de soumission du commentaire        
                    $(".commentaire" + concert.horaireId + " .btnPartagerCommentaire").text("MODIFIER");
                }

                //On change le texte de l'action
                $(".colonneMC" + concert.horaireId + " .actionMesConcerts").text("RETIRER DE");

                //On change le texte du «tooltip» du bouton «Mes Francos»
                $(".colonneMC" + concert.horaireId + " .btnHorairePerso").attr("title", "Retirer ce concert de votre liste personnalisée");
            }
            else {
                if (concert.commentaire.length > 0) {
                    //On change le texte du bouton de soumission du commentaire        
                    $(".commentaire" + concert.horaireId + " .btnPartagerCommentaire").text("EDIT");
                }

                //On change le texte de l'action
                $(".colonneMC" + concert.horaireId + " .actionMesConcerts").text("REMOVE FROM");

                //On change le texte du «tooltip» du bouton «Mes Francos»
                $(".colonneMC" + concert.horaireId + " .btnHorairePerso").attr("title", "Remove this concert from your list");
            }
        }
    }
    else {
        if (langue == "fr") {
            //On change le texte du bouton de soumission du commentaire        
            $(".btnPartagerCommentaire").text("PARTAGER");

            //On change le texte de l'action
            $(".actionMesConcerts").text("AJOUTER À");

            //On change le texte du «tooltip» du bouton «Mes Francos»
            $(".btnHorairePerso").attr("title", "Ajouter à de votre liste personnalisée");
        }
        else {
            //On change le texte du bouton de soumission du commentaire        
            $(".btnPartagerCommentaire").text("SHARE");

            //On change le texte de l'action
            $(".actionMesConcerts").text("ADD TO");

            //On change le texte du «tooltip» du bouton «Mes Francos»
            $(".btnHorairePerso").attr("title", "Add this concert to your list");
        }

        $(".mesFrancosCommentaire").css('display', 'none');
    }
}

function publierConcerts() {

    if ($("#CheckboxPartager:checked").val() !== null && typeof $("#CheckboxPartager:checked").val() !== 'undefined') {
        mesConcertsServices.publierConcerts(publierConcertsSuccess, publierConcertsFailed);
    }
    else {
        $('#maskModal').hide();
        $('.windowModal').hide();
    }
}

function publierConcertsSuccess(result, eventArgs) {
    var feedbackMsg = "";

    if (result == false) {

        $(".windowModal .close").unbind('click');

        $(".windowModal .close").click(function(e) {
            e.preventDefault();
            $('#maskModal').hide();
            $('.windowModal').hide();
        });

        if (langue == "en") {
            feedbackMsg = "<p>Sorry, an error occured while modifying your sharing options. Please contact the Webmaster at <a href=\"maitlo:webmestre_francos@equipespectra.ca\">webmestre_francos@equipespectra.ca</a>.<p>";
        }
        else {
            feedbackMsg = "<p>Une erreur s'est produite lors de la modification de vos options de partage. Veuillez contacter le Webmestre à l'adresse <a href=\"maitlo:webmestre_francos@equipespectra.ca\">webmestre_francos@equipespectra.ca</a>.<p>";
        }

        $("#msgActivationPartage").fadeOut(function() { $("#msgActivationPartage").html(feedbackMsg).fadeIn() });
    }
    else {
        $('#maskModal').hide();
        $('.windowModal').hide();    
    }

    return result;
}

function publierConcertsFailed(error) {

    $(".windowModal .close").unbind('click');

    $(".windowModal .close").click(function(e) {
        e.preventDefault();
        $('#maskModal').hide();
        $('.windowModal').hide();
    });

    var errorMsg;

    if (langue == "en") {
        errorMsg = "Sorry, an error occured while modifying your sharing options. Please contact the Webmaster at webmestre_francos@equipespectra.ca.\n\n";
    }
    else {
        errorMsg = "Une erreur s'est produite lors de la modification de vos options de partage. Veuillez contacter le Webmestre à l'adresse webmestre_francos@equipespectra.ca.\n\n";
    }

    alert(errorMsg + error.get_message());
}

function sendActivationMsg() {
    mesConcertsServices.sendActivationMsg(langue, sendActivationMsgSuccess, sendActivationMsgFailed);
}

function sendActivationMsgSuccess(result, eventArgs) {
    var feedbackMsg = "";

    if (result == true) {
        if (langue == "en") {
            feedbackMsg = "<p>A new confirmation message has been sent to you. Please click on the &quot;Validate my email address&quot; activation link in this message.</p>";
        }
        else {
            feedbackMsg = "<p>Un nouveau message de confirmation vous a été envoyé. Veuillez cliquer sur le lien « Valider mon adresse de courriel » dans ce message afin de partager vos commentaires avec les autres festivaliers.</p>";
        }
    }
    else {
        if (langue == "en") {
            feedbackMsg = "<p>Sorry, an error has occured. Please contact the Webmaster at <a href=\"maitlo:webmestre_francos@equipespectra.ca\">webmestre_francos@equipespectra.ca</a>.</p>";
        }
        else {
            feedbackMsg = "<p>Désolé, une erreur s'est produite. Veuillez contacter le Webmestre à l'adresse <a href=\"maitlo:webmestre_francos@equipespectra.ca\">webmestre_francos@equipespectra.ca</a>.</p>";
        }
    }

    $("#msgCourrielNonValide").fadeOut(function() { $("#msgCourrielNonValide").html(feedbackMsg).fadeIn() });
}

function sendActivationMsgFailed(error) {
    var feedbackMsg = "";

    if (langue == "en") {
        feedbackMsg = "<p>Sorry, an error has occured. Please contact the Webmaster at <a href=\"maitlo:webmestre_francos@equipespectra.ca\">webmestre_francos@equipespectra.ca</a>.</p>";
    }
    else {
        feedbackMsg = "<p>Désolé, une erreur s'est produite. Veuillez contacter le Webmestre à l'adresse <a href=\"maitlo:webmestre_francos@equipespectra.ca\">webmestre_francos@equipespectra.ca</a>.</p>";
    }

    $("#msgCourrielNonValide").fadeOut(function() { $("#msgCourrielNonValide").html(feedbackMsg).fadeIn() });
}

//Instruction pour Safari
if (typeof (Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
