/*
 * orderManagement.js
 * Functions used on Order Management pages within My Lowe's 
 * section of web site. 
 * 
 * Copyright Lowes, Inc.
 */

dojo.require("wc.render.RefreshController");
dojo.require("wc.render.Context");
dojo.require("wc.render.common");

function initFindTab(contentPane, catalogId) {
    if (!contentPane) return false;
    // Hook up the radio buttons to reload the content
    dojo.query("input[type='radio']").forEach(function(el) {
        dojo.connect(el, 'onclick', el,
        function() {
            // Reload the content pane based on which radio button is checked
            if (el.id == 'in-store') {
                contentPane.setHref('OrderStatusFindView?catalogId=' + catalogId);
            } else if (el.id == 'web-catalog') {
                contentPane.setHref('OrderStatusFindWebView?catalogId=' + catalogId);
            } else if (el.id == 'lowes-store') {
                contentPane.setHref('OrderStatusFindLowesView?catalogId=' + catalogId);
            } else {
                return false;
            }
        });
    });
}


/*
 * This function is in charge of change the find order page components. 
 * My lowes function.
 */
 function chngFindPg(radioId) {
	var $formPoNumber =	dojo.byId('form-po-number'),
	    $picturePoNumber = dojo.byId('picture-po-number'),
	    $formConfNumber = dojo.byId('form-conf-number'),
	    $pictureConfNumber = dojo.byId('picture-conf-number');
    if (radioId == 'in-store') {
         dojo.style($formPoNumber, 'display', 'block');
         dojo.style($picturePoNumber, 'display', 'block');
         dojo.style($formConfNumber, 'display', 'none');
         dojo.style($pictureConfNumber, 'display', 'none');
    } else if (radioId == 'web-catalog') {
         dojo.style($formPoNumber, 'display', 'none');
         dojo.style($picturePoNumber, 'display', 'none');
         dojo.style($formConfNumber, 'display', 'block');
         dojo.style($pictureConfNumber, 'display', 'block');
         
    } else {
        return false;
    }

}

function chngFindPg_BackUp(radioId, catalogId) {

    var pageUrl = '';
    var params = [];
    if (radioId == 'in-store') {
        pageUrl = 'OrderStatusFindView?catalogId=' + catalogId;
    } else if (radioId == 'web-catalog') {
        pageUrl = 'OrderStatusFindWebView?catalogId=' + catalogId;
    } else if (radioId == 'lowes-store') {
        pageUrl = 'OrderStatusFindLowesView?catalogId=' + catalogId;
    } else {
        return false;
    }


    params.url = pageUrl;
    params.actionId = "detail";
    if(wc.render.getRefreshControllerById("findAreaController")) wc.render.getRefreshControllerById("findAreaController").url = pageUrl;

    dojo.publish("modelChanged", [params]);

}


function initTabs() {
    if (dijit.byId('mainTabContainer')) {
        dojo.connect(dijit.byId('mainTabContainer').tablist, 'onButtonClick',
        function(pane) {
            if (pane.id == 'orders-tab') {
                // Update the H1 content
                //dojo.byId('page-header').innerHTML = _headerText;
                if(dojo.byId('page-header')) dojo.byId('page-header').innerHTML = 'Orders';
                /***  Defect Id :1681: Fixed By: Sourav Starts ***/
                if(dojo.byId('breadcrumbs-header')) dojo.byId('breadcrumbs-header').innerHTML = 'My Orders';
                /***  Defect Id :1681: Fixed By: Sourav Ends ***/
                // Show the help box on top right
                //dojo.byId('help-message').style.display='block';
                if(dojo.byId('errMsgDisplay')) dojo.byId('errMsgDisplay').style.display = 'none';

            }
            if (pane.id == 'find-order-tab') {
                // Update the H1 content
                if(dojo.byId('page-header')) dojo.byId('page-header').innerHTML = 'Find Order';
                 if(dojo.byId('breadcrumbs-header')) dojo.byId('breadcrumbs-header').innerHTML = 'Find Order';
                // Show the help box on top right
                //dojo.byId('help-message').style.display='none';
                if(dojo.byId('errMsgDisplay')) dojo.byId('errMsgDisplay').style.display = 'none';
            }
        });
    }

}

function initTableExpand() {
    // This creates an accordion effect to hide/show a table's data excluding the first row
    dojo.query('a.js-table-expand').forEach(function(element) {
        dojo.connect(element, 'click', element,
        function(ev) {
            ev.preventDefault();
            var $this = this;
            var _indicator = $this.id;
            var $row = $this.parentNode.parentNode;
            var $table = dojo.query('table.' + _indicator)[0];
            var $backToTopLink = dojo.query('div.' + _indicator)[0];
            dojo.toggleClass($this, 'open');
            var _isOpen = dojo.hasClass($this, 'open');
            dojo.query('tr', $table).forEach(function(el) {
                if (el != $row) {
                    if (_isOpen) {
                        dojo.addClass(el, 'show');
                        dojo.removeClass(el, 'hide');
                        if ($backToTopLink) dojo.style($backToTopLink, 'display', 'block');
                    } else {
                        dojo.removeClass(el, 'show');
                        dojo.addClass(el, 'hide');
                        if ($backToTopLink) dojo.style($backToTopLink, 'display', 'none');
                    }
                }
            });
        });
    });
}

function expandTable(tableId) {
    var aElement = dojo.byId(tableId);
    if (!aElement) return false;
    var _indicator = aElement.id;
    var $row = aElement.parentNode.parentNode;
    var $table = dojo.query('table.' + _indicator)[0];
    var $backToTopLink = dojo.query('div.' + _indicator)[0];

    dojo.toggleClass(aElement, 'open');

    var _isOpen = dojo.hasClass(aElement, 'open');

    dojo.query('tr', $table).forEach(function(el) {
        if (el != $row) {
            if (_isOpen) {
                dojo.addClass(el, 'show');
                dojo.removeClass(el, 'hide');
                if ($backToTopLink) dojo.style($backToTopLink, 'display', 'block');
            } else {
                dojo.removeClass(el, 'show');
                dojo.addClass(el, 'hide');
                if ($backToTopLink) dojo.style($backToTopLink, 'display', 'none');
            }
        }

    });

}

function initRowExpand() {
    // This creates an accordion effect to hide/show table rows within a table.
    dojo.query('a.js-row-expand').forEach(function(element) {
        dojo.connect(element, 'click', element,
        function(ev) {
            ev.preventDefault();
            var $this = this;
            dojo.toggleClass($this, 'open');
            var $id = $this.id;
            dojo.query('tr.' + $id).forEach(function(el) {
                dojo.toggleClass(el, 'show');
            });
        });
    });
}

function expandRow(orderId) {

    if(dojo.byId(orderId)) dojo.toggleClass(dojo.byId(orderId), 'open');

    dojo.query('tr.' + orderId).forEach(function(el) {
        dojo.toggleClass(el, 'show');
    });
}

function chkPgNo(MaxPg) {
    var elements = document.getElementsByName('currentPageNo');
    for (var i = 0; i < elements.length; i++) {
        if (elements[i].value != "") {
            gotoPg = elements[i].value;
            if (parseInt(gotoPg) > parseInt(MaxPg)) {
                gotoPg = MaxPg;
            } else if (gotoPg < 1) {
                gotoPg = 1;
            }
            elements[i].value = gotoPg;
        }
    }
}
function paginationWrap(pageUrl) {
    var pageno = "";
    var elements = document.getElementsByName('currentPageNo');
    for (var i = 0; i < elements.length; i++) {
        if (elements[i].value != "") {
            pageno = elements[i].value;
            break;
        }
    }

    if ((null != pageno) && (pageno != "")) {
        pagination(pageUrl);
    }
}
function pagination(pageUrl) {
    var params = [];
    var elements = document.getElementsByName('currentPageNo');

    for (var i = 0; i < elements.length; i++) {
        if (elements[i].value != "") {
            var currentPage = elements[i].value;
            pageUrl = pageUrl + "&currentPage=" + currentPage;
            //paginationUrl = paginationUrl+"&currentPage="+currentPage;
            break;
        }
    }

    params.url = pageUrl;
    params.actionId = "pagination";
    if (wc.render.getRefreshControllerById("orderAreaController")) wc.render.getRefreshControllerById("orderAreaController").url = pageUrl;
    //wc.render.getRefreshControllerById("orderStatusListPaginationAreaController").url = paginationUrl;
    //wc.render.getRefreshControllerById("orderStatusListPaginationAreaController1").url = paginationUrl;
    dojo.publish("modelChanged", [params]);
}


function onlyNumber(currentPg) {
    var validChars = "0123456789";
    var elements = document.getElementsByName('currentPageNo');
    for (var i = 0; i < elements.length; i++) {
        if (elements[i].value != "") {
            myString = elements[i].value;

            // look for non numeric characters in the input string
            for (var j = 0; j < myString.length; j++) {
                if (validChars.indexOf(myString.substring(j, j + 1)) == "-1") {
                    elements[i].value = currentPg;
                    return false;

                }
            }
        }
    }

    return true;
}

function sorting(pageUrl, sortBy) {
    var params = [];
    pageUrl = pageUrl + "&sortMethod=" + sortBy;
    //paginationUrl = paginationUrl+"&sortMethod="+sortBy;
    params.url = pageUrl;
    params.actionId = "sorting";
    if(wc.render.getRefreshControllerById("orderAreaController")) wc.render.getRefreshControllerById("orderAreaController").url = pageUrl;
    //wc.render.getRefreshControllerById("orderStatusListPaginationAreaController").url = paginationUrl;
    //wc.render.getRefreshControllerById("orderStatusListPaginationAreaController1").url = paginationUrl;
    dojo.publish("modelChanged", [params]);
}

function openDetail(pageUrl, orderId) {


    var params = [];
    pageUrl = pageUrl + "&orderId=" + orderId;

    params.url = pageUrl;
    params.actionId = "detail";
    if(wc.render.getRefreshControllerById("orderAreaController")) wc.render.getRefreshControllerById("orderAreaController").url = pageUrl;

    dojo.publish("modelChanged", [params]);

}

function test() {
    alert('hi ' + this);
}

function onPageLoadInit(pageUrl) {
    var params = [];
    params.url = pageUrl;
    params.actionId = "pagination";
    if(wc.render.getRefreshControllerById("orderAreaController")) wc.render.getRefreshControllerById("orderAreaController").url = pageUrl;
    dojo.publish("modelChanged", [params]);
}

dojo.addOnLoad(function() {
    initTableExpand();
    //initRowExpand();
    // Get the initial value of h1#page-header and assign it to a global variable
    // to be used by initTabs function above
    if (dojo.byId('page-header')) _headerText = dojo.byId('page-header').innerHTML;
    if (dojo.byId('breadcrumbs-header')) _headerText = dojo.byId('breadcrumbs-header').innerHTML;
});

