﻿        /* Lasse Ilvessalo, 1.9.2007 */
        /* This script is included in masterpage and handles the AJAX errors */
        /* Catch Scriptmanager timeout in nice way */
        var ajaxContainerID = "ajaxError";        
        var prm = Sys.WebForms.PageRequestManager.getInstance();

        prm.add_endRequest(function (sender, args) { 
            if (args.get_error()){
                var errMsg = "";
                var errTitle = "Virhetilanne";
                if(args.get_response().get_timedOut()) 
                    errMsg = "Järjestelmässä on ruuhkaa. Yritä hetken kuluttua uudestaan.";
                else if(args.get_error().httpStatusCode == '500')
                    errMsg = "Järjestelmävirhe (500). Yritä hetken kuluttua uudestaan.";
                else
                    errMsg = "Tapahtui virhe. Yritä hetken kuluttua uudestaan.";
                    
                if (prm.get_isInAsyncPostBack()) { // && args.get_postBackElement().id == 'CancelRefresh'
                     prm.abortPostBack();
                }   
                // If you need to get DOM object which caused postBack you can get it like this:
                // args.get_postBackElement()
                                                                  
                // Add errorbox similar to normal HTML controls using DOM
                document.body.appendChild(createDimmeli(errTitle, errMsg, "javascript:ClearErrorState();", "OK"));
                                    
                // remember to set errorHandled = true to keep from getting a popup from the AJAX library itself 
                args.set_errorHandled(true); 
                
                }
            })
            
            function createDimmeli(title, message, buttonLinkHref, linkText){
            
            /* Create dimmeli div using DOM */
                var ajaxContainer = document.createElement("div");
                ajaxContainer.id=ajaxContainerID;
                ajaxContainer.className = "dimmeli";
                
                var ajaxBox = document.createElement("div");
                ajaxBox.className = "box";
                
                var p = document.createElement("div");
                p.id = "noResultAjax";
                                
                var alertTitle = document.createElement("h2");
                alertTitle.innerHTML = title;
                             
                var alertMessage = document.createElement("p");
                alertMessage.innerHTML = message;
                
                var alertButtons = document.createElement("div");
                var alertButton = document.createElement("a");
                alertButton.setAttribute("href",buttonLinkHref );
                alertButton.className = "ok";
                var tn = document.createTextNode(linkText);
                alertButton.appendChild(tn);
                alertButtons.appendChild(alertButton);     
                
                p.appendChild(alertTitle);
                p.appendChild(alertMessage);
                p.appendChild(alertButtons);
                
                ajaxBox.appendChild(p);
                ajaxContainer.appendChild(ajaxBox);                               
                                               
                return ajaxContainer;

            }                  
            
            function ClearErrorState() {
                // Just remove the ajaxError DOM object
                var msgDiv = document.getElementById(ajaxContainerID)
                if(msgDiv)                     
                    document.body.removeChild(msgDiv);

            }

