﻿var formIsDirty = false; 
var warnWhenDirty = false;
var unsavedDataWarningPopupText = '';

// Added 10-08-2010 by Antoine : GEN-388 There was an issue with the client-side
var ignoreNextUnload = false;

function checkForDirtyForm(text) {
    if (warnWhenDirty && warnWhenDirty == true && formIsDirty && formIsDirty == true) {
        if (confirm(text)) {
            window.unload = false;
            return false;
        } else {
            return true;
        }
    }
}

function preUnload() {
    //window.alert('preUnload = ' + formIsDirty);
    try {
        // Added 10-08-2010 by Antoine : GEN-388
        if (!ignoreNextUnload) {
            window.event.returnValue = unsavedDataWarningPopupText;
        }
        else {
            ignoreNextUnload = false;
        }

        // Removed 10-08-2010 by Antoine : GEN-388 Original code
        // window.event.returnValue = unsavedDataWarningPopupText;
    }
    catch (e) {
        // swallow firefox error
    }

    return unsavedDataWarningPopupText;
}

function initUnload() {
    if (warnWhenDirty) {
        if (window.attachEvent)
        {
            try {
                window.detachEvent("onbeforeunload", preUnload);
            }
            catch(e) {
            
            }
            window.attachEvent("onbeforeunload", preUnload);
        }
        else
        {
            window.onbeforeunload = null;
            window.onbeforeunload = preUnload;
        }
    }

}

function initUnsavedDataWarningPopup(text) {

    warnWhenDirty = true;
    unsavedDataWarningPopupText = text;

    //window.onunload = function() { 
    //    return checkForDirtyForm(unsavedDataWarningPopupText); 
    //};
}

function clearUnload()
{

    //window.alert("not dirty anymore");
    //window.alert(formIsDirty);

      if (window.detachEvent)
      {
        window.detachEvent("onbeforeunload", preUnload);
      }
      else
      {
        window.onbeforeunload = null;    
      }
}

