﻿
//*****************************************************************//
//  Functions for Async Page Requests used by Ajax Methods         //
//*****************************************************************//


function setTraceColour() {
    try {
        traceColour = (traceColour == 'black' ? traceColour2 :
                    (traceColour == traceColour2 ? traceColour3 : 'black'));
    }
    catch (ex) { }
}

function setPopupItems(pTitle, pCont, pClass, pCur) {
    popTitle = pTitle;
    popContent = pCont;
    popClass = pClass;
    popCursor = pCur;
}

//*************  Login Page ***************//

function loginPageSetup() {
    $addHandler(document.body, 'keyup', pressLoginButton);
}

function loginHandlerSetup() {
    setAspID();

    var pm = Sys.WebForms.PageRequestManager.getInstance();
    if(!pm.get_isInAsyncPostBack()) {
        try {
            pm.remove_initializeRequest(ajax_Init);
            pm.remove_beginRequest(ajax_Begin);
            pm.remove_endRequest(ajax_End);

            pm.add_initializeRequest(ajax_Init);
            pm.add_beginRequest(ajax_Begin);
            pm.add_endRequest(ajax_End);
        }

        catch(ex) {}
    }
    pm = null;
}

function pressLoginButton(evt) {
    try {
        var bt = getEventSrc(evt);
        var ev = getEventObj(evt);

        if (bt != null && ev != null && (bt.id.lastIndexOf('txtUser') >= 0 ||
                    bt.id.lastIndexOf('txtPass') >= 0) && ev.keyCode == 13) {
            ResetImgError(evt);
            ajax_disableLoginPanel();
            getCtrl('btnLogin').click();
        }
    }
    catch (ex) {}
}

function pressContinueButton(evt) {
    try {
        var bt = getEventSrc(evt);
        var ev = getEventObj(evt);

        if (bt != null && ev != null && bt.id.lastIndexOf('ddlLocation') >= 0 && ev.keyCode == 13) {
            ResetImgError(evt);
            ajax_disableContinuePanel('txtError2', 'location-box');
            getCtrl('btnContinue').click();
        }
    }
    catch (ex) {}
}

//*************  History Status Page ***************//

function histPageSetup() {
    if(sessionError())
        disableNavMenu();

    else {
        setAspID();
        setTraceColour();
        popCallPage = 'history';
        popCallBtn = getCtrl('btnShow');

        $clearHandlers(getCtrl('historyCallPopup'));
        $addHandler(getCtrl('historyCallPopup'), 'click', setDoPop);

        $clearHandlers(getCtrl('divDownText'));
        $addHandler(getCtrl('divDownText'), 'click', clickDownload);

        $clearHandlers(getCtrl('popupOK'));
        $addHandler(getCtrl("popupOK"), 'click', finishHistory);
    }

}

function histHandlerSetup() {
    hideMenu();
    var pm = Sys.WebForms.PageRequestManager.getInstance();
    if(!pm.get_isInAsyncPostBack()) {
        try {
            pm.remove_initializeRequest(hist_Init);
            pm.remove_beginRequest(hist_Begin);
            pm.remove_endRequest(hist_End);

            pm.add_initializeRequest(hist_Init);
            pm.add_beginRequest(hist_Begin);
            pm.add_endRequest(hist_End);
        }

        catch(ex) {  }
    }
    else {
        try {
            if(getCtrl('dgStatus').rows.length < 1) {
                historyError();
            }

        }
        catch(ex) { }
    }
    pm = null;
}

function hist_Init(sender, args) {

    if(sessionError())
        disableNavMenu();

    else {
        if(args.get_postBackElement() == getCtrl('btnShow')) {
            doPop = true;
            ajax_disablePanel('txtError', 'content_box');
        }

        if(doPop) {
            popCallPage = 'history';
            ClearHistoryErrorState();
            ClearHistoryTables();
            doOnPopup('history');
            setPopupDetails();
            callPopupBox();
        }
    }
}

function hist_Begin(sender, args) {
    if(sessionError())
        disableNavMenu();

}

function hist_End(sender, args) {
    if(sessionError())
        disableNavMenu();

    else {
        if(doPop) {
            if(args.get_error() != undefined) {
//                if (args.get_error() == Sys.WebForms.PageRequestManagerTimeoutException)

                //sysDebug(args.get_error().message);
                args.set_errorHandled(true);
                popErrors = args.get_error().message;
                isPopError = true;
                errMsgAdditional = "Please consult your Bywaters representative";
                doOnPopup('history');
                setPopupDetails();
            }
            else {
                isPopError = false;
                doOnPopup('history');
                setPopupDetails();
                rSelect = 1;
                historyToolTips();
            }
        }
        else if(args.get_error() != undefined) {
            popErrors = args.get_error().message;
            isPopError = true;
            args.set_errorHandled(true);
            ToggleAlertDiv(popErrors);
        }
        else {
            rSelect = 1;
            historyToolTips();
        }

        doPop = false;
        ajax_enablePanel('content_box');
    }
    setTraceColour();
}

function ClearHistoryErrorState() {
    popButtons = [""];
    popContent = "<span style='text-align:center;'><br />Requesting details for:<br /><br /><b>" +
                         calcHistoryPeriod() + "</b><br /><br /><br />Please wait...</span>";
    popClass = "modalNormalTxt";
    popCursor = "progress";
    popTitle = "Review Order History";
    popErrors = "";
    isPopError = false;
    ToggleAlertDiv('');
}

function finishHistory(ev) {
    doPop = false;
    ShowProgress('history', false);
    getCtrl("btnShow").disabled = false;
    closePopup(ev);
}

function clickDownload() {
    try {
        if(sessionError())
            disableNavMenu();

        else {
            var _btn = getCtrl('btnDownload');
            if(getCtrl('dgStatus').rows.length > 0) {
                _btn.click();
            }
        }
    }
    catch(ex) { }

}

function setDoPop() {
    doPop = true;
}


//*************  View Status Page ***************//

function statusHandlerSetup() {
    hideMenu();
    setAspID();
    setTraceColour();
    var pm = Sys.WebForms.PageRequestManager.getInstance();
    if(!pm.get_isInAsyncPostBack()) {
        pm.remove_initializeRequest(status_Init);
        pm.remove_beginRequest(status_Begin);
        pm.remove_endRequest(status_End);

        pm.add_initializeRequest(status_Init);
        pm.add_beginRequest(status_Begin);
        pm.add_endRequest(status_End);
    }
    pm = null;
}

function status_Init(sender, args) {
    if(sessionError())
        disableNavMenu();
}

function status_Begin(sender, args) {
    isPopError = false;
    if(sessionError())
        disableNavMenu();
}

function status_End(sender, args) {
    if(sessionError())
        disableNavMenu();

    else {

        if(args.get_error() != undefined) {
            popErrors = args.get_error().message;
            isPopError = true;
            args.set_errorHandled(true);
        }
        else {
            statusToolTips();
            rSelect = 1;
        }

        setTraceColour();
    }
}


//*************  Create Order Page ***************//

function createPageSetup() {
    if(sessionError())
        disableNavMenu();

    else {
        setAspID();
        setTraceColour();
        popCallPage = 'create';
        popCallBtn = getCtrl('btnOrder');
        $clearHandlers(getCtrl('orderCallPopup'));
        $addHandler(getCtrl('orderCallPopup'), 'click', createOrder_Popup);

        $clearHandlers(getCtrl('orderCancelPopup'));
        $addHandler(getCtrl('orderCancelPopup'), 'click', cancelOrder_Popup);

        $clearHandlers(getCtrl('popupMore'));
        $addHandler(getCtrl("popupMore"), 'click', moreOrders);

        $clearHandlers(getCtrl('popupFinish'));
        $addHandler(getCtrl("popupFinish"), 'click', finishOrder);

        $clearHandlers(getCtrl('popupOK'));
        $addHandler(getCtrl("popupOK"), 'click', closePopup);
    }
}

function createHandlerSetup() {
    hideMenu();
    getCtrl('divOrderBtn').disabled = true;
    var pm = Sys.WebForms.PageRequestManager.getInstance();
    if(!pm.get_isInAsyncPostBack()) {
        pm.remove_initializeRequest(create_Init);
        pm.remove_beginRequest(create_Begin);
        pm.remove_endRequest(create_End);

        pm.add_initializeRequest(create_Init);
        pm.add_beginRequest(create_Begin);
        pm.add_endRequest(create_End);
    }
    pm = null;
}

function create_Init(sender, args) {
    if(sessionError())
        disableNavMenu();

    else {
        if(args.get_postBackElement() == getCtrl('btnOrder'))
            doPop = true;

        ajax_disablePanel('txtError', 'content_box');
        setAspID();
        errMsgAdditional = "Please consult your Bywaters representative";
        isPopError = false;
    }
}

function create_Begin(sender, args) {
}

function create_End(sender, args) {
    if(sessionError())
        disableNavMenu();

    else {
        if(doPop) {
            if(args.get_error() != undefined) {
                popErrors = args.get_error().message;
                isPopError = true;
                doOnPopup('create');
                setPopupDetails();
                args.set_errorHandled(true);
                doPop = false;
            }
            else {
                isPopError = false;
                doOnPopup('create');
                setPopupDetails();
                callPopupBox();
            }

        }
        else if(args.get_error() != undefined) {
            popErrors = args.get_error().message;
            isPopError = true;
            ToggleAlertDiv(popErrors);
            args.set_errorHandled(true);
        }

        ajax_enablePanel('content_box');
        setTraceColour();
    }
}


function ClearOrderErrorState() {
    popButtons = [""];
    popContent = "<span style='text-align:center;'><br />Processing your Order<br /><br /><b>" +
                             "<br />Please wait...</span>";
    popClass = "modalNormalTxt";
    popCursor = "progress";
    popTitle = "Create New Order";
    popErrors = "";
    isPopError = false;
    ToggleAlertDiv('');
}

function createOrder_Popup(ev) {

    try {
        if (sessionError())
            disableNavMenu();

        else {
            if (!getCtrl('btnOrder').disabled && checkOrderQty() && checkIsPO() &&
                                            isEmpty(getCtrl('txtError').innerHTML)) {
                popCallPage = 'create';
                if (getCtrl('btnOrder') != null)
                    disableOrderButton(true);

                ajax_disablePanel('txtError', 'content_box');
                ClearOrderErrorState();
                setPopupDetails();
                doPop = true;
                isPopup = false;
                showPopupBox(ev);
            }
        }
    }
    catch (ex) { }

}

function cancelOrder_Popup(ev) {

    try {
        if (sessionError())
            disableNavMenu();

        else {
            //ajax_disablePanel('txtError', 'content_box');
            if (getCtrl('ddlProduct').selectedIndex > 0) {
                setCancelOrder();
                setPopupDetails();
                doPop = true;
                isPopup = false;
                showPopupBox(ev);
                getCtrl('pnlPopup').focus();
            }
            else
                quitOrders();
                
        }
    }
    catch (ex) { }

}

function finishOrder(ev) {
    doPop = false;
    //closePopup(ev);
    quitOrders();
}

function moreOrders(ev) {
    getCtrl('txtQuantity').value = '';
    getCtrl('txtPOrder').value = '';
    getCtrl('txtRemarks').value = '';
    getCtrl('txtPosDetails').value = '';
    getCtrl('txtCreateStatus').value = '';
    getCtrl('ddlPosition').selectedIndex = 0;

    ajax_enablePanel('content_box');     
    getCtrl("txtQuantity").disabled = true;
    getCtrl("txtPOrder").disabled = true;
    getCtrl("txtRemarks").disabled = true;
    disableOrderButton(true);
    disableCancelButton(false);
    doPop = false;
    ShowProgress('create', false);
    closePopup(ev);
}

function setCancelOrder() {
    getCtrl('button-yes-no').className = '';
    getCtrl('button-split').className = 'splitHidden';
    $addHandler(document.body, 'keyup', pressNoButton);
    
    popButtons = ["popupYes", "popupNo"];
    popContent = "<span style='text-align:center; '><br />Are you sure you really want to<br />Cancel entering this new order?<br /><br />" +
                 "If you answer <b>Yes</b> then any changes<br />you have made to it will be lost!<br /><br />" + 
                 "To continue with your Order please select <b>No</b></span>";
    popClass = 'modalNormalTxt';
    popCursor = "auto";
    popTitle = "Cancel New Order";
    popErrors = "";
    isPopError = false;
    ToggleAlertDiv('');
}

function pressNoButton(evt) {
    try {
        var ev = getEventObj(evt);
        var bt = getEventSrc(evt);

        if (ev != null && bt != null && bt.id.lastIndexOf('btnCancel') < 0 && 
                    (getCtrl('button-yes-no').className == '') && ev.keyCode == 13) {
            getCtrl('popupNo').click();
        }
    }
    catch (ex) { }
}

function quitOrders() {
    try {
        closePopup();
        disablePage();
        disableOrderButton(true);
        disableCancelButton(true);
        //window.open(getCtrl('sm2').href, "_self");
        window.location.replace(getCtrl('sm2').href);
    }
    catch (ex) { }
}

function continueOrder() {
    try {
        $removeHandler(document.body, 'keyup', pressNoButton);
        closePopup();
        getCtrl('button-split').className = '';
        getCtrl('button-yes-no').className = 'yesNoHidden';
    }
    catch (ex) { }
}

//*************  Location Page ***************//

function locationPageSetup() {
    $addHandler(document.body, 'keyup', pressChangeButton);
}

function locationHandlerSetup() {
    hideMenu();
    setTraceColour();
    var pm = Sys.WebForms.PageRequestManager.getInstance();
    if(!pm.get_isInAsyncPostBack()) {
        pm.remove_initializeRequest(ajax_Init);
        pm.remove_beginRequest(ajax_Begin);
        pm.remove_endRequest(ajax_End);

        pm.add_initializeRequest(ajax_Init);
        pm.add_beginRequest(ajax_Begin);
        pm.add_endRequest(ajax_End);
    }
    pm = null;
}

function pressChangeButton(evt) {
    try {
        var bt = getEventSrc(evt);
        var ev = getEventObj(evt);
        var ch = getCtrl('btnChange');

        if (bt != null && ev != null && ch.disabled == false && ev.keyCode == 13) {
            ch.click();
        }
    }
    catch (ex) { }
}

//---------------------------------------------------------------------//

//*************  General Popup Routines ***************//

function ToggleAlertDiv(sMsg) {
    var eDiv = getCtrl(errDiv);
    if (eDiv != null) {
        eDiv.style.visibility = 'visible';
        eDiv.innerHTML = sMsg;
    }
}

function callPopupBox(ev) {
    doOnPopup(popCallPage);
    showPopupBox(ev)
}

function showPopupBox(ev) {
    if (typeof (ev) != "undefined")
        ev.preventDefault();

    setPopupDetails();
    var mpbPop = $find(aspID + 'Show_Popup');
    if (mpbPop != null) {
        mpbPop.show();
    }
}

function disablePage() {
    var pnl = getCtrl('content_box');
    var cnt = getCtrl('divDisable');
    if (pnl != null && cnt != null) {
        //cnt.disabled = true;
        getCtrl('content_box_middle').className = "cntDisabled";
        getCtrl('content_box_top').className = "cntDisabled";
        getCtrl('content_box_bottom').className = "cntDisabled";

        var eCol = pnl.getElementsByTagName("input");
        var j = eCol.length;
        for (i = 0; i < eCol.length; i++) {
            eCol[i].disabled = true;
        }
        eCol = pnl.getElementsByTagName("select");
        j = eCol.length;
        for (i = 0; i < eCol.length; i++) {
            eCol[i].disabled = true;
        }

        //        pnl.className = 'disabledBackground';
//        pnl.style.position = 'absolute';
//        pnl.style.height = cnt.scrollHeight + 'px';
//        pnl.style.width = cnt.scrollWidth + 'px';
//        pnl.style.top = cnt.offsetTop + 'px';
//        pnl.style.left = cnt.offsetLeft + 'px';
//        pnl.style.display = 'block';
    }
}

function enablePage() {
    var pnl = getCtrl('pnlDisable');
    if (pnl != null) {
        pnl.style.display = 'none';
    }
}


function dismiss_Popup(ev) {
    ev.preventDefault();
    var mpbPop = $find(aspID + 'Show_Popup');
    if(!isEmpty(mpbPop))
        mpbPop.hide();

}

function closePopup(ev) {
    if (typeof (ev) != "undefined")
        ev.preventDefault();

    popButtons = [""];
    popContent = "";
    popTitle = "";
    popErrors = "";
    setPopupButtons();
    doPop = false;
    isPopup = false;
    isPopError = false;

    var mpbPop = $find(aspID + 'Show_Popup');
    if(mpbPop != null) {
        mpbPop.hide();
    }
    //ajax_enablePanel('content_box');
        
}



function setPopupDetails() {
    try {
        getCtrl("pnlPopupContent").className = popClass;
        getCtrl("pnlPopupContent").innerHTML = popContent;
        getCtrl('pnlPopupTitle').innerHTML = popTitle;
        getCtrl("pnlPopup").style.cursor = popCursor;
        setPopupButtons();
        if(isPopError)
            ToggleAlertDiv(popErrors);
            
    }
    catch(ee) {  }
}
    
function setPopupButtons(){   
    var pButs = getCtrl("pnlPopup").getElementsByTagName("input");
    for (var i = 0; i < pButs.length; i++) {
            pButs[i].style.display = "none";
            for (var y in popButtons) {
                if (pButs[i].id == popButtons[y]) {
                    pButs[i].style.display = "block";
                }
            }
    }
}


function doOnPopup(aPage) {
    try {
        switch (aPage.toLowerCase()) {
            case ('history'):
                historyOnPopup();
                break;

            case ('login'):
                break;

            case ('status'):
                break;

            case ('change'):
                break;

            case ('create'):
                createOnPopup();
                break;

            default:
                break;

        }
    }
    catch(ee) { }

}

function historyOnPopup() {

    if (isPopError) {
        popTitle = "Problem Retrieving Details";
        popClass = 'modalErrorTxt';
        popCursor = "auto";
        popContent = "<span><br />" + popErrors + "<br /><br />" + errMsgAdditional + "</span>";
        popButtons = ["popupOK"];
        popErrors = "There was a problem Retrieving History Details";
        historyError();
    }
}

function historyError(){
    try {
        var _tbl = getCtrl('tblStatusDetail');
        if(getCtrl('dgStatus').rows.length < 1)
            _tbl.className = 'status-table-hidden';
            
        else
            _tbl.className = 'status-table';

    }
    catch(ex) { }
}

function createOnPopup() {
    doPop = true;
    if (isPopError) {
        popTitle = "Problem Processing Order";
        popClass = 'modalErrorTxt';
        popCursor = "auto";
        popContent = "<span><br />" + popErrors + "<br /><br />" + errMsgAdditional + "</span>";
        popButtons = ["popupOK"];
        popErrors = "There was a problem Processing this Order";
    }
    else {
        popTitle = "New Order Completed";
        popClass = 'modalNormalTxt';
        popCursor = "auto";
        popContent = "<span><br />" + getCtrl('txtCreateStatus').innerHTML + "</span>";
        popButtons = ["popupMore", "popupFinish"];
        popErrors = "";
    }
}

//Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckStatus);
function CheckStatus(sender, args) {
    if(doPop)
        abortCurrentRequest();

    else
        cancelNewRequest(sender, args);

}

function abortCurrentRequest() {
    var pb = Sys.WebForms.PageRequestManager.getInstance();
    if(pb.get_isInAsyncPostBack()) {
        pb.abortPostBack();
    }

}

function cancelNewRequest(sender, args) {
    var pb = Sys.WebForms.PageRequestManager.getInstance();
    if(pb.get_isInAsyncPostBack()) {
        args.set_cancel(true);
        ToggleAlertDiv('Still working on previous request...');
    }
}


/// ------------ Confirm Ajax Loaded ------------ ///
if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

