function fnShowPromotionCodeDiv(oClicked, nBasketId, nRemove) {
    if (nRemove == 1) {
        confirmPromotionCodeRemoval(nBasketId);
        return false;
    }
    
    var oPromotionCodeDiv = document.getElementById('dvPromotionCode');
    if (!oPromotionCodeDiv) {
        return false;
    }

    oPromotionCodeDiv.style.display = 'block';
    oPromotionCodeDiv.style.top = (findTop(oClicked) + 30) + 'px';
    oPromotionCodeDiv.style.left = (findLeft(oClicked) - 200) + 'px';

    var oPromotionCodeBasketIdHidden = fnGetDomObjectWithingArea('dvPromotionCode', 'hdPromotionCodeBasketId');
    if (!oPromotionCodeBasketIdHidden) {
        return false;
    }
    oPromotionCodeBasketIdHidden.value = nBasketId;

    var oPromotionCodeTextBox = fnGetDomObjectWithingArea('dvPromotionCode', 'txtPromotionCode');
    if (!oPromotionCodeTextBox) {
        return false;
    }
    
    oPromotionCodeTextBox.value = "";
    focusOnControl(oPromotionCodeTextBox);
    
    return true;
}

function fnHidePromotionCodeDiv() {
    var oPromotionCodeDiv = document.getElementById('dvPromotionCode');
    if (!oPromotionCodeDiv) {
        return false;
    }

    oPromotionCodeDiv.style.display = 'none';

    return false;
}

function chCheckPromotionCode() {
    var oPromotionCodeTextBox = fnGetDomObjectWithingArea('dvPromotionCode', 'txtPromotionCode');
    if (!oPromotionCodeTextBox) {
        return false;
    }
    
    if (oPromotionCodeTextBox.value == "") {
        return false;
    }

    var oPromotionCodeDiv = document.getElementById('dvPromotionCode');
    if (!oPromotionCodeDiv) {
        return false;
    }
    oPromotionCodeDiv.style.display = 'none';

    var oSubmitPromotionCodeButton = fnGetDomObjectWithingArea('divNewBasket', 'btnAddPromotionCode');
    if (oSubmitPromotionCodeButton) {
        oSubmitPromotionCodeButton.click();
        return true;
    }
    else {
        return false;
    }
}

function confirmPromotionCodeRemoval(nBasketId) {
    if (!confirm('Are you sure you want to remove the promotion code?')) {
        return false;
    }


    var oPromotionCodeBasketIdHidden = fnGetDomObjectWithingArea('dvPromotionCode', 'hdPromotionCodeBasketId');
    if (!oPromotionCodeBasketIdHidden) {
        return false;
    }
    oPromotionCodeBasketIdHidden.value = nBasketId;
    
    var oPromotionCodeTextBox = fnGetDomObjectWithingArea('dvPromotionCode', 'txtPromotionCode');
    if (!oPromotionCodeTextBox) {
        return false;
    }
    oPromotionCodeTextBox.value = 'REMOVE';

    var oSubmitPromotionCodeButton = fnGetDomObjectWithingArea('divNewBasket', 'btnAddPromotionCode');
    if (oSubmitPromotionCodeButton) {
        oSubmitPromotionCodeButton.click();
        return true;
    }
    else {
        return false;
    }
}