﻿/*
execute a long-running task (covering several seconds), and navigates to follow up page when finished
*/

function PerformTask(taskParameters) {

    var jsonTaskParameters = "{ 'taskParameters': '" + taskParameters + "' }";


    jQuery.blockUI({
        fadeIn: 2000,
        message: '<div><h3>een moment ...</h3><div><div><img src="/Img/Anim/wait.gif" /></div>'
    });

    jQuery.ajax({
        type: "POST",
        data: jsonTaskParameters,
        url: "/Duty/Worker.asmx/ProcessWork",
        cache: false,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: DutySuccess,
        error: DutyError
    });

    function DutySuccess(data, status) {

        // unblock when ajax activity stops 
        jQuery(document).ajaxStop(jQuery.unblockUI({ fadeOut: 0 }));

        //alert("Data Loaded: " + data);
        var newPageUrl = data.d;
        //alert(showWhenFinished);
        window.location = newPageUrl;

        // unblock when ajax activity stops 
        //jQuery(document).ajaxStop(jQuery.unblockUI);
    }

    function DutyError(request, status, error) {

        // unblock when ajax activity stops 
        jQuery(document).ajaxStop(jQuery.unblockUI({ fadeOut: 0 }));

        alert('Mislukt, probeert u het later nogmaals [foutmelding: ' + status + "; " + error + "]");
    }
}


function PerformTaskNonBlocking(taskParameters) {

    var jsonTaskParameters = "{ 'taskParameters': '" + taskParameters + "' }";

    jQuery.ajax({
        type: "POST",
        data: jsonTaskParameters,
        url: "/Duty/Worker.asmx/ProcessWork",
        cache: false,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: DutySuccess,
        error: DutyError
    });

    function DutySuccess(data, status) {
        var newPageUrl = data.d;
        window.location = newPageUrl;
    }

    function DutyError(request, status, error) {
        alert('Mislukt, probeert u het later nogmaals [foutmelding: ' + status + "; " + error + "]");
    }
}

