﻿/// <reference path="./API/Agility.UGC.API.js" />
Agility.RegisterNamespace("Edentity.ClickLock");

(function(ClickLock) {

    var Locks = new Array();

    ClickLock.Lock = function(key) {
        Locks[key] = true;
    }

    ClickLock.Unlock = function(key) {
        Locks[key] = false;
    }

    ClickLock.IsLockOpen = function(key) {
        var lockValue = Locks[key];
        if (lockValue == null || lockValue == undefined) {
            return true;
        }
        else {
            return !lockValue;
        }
    }

    ClickLock.PerformAction = function(key, isUnlockedCallback, isLockedCallback) {
        if (ClickLock.IsLockOpen(key)) {
            ClickLock.Lock(key);
            isUnlockedCallback(key);
        }
        else {
            if (isLockedCallback != null && isLockedCallback != undefined) {
                isLockedCallback(key);
            }
            return;
        }
    }

    ClickLock.ActionComplete = function(key) {
        ClickLock.Unlock(key);
    }


})(Edentity.ClickLock);