/*************************************************************
 * Fichier : EnvoieCourriel.js
 * Auteur : François Gaumond
 * courriel : fgaumond(a)viva-solutions.ca
 * Date : 22 octobre 2006
 * Description : Définit les fonctions qui servent au 
 *               formulaire d'expédition de courriel
 ************************************************************/

//Création de la classe EnvoieCourriel
function EnvoieCourriel(){}

function EnvoieCourriel_Init()
{
    EnvoieCourriel_DimensionnerDivsPage();
}

//Événement clique sur le bouton btnAnnuler
//On retourne à l'affichage du pixel
function EnvoieCourriel_btnAnnuler_onclick()
{
    EnvoieCourriel_AfficherPixel();
}

function EnvoieCourriel_btnAnnulerPage_onclick()
{
    Utils.FermerFenetre();
}

//Affiche le pixel sur la carte
function EnvoieCourriel_AfficherPixel()
{
    try
    {
        var coordX = document.getElementById("divCoordX");
        var coordY = document.getElementById("divCoordY");
        
        Carte.AfficherPixel(coordX.innerHTML, coordY.innerHTML);
    }
    catch(e)
    {
        Utils.FermerFenetre1();
    }
}

//Événement clique sur le bouton btnEnvoieCourriel, on envoie le courriel
function EnvoieCourriel_btnEnvoieCourriel_onclick()
{
    var courrielOrigine = document.getElementById("txtCourriel").value;
    var nomOrigine = document.getElementById("txtNom").value;
    var courrielDest = document.getElementById("txtCourrielDest").value;
    var nomDest = document.getElementById("txtNomDest").value;
    var message = document.frmCarte.txtMessage.value;
    var coordXPixel = document.getElementById("divCoordX").innerHTML;
    var coordYPixel = document.getElementById("divCoordY").innerHTML;
    
    if(EnvoieCourriel_ValiderFormulaire())
    {
        EnvoieCourriel_AfficherLoading();
        EnvoieCourriel_EnvoyerCourriel(courrielOrigine,nomOrigine,courrielDest,nomDest,message,
                            coordXPixel, coordYPixel);
    }
}

//Affiche la fenêtre de loading
function EnvoieCourriel_AfficherLoading()
{
    var divFormEnvoieCourriel = document.getElementById("divFormEnvoieCourrielMasque");
    divFormEnvoieCourriel.style.visibility = "visible";
    var divLoadingCourriel = document.getElementById("divLoadingCourriel");
    divLoadingCourriel.style.visibility = "visible";
}

//Cache la fenêtre de loading
function EnvoieCourriel_CacherLoading()
{
    var divLoadingCourriel = document.getElementById("divLoadingCourriel");
    divLoadingCourriel.style.visibility = "hidden";
    var divFormEnvoieCourriel = document.getElementById("divFormEnvoieCourrielMasque");
    divFormEnvoieCourriel.style.visibility = "hidden";
}

//Lorsque l'on ferme le message on reaffiche le pixel
function EnvoieCourriel_FermerMessage()
{
    EnvoieCourriel_AfficherPixel();
}

//Procède à l'envoie du courriel
function EnvoieCourriel_EnvoyerCourriel(courrielOrigine, nomOrigine, 
    courrielDest, nomDest, message,
    coordXPixel, coordYPixel, coordXProfil, coordYProfil)
{
    var url = Carte.GetServiceUrl("Courriels");
    var params = new SOAPClientParameters();
    params.add("courrielSource",courrielOrigine);
    params.add("nomSource",nomOrigine);
    params.add("courrielDestination",courrielDest);
    params.add("nomDestination",nomDest);
    params.add("message", message);
    params.add("noCourriel",2);
    params.add("coordXPixel",parseInt(coordXPixel,10));
    params.add("coordYPixel",parseInt(coordYPixel,10));
    params.add("idLangue",1);
    params.add("idEnvoie","*F6h8sd76f9807s6dnfn0*F?f7n6ds087bf6?)*SBF7");
    SOAPClient.invoke(url, "EnvoyerCourriel", params, true, EnvoieCourriel_EnvoyerCourriel_callBack);
}

//Fonction appelée lors du retour du serveur
function EnvoieCourriel_EnvoyerCourriel_callBack(reponse)
{
    EnvoieCourriel_CacherLoading();
    EnvoieCourriel_AfficherMessage(reponse);
}

//Valide si le courriel est correctement forme
function EnvoieCourriel_EstValideCourriel(courriel)
{   
    var regExCourriel = /^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$/i;
    
    return regExCourriel.test(courriel);
}

//Valide que le courriel contenu dans le contrôle est valide
function EnvoieCourriel_ValiderCourriel(control)
{
    var isValid = false;
    var courriel = document.getElementById(control).value;
    if(EnvoieCourriel_EstValideCourriel(courriel))
    {
        isValid = true;
    }
    
    EnvoieCourriel_SetControlCouleur(control, isValid);
    
    return isValid;
}

//Fonction qui valide si une valeur a été fournie
function EnvoieCourriel_ValiderValeur(txt)
{
    var valeur = document.getElementById(txt).value;
    
    var isValid = false;
    
    if(valeur != null && valeur != "")
    {
        isValid = true;
    }
    
    EnvoieCourriel_SetControlCouleur(txt,isValid);

    return isValid;
}

function EnvoieCourriel_ValiderNum(txt)
{
    var valeur = document.getElementById(txt).value;
    
    var isValid = false;
    
    try
    {
        if(valeur != null || valeur != "")
        {
            if(valeur >= 0  && valeur <= 1000)
            {
                isValid = true;
            }
        }
        else
        {
            isValid = true;
        }
    }
    catch(e)
    {}
    
    EnvoieCourriel_SetControlCouleur(txt,isValid);

    return isValid;
}

//Valide toutes les informations du formulaire lors de l'envoie
function EnvoieCourriel_ValiderFormulaire()
{
    var isValid = false;
    if(EnvoieCourriel_ValiderValeur("txtNom") &&
        EnvoieCourriel_ValiderCourriel("txtCourriel") &&
        EnvoieCourriel_ValiderValeur("txtNomDest") &&
        EnvoieCourriel_ValiderCourriel("txtCourrielDest") )
        {
            isValid = true;
        }
        
    return isValid;
}

function EnvoieCourriel_ValiderFormulairePage()
{
    var isValid = false;
    if(EnvoieCourriel_ValiderFormulaire())
    {
        isValid = true;
        EnvoieCourriel_AfficherLoading();
    }
    
    return isValid
}

//Fonction qui définit la couleur des contrôles en fonctions s'ils sont en erreurs ou non
function EnvoieCourriel_SetControlCouleur (control, isValid)
{
    if(isValid)
    {
        document.getElementById(control).style.borderColor = "";
        document.getElementById(control).style.background = "#FFFFFF";
    }
    else
    {
        document.getElementById(control).style.borderColor = "red";
        document.getElementById(control).style.background = "#FF9999";
    }
}

//Affiche un message d'erreur dans le div
function EnvoieCourriel_AfficherMessage (message)
{
    var divFormEnvoieCourriel = document.getElementById("divFormEnvoieCourrielMasque");
    divFormEnvoieCourriel.style.visibility = "visible";
    
    var divMessage = document.getElementById("divFormEnvoieCourrielMessage");
    divMessage.style.visibility = "visible";
    
    var divMessageContenu = document.getElementById("divFormEnvoieCourrielMessageContenu");
    divMessageContenu.innerHTML = message;
}

function EnvoieCourriel_DimensionnerDivsPage()
{   
    var divFormEnvoieCourrielMasque = document.getElementById("divFormEnvoieCourrielMasque");
    divFormEnvoieCourrielMasque.style.width = 100 + "%";
    divFormEnvoieCourrielMasque.style.height = 304 + "px";
    
    var divLoadingCourriel = document.getElementById("divLoadingCourriel");
    divLoadingCourriel.style.top = 125 + "px";
    divLoadingCourriel.style.left = 45 + "px";
}

//Ferme les fenêtres
function EnvoieCourriel_Fermer()
{  
    var divMessage = document.getElementById("divFormEnvoieCourrielMessage");
    divMessage.style.visibility = "hidden";
    
    EnvoieCourriel_CacherLoading();
}