﻿Sys.Application.add_load(ApplicationLoadHandler)
function ApplicationLoadHandler(sender, args)
{
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequest);
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}

var lastPostBackElement;

// Annulation d'un double lancement de l'action du bouton btnCalculerDummy. Permet de terminer
// l'affichage de l'update panel avant que la deuxième action est lieu
function InitializeRequest(sender, args)
{ 
    var exclusivePostBackElement = "btnCalculerDummy";
    var longueur = exclusivePostBackElement.length;
    var prm = Sys.WebForms.PageRequestManager.getInstance();

    if (prm.get_isInAsyncPostBack() && 
        (args.get_postBackElement().id.toString().lastIndexOf(exclusivePostBackElement) == 
            (args.get_postBackElement().id.toString().length - longueur))) 
    {
        if (lastPostBackElement.toString().lastIndexOf(exclusivePostBackElement)
            == (lastPostBackElement.toString().length - longueur))
        {    
          args.set_cancel(true);          
        }
    }
    lastPostBackElement = args.get_postBackElement().id;      
}

// Interception des erreurs non gérée par l'application
function EndRequestHandler(sender, args)
{
   if (args.get_error() != undefined)
   {
       parent.self.location = "Erreur.htm";
       args.set_errorHandled(true);
   }
}
