﻿            
            //global vars
            var todaydate = new Date()
            var curmonth = todaydate.getMonth()+1 //get current month (1-12)
            var curyear = todaydate.getFullYear() //get current year
            
                        
            
            //SuckerTree Vertical Menu 1.1 (Nov 8th, 06)
            //By Dynamic Drive: http://www.dynamicdrive.com/style/        
            var menuids=["suckertree1"] //Enter id(s) of SuckerTree UL menus, separated by commas
        
            function buildsubmenus(){
                for (var i=0; i<menuids.length; i++){
                    var ultagsContainer = document.getElementById(menuids[i]);
                
                    var ultags = null;
                    if(ultagsContainer != null)
                        ultags = ultagsContainer.getElementsByTagName("ul");
                    if(ultags == null)
                        break;
                    
                    for (var t=0; t<ultags.length; t++){
                        ultags[t].parentNode.getElementsByTagName("a")[0].className="subfolderstyle"
                        if (ultags[t].parentNode.parentNode.id==menuids[i]) //if this is a first level submenu
                            ultags[t].style.left=ultags[t].parentNode.offsetWidth+"px" //dynamically position first level submenus to be width of main menu item
                        else //else if this is a sub level submenu (ul)
                            ultags[t].style.left=ultags[t-1].getElementsByTagName("a")[0].offsetWidth+"px" //position menu to the right of menu item that activated it
                        
                        ultags[t].parentNode.onmouseover=function(){
                            this.getElementsByTagName("ul")[0].style.display="block"
                        }
                        ultags[t].parentNode.onmouseout=function(){
                            this.getElementsByTagName("ul")[0].style.display="none"
                        }
                    }
                                        
                    for (var t=ultags.length-1; t>-1; t--){ //loop through all sub menus again, and use "display:none" to hide menus (to prevent possible page scrollbars
                        ultags[t].style.visibility="visible"
                        ultags[t].style.display="none"
                    }
                }
            }
        
         YAHOO.util.Event.onDOMReady(
         function (){
            buildsubmenus();
            //init();
         });

            /*if (window.addEventListener)
                window.addEventListener("load", buildsubmenus, false)
            else if (window.attachEvent)
                window.attachEvent("onload", buildsubmenus)*/
        
        
        
            function togglePane(element, image, direction) {

                var pane = document.getElementById(element)
                var collapse = "../images/minus.gif";
                var expand = "../images/plus.gif";
                                
                if (pane.style.display == "none") {
                    pane.style.display = "";		
                    document.getElementById(image).src = collapse;
                } else {
                    pane.style.display = "none";
                    document.getElementById(image).src = expand;
                }            	
            }
            
            // C O M M E N T S
            function closeCommentsDiv(commentBoxId, commentDiv){
                
                document.getElementById(commentBoxId).value = "";
                WLX_UTILS.hide(commentDiv);
            }
            function addComment(commentDiv, commentIdHidden){

                document.getElementById(commentIdHidden).value = "0";
                WLX_UTILS.show(commentDiv);
            }
            function editComment(commentDiv, commentIdHidden, commentId, commentBoxId, comment){

                document.getElementById(commentIdHidden).value = commentId;
                document.getElementById(commentBoxId).value = unescape(comment);
                WLX_UTILS.show(commentDiv);
            }
            function saveCommment(entryId, type, commentBoxId, commentDiv, commentsTbody, commentIdHidden, prefix) {
            
                var commentId = document.getElementById(commentIdHidden).value;
                var url = "AjaxManager.aspx?action=saveComment&entryId="+entryId+"&type="+type+"&comment="+escape(document.getElementById(commentBoxId).value)+"&commentId="+document.getElementById(commentIdHidden).value+"&prefix="+prefix;
                WLX_UTILS.AjaxCall("GET", url, saveCommmentSH, saveCommmentFH, {commentBoxId:commentBoxId, commentDiv:commentDiv, commentsTbody:commentsTbody, commentId:commentId, prefix:prefix});
            }

            function saveCommmentSH(o) {

                closeCommentsDiv(o.argument.commentBoxId, o.argument.commentDiv);
                var responseArray = eval(o.responseText);
                var trId = responseArray.trId;
                var rowMap = responseArray.rowMap;
                
                if(o.argument.commentId == "0"){
                    //add to table but clear empty message if any
                    var tbody = document.getElementById(o.argument.commentsTbody)
                    if(tbody.rows.length == 1 && tbody.rows[0].cells[0].innerHTML.indexOf("No comments found.")>-1)
                        tbody.deleteRow(0);
                    WLX_UTILS.addRow(o.argument.commentsTbody, rowMap, 0, trId);
                }
                else{
                    var rowIndex = WLX_UTILS.removeRow(trId);
                    WLX_UTILS.addRow(o.argument.commentsTbody, rowMap, rowIndex, trId);
                }                
            }

            function saveCommmentFH(o) {
                alert("An error has occurred while saving comment.");
            }
            
            
            // E M A I L S
            function closeEmailDiv(){
                
                document.getElementById("ToAddresses").value = "";
                document.getElementById("Subject").value = "";
                WLX_UTILS.hide("EmailDiv");
            }
            function sendEmail(id, templateName) {
                
                var toAddresses = document.getElementById("ToAddresses").value;
                var subject = document.getElementById("Subject").value;
                
                var url = "AjaxManager.aspx?action=emailWorkItem&id="+id+"&templateName="+templateName+"&toAddresses="+toAddresses+"&subject="+subject;
                WLX_UTILS.AjaxCall("GET", url, sendEmailSH, sendEmailFH, null);
            }
            function sendEmailSH(o) {
            
                closeEmailDiv();
                alert("Email Sent.");
            }
            function sendEmailFH(o) {

                alert("An error has occurred while sending email.");
            }
            
            function sendReplenishReportsEmail(p){
                var callback = {
                    success: function(oResponse) {
                        alert("Email successfully sent.")
                    },
                    failure: function(oResponse) {
                        alert("Failed to email replenish reports.")
                    },                                        
                    argument: []
                };
                
                var sUrl = "AjaxManager.aspx?action=emailReplenishReports&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;;
                YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
            }
            
            
            function printPage(id, templateName) {
                
                var url = "AjaxManager.aspx?action=printWorkItem&id="+id+"&templateName="+templateName;
                WLX_UTILS.AjaxCall("GET", url, printPageSH, printPageFH, null);
            }
            function printPageSH(o) {
                
                //open report page
                eval(o.responseText)
                //window.open('ReportPage.aspx?contentType=" + MediaTypeNames.Application.Pdf + "&fileName=PrintBid.pdf', 'ReportWindow')
            }
            function printPageFH(o) {

                alert("An error has occurred while print previewing page.");
            }
            
            
            // R E P O R T S
            function showDashboardReport(statusId, valueType, templateName) {
                
                var url = "AjaxManager.aspx?action=showDashboardReport&statusId="+statusId+"&valueType="+valueType+"&templateName="+templateName;
                WLX_UTILS.AjaxCall("GET", url, showDashboardReportSH, showDashboardReportFH, null);
            }
            function showDashboardReportSH(o) {
                
                //open report page
                eval(o.responseText)
            }
            function showDashboardReportFH(o) {

                alert("An error has occurred while generating report.");
            }                       
            
        
            function OverrideCanvasLMSuccess(o) {
            
                eval(o.responseText);
            }
            function OverrideCanvasLMFailure(o) {
            
                alert('An error has occurred while sending the request.');
            }
            
            
            
            // U T I L S
            WLX_UTILS = new Object();
            WLX_UTILS.showHide = function(imgObj, targetElements){
                        
                if(imgObj.src.indexOf("plus")>-1){
                    imgObj.src = "../images/minus.gif";
                    var tarMap = targetElements.split(",");
                    for(var i=0; i<tarMap.length; i++)
                        this.show(tarMap[i]);
                }
                else{
                    imgObj.src = "../images/plus.gif";
                    var tarMap = targetElements.split(",");
                    for(var i=0; i<tarMap.length; i++)
                        this.hide(tarMap[i]);
                }
            }
            
            WLX_UTILS.toggle = function(targetElement){
            
                var te = document.getElementById(targetElement);
                if(te.style.display == "none")
                    te.style.display = "";
                else
                    te.style.display = "none"
            }
            
            WLX_UTILS.show = function(targetElement){
            
                document.getElementById(targetElement).style.display = "";
            }
            
            WLX_UTILS.hide = function(targetElement){
            
                document.getElementById(targetElement).style.display = "none";
            }
            
            WLX_UTILS.createCookie = function(name, value, days) {
            
                if (days) {
                    var date = new Date();
                    date.setTime(date.getTime() + (days*24*60*60*1000));
                    var expires = "; expires=" + date.toGMTString();
                }
                else var expires = "";
                document.cookie = name + "=" + value + expires + "; path=/";
            }
            
            WLX_UTILS.readCookie = function(name) {
            
                var nameEQ = name + "=";
                var ca = document.cookie.split(';');
                for(var i=0;i < ca.length;i++) {
                    var c = ca[i];
                    while (c.charAt(0)==' ') c = c.substring(1, c.length);
                    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
                }
                return null;
            }
            
            WLX_UTILS.openTab = function(tab,id,list){
            
                for(var i = 0 ; i < list.grids.length; i++){
                    document.getElementById(list.grids[i]).style.display = 'none';    
                }
                for(var i = 0 ; i < list.tabs.length; i++){
                    document.getElementById(list.tabs[i]).setAttribute("className", "");   
                }
                document.getElementById(id).style.display = '';
                tab.setAttribute("className", "selected");               
            }
            
            WLX_UTILS.addRow = function (tbodyId, rowMap, rowsUp, trId){
            
                var tbody = tbodyId;
                if(typeof(tbodyId) == 'string'){
                    tbody = document.getElementById(tbodyId);
                }
               
                var map = rowMap;			    
                if(typeof rowMap == "string")
                    map = eval(rowMap);

                var newTableRow = tbody.insertRow(rowsUp);
                if(trId != null)
                    newTableRow.setAttribute("id", trId);

                for(i=0; i<map.length; i++) {
                    var cell = newTableRow.insertCell(i)
                    var td = map[i];
                    if(i != map.length-1){//unescape only edit column
                        td = unescape(map[i]);
                    }
                    cell.innerHTML = td;
                }
                
                return newTableRow;
            }
            
            WLX_UTILS.removeRow = function (trId){

                var tr = trId;
                if(typeof(trId) == "string");
                    tr = document.getElementById(trId);
                    
                var rowIndex = tr.rowIndex - 1;
                var tbody = tr.parentNode;
                tbody.deleteRow(tr.rowIndex-1)
                
                return rowIndex;
            }
            
            WLX_UTILS.AjaxCall = function(method, url, successHandler, failureHandler, argumentMap,postData){
            
                //alert(url)
                if(method == 'POST')
                    var request = YAHOO.util.Connect.asyncRequest(method, url, {success:successHandler, failure:failureHandler, argument: argumentMap},postData);                
                else
                    var request = YAHOO.util.Connect.asyncRequest(method, url, {success:successHandler, failure:failureHandler, argument: argumentMap});                
            }
            
            WLX_UTILS.disableByTagName = function(tagNames, disable){
            
                var tags = document.getElementsByTagName(tagNames);
                for(var i=0; i<tags.length; i++)
                    tags[i].disabled = disable;
            }
            
            WLX_UTILS.urlGenerator = function(page, attributes, encode) {
            
                var url = page;
                var query = "";				
                if(attributes != null)
                {
                    for(var i in attributes)
                    {
                        if(query.length > 0)
                            query += "&" + ((encode)?escape(eval(i)):eval(i)) + "=" + ((encode)?escape(attributes[i]):attributes[i]); 						
                        else
                        {
                            url += "?"
                            query += ((encode)?escape(eval(i)):eval(i)) + "=" + ((encode)?escape(attributes[i]):attributes[i]); 						
                        }
                    }					
                }
                query = (url + query);
                
                return query;
            }
                
            WLX_UTILS.dynUrlGenerator = function(page, attributes, encode) {
            
                var url = page;
                var query = "";				
                if(attributes != null)
                {
                    for(var i in attributes)
                    {
                        if(query.length > 0)
                            query += "&" + i + "=" + ((encode)?escape(attributes[i]):attributes[i]); 						
                        else
                        {
                            url += "?"
                            query += i + "=" + ((encode)?escape(attributes[i]):attributes[i]); 						
                        }
                    }					
                }
                query = (url + query);
                
                return query;
            }
        
            WLX_UTILS.popup = function (config){
                                
                var popupForm = new YAHOO.widget.Panel(
                    config.container, 
                    {   
                        width: (config.width != null)? config.width : "300px",
                        visible: (config.visible != null)? config.visible : false,
                        zindex: (config.zindex != null)? config.zindex : 999,
                        modal: (config.modal != null)? config.modal : false,
                        fixedcenter: (config.fixedcenter != null)? config.fixedcenter : false,
                        effect: {effect:YAHOO.widget.ContainerEffect.FADE, duration: 0.5},
                        constraintoviewport: (config.constraintoviewport != null)? config.constraintoviewport : false,
                        hideFooter: true
                    }
                );
                
                popupForm.hideEvent.subscribe(function() {FORM_MANAGER.resetForm(null, config);}); 
                
                if(config.header != null)
                    popupForm.setHeader((config.header != null)? config.header : "");
                popupForm.setBody((config.body != null)? config.body : "");
                if(config.footer != null)
                    popupForm.setFooter(config.footer);
                
                return popupForm;
            }
            
            WLX_UTILS.resetForm = function (formId){
                document.getElementById(formId).reset();
            }
            
            WLX_UTILS.getMultiSelectValue = function (id){
            
                var valueCSV = "";
                var mSelect = document.getElementById(id);
                
                for(var i=0; i<mSelect.options.length; i++){
                    if(mSelect.options[i].selected)
                        valueCSV += "," + mSelect.options[i].value;
                }
                
                return valueCSV.replace(",", "");
            }
            
            
            
            // F O R M M A N A G E R
            FORM_MANAGER = new Object();
            FORM_MANAGER.loadForm = function(config) {
            
                config.modal = true;
                config.fixedcenter = true;
                config.constraintoviewport = true;
                var form = document.getElementById(config.form);
                form.style.display = "";
                config.body = form;
                
                return WLX_UTILS.popup(config);
            }
            FORM_MANAGER.openForm = function(config) {
                
                if(!config.popup){
                    config.popup = FORM_MANAGER.loadForm(config);
                    config.popup.render();
                }
                config.popup.show();
            }
            FORM_MANAGER.validateForm = function(config){
                
                //clear error divs
                document.getElementById(config.errorDiv).innerHTML = "";
                document.getElementById(config.backendErrorDiv).innerHTML = "";
                
                yav_config.errorsdiv = config.errorDiv;
                if(config.rules != null){
                    if(yav.performCheck(config.form, config.rules, 'innerHtml'))
                        this.submitForm(config)
                }else{
                    this.submitForm(config)
                }
            }
            FORM_MANAGER.submitForm = function(config) {
               
                var callback =
                {
                    upload: function(o) {alert('uploaded');},
                    //success: function(o) {alert(o.responseText);FORM_MANAGER.resetForm(eval("(" + o.responseText + ")"), config);},
                    //failure: function(o) {alert("Failed to submit form.");},
                    argument: []
                }
                //alert(document.getElementById(config.form))
                
                var formObject = document.getElementById(config.form);
                // alert(formObject.submit());
                YAHOO.util.Connect.setForm(formObject,true);
        
                //alert(formObject.innerHTML)
                var url = 'AjaxManager.aspx?action=' + config.action;
                WLX_UTILS.AjaxCall("POST", url, callback.success, callback.failure, callback.argument);
            }			
            FORM_MANAGER.resetForm = function(reponseTextObj, config) {
                
                if(reponseTextObj != null && reponseTextObj.HasError) {
                    var backendErrorDiv = document.getElementById(config.backendErrorDiv);
                    var errorList = "<ul>";
                    for(var i=0; i<reponseTextObj.ErrorMessages.length; i++)
                        errorList += "<li>" + reponseTextObj.ErrorMessages[i] + "</li>";
                    errorList += "</ul>";
                    backendErrorDiv.innerHTML = errorList;
                }
                else {
                    config.popup.hide();
                    //clear error divs
                    document.getElementById(config.errorDiv).innerHTML = "";
                    document.getElementById(config.backendErrorDiv).innerHTML = "";
                    document.getElementById(config.form).reset();
                }
            }
            
            
            /* G L O B A L   V A R I A B L E S */           
            //validation rules
            var g_ppf_rules = new Array();
            g_ppf_rules.push('ppf_ICN:ICN|required');
            g_ppf_rules.push('ppf_JITSTicket:JITS Ticket|required');
            
            var g_tpf_rules = new Array();
            g_tpf_rules.push('tpf_ICN:ICN|required');
            
            var g_rpf_rules = new Array();
            g_rpf_rules.push('rpf_ICN:ICN|required');
            
            var g_doaf_rules = new Array();
            g_doaf_rules.push('doaf_ICN:ICN|required');
            g_doaf_rules.push('doaf_ProblemDescription:Problem Description|required');
            
            var g_ahrf_rules = new Array();
            g_ahrf_rules.push('ahrf_Quantity:Quantity|required');
            g_ahrf_rules.push('ahrf_PartNumber:Part Number|required');
            g_ahrf_rules.push('ahrf_Manufacturer:Manufacturer|required');
            g_ahrf_rules.push('ahrf_Description:Description|required');
            g_ahrf_rules.push('ahrf_RequestDeliveryTime:Request Delivery Time|required');
            
            var g_addpf_rules = new Array();
            g_addpf_rules.push('addpf_SerialNumber:Serial Number|required');
            g_addpf_rules.push('addpf_PartNumber:Part Number|required');
            g_addpf_rules.push('addpf_XOption:XOption|required');
            g_addpf_rules.push('addpf_SalesPrice:SalesPrice|required');
            
            var g_lockerf_rules = new Array();
            g_lockerf_rules.push('lockerf_Locker:Location|required');
            var g_qtyf_rules = new Array();
            g_qtyf_rules.push('qty_Quantity:Quantity|required');
            var g_discountf_rules = new Array();
            g_discountf_rules.push('discount_value:Value|required');
            
            //forms - forms' html are all the way at the bottom of the aspx file
            var g_ppf = {container:"ppfContainer", form:"ppf", header:"Pull Parts", action:"pullParts", rules:g_ppf_rules, errorDiv:"ppfErrorDiv", backendErrorDiv:"ppfErrorDiv1"};
            var g_tpf = {container:"tpfContainer", form:"tpf", header:"Transfer Parts", action:"transferParts", rules:g_tpf_rules, errorDiv:"tpfErrorDiv", backendErrorDiv:"tpfErrorDiv1"};
            var g_rpf = {container:"rpfContainer", form:"rpf", header:"Receive Parts", action:"receiveParts", rules:g_rpf_rules, errorDiv:"rpfErrorDiv", backendErrorDiv:"rpfErrorDiv1"};
            var g_doaf = {container:"doafContainer", form:"doaf", header:"DOA Parts", action:"doaPart", rules:g_doaf_rules, errorDiv:"doafErrorDiv", backendErrorDiv:"doafErrorDiv1"};
            var g_ahrf = {container:"ahrfContainer", form:"ahrf", header:"Ad Hoc Request", action:"adhocRequest", width:"350px", rules:g_ahrf_rules, errorDiv:"ahrfErrorDiv", backendErrorDiv:"ahrfErrorDiv1"};
            var g_addpf = {container:"addpfContainer", form:"addpf", header:"Add Parts", action:"addParts", width:"350px", rules:g_addpf_rules, errorDiv:"addpfErrorDiv", backendErrorDiv:"addpfErrorDiv1"};
            var g_lockerf = {container:"lockerfContainer", form:"lockerf", header:"Update Location", action:"updateLocker", rules:g_lockerf_rules, errorDiv:"lockerfErrorDiv", backendErrorDiv:"lockerfErrorDiv1"};
            var g_qtyf = {container:"qtyfContainer", form:"qtyf", header:"Update Quantity", action:"updateQty", rules:g_qtyf_rules, errorDiv:"qtyfErrorDiv", backendErrorDiv:"qtyfErrorDiv1"};
            var g_discountf = {container:"discountfContainer", form:"discountf", header:"Update Pricing", action:"updateDiscount", rules:g_discountf_rules, errorDiv:"discountfErrorDiv", backendErrorDiv:"discountfErrorDiv1"};
            
            var g_newshipmentf = {container:"newShipmentContainer", form:"newShipmentForm", header:"Update Pricing", action:"newShipment", rules:null, errorDiv:"newShipmentFormErrorDiv", backendErrorDiv:"newShipmentFormErrorDiv1"};
            var g_uploadCert = {container:"uploadCertificateContainer", form:"uploadCertificateForm", header:"Upload Certificate", action:"uploadCertificate", rules:null, errorDiv:"uploadCertificateFormErrorDiv", backendErrorDiv:"uploadCertificateFormErrorDiv1"};
            function updateMIA(){
                var records = VIEW_MANAGER.getSelected(g_mia_table, 'ID');
                var icnList = '';
                for(var i = 0 ; i < records.length ; i++){
                    icnList += records[i].getData().ICN;
                    if(i != records.length -1 )
                        icnList += ',';
                }
               
                var url = 'AjaxManager.aspx?action=setMIA&ICN='+icnList+'&rdm='+Math.random()*1000000;
                WLX_UTILS.AjaxCall('GET', url, function(){alert('Selection Marked as MIA');}, function(){alert('Error');}, {});			
            }
            function openQuantityForm(pn, site, qty) {
                
                ///document.getElementById("qtyfErrorDiv1").innerHTML = '';
                FORM_MANAGER.openForm(g_qtyf);
                document.getElementById("qty_PartNumber").value = pn;
                document.getElementById("qty_Site").value = site;
                document.getElementById("qty_Quantity").value = qty;
            }
            
            function openDiscountForm(pn,sign,value,type) {
                
                ///document.getElementById("discountfErrorDiv1").innerHTML = '';
                FORM_MANAGER.openForm(g_discountf);
                document.getElementById('discountFormId').style.display = '';
                document.getElementById('overrideFormId').style.display = 'none'
                document.getElementById("discount_PartNumber").value = pn;
                document.getElementById("discount_Sign").value = sign;
                if(sign == "o"){
                    document.getElementById("discount_Value").value = 0;
                    document.getElementById("override_Value").value = value;
                }
                else{
                    document.getElementById("discount_Value").value = value;
                    document.getElementById("override_Value").value = 0;
                }
                document.getElementById("discount_Type").value = type;
            }
            function openPullPartsForm() {
                
                ///document.getElementById("ppfErrorDiv1").innerHTML = '';
                FORM_MANAGER.openForm(g_ppf);
            }
            
            function openTransferPartsForm() {
            
                ///document.getElementById("tpfErrorDiv1").innerHTML = '';
                FORM_MANAGER.openForm(g_tpf);
            }
            
            function openReceivePartsForm() {
            
                ///document.getElementById("rpfErrorDiv1").innerHTML = '';
                FORM_MANAGER.openForm(g_rpf);
            }
            

            
            function openAdHocRequestForm() {
            
                ///document.getElementById("ahrfErrorDiv1").innerHTML = '';
                FORM_MANAGER.openForm(g_ahrf);
            }
            
            function openAddPartsForm() {
            
                ///document.getElementById("addpfErrorDiv1").innerHTML = '';
                FORM_MANAGER.openForm(g_addpf);
            }
            
            function warrantyCheck(config){
                var icn = document.getElementById("doaf_ICN").value;
                
                var callback =
                {
                    success: function(o) {
                        var resp = eval("(" + o.responseText + ")");
                        document.getElementById(config.backendErrorDiv).innerHTML = "<ul><li>" + resp.Description + "</li></ul>";
                    },
                    failure: function(o) {alert("Failed to retreive info.");},
                    argument: []
                }

                var url = 'AjaxManager.aspx?action=warrantyCheck&ICN=' + icn;
                WLX_UTILS.AjaxCall("GET", url, callback.success, callback.failure, callback.argument);
            }
            
            function openDOAForm(){
                ///document.getElementById("doafErrorDiv1").innerHTML = '';
                FORM_MANAGER.openForm(g_doaf);
            }
            
            function openLockerForm(pn, site, locker) {
            
                ///document.getElementById("lockerfErrorDiv1").innerHTML = '';
                FORM_MANAGER.openForm(g_lockerf);
                document.getElementById("lockerf_PartNumber").value = pn;
                document.getElementById("lockerf_Site").value = site;
                document.getElementById("lockerf_Locker").value = locker;
            }
    
            
            
            
            // T A B L E H E L P E R
            WLX_TABLEHELPER = new Object();
            WLX_TABLEHELPER.buildWithScrolls = function(params) {
                
                //if params.config is set to "default", the following config will be used
                var defaultConfig = {   
                    height:"250px",
                    //width:"98%",
                    sortedBy:params.sortedBy,
                    paginator: new YAHOO.widget.Paginator({   
                        rowsPerPage: 25,   
                        template: YAHOO.widget.Paginator.TEMPLATE_DEFAULT,   
                        //rowsPerPageOptions: [10,25,50,100],   
                        pageLinks: 5,
                        firstPageLinkLabel : "&lt;&lt;",		
                        lastPageLinkLabel : "&gt;&gt;",			
                        previousPageLinkLabel : "&lt;",
                        nextPageLinkLabel : "&gt;"
                    })
                }; 

                var ds = (params.responseType == YAHOO.util.DataSource.TYPE_JSON) ? params.url + "&rand=" + Math.random()*1000000 : params.array;
                var myDataSource = new YAHOO.util.DataSource(ds);
                myDataSource.responseType = params.responseType;
                myDataSource.responseSchema = params.responseSchema;
              
                var myDataTable = new YAHOO.widget.ScrollingDataTable(params.container, params.columnDefs, myDataSource, (params.config != null && params.config == "default") ? defaultConfig : null);
                myDataTable.sortUrl = params.sortUrl;
                myDataTable.on('initEvent',function() {
                    try{
                        document.getElementById('CountPartsId').innerHTML = 'Parts Count: '+this.getRecordSet().getLength();
                    }catch(e){
                    }
                });		      
                myDataTable.doBeforeSortColumn = function(column,dir) {
                    try{
                        //alert(params.callback.success)
                        //this.getDataSource()
                        //alert(column + " " +  dir);
                        if(dir == 'yui-dt-asc'){
                            dir ='ASC';
                            sortedBy = {key:column.key,dir:YAHOO.widget.DataTable.CLASS_ASC}
                        }
                        else{
                            dir = 'DESC';
                            sortedBy = {key:column.key,dir:YAHOO.widget.DataTable.CLASS_DESC}
                        }
                        var url = params.sortUrl+ "&sortOrientation="+dir + "&sortColumn="+column.key
                        EXCEL_EXPORT.dir = dir;
                        EXCEL_EXPORT.column = column.key;
                        params.callback.argument = [params.sortUrl,sortedBy];
                        var request = YAHOO.util.Connect.asyncRequest("GET", url, params.callback);
                        return false;
                    }catch(e){
                    }
                };
                return myDataTable;
            }
            WLX_TABLEHELPER.build = function(params) {
                
                //if params.config is set to "default", the following config will be used
                var defaultConfig = {   
                    height:"300px",
                    //width:"98%",
                    sortedBy:params.sortedBy,
                    paginator: new YAHOO.widget.Paginator({   
                        rowsPerPage: 25,   
                        template: YAHOO.widget.Paginator.TEMPLATE_DEFAULT,   
                        //rowsPerPageOptions: [10,25,50,100],   
                        pageLinks: 5,
                        firstPageLinkLabel : "&lt;&lt;",		
                        lastPageLinkLabel : "&gt;&gt;",			
                        previousPageLinkLabel : "&lt;",
                        nextPageLinkLabel : "&gt;"
                    })
                }; 

                var ds = (params.responseType == YAHOO.util.DataSource.TYPE_JSON) ? params.url + "&rand=" + Math.random()*1000000 : params.array;
                var myDataSource = new YAHOO.util.DataSource(ds);
                myDataSource.responseType = params.responseType;
                myDataSource.responseSchema = params.responseSchema;
                
                var myDataTable = new YAHOO.widget.DataTable(params.container, params.columnDefs, myDataSource, (params.config != null && params.config == "default") ? defaultConfig : null);
                myDataTable.sortUrl = params.sortUrl;
                myDataTable.on('initEvent',function() {
                    try{
                        document.getElementById('CountPartsId').innerHTML = 'Parts Count: '+this.getRecordSet().getLength();
                    }catch(e){
                    }
                });		      
                myDataTable.doBeforeSortColumn = function(column,dir) {
                    try{
                        //alert(params.callback.success)
                        //this.getDataSource()
                        //alert(column + " " +  dir);
                        if(dir == 'yui-dt-asc'){
                            dir ='ASC';
                            sortedBy = {key:column.key,dir:YAHOO.widget.DataTable.CLASS_ASC}
                        }
                        else{
                            dir = 'DESC';
                            sortedBy = {key:column.key,dir:YAHOO.widget.DataTable.CLASS_DESC}
                        }
                        var url = params.sortUrl+ "&sortOrientation="+dir + "&sortColumn="+column.key
                        EXCEL_EXPORT.dir = dir;
                        EXCEL_EXPORT.column = column.key;
                        params.callback.argument = [params.sortUrl,sortedBy];
                        var request = YAHOO.util.Connect.asyncRequest("GET", url, params.callback);
                        return false;
                    }catch(e){
                    }
                };
                return myDataTable;
            }
            //override column definitions with front-end specified if any
            WLX_TABLEHELPER.overrideColumnDefs = function(cColumnDefs, nColumnDefs) {
                
                if(nColumnDefs != null){
                    for(var i in cColumnDefs){
                        for(var j in nColumnDefs){		                    
                            if(cColumnDefs[i].key == nColumnDefs[j].key)
                                for(var k in nColumnDefs[j])
                                    cColumnDefs[i][k] = nColumnDefs[j][k];
                        }
                    }
                }
                
                return cColumnDefs;
            }
            
            
            
            // V I E W M A N A G E R
            VIEW_MANAGER = new Object();
            VIEW_MANAGER.lockerFormatter = function(elCell, oRecord, oColumn, oData) {
            
                var partNumber = oRecord.getData()["PartNumber"];
                var site = oRecord.getData()["Site"];
                if(oData == '')
                {
                    data = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
                }else{
                    data = oData;
                }
                if(oRecord.getData()["CurrentQuantity"] == "0"){
                    elCell.innerHTML = "<span >" + data + "</span>";
                }else{
                    elCell.innerHTML = "<span class='linkSpan' onclick='openLockerForm(\"" + partNumber + "\", \"" + site + "\", \"" + oData + "\")'>" + data + "</span>";
                }
            }
            
            
             VIEW_MANAGER.discountFormatter = function(elCell, oRecord, oColumn, oData) {
                var partNumber = oRecord.getData()["PartNumber"];
                var sign = oRecord.getData()["Sign"];
                var value = oRecord.getData()["DiscountValue"];
                var type = oRecord.getData()["Type"];
                var className = "";
               
                
                elCell.innerHTML = "<a href='#' onclick=\"openDiscountForm('"+partNumber+"','"+sign+"','"+value+"','"+type+"');return false;\" > Change </a>";
            }
            VIEW_MANAGER.quantityCompareFormatter = function(elCell, oRecord, oColumn, oData) {
            
                var srcVal = parseInt(oRecord.getData()[VIEW_MANAGER.srcCol]);
                var destVal = parseInt(oRecord.getData()[VIEW_MANAGER.destCol]);
                var className = "";
                
                if(srcVal != "NaN" && destVal != "NaN"){
                    if(srcVal > destVal)
                        className = "b red";
                    else if(destVal > srcVal)
                        className = "b green";
                }
                
                elCell.innerHTML = "<span class='"+className+"'>" + oData + "</span>";
            }
            VIEW_MANAGER.quantityCompareFormatterLink = function(elCell, oRecord, oColumn, oData) {
                var partNumber = oRecord.getData()["PartNumber"];
                var site = oRecord.getData()["Site"];
                var qty = oRecord.getData()["RequiredQuantity"];
                var srcVal = parseInt(oRecord.getData()[VIEW_MANAGER.srcCol]);
                var destVal = parseInt(oRecord.getData()[VIEW_MANAGER.destCol]);
                var className = "";
                
                if(srcVal != "NaN" && destVal != "NaN"){
                    if(srcVal > destVal)
                        className = "b red";
                    else if(destVal > srcVal)
                        className = "b green";
                }
                
                elCell.innerHTML = "<span class='"+className+"' onclick=\"openQuantityForm('"+partNumber+"','"+site+"',"+qty+")\" >" + oData + "</span>";
            }
            VIEW_MANAGER.linkFormatter = function(elCell, oRecord, oColumn, oData) {
                
                var linkText = oRecord.getData()[VIEW_MANAGER.linkTextKey];
                if(linkText == null)
                    linkText = VIEW_MANAGER.linkTextKey;
                    
                var attributes = new Object();
                if(VIEW_MANAGER.attributes != null){
                    for(var i=0; i<VIEW_MANAGER.attributes.length; i++){
                        attributes[VIEW_MANAGER.attributes[i]] = oRecord.getData()[VIEW_MANAGER.attributes[i]];
                    }
                }
                
                if(VIEW_MANAGER.linkAttributes == null)
                    VIEW_MANAGER.linkAttributes = "";
                    
                var linkUrl = WLX_UTILS.dynUrlGenerator(VIEW_MANAGER.page, attributes, true);
                
                if(VIEW_MANAGER.extraAttributes != null){
                    if(linkUrl.indexOf("?") > -1)
                        linkUrl += "&" + VIEW_MANAGER.extraAttributes;
                    else
                        linkUrl += "?" + VIEW_MANAGER.extraAttributes;
                }
                    
                
                elCell.innerHTML = "<a href='"+linkUrl+"' "+VIEW_MANAGER.linkAttributes+">" + linkText + "</a>";
            }
            VIEW_MANAGER.selectAll = function(dataTable, key) {
            
                var recordset = dataTable.getRecordSet();
                var records = recordset.getRecords();
                
                for (i=0; i < records.length; i++) {
                    recordset.updateKey(records[i], key, true);
                }
                dataTable.render();
                
                return false;
            }
            VIEW_MANAGER.deselectAll = function(dataTable, key) {
            
                var recordset = dataTable.getRecordSet();
                var records = recordset.getRecords();
                
                for (i=0; i < records.length; i++) {
                    recordset.updateKey(records[i], key, false);
                }
                dataTable.render();
                
                return false;
            }
            VIEW_MANAGER.getSelected = function(dataTable, key) {
            
                var selectedList = new Array();
                var recordset = dataTable.getRecordSet();
                var records = recordset.getRecords();
                
                for (i=0; i < records.length; i++) {
                    if(records[i].getData()[key])
                        selectedList.push(records[i]);
                }
                
                //alert(selectedList.length)                
                return selectedList;
            }
            
            VIEW_MANAGER.loadPartsInStockTable = function(p){
            
                var params = new Object();

                params.columnDefs = [
                    {key:"ICN", label:"ICN", resizeable:true, sortable:true},
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"XOption", label:"X Option", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"SerialNumber", label:"Serial #", resizeable:true, sortable:true},
                    {key:"Site", label:"Site", resizeable:true, sortable:true},
                    {key:"Received", label:"Received", resizeable:true, sortable:true},
                    {key:"Price", label:"$", resizeable:true, sortable:true}
                ];
                params.columnDefs = WLX_TABLEHELPER.overrideColumnDefs(params.columnDefs, p.columnDefs);
                params.config = "default"
                params.url = "AjaxManager.aspx?action=getPartsInStock&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["ICN", "PartNumber", "XOption", "Description", "SerialNumber", "Site", "Received", "Price"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                
                return WLX_TABLEHELPER.build(params);
            }
            
            VIEW_MANAGER.loadToBeReceivedTable = function(p){
            
                var params = new Object();

                params.columnDefs = [
                    {key:"ShipDate", label:"Ship Date", resizeable:true, sortable:true},
                    {key:"ICN", label:"ICN", resizeable:true, sortable:true},
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"XOption", label:"X Option", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"SerialNumber", label:"Serial #", resizeable:true, sortable:true},
                    {key:"Site", label:"Site", resizeable:true, sortable:true},
                    {key:"SO", label:"SO", resizeable:true, sortable:true},
                    {key:"Price", label:"$", resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getToBeReceived&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["ShipDate", "ICN", "PartNumber", "XOption", "Description", "SerialNumber", "Site", "SO", "Price"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                
                return WLX_TABLEHELPER.build(params);
            }
            
            VIEW_MANAGER.loadMarkMIATable = function(p){
            
                var params = new Object();

                params.columnDefs = [
                    {key:"ID", label:"", formatter:"checkbox", resizeable:false, sortable:true},
                    {key:"ICN", label:"ICN", resizeable:true, sortable:true},
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"XOption", label:"X Option", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"SerialNumber", label:"Serial #", resizeable:true, sortable:true},
                    {key:"Site", label:"Site", resizeable:true, sortable:true},
                    {key:"Received", label:"Received", resizeable:true, sortable:true},
                    {key:"Price", label:"$", resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getMarkMIA&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["ID", "ICN", "PartNumber", "XOption", "Description", "SerialNumber", "Site", "Received", "Price"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                
                
                var myDataTable = WLX_TABLEHELPER.build(params);
                
                myDataTable.subscribe("checkboxClickEvent", function(oArgs){   
                    var elCheckbox = oArgs.target;   
                    var oRecord = this.getRecord(elCheckbox);
                    oRecord.setData("ID", elCheckbox.checked);
                }); 

                return myDataTable;
            }
            
            VIEW_MANAGER.loadStockLevelsTable = function(p){
            
                VIEW_MANAGER.srcCol = "RequiredQuantity";
                VIEW_MANAGER.destCol = "CurrentQuantity";
                
                var params = new Object();
                
                params.columnDefs = [
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"Site", label:"Site", resizeable:true, sortable:true},
                    {key:"Locker", label:"Location", formatter:this.lockerFormatter, resizeable:true, sortable:true},
                    {key:"RequiredQuantity", label:"Required QTY", formatter:this.quantityCompareFormatterLink, resizeable:true, sortable:true},
                    {key:"CurrentQuantity", label:"Current QTY", formatter:this.quantityCompareFormatter, resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getStockLevels&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["PartNumber", "Manufacturer", "Description", "Site", "Locker", "RequiredQuantity", "CurrentQuantity"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
            
            VIEW_MANAGER.loadShortagesTable = function(p){
            
                VIEW_MANAGER.srcCol = "RequiredQuantity";
                VIEW_MANAGER.destCol = "CurrentQuantity";
            
                var params = new Object();

                params.columnDefs = [
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"Site", label:"Site", resizeable:true, sortable:true},
                    {key:"Locker", label:"Location", formatter:this.lockerFormatter, resizeable:true, sortable:true},
                    {key:"RequiredQuantity", label:"Required QTY", formatter:this.quantityCompareFormatterLink, resizeable:true, sortable:true},
                    {key:"CurrentQuantity", label:"Current QTY", formatter:this.quantityCompareFormatter, resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getShortages&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["PartNumber", "Manufacturer", "Description", "Site", "Locker", "RequiredQuantity", "CurrentQuantity"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
            
            VIEW_MANAGER.loadOveragesTable = function(p){
            
                VIEW_MANAGER.srcCol = "RequiredQuantity";
                VIEW_MANAGER.destCol = "CurrentQuantity";
            
                var params = new Object();

                params.columnDefs = [
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"Site", label:"Site", resizeable:true, sortable:true},
                    {key:"Locker", label:"Location", formatter:this.lockerFormatter, resizeable:true, sortable:true},
                    {key:"RequiredQuantity", label:"Required QTY", formatter:this.quantityCompareFormatterLink, resizeable:true, sortable:true},
                    {key:"CurrentQuantity", label:"Current QTY", formatter:this.quantityCompareFormatter, resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getOverages&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["PartNumber", "Manufacturer", "Description", "Site", "Locker", "RequiredQuantity", "CurrentQuantity"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
            
            VIEW_MANAGER.loadPartsPulledByMonthTable = function(p){
            
                var params = new Object();

                params.columnDefs = [
                    {key:"PullDate", label:"Pull Date", resizeable:true, sortable:true},
                    {key:"JITSTicket", label:"JITS Ticket", resizeable:true, sortable:true},
                    {key:"ICN", label:"ICN", resizeable:true, sortable:true},
                    {key:"SerialNumber", label:"Serial #", resizeable:true, sortable:true},
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    //{key:"XOption", label:"X Option", resizeable:true, sortable:true},
                    {key:"Purpose", label:"Purpose", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"Site", label:"Site", resizeable:true, sortable:true},
                    {key:"Price", label:"$", resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getPartsPulledByMonth&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy + "&ByMonth=" + p.byMonth;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["PullDate", "JITSTicket", "ICN", "SerialNumber", "PartNumber", /*"XOption",*/ "Purpose", "Description", "Site", "Price"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
            
            VIEW_MANAGER.loadPartsAddedByMonthTable = function(p){
            
                var params = new Object();

                params.columnDefs = [
                    {key:"AddDate", label:"Add Date", resizeable:true, sortable:true},
                    {key:"JITSTicket", label:"JITS Ticket", resizeable:true, sortable:true},
                    {key:"ICN", label:"ICN", resizeable:true, sortable:true},
                    {key:"SerialNumber", label:"Serial #", resizeable:true, sortable:true},
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    //{key:"XOption", label:"X Option", resizeable:true, sortable:true},
                    {key:"Purpose", label:"Purpose", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"Site", label:"Site", resizeable:true, sortable:true},
                    {key:"Price", label:"$", resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getPartsAddedByMonth&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy + "&ByMonth=" + p.byMonth;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["AddDate", "JITSTicket", "ICN", "SerialNumber", "PartNumber", /*"XOption",*/ "Purpose", "Description", "Site", "Price"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
            
            VIEW_MANAGER.loadPartsAddedByCompanyTable = function(p){
            
                var params = new Object();

                params.columnDefs = [
                    {key:"AddDate", label:"Add Date", resizeable:true, sortable:true},
                    {key:"ICN", label:"ICN", resizeable:true, sortable:true},
                    {key:"SerialNumber", label:"Serial #", resizeable:true, sortable:true},
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"XOption", label:"X Option", resizeable:true, sortable:true},
                    {key:"Purpose", label:"Purpose", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"Site", label:"Site", resizeable:true, sortable:true},
                    {key:"Price", label:"$", resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getPartsAddedByCompany&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["AddDate", "ICN", "SerialNumber", "PartNumber", "XOption", "Purpose", "Description", "Site", "Price"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
            
            VIEW_MANAGER.loadCurrentSalesPriceTable = function(p){
            
                VIEW_MANAGER.srcCol = "SalesPrice";
                VIEW_MANAGER.destCol = "PreviousSalesPrice";
            
                var params = new Object();

                params.columnDefs = [
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"SalesPrice", label:"SalesPrice", formatter:this.quantityCompareFormatter, resizeable:true, sortable:true},
                    {key:"PreviousSalesPrice", label:"Previous Sales Price", formatter:this.quantityCompareFormatter, resizeable:true, sortable:true},
                    {key:"BasePrice", label:"Base Price", resizeable:true, sortable:true},
                    {key:"OverridePrice", label:"Discount", formatter:this.discountFormatter, resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getCurrentSalesPrice&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["PartNumber", "Manufacturer", "Description", "SalesPrice", "PreviousSalesPrice","BasePrice","OverridePrice","Sign","DiscountValue","Type"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
            
            VIEW_MANAGER.loadSalesPriceIncreasesTable = function(p){
            
                VIEW_MANAGER.srcCol = "SalesPrice";
                VIEW_MANAGER.destCol = "PreviousSalesPrice";
            
                var params = new Object();

                params.columnDefs = [
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"SalesPrice", label:"Sales Price", formatter:this.quantityCompareFormatter, resizeable:true, sortable:true},
                    {key:"PreviousSalesPrice", label:"Previous Sales Price", formatter:this.quantityCompareFormatter, resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getSalesPriceIncreases&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["PartNumber", "Manufacturer", "Description", "SalesPrice", "PreviousSalesPrice"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
                        
            VIEW_MANAGER.loadSalesPriceDecreasesTable = function(p){
            
                VIEW_MANAGER.srcCol = "SalesPrice";
                VIEW_MANAGER.destCol = "PreviousSalesPrice";
            
                var params = new Object();

                params.columnDefs = [
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"SalesPrice", label:"Sales Price", formatter:this.quantityCompareFormatter, resizeable:true, sortable:true},
                    {key:"PreviousSalesPrice", label:"Previous Sales Price", formatter:this.quantityCompareFormatter, resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getSalesPriceDecreases&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["PartNumber", "Manufacturer", "Description", "SalesPrice", "PreviousSalesPrice"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
            
            VIEW_MANAGER.loadReplenishReportsTable = function(p){
            
                VIEW_MANAGER.linkTextKey = "ReportDate";
                VIEW_MANAGER.page = "ReportsPage.aspx";
                VIEW_MANAGER.attributes = ["ReportDate"];
                VIEW_MANAGER.extraAttributes = "ReportType=RRD&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                VIEW_MANAGER.linkAttributes = "target='_blank'"
                
                var params = new Object();

                params.columnDefs = [
                    {key:"ReportDate", label:"Date", formatter:this.linkFormatter, resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getReplenishReports&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["ReportDate"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
            
            VIEW_MANAGER.loadMIATable = function(p){
            
                var params = new Object();

                params.columnDefs = [
                    {key:"ICN", label:"ICN", resizeable:true, sortable:true},
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"XOption", label:"X Option", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"SerialNumber", label:"Serial #", resizeable:true, sortable:true},
                    {key:"Site", label:"Site", resizeable:true, sortable:true},
                    {key:"Received", label:"Received", resizeable:true, sortable:true},
                    {key:"Price", label:"$", resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getMIA&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["ICN", "PartNumber", "XOption", "Description", "SerialNumber", "Site", "Received", "Price"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
            
            VIEW_MANAGER.loadDOATable = function(p){
            
                var params = new Object();

                params.columnDefs = [
                    {key:"DOADate", label:"DOA Date", resizeable:true, sortable:true},
                    {key:"ICN", label:"ICN", resizeable:true, sortable:true},
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"XOption", label:"X Option", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"SerialNumber", label:"Serial #", resizeable:true, sortable:true},
                    {key:"Site", label:"Site", resizeable:true, sortable:true},
                    {key:"Received", label:"Received", resizeable:true, sortable:true},
                    {key:"Price", label:"$", resizeable:true, sortable:true}
                ];
                
                params.config = "default";
                params.url = "AjaxManager.aspx?action=getDOA&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["DOADate", "ICN", "PartNumber", "XOption", "Description", "SerialNumber", "Site", "Received", "Price"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
            
            
            
            // R E P O R T M A N A G E R
            var REPORT_MANAGER = new Object();
            REPORT_MANAGER.loadReplenishReportDetailsTable = function(p){
            
                var params = new Object();

                params.columnDefs = [
                    {key:"Site", label:"Site", resizeable:true, sortable:true},
                    {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                    {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true},
                    {key:"Description", label:"Description", resizeable:true, sortable:true},
                    {key:"RequiredQuantity", label:"Required QTY", resizeable:true, sortable:true,width:70},
                    {key:"CurrentQuantity", label:"Current QTY", resizeable:true, sortable:true,width:65},
                    {key:"OpenSOQuantity", label:"OpenSO QTY", resizeable:true, sortable:true,width:65},
                    {key:"ShippedQuantity", label:"Shipped QTY", resizeable:true, sortable:true,width:65},
                    {key:"NeededQuantity", label:"Needed QTY", resizeable:true, sortable:true,width:65}
                ];
                params.config = "default";    		    
                params.url = "AjaxManager.aspx?action=getReplenishReportDetails&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["Site", "PartNumber", "Manufacturer", "Description", "RequiredQuantity", "CurrentQuantity", "OpenSOQuantity", "ShippedQuantity","NeededQuantity"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                return WLX_TABLEHELPER.build(params);
            }
            
            REPORT_MANAGER.loadNewPartsTable = function(p){
            
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText); 
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"AddDate", label:"Add Date", resizeable:true, sortable:true},
                            {key:"ICN", label:"ICN", resizeable:true, sortable:true},
                            {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                            {key:"SerialNumber", label:"SN", resizeable:true, sortable:true},
                            {key:"Purpose", label:"Purpose", resizeable:true, sortable:true},
                            {key:"Description", label:"Desc.", resizeable:true, sortable:true},
                            {key:"SO", label:"SO", resizeable:true, sortable:true},
                            {key:"Site", label:"Site", resizeable:true, sortable:true},
                            {key:"Price", label:"$", resizeable:true, sortable:true}
                        ];
                        params.config = "default";
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["AddDate", "ICN", "PartNumber", "SerialNumber", "Purpose", "Description", "SO", "Site", "Price"]};
                        params.container = p.container;
                        WLX_TABLEHELPER.build(params);
                        var total = 0;
                        for(var i = 0 ; i < map.records.length;i++){
                            total += eval(map.records[i].Price);
                        }
                        document.getElementById(p.headerContainer).innerHTML = "New Parts<br/> Report Total: $" + total;
                    },
                    failure: function(o) {alert("Failed to load new parts report.");},
                    argument: []
                }

                var url = "AjaxManager.aspx?action=getNewPartsReportDetails&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                WLX_UTILS.AjaxCall("GET", url, callback.success, callback.failure, [url]);
            }
            
            REPORT_MANAGER.loadDOAPartsTable = function(p){
            
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText); 
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"DOADate", label:"DOA Date", resizeable:true, sortable:true},
                            {key:"ICN", label:"ICN", resizeable:true, sortable:true},
                            {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                            {key:"SerialNumber", label:"Serial #", resizeable:true, sortable:true},
                            {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true},
                            {key:"Description", label:"Description", resizeable:true, sortable:true},
                            {key:"SO", label:"SO", resizeable:true, sortable:true},
                            {key:"Site", label:"Site", resizeable:true, sortable:true},
                            {key:"Price", label:"$", resizeable:true, sortable:true}
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["DOADate", "ICN", "PartNumber", "SerialNumber", "Manufacturer", "Description", "SO", "Site", "Price"]};
                        params.container = p.container;
                        WLX_TABLEHELPER.build(params);
                        var total = 0;
                        for(var i = 0 ; i < map.records.length;i++){
                            total += eval(map.records[i].Price);
                        }
                        document.getElementById(p.headerContainer).innerHTML = "DOA Parts<br/> Credit Total: $" + total;
                    },
                    failure: function(o) {alert("Failed to load doa parts report.");},
                    argument: []
                }

                var url = "AjaxManager.aspx?action=getDOAPartsReportDetails&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                WLX_UTILS.AjaxCall("GET", url, callback.success, callback.failure, callback.argument);
            }
            
            
            
            // C O M P A N Y M A N A G E R
            var COMPANY_MANAGER = new Object();
            COMPANY_MANAGER.loadCountryDiscountTable = function(p){
            
                        
                var params = new Object();

                params.columnDefs = [
                    {key:"Country", label:"Country", width:100,resizeable:true, sortable:true},
                    {key:"Discount", label:"Discount %", width:100, resizeable:true, sortable:true}
                ];
                params.config = {};
                params.url = "AjaxManager.aspx?action=getCountryDiscount&Site="+ p.site + "&SearchWord=" + p.searchWord + "&SearchBy=" + p.searchBy;
                params.responseType = YAHOO.util.DataSource.TYPE_JSON;
                params.responseSchema = {resultsList: "records", fields: ["Country", "Discount"]};
                params.container = p.container;
                
                return WLX_TABLEHELPER.build(params);
            }
            
            //A D M I N 
            ADMIN = new Object();
            ADMIN.icnDetails = function(p){	            
                
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var htmlStr = [];
                        htmlStr.push('<table class="wlxTab">');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td width="100" class="b">Description: </td>');
                        htmlStr.push('      <td width="250">'+map.Description+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td width="100" class="b">Vendor Order #: </td>');
                        htmlStr.push('      <td width="250">'+map.VendorOrderNumber+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">Status: </td>');
                        htmlStr.push('      <td>'+map.Status+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Received Date: </td>');
                        htmlStr.push('      <td>'+map.ReceivedDate+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td class="b">ICN: </td>');
                        htmlStr.push('      <td>'+map.ICN+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Sold Date: </td>');
                        htmlStr.push('      <td>'+map.SoldDate+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">Variant Code: </td>');
                        htmlStr.push('      <td>'+map.VariantCode+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Sales Price: </td>');
                        htmlStr.push('      <td>'+map.SalesPrice+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td class="b">Manufacturer Code: </td>');
                        htmlStr.push('      <td>'+map.Manufacturer+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Net Proceeds: </td>');
                        htmlStr.push('      <td>'+map.NetProceeds+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">Condition Code: </td>');
                        htmlStr.push('      <td>'+map.ConditionCode+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Fair Market Value: </td>');
                        htmlStr.push('      <td>'+map.FMV+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td class="b">Comments: </td>');
                        htmlStr.push('      <td>'+map.Comments+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Processing Fees: </td>');
                        htmlStr.push('      <td>'+map.ProcessingFees+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">MFG Serial #: </td>');
                        htmlStr.push('      <td>'+map.MFGSerialNumber+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Type: </td>');
                        htmlStr.push('      <td>'+map.Type+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('</table>');
                        
                        document.getElementById(p.container).innerHTML = htmlStr.join("");
                        
                        if(!p.popupConfig.popup){
                            p.popupConfig.popup =  WLX_UTILS.popup(p.popupConfig);
                            p.popupConfig.popup.render();
                            g_overlayManager.register([p.popupConfig.popup]);
                        }
                        WLX_UTILS.show(p.popupConfig.container);
                        p.popupConfig.popup.show();
                        p.popupConfig.popup.focus();
                    },
                    failure: function(o) {alert("Failed to load open ICN detailed information.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getIcnDetails&ICN=' + p.ICN ;
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            ADMIN.icnFormatter = function(elCell, oRecord, oColumn, oData) {
            
                var icn = oRecord.getData()["Icn"];
                var id = oRecord.getData()["ID"];
                elCell.innerHTML = "<span class='linkSpan' onclick='getItemDetails(\"" + icn + "\",\""+id+"\")'>" + icn + "</span>";
            }
            ADMIN.textboxFormatter = function(elCell, oRecord, oColumn, oData) {
            
                var icn = oRecord.getData()["ID"];
                elCell.innerHTML = "<input type='textbox' id='tb_"+icn+"' value='' />";
            }
            ADMIN.loadAdjustFMVTable = function(p){
            
                var params = new Object();
/*
                params.columnDefs = [
                    {key:"ItemNumber", label:"Item", resizeable:true, sortable:true},
                    //{key:"SerialNumber", label:"Item", resizeable:true, sortable:true},
                    {key:"Icn", label:"ICN", formatter:ADMIN.icnFormatter,resizeable:true, sortable:true},
                    {key:"Ssp", label:"SSP", resizeable:true, sortable:true},
                    {key:"ConditionCode", label:"Cond", resizeable:true, sortable:true},
                    {key:"Comments", label:"Comments", resizeable:true, sortable:true},
                    {key:"Fmv", label:"FMV", resizeable:true, sortable:true},
                    {key:"ID", label:"New FMV Value", formatter:ADMIN.textboxFormatter, resizeable:false}
                ];

                params.responseSchema = {resultsList: "records", fields: ["","ID", "ItemNumber", "Icn", "Ssp","ConditionCode","Comments","Fmv","Vendor"]};
                params.container = p.container;
                params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                */
                
                 var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        var params = new Object();

                        params.columnDefs = [
                            {key:"ItemNumber", label:"Part #", resizeable:true, sortable:true},
                            {key:"Icn", label:"ICN", formatter:ADMIN.icnFormatter,resizeable:true, sortable:true},
                            {key:"Ssp", label:"SSP", resizeable:true, sortable:true},
                            {key:"ConditionCode", label:"Cond", resizeable:true, sortable:true},
                            {key:"Comments", label:"Comments", resizeable:true, sortable:true,width:150},
                            {key:"Fmv", label:"FMV", resizeable:true, sortable:true},
                            {key:"ID", label:"New FMV Value", formatter:ADMIN.textboxFormatter, resizeable:false}
                        ];
                        
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["ID", "ItemNumber", "Icn", "Ssp","ConditionCode","Comments","Fmv","Vendor"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        
                        FMVTable = WLX_TABLEHELPER.build(params);
                        
                        /*OrderTable.subscribe("checkboxClickEvent", function(oArgs){   
                            var elCheckbox = oArgs.target;   
                            var oRecord = this.getRecord(elCheckbox);
                            oRecord.setData("ID", elCheckbox.checked);
                        }); */
                    
                    },
                    failure: function(o) {alert("Failed to load open shipment details.");},
                    argument: []
                }
                var url =  "AjaxManager.aspx?action=getAdminAdjustFMV&type="+ p.type+"&value="+p.value ;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            ADMIN.loadOrdersTable = function(p){
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        var params = new Object();

                        params.columnDefs = [
                        {key:"Vendor", label:"Vendor", resizeable:true, sortable:true},
                            {key:"OrderNumber", label:"Order Number", resizeable:true, sortable:true},
                            {key:"ItemCount", label:"Item Count", resizeable:true, sortable:true},
                            {key:"RecievedDate", label:"Received Date", resizeable:true, sortable:true},
                            {key:"ID", label:"Approve", formatter:"checkbox", checked:0, resizeable:false}
                        ];
                        
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["ID","VendorId", "Vendor", "OrderNumber", "ItemCount", "RecievedDate"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                params.sortedBy  = o.argument[1];
                params.callback = callback;
                        
                        OrderTable = WLX_TABLEHELPER.build(params);
                        
                        OrderTable.subscribe("checkboxClickEvent", function(oArgs){   
                            var elCheckbox = oArgs.target;   
                            var oRecord = this.getRecord(elCheckbox);
                            oRecord.setData("ID", elCheckbox.checked);
                        }); 
                    
                    },
                    failure: function(o) {alert("Failed to load open shipment details.");},
                    argument: []
                }
                var url =  "AjaxManager.aspx?action=getAdminOrders&vendor="+ p.vendor ;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
                
               
            }
            EXCEL_EXPORT = new Object();
            EXCEL_EXPORT.dir = "";
            EXCEL_EXPORT.column = "";
            
            EXCEL_EXPORT.loadShipmentsTable = function(p){
                var url = 'ExcelExport.aspx?action=getShipments&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&TotalRecords=' + p.TotalRecords + '&ShipmentView=' + g_shipmentView;
                window.location = url + "&sortOrientation=" + EXCEL_EXPORT.dir + "&sortColumn=" + EXCEL_EXPORT.column;
            }
            EXCEL_EXPORT.loadShipmentDetailsTable = function(p){
                var url = 'ExcelExport.aspx?action=getShipmentDetails&OrderId=' + p.OrderId + '&OrderNumber=' + p.OrderNumber + '&ItemStatus=' + p.ItemStatus + '&Manufacturer=' + p.Manufacturer + '&Keywords=' + p.Keywords + '&TotalRecords=' + p.TotalRecords + '&ShipmentView=' + g_shipmentView;
                window.location = url + "&sortOrientation=" + EXCEL_EXPORT.dir + "&sortColumn=" + EXCEL_EXPORT.column;;
            }
            EXCEL_EXPORT.loadVendorInventoryDetailsTable = function(p){
                var url = 'ExcelExport.aspx?action=getVendorInventoryDetails&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&Manufacturer=' + p.Manufacturer + '&TotalRecords=' + p.TotalRecords;
                window.location = url + "&sortOrientation=" + EXCEL_EXPORT.dir + "&sortColumn=" + EXCEL_EXPORT.column;;
            }
            EXCEL_EXPORT.loadSellBackDetailsTable = function(p){
                var url = 'ExcelExport.aspx?action=loadSellBackDetailsTable&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&Manufacturer=' + p.Manufacturer + '&TotalRecords=' + p.TotalRecords;
                window.location = url + "&sortOrientation=" + EXCEL_EXPORT.dir + "&sortColumn=" + EXCEL_EXPORT.column;;
            }
            EXCEL_EXPORT.AccountExcelExport = function(p){
            
                var url = 'ExcelExport.aspx?action='+p.view+'&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&Manufacturer=' + p.Manufacturer + '&TotalRecords=' + p.TotalRecords + '&AccountingView=' + g_accountingView;
                window.location = url + "&sortOrientation=" + EXCEL_EXPORT.dir + "&sortColumn=" + EXCEL_EXPORT.column;;
            }
            // S H I P M E N T S M A N A G E R
            SHIPMENTS_MANAGER = new Object();
            SHIPMENTS_MANAGER.orderNumberFormatter = function(elCell, oRecord, oColumn, oData) {
            
                var orderNumber = oRecord.getData()["OrderNumber"];
                var orderId = oRecord.getData()["OrderId"];
                elCell.innerHTML = "<span class='linkSpan' onclick='clearFilterPopup();getShipmentDetails(\"" + orderId + "\", true)'>" + orderNumber + "</span>";
            }
            SHIPMENTS_MANAGER.icnFormatter = function(elCell, oRecord, oColumn, oData) {
            
                var icn = oRecord.getData()["ICN"];
                var OrderId = oRecord.getData()["OrderId"];
                elCell.innerHTML = "<span class='linkSpan' onclick='getShipmentItemDetails(\"" + icn + "\",\""+OrderId+"\")'>" + icn + "</span>";
            }
            SHIPMENTS_MANAGER.loadShipmentsTable = function(p){
               
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"OrderNumber", label:"Order #", formatter:SHIPMENTS_MANAGER.orderNumberFormatter, resizeable:true, sortable:true},
                            {key:"ReceivedDate", label:"Rcvd Date", resizeable:true, sortable:true},
                            {key:"TotalItems", label:"Total Items", resizeable:true, sortable:true, className:'number'}
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["OrderId","OrderNumber", "ReceivedDate", "TotalItems","TotalShipmentsItems","TotalShipments"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        
                        var table = WLX_TABLEHELPER.build(params);
                        
                       
                        var totalItems = 0;
                        for(var i = 0 ; i < map.records.length ; i++){
                           document.getElementById('sh_TotalShipmentsId').innerHTML = map.records[i].TotalShipments;
                           document.getElementById('sh_TotalItemsId').innerHTML = map.records[i].TotalShipmentsItems; 
                        }
                        
                    
                        
                    },
                    failure: function(o) {alert("Failed to load open shipments.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getShipments&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&TotalRecords=' + p.TotalRecords + '&ShipmentView=' + g_shipmentView;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }

            SHIPMENTS_MANAGER.loadShipmentDetailsTable = function(p){	            
                
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText); 
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"ICN", label:"ICN", formatter:SHIPMENTS_MANAGER.icnFormatter, resizeable:true, sortable:true},
                            {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                            {key:"SerialNumber", label:"MFG Serial #", resizeable:true, sortable:true},
                            {key:"Description", label:"Description", resizeable:true, sortable:true,width:100},
                            {key:"Type", label:"Type", resizeable:true, sortable:true},
                            {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true},
                            {key:"Condition", label:"Cond", resizeable:true,formatter:function(elCell, oRecord, oColumn, oData) {
            
                                var comment = oRecord.getData()["Comment"];
                                elCell.innerHTML = "<span title='"+comment+"' >" + oData + "</span>";
            
                            }, sortable:true},
                            {key:"FMV", label:"FMV", resizeable:true, sortable:true, className:'number'},
                            {key:"SalesPrice", label:"Sales Price", resizeable:true, sortable:true, className:'number'},
                            {key:"Cost", label:"Cost", resizeable:true, sortable:true, className:'number',hidden:mainConfig.manageConsignment},
                            {key:"Status", label:"Status", resizeable:true, sortable:true}
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["Cost","TotalItems","TotalFMVPrice","TotalSalesPrice","TotalNetProceeds","OrderId","ICN", "PartNumber", "Description", "SalesPrice", "Manufacturer", "SerialNumber", "Type", "Status", "FMV","NetProceeds","Condition","Comment"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        var table = WLX_TABLEHELPER.buildWithScrolls(params);
                                            

                        
                        
                        
                        
                        
                        var totalFMV = 0;
                        var totalSalesPrice = 0;
                        var totalNetProceeds = 0;
                        var on = '';
                        for(var i = 0 ; i < map.records.length ; i++){
                            
                        
                            if(map.records.length > 0)  {  
                                document.getElementById('shde_Totalitems').innerHTML = map.records[i].TotalItems;   
                                document.getElementById('shde_TotalFMVPrice').innerHTML = map.records[i].TotalFMVPrice;
                                document.getElementById('shde_TotalSalesPrice').innerHTML = map.records[i].TotalSalesPrice;
                                document.getElementById('shde_NetProceeds').innerHTML =  map.records[i].TotalNetProceeds;
                            }else{
                                document.getElementById('shde_Totalitems').innerHTML = "0";   
                                document.getElementById('shde_TotalFMVPrice').innerHTML = "$0";
                                document.getElementById('shde_TotalSalesPrice').innerHTML = "$0";
                                document.getElementById('shde_NetProceeds').innerHTML = "$0";
                            }  
                            on = map.records[i].OrderNumber;
                            rd = map.records[i].ReceiveDate;
                        }
                        document.getElementById('shde_OrderNumber').innerHTML = rd;
                        
                       if(!p.popupConfig.popup){
                            p.popupConfig.popup = WLX_UTILS.popup(p.popupConfig);
                            p.popupConfig.popup.render();
                            g_overlayManager.register([p.popupConfig.popup]);
                        }
                        p.popupConfig.popup.setHeader( p.popupConfig.header + ' - ' + on);
                        WLX_UTILS.show(p.popupConfig.container);
                        p.popupConfig.popup.show();
                        p.popupConfig.popup.focus();
                        
                    },
                    failure: function(o) {alert("Failed to load open shipment details.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getShipmentDetails&OrderId=' + p.OrderId + '&OrderNumber=' + p.OrderNumber + '&ItemStatus=' + p.ItemStatus + '&Manufacturer=' + p.Manufacturer + '&Keywords=' + p.Keywords + '&TotalRecords=' + p.TotalRecords + '&ShipmentView=' + g_shipmentView;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            SHIPMENTS_MANAGER.loadShipmentDetailsTableExtended = function(p){	            
               
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText); 
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"ICN", label:"ICN", formatter:SHIPMENTS_MANAGER.icnFormatter, resizeable:true, sortable:true},
                            {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                            {key:"SerialNumber", label:"MFG Serial #", resizeable:true, sortable:true},
                            {key:"Description", label:"Description", resizeable:true, sortable:true,width:100},
                            {key:"Type", label:"Type", resizeable:true, sortable:true},
                            {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true},
                            {key:"Condition", label:"Cond", resizeable:true,formatter:function(elCell, oRecord, oColumn, oData) {
            
                                var comment = oRecord.getData()["Comment"];
                                elCell.innerHTML = "<span title='"+comment+"' >" + oData + "</span>";
            
                            }, sortable:true},
                            {key:"FMV", label:"FMV", resizeable:true, sortable:true, className:'number'},
                            {key:"SalesPrice", label:"Sales Price", resizeable:true, sortable:true, className:'number'},
                            {key:"Status", label:"Status", resizeable:true, sortable:true},
                            {key:"Cost", label:"Cost", resizeable:true, sortable:true, className:'number',hidden:mainConfig.manageConsignment},
                            {key:"FloorDate", label:"30 Day Floor", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment},
                            {key:"AuditFlagDate", label:"Audit Date", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment},
                            {key:"NoticeOfDiscrepancyDate", label:"Discrep Date", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment},
                            {key:"Discrepancy", label:"Discrep", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment}
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["Cost","FloorDate","AuditFlagDate","NoticeOfDiscrepancyDate","Discrepancy","TotalItems","TotalFMVPrice","TotalSalesPrice","TotalNetProceeds","OrderId","ICN", "PartNumber", "Description", "SalesPrice", "Manufacturer", "SerialNumber", "Type", "Status", "FMV","NetProceeds","Condition","Comment"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        var table = WLX_TABLEHELPER.build(params);
                        
                        var totalFMV = 0;
                        var totalSalesPrice = 0;
                        var totalNetProceeds = 0;
                        var on = '';
                        for(var i = 0 ; i < map.records.length ; i++){
                            
                        
                            if(map.records.length > 0)  {  
                                document.getElementById('shde_Totalitems').innerHTML = map.records[i].TotalItems;   
                                document.getElementById('shde_TotalFMVPrice').innerHTML = map.records[i].TotalFMVPrice;
                                document.getElementById('shde_TotalSalesPrice').innerHTML = map.records[i].TotalSalesPrice;
                                document.getElementById('shde_NetProceeds').innerHTML =  map.records[i].TotalNetProceeds;
                            }else{
                                document.getElementById('shde_Totalitems').innerHTML = "0";   
                                document.getElementById('shde_TotalFMVPrice').innerHTML = "$0";
                                document.getElementById('shde_TotalSalesPrice').innerHTML = "$0";
                                document.getElementById('shde_NetProceeds').innerHTML = "$0";
                            }  
                            on = map.records[i].OrderNumber;
                            rd = map.records[i].ReceiveDate;
                        }
                        document.getElementById('shde_OrderNumber').innerHTML = rd;
                        document.getElementById('shde_on').innerHTML = " : " + on;
                        
                       
                        
                    },
                    failure: function(o) {alert("Failed to load open shipment details.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getShipmentDetails&OrderId=' + p.OrderId + '&OrderNumber=' + p.OrderNumber + '&ItemStatus=' + p.ItemStatus + '&Manufacturer=' + p.Manufacturer + '&Keywords=' + p.Keywords + '&TotalRecords=' + p.TotalRecords + '&ShipmentView=' + g_shipmentView;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            SHIPMENTS_MANAGER.loadShipmentDetailsManufacturers = function(orderId, ddId){	            
                
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        //populate select box here
                        var dd = document.getElementById(ddId);
                        dd.options.length = 0;
                        for(var i=0; i<map.records.length; i++){
                            dd.options[dd.length] = new Option(map.records[i].Code, map.records[i].Name);
                        }
                    },
                    failure: function(o) {alert("Failed to load manufacturer list for selected order.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getShipmentDetailsManufacturers&OrderNumber=' + orderId;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            SHIPMENTS_MANAGER.loadShipmentItemStatus = function(orderId, ddId){	            
                
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        //populate select box here
                        var dd = document.getElementById(ddId);
                        dd.options.length = 0;
                        dd.options[dd.length] = new Option("All", "");
                        for(var i=0; i<map.records.length; i++){
                            dd.options[dd.length] = new Option(map.records[i].Code, map.records[i].Name);
                        }
                    },
                    failure: function(o) {alert("Failed to load manufacturer list for selected order.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getShipmentItemStatus&OrderNumber=' + orderId;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            SHIPMENTS_MANAGER.loadShipmentItemDetailsTable = function(p){	            
                
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var htmlStr = [];
                        htmlStr.push('<table class="wlxTab">');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td class="b">ICN: </td>');
                        htmlStr.push('      <td>'+map.SerialNumber+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Status: </td>');
                        htmlStr.push('      <td>'+map.Status+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">Part #: </td>');
                        htmlStr.push('      <td>'+map.PartNumber+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Alloc. Status: </td>');
                        htmlStr.push('      <td>'+map.AllocatedStatus+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td width="100" class="b">Description: </td>');
                        htmlStr.push('      <td width="250">'+map.Description+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Received Date: </td>');
                        htmlStr.push('      <td>'+map.ReceivedDate+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">MFG Serial #: </td>');
                        htmlStr.push('      <td>'+map.MFGSerialNumber+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Sold Date: </td>');
                        htmlStr.push('      <td>'+map.SoldDate+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td class="b">Type: </td>');
                        htmlStr.push('      <td>'+map.Type+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Net Proceeds: </td>');
                        htmlStr.push('      <td>'+map.NetProceeds+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">Condition Code: </td>');
                        htmlStr.push('      <td>'+map.ConditionCode+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Fair Market Value: </td>');
                        htmlStr.push('      <td>'+map.FMV+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Processing Fees: </td>');
                        htmlStr.push('      <td>'+map.ProcessingFees+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Sales Price: </td>');
                        htmlStr.push('      <td>'+map.SalesPrice+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">Comments: </td>');
                        htmlStr.push('      <td colspan="4" >'+map.Comments+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('</table>');
                        
                        document.getElementById(p.container).innerHTML = htmlStr.join("");
                        
                        if(!p.popupConfig.popup){
                                //p.popupConfig.header = p.popupConfig.header + ' - ' + p.ICN ;
                            p.popupConfig.popup =  WLX_UTILS.popup(p.popupConfig);
                            p.popupConfig.popup.render();
                            g_overlayManager.register([p.popupConfig.popup]);
                        }
                p.popupConfig.popup.setHeader(p.popupConfig.header + ' - ' + p.ICN); //SCD
                        WLX_UTILS.show(p.popupConfig.container);
                        p.popupConfig.popup.show();
                        p.popupConfig.popup.focus();
                    },
                    failure: function(o) {alert("Failed to load open shipment item details.");},
                    argument: []
                }
                var url = 'AjaxManager.aspx?action=getShipmentItemDetails&OrderId='+p.OrderId+'&ICN=' + p.ICN + '&ShipmentView=' + g_shipmentView;
                if(p.action){
                    url = 'AjaxManager.aspx?action='+p.action+'&OrderId='+p.OrderId+'&ICN=' + p.ICN + '&ShipmentView=' + g_shipmentView;
                }
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }

            SHIPMENTS_MANAGER.saveNewShipment = function(p){	            
                
                var callback =
                {
                    success: function(o) {
                        var map = eval("(" + o.responseText + ")");
                        //show errors if any
                        if(map.HasError){
                            var errorList = "<ul>";
                            for(var i=0; i<map.ErrorMessages.length; i++)
                                errorList += "<li>" + map.ErrorMessages[i] + "</li>";
                            errorList += "</ul>";
                            alert(errorList);
                        }
                        else
                            clearNewShipmentForm();
                    },
                    failure: function(o) {alert("Failed to save new shipment.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=saveNewShipment&EstimatedNumberOfItems=' + p.EstimatedNumberOfItems + '&PreferredOrderNumber=' + p.PreferredOrderNumber + '&ShippingCarrier=' + p.ShippingCarrier + '&EstimatedArrivalDate=' + p.EstimatedArrivalDate + '&TrackingNumbers=' + p.TrackingNumbers + '&Description=' + p.Description;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            
            
            
            // V I R T U A L W A R E H O U S E M A N A G E R
            VIRTUALWAREHOUSE_MANAGER = new Object();
            VIRTUALWAREHOUSE_MANAGER.table = null;
            VIRTUALWAREHOUSE_MANAGER.icnFormatter = function(elCell, oRecord, oColumn, oData) {
            
                var icn = oRecord.getData()["ICN"];
                var orderId = oRecord.getData()["OrderId"];
                elCell.innerHTML = "<span class='linkSpan' onclick='getVendorInventoryItemDetails(\"" + icn + "\","+orderId+")'>" + icn + "</span>";
            } 
            VIRTUALWAREHOUSE_MANAGER.loadVendorInventoryDetailsTable = function(p){
            
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"OrderNumber", label:"Order #", resizeable:true, sortable:true, width:55},
                            {key:"ICN", label:"ICN", formatter:VIRTUALWAREHOUSE_MANAGER.icnFormatter, resizeable:true, sortable:true, width:65},
                            {key:"PartNumber", label:"Part #", resizeable:true, sortable:true, width:70},
                            
                            {key:"MFRSerialNumber", label:"MFG Serial #", resizeable:true, sortable:true, width:75},
                            
                            {key:"Description", label:"Description", resizeable:true, sortable:true, width:80},
                            
                            {key:"Type", label:"Type", resizeable:true, sortable:true, width:50},
                            
                            {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true, width:30},
                            {key:"Condition", label:"Cond", resizeable:true,formatter:function(elCell, oRecord, oColumn, oData) {
            
                                var comment = oRecord.getData()["Comment"];
                                elCell.innerHTML = "<span title='"+comment+"' >" + oData + "</span>";
            
                            }, sortable:true, width:35},
                            {key:"FMV", label:"FMV", resizeable:true, sortable:true, width:30, className:'number'},
                            {key:"ReceivedDate", label:"Rcvd. Date", resizeable:true, sortable:true, width:55},
                            { key: "Allocated", label: "Alloc.", resizeable: true, sortable: true, width: 20 },
                            {key:"AssetTag", label:"Asset Tag", resizeable:true, sortable:true, width:60}
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["OrderId","ProductCode","OrderNumber", "PartNumber", "ICN", "FMV", "Description", "MFRSerialNumber", "ReceivedDate", "Manufacturer", "Condition","Comment", "Allocated","Type","TotalItems","TotalFMV","AssetTag"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        var table = WLX_TABLEHELPER.build(params);
                        
                        
                       // document.getElementById('veinde_TotalItemsId').innerHTML = map.records.length;
                        var totalFMV = 0;
                        for(var i = 0 ; i < map.records.length ; i++){
                           // totalFMV += eval(map.records[i].FMV);
                           document.getElementById('veinde_TotalItemsId').innerHTML = map.records[i].TotalItems;
                           document.getElementById('veinde_FMVTotal').innerHTML = map.records[i].TotalFMV;
                        }
                       // document.getElementById('veinde_FMVTotal').innerHTML = totalFMV;
                    },
                    failure: function(o) {alert("Failed to load vendor inventory.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getVendorInventoryDetails&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&Manufacturer=' + p.Manufacturer + '&TotalRecords=' + p.TotalRecords;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            VIRTUALWAREHOUSE_MANAGER.loadVendorInventoryDetailsPopupTable = function(p){
            
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"OrderNumber", label:"Order #", resizeable:true, sortable:true, width:55},
                            {key:"ICN", label:"ICN", formatter:VIRTUALWAREHOUSE_MANAGER.icnFormatter, resizeable:true, sortable:true, width:65},
                            {key:"PartNumber", label:"Part #", resizeable:true, sortable:true, width:70},
                            
                            {key:"MFRSerialNumber", label:"MFG Serial #", resizeable:true, sortable:true, width:75},
                            
                            {key:"Description", label:"Description", resizeable:true, sortable:true, width:80},
                            
                            {key:"Type", label:"Type", resizeable:true, sortable:true, width:50},
                            
                            {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true, width:30},
                            {key:"Condition", label:"Cond", resizeable:true,formatter:function(elCell, oRecord, oColumn, oData) {
            
                                var comment = oRecord.getData()["Comment"];
                                elCell.innerHTML = "<span title='"+comment+"' >" + oData + "</span>";
            
                            }, sortable:true, width:35},
                            {key:"FMV", label:"FMV", resizeable:true, sortable:true, width:30, className:'number'},
                            {key:"ReceivedDate", label:"Rcvd. Date", resizeable:true, sortable:true, width:55},
                            {key:"Allocated", label:"Alloc.", resizeable:true, sortable:true, width:20},
                            {key:"Cost", label:"Cost", resizeable:true, sortable:true, className:'number',hidden:mainConfig.manageConsignment},
                            {key:"FloorDate", label:"30 Day Floor", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment},
                            {key:"AuditFlagDate", label:"Audit Date", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment},
                            {key:"NoticeOfDiscrepancyDate", label:"Discrep Date", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment},
                            {key:"Discrepancy", label:"Discrep", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment}
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["Cost","FloorDate","AuditFlagDate","NoticeOfDiscrepancyDate","Discrepancy","OrderId","ProductCode","OrderNumber", "PartNumber", "ICN", "FMV", "Description", "MFRSerialNumber", "ReceivedDate", "Manufacturer", "Condition","Comment", "Allocated","Type","TotalItems","TotalFMV"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        var table = WLX_TABLEHELPER.build(params);
                        
                        
                       // document.getElementById('veinde_TotalItemsId').innerHTML = map.records.length;
                        var totalFMV = 0;
                        for(var i = 0 ; i < map.records.length ; i++){
                           // totalFMV += eval(map.records[i].FMV);
                           document.getElementById('veinde_TotalItemsId').innerHTML = map.records[i].TotalItems;
                           document.getElementById('veinde_FMVTotal').innerHTML = map.records[i].TotalFMV;
                        }
                       // document.getElementById('veinde_FMVTotal').innerHTML = totalFMV;
                    },
                    failure: function(o) {alert("Failed to load vendor inventory.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getVendorInventoryDetails&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&Manufacturer=' + p.Manufacturer + '&TotalRecords=' + p.TotalRecords;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            VIRTUALWAREHOUSE_MANAGER.loadSellBackDetailsTable = function(p){
            
               var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var params = new Object();

                        params.columnDefs = [
                        
                            {key:"Action", label:"", resizeable:true, sortable:true, width:20,formatter:"checkbox"},
                            {key:"OrderNumber", label:"Order #", resizeable:true, sortable:true, width:55},
                            {key:"ICN", label:"ICN", formatter:VIRTUALWAREHOUSE_MANAGER.icnFormatter, resizeable:true, sortable:true, width:65},
                            {key:"PartNumber", label:"Part #", resizeable:true, sortable:true, width:70},
                            
                            {key:"MFRSerialNumber", label:"MFG Serial #", resizeable:true, sortable:true, width:75},
                            
                            {key:"Description", label:"Description", resizeable:true, sortable:true, width:80},
                            
                            {key:"ProductCode", label:"Type", resizeable:true, sortable:true, width:50},
                            
                            {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true, width:30},
                            {key:"Condition", label:"Cond", resizeable:true,formatter:function(elCell, oRecord, oColumn, oData) {
            
                                var comment = oRecord.getData()["Comment"];
                                elCell.innerHTML = "<span title='"+comment+"' >" + oData + "</span>";
            
                            }, sortable:true, width:35},
                            {key:"FMV", label:"FMV", resizeable:true, sortable:true, width:45, className:'number'},
                            { key: "ReceivedDate", label: "Rcvd. Date", resizeable: true, sortable: true, width: 55 },
                            { key: "AssetTag", label: "Asset Tag", resizeable: true, sortable: true, width: 67 }
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["OrderId","Action","ProductCode","OrderNumber", "PartNumber", "ICN", "FMV", "Description", "MFRSerialNumber", "ReceivedDate", "Manufacturer", "Condition","Comment", "Allocated","Type","TotalItems","TotalFMV","AssetTag"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        var table = WLX_TABLEHELPER.build(params);
                        VIRTUALWAREHOUSE_MANAGER.table = table;
                        table.subscribe("checkboxClickEvent", function(oArgs){   
                             var elCheckbox = oArgs.target;   
                             var oRecord = this.getRecord(elCheckbox);   
                             oRecord.setData("Action",elCheckbox.checked);   
                         });
                        
                        var totalFMV = 0;
                        for(var i = 0 ; i < map.records.length ; i++){
                           // totalFMV += eval(map.records[i].FMV);
                           document.getElementById('veinde_TotalItemsId').innerHTML = map.records[i].TotalItems;
                           document.getElementById('veinde_FMVTotal').innerHTML = map.records[i].TotalFMV;
                        }
                        
                    },
                    failure: function(o) {alert("Failed to load vendor inventory.");},
                    argument: []
                }

                
                var url = 'AjaxManager.aspx?action=getSellBackHistoryForVW&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&Manufacturer=' + p.Manufacturer + '&TotalRecords=' + p.TotalRecords;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            VIRTUALWAREHOUSE_MANAGER.loadSellBackCartDetailsTable = function(p){
            
               var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var params = new Object();

                        params.columnDefs = [
                        
                            {key:"Action", label:"", resizeable:true,  width:20,formatter:"checkbox",checked:true},
                            {key:"OrderNumber", label:"Order #", resizeable:true,  width:55},
                            {key:"ICN", label:"ICN", formatter:VIRTUALWAREHOUSE_MANAGER.icnFormatter, resizeable:true,  width:65},
                            {key:"PartNumber", label:"Part #", resizeable:true,  width:70},
                            
                            {key:"MFRSerialNumber", label:"MFG Serial #", resizeable:true,  width:75},
                            
                            {key:"Description", label:"Description", resizeable:true,  width:80},
                            
                            {key:"ProductCode", label:"Type", resizeable:true,  width:50},
                            
                            {key:"Manufacturer", label:"MFG", resizeable:true,  width:30},
                            {key:"Condition", label:"Cond", resizeable:true,formatter:function(elCell, oRecord, oColumn, oData) {
            
                                var comment = oRecord.getData()["Comment"];
                                elCell.innerHTML = "<span title='"+comment+"' >" + oData + "</span>";
            
                            },  width:35},
                            {key:"FMV", label:"FMV", resizeable:true,  width:45, className:'number'},
                            { key: "ReceivedDate", label: "Rcvd. Date", resizeable: true, width: 55 },
                            { key: "AssetTag", label: "Asset Tag", resizeable: true, sortable: true, width: 67 }
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["Action","ProductCode","OrderNumber", "PartNumber", "ICN", "FMV", "Description", "MFRSerialNumber", "ReceivedDate", "Manufacturer", "Condition","Comment", "Allocated","Type","TotalItems","TotalFMV", "AssetTag"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        var table = WLX_TABLEHELPER.build(params);
                        VIRTUALWAREHOUSE_MANAGER.table = table;
                        table.subscribe("checkboxClickEvent", function(oArgs){   
                             var elCheckbox = oArgs.target;   
                             var oRecord = this.getRecord(elCheckbox);   
                             oRecord.setData("Action",elCheckbox.checked);   
                         });
                        
                        var totalFMV = 0;
                        for(var i = 0 ; i < map.records.length ; i++){
                           // totalFMV += eval(map.records[i].FMV);
                           document.getElementById('veinde_TotalItemsId').innerHTML = map.records[i].TotalItems;
                           document.getElementById('veinde_FMVTotal').innerHTML = map.records[i].TotalFMV;
                        }
                        
                    },
                    failure: function(o) {alert("Failed to load vendor inventory.");},
                    argument: []
                }

                
                var url = 'AjaxManager.aspx?action=getBuyBackFromCart';
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            VIRTUALWAREHOUSE_MANAGER.loadVendorInventoryItemDetailsTable = function(p){	            
                
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var htmlStr = [];
                        htmlStr.push('<table class="wlxTab">');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td width="100" class="b">Description: </td>');
                        htmlStr.push('      <td width="250">'+map.Description+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td width="100" class="b">Vendor Order #: </td>');
                        htmlStr.push('      <td width="250">'+map.VendorOrderNumber+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">Status: </td>');
                        htmlStr.push('      <td>'+map.Status+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Received Date: </td>');
                        htmlStr.push('      <td>'+map.ReceivedDate+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td class="b">ICN: </td>');
                        htmlStr.push('      <td>'+map.ICN+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Sold Date: </td>');
                        htmlStr.push('      <td>'+map.SoldDate+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">Variant Code: </td>');
                        htmlStr.push('      <td>'+map.VariantCode+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Sales Price: </td>');
                        htmlStr.push('      <td>'+map.SalesPrice+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td class="b">Manufacturer Code: </td>');
                        htmlStr.push('      <td>'+map.Manufacturer+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Net Proceeds: </td>');
                        htmlStr.push('      <td>'+map.NetProceeds+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">Condition Code: </td>');
                        htmlStr.push('      <td>'+map.ConditionCode+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Fair Market Value: </td>');
                        htmlStr.push('      <td>'+map.FMV+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td class="b">Comments: </td>');
                        htmlStr.push('      <td>'+map.Comments+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Processing Fees: </td>');
                        htmlStr.push('      <td>'+map.ProcessingFees+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">MFG Serial #: </td>');
                        htmlStr.push('      <td>'+map.MFGSerialNumber+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Type: </td>');
                        htmlStr.push('      <td>'+map.Type+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('</table>');
                        
                        document.getElementById(p.container).innerHTML = htmlStr.join("");
                        
                        if(!p.popupConfig.popup){
                                //p.popupConfig.header = p.popupConfig.header + ' - ' + p.ICN ;
                            p.popupConfig.popup =  WLX_UTILS.popup(p.popupConfig);
                            p.popupConfig.popup.render();
                        }
                p.popupConfig.popup.setHeader(p.popupConfig.header + ' - ' + p.ICN); //SCD
                        WLX_UTILS.show(p.popupConfig.container);
                        p.popupConfig.popup.show();
                    },
                    failure: function(o) {alert("Failed to load vendor inventory item details.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getVendorInventoryItemDetails&ICN=' + p.ICN;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            
            
            
            // A C C O U N T I N G M A N A G E R
            ACCOUNTING_MANAGER = new Object();
            ACCOUNTING_MANAGER.table = null;
            ACCOUNTING_MANAGER.icnFormatter = function(elCell, oRecord, oColumn, oData) {
            
                var icn = oRecord.getData()["ICN"];
                //elCell.innerHTML = "<span class='linkSpan' onclick='getAccountingItemDetails(\"" + icn + "\")'>" + icn + "</span>";
                 elCell.innerHTML =icn;
            }
            ACCOUNTING_MANAGER.wrapper = function(elCell, oRecord, oColumn, oData) {
            
                var icn = oRecord.getData()["ICN"];
                elCell.innerHTML = "<div style='width:100px; overflow:hidden;' title='" + oData + "' >" + oData + "</div>";
            }
            ACCOUNTING_MANAGER.loadSalesHistoryTable = function(p){
            
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"ICN", label:"ICN", formatter:ACCOUNTING_MANAGER.icnFormatter, resizeable:true, sortable:true, width:70},
                            {key:"Description", label:"Description", resizeable:true, sortable:true, width:121},
                            {key:"PartNumber", label:"Part #", resizeable:true, sortable:true, width:70},
                            {key:"SalesPrice", label:"Sales Price", resizeable:true, sortable:true, width:70, className:'number'},
                            //{key:"Manufacturer", label:"MFG", resizeable:true, sortable:true, width:50},
                            {key:"VendorOrderNumber", label:"Order #", resizeable:true, sortable:true, width:50},
                            //{key:"MFRSerialNumber", label:"MFR Serial #", resizeable:true, sortable:true},
                            {key:"ReceivedDate", label:"Rcvd Date", resizeable:true, sortable:true, width:67},
                            {key:"SoldDate", label:"Sold Date", resizeable:true, sortable:true, width:67},
                            {key:"NetProceeds", label:"Net Proc.", resizeable:true, sortable:true, width:60, className:'number'},
                            { key: "FMV", label: "FMV", resizeable: true, sortable: true, width: 35, className: 'number' },
                            { key: "AssetTag", label: "Asset Tag", resizeable: true, sortable: true, width: 67 },
                            {key:"Cost", label:"Cost", resizeable:true, sortable:true, className:'number',hidden:mainConfig.manageConsignment}/*,
                            {key:"VendorOrderNumber", label:"Vendor Order #", resizeable:true, sortable:true, visible:false}*/
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["Cost","TotalFMV","TotalItems","ICN", "Description", "PartNumber", "SalesPrice", "Manufacturer", "MFRSerialNumber", "ReceivedDate", "SoldDate", "NetProceeds", "FMV", "VendorOrderNumber", "AssetTag"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        WLX_TABLEHELPER.build(params);
                        
                        for(var i = 0 ; i < map.records.length ; i++){
                           // totalFMV += eval(map.records[i].FMV);
                           document.getElementById('sahi_TotalItemsId').innerHTML = map.records[i].TotalItems;
                           document.getElementById('sahi_FMVTotal').innerHTML = map.records[i].TotalFMV;
                        }
                    },
                    failure: function(o) {alert("Failed to load sales history.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getSalesHistory&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&Manufacturer=' + p.Manufacturer + '&TotalRecords=' + p.TotalRecords + '&AccountingView=' + g_accountingView;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            ACCOUNTING_MANAGER.loadSalesHistoryTableExt = function(p){
            
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"ICN", label:"ICN", formatter:ACCOUNTING_MANAGER.icnFormatter, resizeable:true, sortable:true, width:70},
                            {key:"Description", label:"Description", resizeable:true, sortable:true, width:121},
                            {key:"PartNumber", label:"Part #", resizeable:true, sortable:true, width:70},
                            {key:"SalesPrice", label:"Sales Price", resizeable:true, sortable:true, width:60},
                            {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true, width:50},
                            {key:"MFRSerialNumber", label:"MFG Serial #", resizeable:true, sortable:true, width:100,formatter:ACCOUNTING_MANAGER.wrapper },
                            {key:"ReceivedDate", label:"Rcvd Date", resizeable:true, sortable:true, width:67},
                            {key:"SoldDate", label:"Sold Date", resizeable:true, sortable:true, width:67},
                            {key:"NetProceeds", label:"Net Proc.", resizeable:true, sortable:true, width:60, className:'number'},
                            {key:"FMV", label:"FMV", resizeable:true, sortable:true, width:35, className:'number'},
                            
                            {key:"VendorOrderNumber", label:"Vendor Order #", resizeable:true, sortable:true, visible:false},
                            { key: "AssetTag", label: "Asset Tag", resizeable: true, sortable: true, width: 67 },
                            {key:"Cost", label:"Cost", resizeable:true, sortable:true, className:'number',hidden:mainConfig.manageConsignment},
                            {key:"FloorDate", label:"30 Day Floor", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment},
                            {key:"AuditFlagDate", label:"Audit Date", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment},
                            {key:"NoticeOfDiscrepancyDate", label:"Discrep Date", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment},
                            { key: "Discrepancy", label: "Discrep", resizeable: true, sortable: true, hidden: mainConfig.manageConsignment }
                            
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["Cost","FloorDate","AuditFlagDate","NoticeOfDiscrepancyDate","Discrepancy","TotalFMV","TotalItems","Scrap","ICN", "Description", "PartNumber", "SalesPrice", "Manufacturer", "MFRSerialNumber", "ReceivedDate", "SoldDate", "NetProceeds", "FMV", "VendorOrderNumber", "AssetTag"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        WLX_TABLEHELPER.build(params);
                                                for(var i = 0 ; i < map.records.length ; i++){
                           // totalFMV += eval(map.records[i].FMV);
                           document.getElementById('sahi_TotalItemsId').innerHTML = map.records[i].TotalItems;
                           document.getElementById('sahi_FMVTotal').innerHTML = map.records[i].TotalFMV;
                        }
                    },
                    failure: function(o) {alert("Failed to load sales history.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getSalesHistory&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&Manufacturer=' + p.Manufacturer + '&TotalRecords=' + p.TotalRecords + '&AccountingView=' + g_accountingView;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            ACCOUNTING_MANAGER.loadSellBackHistoryTable = function(p){
            
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"ICN", label:"ICN", formatter:ACCOUNTING_MANAGER.icnFormatter, resizeable:true, sortable:true},
                            //{key:"VendorOrderNumber", label:"Vendor Order #", resizeable:true, sortable:true},
                            {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true},
                            {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                            //{key:"MFRSerialNumber", label:"MFR Serial #", resizeable:true, sortable:true},
                            {key:"SoldDate", label:"Sold Date", resizeable:true, sortable:true},
                           // {key:"ProcessingFees", label:"Processing Fees", resizeable:true, sortable:true, className:'number'},
                            {key:"FMV", label:"FMV", resizeable:true, sortable:true, className:'number'},
                            {key:"SalesOrderNumber", label:"Sales Order #", resizeable:true, sortable:true},
                            { key: "AssetTag", label: "Asset Tag", resizeable: true, sortable: true, width: 67 },
                            {key:"Cost", label:"Cost", resizeable:true, sortable:true, className:'number',hidden:mainConfig.manageConsignment},
                            {key:"FloorDate", label:"30 Day Floor", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment},
                            {key:"AuditFlagDate", label:"Audit Date", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment},
                            {key:"NoticeOfDiscrepancyDate", label:"Discrep Date", resizeable:true, sortable:true,hidden:mainConfig.manageConsignment},
                            {key:"Discrepancy", label:"Discrep", resizeable:true, sortable:true ,hidden:mainConfig.manageConsignment}
                            
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["Cost","FloorDate","AuditFlagDate","NoticeOfDiscrepancyDate","Discrepancy","TotalFMV","TotalItems","ICN", "VendorOrderNumber", "Manufacturer", "PartNumber", "MFRSerialNumber", "SoldDate", "ProcessingFees", "FMV", "SalesOrderNumber", "AssetTag"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        WLX_TABLEHELPER.build(params);
                                                for(var i = 0 ; i < map.records.length ; i++){
                           // totalFMV += eval(map.records[i].FMV);
                           document.getElementById('sahi_TotalItemsId').innerHTML = map.records[i].TotalItems;
                           document.getElementById('sahi_FMVTotal').innerHTML = map.records[i].TotalFMV;
                        }
                    },
                    failure: function(o) {alert("Failed to load sales history.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getSellBackHistory&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&Manufacturer=' + p.Manufacturer + '&TotalRecords=' + p.TotalRecords + '&AccountingView=' + g_accountingView;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            ACCOUNTING_MANAGER.loadJunkItemsTable = function(p){
            
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"Action", label:"Action", resizeable:true, sortable:true, formatter:"checkbox",width:30/*, dropdownOptions:[{text:"- Select -",value:""},{text:"Declined",value:"D"},{text:"Request Disposal",value:"R"},{text:"Hold For Pickup",value:"H"}]*/},
                            
                            {key:"SalesOrderNumber", label:"Order #", resizeable:true, sortable:true,width:60},
                            {key:"PartNumber", label:"Part #", resizeable:true, sortable:true},
                            {key:"ICN", label:"ICN", formatter:ACCOUNTING_MANAGER.icnFormatter, resizeable:true, sortable:true},
                            {key:"MFRSerialNumber", label:"MFG Serial #", resizeable:true, sortable:true,width:60},
                            
                            //{key:"Description", label:"Comments", resizeable:true, sortable:true,width:150},
                            {key:"ConditionCode", label:"Cond", resizeable:true, sortable:true,width:50},
                           // {key:"Type", label:"Disp Status", resizeable:true, sortable:true},
                            {key:"DisposalDate", label:"Notice Date", resizeable:true, sortable:true,width:60},
                            {key: "ReceivedDate", label: "Rcvd. Date", resizeable: true, sortable: true, width: 60},
                            {key:"AssetTag", label:"Asset Tag", resizeable:true, sortable:true,width:60}
                            
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["PartNumber","ReceivedDate","SalesOrderNumber","TotalFMV","TotalItems","Description","DisposalDate","Type",{key:"Action", parser:YAHOO.util.DataSource.parseString},"ICN", "MFRSerialNumber", "SalesPrice", "ConditionCode", "Comment","DisposalCost","AssetTag"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        ACCOUNTING_MANAGER.table = WLX_TABLEHELPER.build(params);
                                                for(var i = 0 ; i < map.records.length ; i++){
                           // totalFMV += eval(map.records[i].FMV);
                           document.getElementById('sahi_TotalItemsId').innerHTML = map.records[i].TotalItems;
                          // document.getElementById('sahi_FMVTotal').innerHTML = map.records[i].TotalFMV;
                        }
                        /*ACCOUNTING_MANAGER.table.subscribe("dropdownChangeEvent", function(oArgs){   
                             var elDropdown = oArgs.target;   
                             var oRecord = this.getRecord(elDropdown);   
                             oRecord.setData("Action",elDropdown.options[elDropdown.selectedIndex].value);   
                         }); */
                        ACCOUNTING_MANAGER.table.subscribe("checkboxClickEvent", function(oArgs){   
                             var elCheckbox = oArgs.target;   
                             var oRecord = this.getRecord(elCheckbox); 
                             oRecord.setData("Action",elCheckbox.checked);   
                         });  

                        
                    },
                    failure: function(o) {alert("Failed to load sales history.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getJunkItems&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&Manufacturer=' + p.Manufacturer + '&TotalRecords=' + p.TotalRecords + '&AccountingView=' + g_accountingView + '&Allocated=No';
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            ACCOUNTING_MANAGER.loadJunkItemsCartTable = function(p){
            
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"Action", label:"Action", resizeable:true,  formatter:"checkbox",width:30/*, dropdownOptions:[{text:"- Select -",value:""},{text:"Declined",value:"D"},{text:"Request Disposal",value:"R"},{text:"Hold For Pickup",value:"H"}]*/},
                            
                            {key:"SalesOrderNumber", label:"Order #", resizeable:true, width:60},
                            {key:"PartNumber", label:"Part #", resizeable:true},
                            {key:"ICN", label:"ICN", formatter:ACCOUNTING_MANAGER.icnFormatter, resizeable:true},
                            {key:"MFRSerialNumber", label:"MFG Serial #", resizeable:true, width:60},
                            
                            //{key:"Description", label:"Comments", resizeable:true, width:150},
                            {key:"ConditionCode", label:"Cond", resizeable:true, width:50},
                           // {key:"Type", label:"Disp Status", resizeable:true, sortable:true},
                            {key:"DisposalDate", label:"Notice Date", resizeable:true, width:60},
                            {key:"ReceivedDate", label:"Rcvd. Date", resizeable:true, width:60},
                            {key:"Type", label:"Disp Status", resizeable:true},
                            {key:"DisposalDate", label:"Disp Notice Date", resizeable:true}
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["SalesOrderNumber","PartNumber","ReceivedDate","TotalFMV","TotalItems","Description","DisposalDate",{key:"Action", parser:YAHOO.util.DataSource.parseString},"ICN", "MFRSerialNumber", "SalesPrice", "ConditionCode", "Comment","DisposalCost","Type"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        ACCOUNTING_MANAGER.table = WLX_TABLEHELPER.build(params);
                                                for(var i = 0 ; i < map.records.length ; i++){
                           // totalFMV += eval(map.records[i].FMV);
                           document.getElementById('sahi_TotalItemsId').innerHTML = map.records[i].TotalItems;
                          // document.getElementById('sahi_FMVTotal').innerHTML = map.records[i].TotalFMV;
                        }
                        /*ACCOUNTING_MANAGER.table.subscribe("dropdownChangeEvent", function(oArgs){   
                             var elDropdown = oArgs.target;   
                             var oRecord = this.getRecord(elDropdown);   
                             oRecord.setData("Action",elDropdown.options[elDropdown.selectedIndex].value);   
                         }); */
                        ACCOUNTING_MANAGER.table.subscribe("checkboxClickEvent", function(oArgs){   
                             var elCheckbox = oArgs.target;   
                             var oRecord = this.getRecord(elCheckbox); 
                             oRecord.setData("Action",elCheckbox.checked);   
                         });  

                        
                    },
                    failure: function(o) {alert("Failed to load sales history.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getJunkItemsFromCart';
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            ACCOUNTING_MANAGER.upload = function(elCell, oRecord, oColumn, oData) {
            
                var VendorOrderNumber = oRecord.getData()["VendorOrderNumber"];
                var DisposalId = oRecord.getData()["DisposalId"];
                
                var download = '<a href="DownloadCert.aspx?DisposalId='+DisposalId+'&VendorOrderNumber='+VendorOrderNumber+'" target="_blank" > view </a>';
               
                var upload = '<a href="#" onclick="ACCOUNTING_MANAGER.uploadCertificate(\''+VendorOrderNumber+'\',\''+DisposalId+'\');return false;" > upload </a>'
                
                if(!isAdmin)
                    upload = "";
                if(DisposalId != ''){
                    elCell.innerHTML = download + ' '+ upload;
                }else{
                    elCell.innerHTML = upload;
                }
                
            }
            ACCOUNTING_MANAGER.uploadCertificate = function(VendorOrderNumber,DisposalId){
               
               /* var htmlStr = [];
                htmlStr.push('  <table class="wlxTab">');
                htmlStr.push('      <tr>');
                htmlStr.push('          <td width="100" class="b">');
                htmlStr.push('                  <input type="hidden" name="VendorOrderNumber" id="uc_VendorOrderNumber" value="'+VendorOrderNumber+'"  />');
                htmlStr.push('                  <input type="file" name="Attachment" id="uc_Attachment"  />');
                htmlStr.push('          </td>');
                htmlStr.push('      </tr>');
                htmlStr.push('      <tr>');
                htmlStr.push('          <td>');
                htmlStr.push('                  <input type="button" class="btn" value="Submit" onclick="FORM_MANAGER.validateForm(g_uploadCert);" />');
                htmlStr.push('          </td>');
                htmlStr.push('      </tr>');
                htmlStr.push('  </table>');*/
                
                
                document.getElementById('uc_VendorOrderNumber').value = VendorOrderNumber;
                document.getElementById('uc_DisposalId').value = DisposalId;
                
                
                var g_uploadCertificatPopup = {
                    header : "Upload Certificate for Order Number : " + VendorOrderNumber,
                    container : "uploadCertificatePopupContainer",
                    width : 450,
                    fixedcenter : true,
                    constraintoviewport : true,
                    close:false,
                    zindex : 1000
                };
                uploadPopup = {          
                    "container" : "uploadCertificateContainer",
                    "VendorOrderNumber" : VendorOrderNumber,
                    "popupConfig" : g_uploadCertificatPopup,
                    "DisposalId":DisposalId
                }
                
                //document.getElementById(p.container).innerHTML = htmlStr.join("");
                
                if(!uploadPopup.popupConfig.popup){
                    uploadPopup.popupConfig.popup =  WLX_UTILS.popup(uploadPopup.popupConfig);
                    uploadPopup.popupConfig.popup.render();
                }
                WLX_UTILS.show(uploadPopup.popupConfig.container);
                uploadPopup.popupConfig.popup.show();
                
            }
            ACCOUNTING_MANAGER.loadDisposalSummaryTable = function(p){
            
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var params = new Object();

                        params.columnDefs = [
                            {key:"ICN", label:"ICN", formatter:ACCOUNTING_MANAGER.icnFormatter, resizeable:true, sortable:true ,hidden:mainConfig.isAdmin},
                            {key:"VendorOrderNumber", label:"Order #", resizeable:true, sortable:true},
                            {key:"Manufacturer", label:"MFG", resizeable:true, sortable:true,hidden:mainConfig.isAdmin},
                            {key:"PartNumber", label:"Part #", resizeable:true, sortable:true,hidden:mainConfig.isAdmin},
                            {key:"MFRSerialNumber", label:"MFG Serial #", resizeable:true, sortable:true,hidden:mainConfig.isAdmin},
                            {key:"DisposalDate", label:"Disposal Date", resizeable:true, sortable:true},
                            {key:"Certificate", label:"Certificate", resizeable:true,formatter:ACCOUNTING_MANAGER.upload, sortable:true}
                        ];
                        params.config = "default";		                
                        params.array = map.records;
                        params.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
                        params.responseSchema = {resultsList: "records", fields: ["DisposalId","TotalFMV","TotalItems","ICN", "VendorOrderNumber", "Manufacturer", "PartNumber", "MFRSerialNumber", "DisposalDate", "Certificate"]};
                        params.container = p.container;
                        params.sortUrl = o.argument[0];
                        params.sortedBy  = o.argument[1];
                        params.callback = callback;
                        WLX_TABLEHELPER.build(params);
                        for(var i = 0 ; i < map.records.length ; i++){
                           // totalFMV += eval(map.records[i].FMV);
                           document.getElementById('sahi_TotalItemsId').innerHTML = map.records[i].TotalItems;
                           //document.getElementById('sahi_FMVTotal').innerHTML = map.records[i].TotalFMV;
                        }
                    },
                    failure: function(o) {alert("Failed to load sales history.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getDisposalSummary&OrderNumber=' + p.OrderNumber +'&FromDate=' + p.FromDate + '&ToDate=' + p.ToDate + '&Keywords=' + p.Keywords + '&Manufacturer=' + p.Manufacturer + '&TotalRecords=' + p.TotalRecords + '&AccountingView=' + g_accountingView;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
            
            ACCOUNTING_MANAGER.loadAccountingItemDetailsTable = function(p){	            
                
                var callback =
                {
                    success: function(o) {
                        var map = eval(o.responseText);
                        
                        var htmlStr = [];
                        htmlStr.push('<table class="wlxTab">');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td width="100" class="b">Description: </td>');
                        htmlStr.push('      <td width="250">'+map.Description+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td width="100" class="b">Vendor Order #: </td>');
                        htmlStr.push('      <td width="250">'+map.VendorOrderNumber+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">Status: </td>');
                        htmlStr.push('      <td>'+map.Status+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Received Date: </td>');
                        htmlStr.push('      <td>'+map.ReceivedDate+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td class="b">ICN: </td>');
                        htmlStr.push('      <td>'+map.ICN+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Sold Date: </td>');
                        htmlStr.push('      <td>'+map.SoldDate+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">Variant Code: </td>');
                        htmlStr.push('      <td>'+map.VariantCode+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Sales Price: </td>');
                        htmlStr.push('      <td>'+map.SalesPrice+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td class="b">Manufacturer Code: </td>');
                        htmlStr.push('      <td>'+map.Manufacturer+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Net Proceeds: </td>');
                        htmlStr.push('      <td>'+map.NetProceeds+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">Condition Code: </td>');
                        htmlStr.push('      <td>'+map.ConditionCode+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Fair Market Value: </td>');
                        htmlStr.push('      <td>'+map.FMV+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr>');
                        htmlStr.push('      <td class="b">Comments: </td>');
                        htmlStr.push('      <td>'+map.Comments+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Processing Fees: </td>');
                        htmlStr.push('      <td>'+map.ProcessingFees+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('  <tr class="odd">');
                        htmlStr.push('      <td class="b">MFG Serial #: </td>');
                        htmlStr.push('      <td>'+map.MFGSerialNumber+'</td>');
                        htmlStr.push('      <td>&nbsp;</td>');
                        htmlStr.push('      <td class="b">Type: </td>');
                        htmlStr.push('      <td>'+map.Type+'</td>');
                        htmlStr.push('  </tr>');
                        htmlStr.push('</table>');
                        
                        document.getElementById(p.container).innerHTML = htmlStr.join("");
                        
                        if(!p.popupConfig.popup){
                            p.popupConfig.popup =  WLX_UTILS.popup(p.popupConfig);
                            p.popupConfig.popup.render();
                        }
                        WLX_UTILS.show(p.popupConfig.container);
                        p.popupConfig.popup.show();
                    },
                    failure: function(o) {alert("Failed to load open sales history item details.");},
                    argument: []
                }
                
                var url = 'AjaxManager.aspx?action=getAccountingItemDetails&ICN=' + p.ICN + '&AccountingView=' + g_accountingView;
                callback.argument = [url];
                var request = YAHOO.util.Connect.asyncRequest("GET", url, callback);
            }
