APPLICATION NOTE 415

Buffering Scheme Drives Large LCDs


Abstract: This application notes shows how to buffer the triplex backplane drive outputs of a LCD driver such as MAX7231 family to increase the capacitive drive capability. This enables a large LCD to be driven without ghosting and other artifacts due to backplane waveform distortion.

To conserve pins, many LCD Drivers triplex their drive signals—a technique that enables AC waveforms on trhree common lines and three segment lines to activate any standard character of a seven-segment display. Large LCDs of 1" or more exhibit a large capacitance between the common and segment electrodes (several nonofarads), which presents a problem for standard LCD drivers.

These drivers' high output impedance (50KΩ, for example) causes difficulty in driving capacitance, and the consequent AC-Waveform distortioncan produce ghosting and shadow segments in the display. The drive circuit in Figure 1 solves this problem by introducing a buffer amplifier for each of the three common lines. Each amplifier may be programmed independently for a quiescent current of 10, 100 or 1000µA. In this application, the bias network applies a voltage that sets the three quiescent currents to 100µA.

The display driver and triple op amp operate between 5V and ground, and the COM signals range from 5V to ~ 1V. To assure that these signals remain within the amplifiers' common-mode range. We attenuate the signalsby one half and operate the buffers at a gain of two. The circuit drives eight 1" displays and is suitable for ambient temperature variations of 15°F or less. At the highest expected temperature, you should adjust R1 so that no "off" segments are visible.

  Distributor book cost is not available. Please Request a Quote in Model N "); $("#inventoryDetails").removeClass("col-sm-6"); $("#inventoryDetails").addClass("col-sm-12"); } else { var partNumber = encodeURIComponent(part_no); var htmlBulkOrder = "
" ; $("#buyQuantityDiv").html(htmlBulkOrder); } } } if( sampleJson.canQuote != true ) { $("#requestQuoteDiv").hide(); } if(sampleJson.leadTime == 0 && !(sampleJson.cf == "true" && sampleJson.carrierType == "Tape") ){ if ($('#requestQuoteDiv').css('display') != "block") { $('#forLeadtime').removeClass('hidden'); } //$('#quantity5000').show(); } if(maxInventory == 0) { $("#stdleadTime").html('Lead time'); } if(params == 'Quote'){ $('#rowDiv').addClass("hidden"); $("#quoteRow").removeClass("hidden"); $("#nonQuote").addClass("hidden"); } else { if(leadTime != "" && leadTime != "undefined" && (parseInt(leadTime) > 0 && parseInt(leadTime) < 98) || parseInt(leadTime) == 0 ){ }else { if(userType != "DISTRIBUTOR") { $('#rowDiv div:not("#inventoryDetails,#requestQuoteDiv, #requestQuoteDiv2")').hide(); if($(".requestQuoteFromBuyCart").css('display') == 'none'){ $("#contactSales").show(); } } } } $('#addToCartP').modal('show'); if (userType == "EMPLOYEE" ) { $(document).find('#qtytobuyText').hide(); $(document).find('#product-quantity').hide(); $(document).find('#addToCartButton').hide(); $(document).find('#employeeMsg').show(); } if(sampleJson.cf == "true" && sampleJson.carrierType == "Tape" && maxInventory == 0){ $("#priceBreak").remove(); $("#orderingquotetext").remove(); $("#quantity5000").remove(); $('#useExistingQuote').remove(); $('#borderid').remove(); $('#inventoryDetails').removeClass('col-sm-6'); $('#inventoryDetails').addClass('col-sm-12'); $('#inventoryDetails').css('padding-left', '55px'); $('#inventoryDetails').css('padding-right', '55px'); $("#sotPartswithnostock").html('Unfortunately there is no inventory to support this request. We only sell this type of product when we have excess inventory available because this package type comes off of our testers in reels. When we have excess inventory from a lot that completes final test, we can sell this product on cut tape strips in quantities less than reel size until it is sold out, which is currently the case. Please change your order to the tape & reel part number (usually ending in +T or +T&R) if you would like to order this product or check with our distribution partners in your region for smaller quantities.'); } } } else { document.getElementById('buyParams').innerHTML = "Default"; digitalErrorFunction('System error occured. customer support for assistance.'); bootbox.alert('System error occured. customer support for assistance.'); } } }); var url = "/bin/checkQuoteAvailabilty?partNumber=" + encodeURIComponent(part_no) $.ajax({ url: url, dataType: "json", type: 'POST', async: false, xhrFields: { withCredentials: true }, success: function(data) { result = data; if(result != ""){ if(result.quoteList.quotes.quoteAvailable){ var quoteAvailable = result.quoteList.quotes.quoteAvailable; if(quoteAvailable == "true"){ $("#ortext").removeClass("hidden"); $('#useExistingQuote').show(); } } } } }); if (CQ_Analytics.PersonalInfoStoreMgr.getProperty("isLoggedIn") == "") { $.cookie("redirect","widget"); $.cookie("buy",buy); $.cookie("part_no",encodeURIComponent(part_no)); $.cookie("sampQty",sampQty); if(params == "ProductOrderTab"){ $.cookie("orderTab","true"); } } } else if (buy == "sample" && (CQ_Analytics.PersonalInfoStoreMgr.getProperty("isLoggedIn", true) || CQ_Analytics.PersonalInfoStoreMgr.getProperty("isLoggedIn", true) == "true")) { if(userType == "DISTRIBUTOR" || userType == "EMPLOYEE" ){ window.location.href = "https://shop.maximintegrated.com/backoffice/general/index.php?action=DISTRIBUTOR"; return false; } if (localStorage.getItem(part_no) == 1) { mycart_widget("sample", function (status) { if (status && typeof _satellite != "undefined") _satellite.track("cart: add"); }); return false; } else { var data = "input=addtocart&part_no=" + encodeURIComponent(part_no) + "&CartType=sampleCart&sampleQty=" + sampQty + "&usertype=" + userType; if (sampQty >= 1 || userType == "DISTRIBUTOR" || userType == "EMPLOYEE") { $.ajax({ type: "post", url: '/bin/validateSampleOrder', async: false, data: data, success: function (msg, textStatus, jqXHR) { if (textStatus == "success") { if (typeof msg == 'string') { //responce will be string when part is added to cart, else it is json obj if (msg == "false") { digitalErrorFunction('Maximum quantity exceeded. Please lower the quantity to proceed.'); bootbox.alert('Maximum quantity exceeded. Please lower the quantity to proceed.'); return false; } else if (msg.match("^You") || msg.match("^Product")) { bootbox.confirm('Your session expired. Please login and try again.', function (result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den" + "&authorizableId=" + authorizableId); window.location = "/en/mymaxim/login.html"; }); } else if (msg.match("^No orderable unit")) { digitalErrorFunction(msg); bootbox.alert(msg); } else { localStorage.setItem(part_no, "1"); mycart_widget("sample", function (status) { if (status && typeof _satellite != "undefined") _satellite.track("cart: add"); }); } } else { var itemCount = msg.output.validateEmailDomain.itemCount; var orderCount = msg.output.validateEmailDomain.orderCount; if (typeof orderCount != 'undefined' && parseInt(orderCount) >= 1) { bootbox.alert("Maxim's free sample policy limits the number of orders that each member is allowed.You have exceeded this maximum.If you feel you have received this message in error, please email samples-admin@maximintegrated.com "); return; } else if (typeof itemCount != 'undefined' && parseInt(itemCount) >= 4) { bootbox.alert("You have exceeded the sample line maximum of four (4) lines per order. You may purchase additional parts by visiting our ordering page here, and searching for parts to order."); return; } else if (msg.hasOwnProperty('error') && msg.error == "genericerrorText") { digitalErrorFunction('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); } else if (msg.hasOwnProperty('output') && msg.output.hasOwnProperty('validateEmailDomain')) { var sampleMessage = msg.output.validateEmailDomain.message; if (sampleMessage == 'SAMPLEEMAILDENIAL') { $('#sampleemaildenialerrordialog').modal('show'); } else { $('#domainerrordialog').modal('show'); } } else if (msg.hasOwnProperty('status') && msg.status == false) { if (msg.message.match("^Your session expired")) { bootbox.confirm('Your session expired. Please login and try again.', function (result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den" + "&authorizableId=" + authorizableId); window.location = "/en/mymaxim/login.html"; }); } else { digitalErrorFunction(msg.message); bootbox.alert(msg.message); } } } } else { digitalErrorFunction('System error occured. Contact customer support for assistance.' + JSON.stringify(msg)); bootbox.alert('System error occured. Contact customer support for assistance.' + JSON.stringify(msg)); } } }); } else { digitalErrorFunction('Not enough quantity available for samples, the max quantity available for sample is' + sampQty); bootbox.alert('Not enough quantity available for samples, the max quantity available for sample is' + sampQty); } } } else { $.cookie("redirect","widget"); $.cookie("buy",buy); $.cookie("part_no",encodeURIComponent(part_no)); $.cookie("sampQty",sampQty); if(params == "ProductOrderTab"){ $.cookie("orderTab","true"); } gigya.accounts.showScreenSet(aem.login.params); } } } function redirect_rochester(part_no){ var url = 'https://api.rocelec.com/parts/MAX/1?callback=callback&q='+ part_no +'&key=Z3kk1y*'; $.ajax({ type: 'GET', url: url, async: false, jsonpCallback: 'callback', contentType: "application/json", dataType: 'jsonp', success: function(json) { if(json.parts[0] != undefined){ if('permalink' in json.parts[0]){ window.open(json.parts[0].permalink,'_blank'); } else{ digitalErrorFunction('
Rochester currently does not carry this part, but you can contact them here to see if they are able to procure it. If not, please contact our technical applications engineers , who can help in finding a similar device you could use as a replacement.
'); bootbox.alert('
Rochester currently does not carry this part, but you can contact them here to see if they are able to procure it. If not, please contact our technical applications engineers , who can help in finding a similar device you could use as a replacement.
'); } } else{ if(typeof _satellite != "undefined"){ _satellite.track("rochester-popup"); } bootbox.alert('
Rochester currently does not carry this part, but you can contact them here to see if they are able to procure it. If not, please contact our technical applications engineers , who can help in finding a similar device you could use as a replacement.
'); } }, error: function(e) { console.log(e.message); digitalErrorFunction(e.message); } }); } function getDistrbutorInventoryData(partNumber) { if(typeof partNumber != "undefined" && partNumber != "") { var distributors = {}; var distributor_template = Handlebars.compile($("#distributorData").html()); var data = "query="+encodeURIComponent(partNumber); $.ajax({ type: "post", url: '/bin/distributorInventoryComponent', async: true, data: data, success: function(data) { if(data.error == "genericerrorText"){ digitalErrorFunction('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); } else if(data != null || data != ""){ $('#distributor-loading-image').hide(); if(data != "") { var dataJSON = JSON.parse(data); dataJSON['code']=partNumber; $('#distributor-modal').html(distributor_template(dataJSON)); } } } }); } } function add_to_cart(part_no, buy, params, sampQty,quantity) { var userType = encodeURI(CQ_Analytics.PersonalInfoStoreMgr.getProperty("userType")); if(userType == "") { userType="anonymous"; } if(params == 'Quote'){ $("#addToCartP").attr('data-quote-id', sampQty.quoteId); $("#addToCartP").attr('data-quote-item-number', sampQty.quoteItemNumber); } if (buy == "part") { var result; var small_template = Handlebars.compile($("#buyModalBody").html()); document.cookie="mySearchServlet="+window.location+";domain=.maximintegrated.com;path=/"; var servletName = "/bin/SFComponent"; var url = servletName + "?input=single&query=" + encodeURIComponent(part_no); $.ajax({ url: url, dataType: "json", type: 'POST', xhrFields: { withCredentials: true }, success: function(data) { result = data; if(result == "genericerrorText"){ document.cookie="mySearchServlet="+window.location+";domain=.maximintegrated.com;path=/"; digitalErrorFunction('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); }else if (result != "") { if(result.errors != undefined && result.errors[0].message) { document.cookie="mySearchServlet="+window.location+";domain=.maximintegrated.com;path=/"; digitalErrorFunction('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); }else { document.cookie="mySearchServlet="+window.location+";domain=.maximintegrated.com;path=/"; var sampleJson = result; var vol = sampleJson.volumePrices; sampleJson.userType = userType; var noPricingMsg = 0; minQty = sampleJson.min; mult = sampleJson.mult; if(vol != undefined && userType != "DISTRIBUTOR" ) { for (var i = 0; i < vol.length; i++) { var j = i + 1; var vol1 = ""; if (j <= vol.length) { if(vol[i].minQuantity < 1000) { stdPricingFlag = 1; if(j == vol.length) { vol1 = vol[i].minQuantity + "+"; } else { vol1 = vol[i].minQuantity + "-" + vol[i].maxQuantity; } } else if(vol[i].minQuantity == 1000) { vol1 = "1000+"; stdPricingFlag = 1; } else { if(i ==0 && vol[i].minQuantity > 1000) { //vol1 = "No standard pricing available"; noPricingMsg++; delete sampleJson.volumePrices[i].formattedValue; } else { delete sampleJson.volumePrices[i]; continue; } } } else if(j == vol.length && j == 1) { vol1 = vol[i].minQuantity + "-" + 24; stdPricingFlag = 1; } sampleJson.volumePrices[i].minQuantity = vol1; } } maxInventory = sampleJson.stock.atpInv; leadTime = sampleJson.leadTime; if (maxInventory == "" || maxInventory == undefined) { maxInventory = 0; } $('#addToCart').html(small_template(sampleJson)); if(userType != "DISTRIBUTOR") { call(quantity); } } } else { document.getElementById('buyParams').innerHTML = "Default"; digitalErrorFunction('System error occured. customer support for assistance.'); bootbox.alert('System error occured. customer support for assistance.'); } } }); } else if (buy == "sample") { if(userType == "DISTRIBUTOR" || userType == "EMPLOYEE" ){ window.location.href = "https://shop.maximintegrated.com/backoffice/general/index.php?action=DISTRIBUTOR"; return false; } if (localStorage.getItem(part_no) == 1) { mycart_widget("sample", function (status) { if (status && typeof _satellite != "undefined") _satellite.track("cart: add"); }); return false; } else { var data = "input=addtocart&part_no=" + encodeURIComponent(part_no) + "&CartType=sampleCart&sampleQty=" + sampQty + "&usertype=" + userType; if (sampQty >= 1 || userType == "DISTRIBUTOR" || userType == "EMPLOYEE") { $.ajax({ type: "post", url: '/bin/validateSampleOrder', async: false, data: data, success: function (msg, textStatus, jqXHR) { if (textStatus == "success") { //responce will be string when part is added to cart, else it is json obj if (typeof msg == 'string') { if (msg == "false") { digitalErrorFunction('Maximum quantity exceeded. Please lower the quantity to proceed.'); bootbox.alert('Maximum quantity exceeded. Please lower the quantity to proceed.'); return false; } else if (msg.match("^You") || msg.match("^Product")) { bootbox.confirm('Your session expired. Please login and try again.', function (result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den" + "&authorizableId=" + authorizableId); window.location = "/en/mymaxim/login.html"; }); } else if (msg.match("^No orderable unit")) { digitalErrorFunction(msg); bootbox.alert(msg); } else { localStorage.setItem(part_no, "1"); mycart_widget("sample", function (status) { if (status && typeof _satellite != "undefined") _satellite.track("cart: add"); }); } } else { var itemCount = msg.output.validateEmailDomain.itemCount; var orderCount = msg.output.validateEmailDomain.orderCount; if (typeof orderCount != 'undefined' && parseInt(orderCount) >= 1) { bootbox.alert("Maxim's free sample policy limits the number of orders that each member is allowed.You have exceeded this maximum.If you feel you have received this message in error, please email samples-admin@maximintegrated.com "); return; } else if (typeof itemCount != 'undefined' && parseInt(itemCount) >= 4) { bootbox.alert("You have exceeded the sample line maximum of four (4) lines per order. You may purchase additional parts by visiting our ordering page here, and searching for parts to order."); return; } else if (msg.hasOwnProperty('error') && msg.error == "genericerrorText") { digitalErrorFunction('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); } else if (msg.hasOwnProperty('output') && msg.output.hasOwnProperty('validateEmailDomain')) { var sampleMessage = msg.output.validateEmailDomain.message; if (sampleMessage == 'SAMPLEEMAILDENIAL') { $('#sampleemaildenialerrordialog').modal('show'); } else { $('#domainerrordialog').modal('show'); } } else if (msg.hasOwnProperty('status') && msg.status == false) { if (msg.message.match("^Your session expired")) { bootbox.confirm('Your session expired. Please login and try again.', function (result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den" + "&authorizableId=" + authorizableId); window.location = "/en/mymaxim/login.html"; }); } else { digitalErrorFunction(msg.message); bootbox.alert(msg.message); } } } } else { digitalErrorFunction('System error occured. Contact customer support for assistance.' + JSON.stringify(msg)); bootbox.alert('System error occured. Contact customer support for assistance.' + JSON.stringify(msg)); } } }); } else { digitalErrorFunction('Not enough quantity available for samples, the max quantity available for sample is' + sampQty); bootbox.alert('Not enough quantity available for samples, the max quantity available for sample is' + sampQty); } } } } $(document).on("click", ".useThisBuyQuote", function () { var quantity = ""; quantity = $('#product-quantityBuyQuote').val(); quantity = quantity.trim(); if(quantity.length == 0){ digitalErrorFunction('Enter quantity to proceed'); bootbox.alert('Enter quantity to proceed'); quantity.focus(); return false; } var part_no = $('#Pcode').val(); var quoteId= $(this).data("quote-id"); var quoteItemId = $(this).data("quote-item-id"); $.ajax({ type: "post", url: '/bin/cartOperations', data: "input=addtocart"eId="+quoteId+""eItemNumber="+quoteItemId+"&qty=" + quantity + "&part_no=" + encodeURIComponent(part_no), success: function(msg, textStatus, jqXHR) { if (textStatus == "success") { if(msg.match("^You") || msg.match("^Product")){ if(msg.match("^Your session expired")) { bootbox.confirm('Your session expired. Please login and try again.', function(result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den"+"&authorizableId="+authorizableId); window.location="/en/mymaxim/login.html"; }); } else { digitalErrorFunction(msg); bootbox.alert(msg); return false; } } else if (msg.match("^No Price found")){ //bootbox.alert(msg); digitalErrorFunction('This part requires a quote for the quantity you have entered.'); bootbox.alert('This part requires a quote for the quantity you have entered.'); return false; } else if(msg.match('This part requires a quote for the quantity you have entered.')){ digitalErrorFunction(msg); bootbox.alert(msg); return false; } else if(msg==""){ digitalErrorFunction('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); return false; } else if(quoteId != "" && quoteId != undefined && ! msg.match("statusCode=success")) { digitalErrorFunction(msg); bootbox.alert(msg); return false } else { $('#useQuoteModal').modal('hide'); mycart_widget(); if ($("#buyParams").html() == "SavedLater") { //alert("Yes inside"); deleteSavedForLater(part_no); } } } else { digitalErrorFunction('System error occured. Contact customer support for assistance.'+ JSON.stringify(msg)); bootbox.alert('System error occured. Contact customer support for assistance.'+ JSON.stringify(msg)); } } }); }); function call(quantity) { var qty ="",quoteId,quoteItemNumber = ""; if(typeof quantity != "undefined" && quantity !="") { qty=quantity; } else { var value = $('#product-quantity1').val(); if(value != "undefined" && value != "") { qty = value; } else{ qty = document.getElementById('product-quantity').value; } } qty = qty.trim(); var orderInMult = $('#orderInMult').val(); var orderInMin = $('#orderInMin').val(); var inventoryVal = $('#stockAvaliability').val(); var stockAvaliability = $('#stockAvaliability').val(); var cfValue = $('#cfValue').val(); var carrierTypeValue = $('#carrierTypeValue').val(); quoteId=$("#addToCartP").attr('data-quote-id'); quoteItemNumber=$("#addToCartP").attr('data-quote-item-number'); if(quoteId == undefined){ quoteId =""; quoteItemNumber = ""; } if(quoteId != "" && quoteId != undefined){ } else { if(!(cfValue == 'true' && carrierTypeValue == 'Tape')){ if(parseInt(qty) > parseInt(inventoryVal)){ if(qty != "" && orderInMult != "" && orderInMin != "" ){ if(parseInt(qty) < parseInt(orderInMin)){ $('#product-quantity').val(orderInMin); $('#quantity-label').show(); return false; } else if(qty % orderInMult == 0){ $('#quantity-label').hide(); } else { var modvalue = parseInt(qty) % parseInt(orderInMult); var q4 = parseInt(orderInMult)-parseInt(modvalue); var nearestNum = parseInt(qty) + parseInt(q4); //var nearestNum = (Math.round(qty / orderInMult)+1) * orderInMult; $('#product-quantity').val(nearestNum); $('#quantity-label').show(); return false; } } } else if(parseInt(qty) <= parseInt(inventoryVal) && carrierTypeValue == 'Reel'){ if(qty != "" && orderInMult != "" && orderInMin != "" ){ if(parseInt(qty) < parseInt(orderInMin)){ $('#product-quantity').val(orderInMin); $('#quantity-label').show(); return false; } else if(qty % orderInMult == 0){ $('#quantity-label').hide(); } else { var modvalue = parseInt(qty) % parseInt(orderInMult); var q4 = parseInt(orderInMult)-parseInt(modvalue); var nearestNum = parseInt(qty) + parseInt(q4); //var nearestNum = (Math.round(qty / orderInMult)+1) * orderInMult; $('#product-quantity').val(nearestNum); $('#quantity-label').show(); return false; } } } } // Bulk SOT Check if(cfValue == 'true' && carrierTypeValue == 'Tape'){ if(parseInt(stockAvaliability) == 0){ digitalErrorFunction('Unfortunately there is no inventory to support this request. We only sell this type of product when we have excess inventory available because this package type comes off of our testers in reels. When we have excess inventory from a lot that completes final test, we can sell this product on cut tape strips in quantities less than reel size until it is sold out, which is currently the case. Please change your order to the tape & reel part number (usually ending in +T or +T&R) if you would like to order this product or check with our distribution partners in your region for smaller quantities.'); bootbox.alert('Unfortunately there is no inventory to support this request. We only sell this type of product when we have excess inventory available because this package type comes off of our testers in reels. When we have excess inventory from a lot that completes final test, we can sell this product on cut tape strips in quantities less than reel size until it is sold out, which is currently the case. Please change your order to the tape & reel part number (usually ending in +T or +T&R) if you would like to order this product or check with our distribution partners in your region for smaller quantities.'); return false; } } } var part_no = document.getElementById('Pcode').value; if(qty.length == 0){ digitalErrorFunction('Enter quantity to proceed'); bootbox.alert('Enter quantity to proceed'); qty.focus(); return false; } if (qty % 1 != 0) { digitalErrorFunction('Please do not use decimals or negatives (positive integers only).'); bootbox.alert('Please do not use decimals or negatives (positive integers only).'); return false; } var userId = CQ_Analytics.ProfileDataMgr.getProperty("email"); if(CQ_Analytics.PersonalInfoStoreMgr.getProperty("isLoggedIn", true) || CQ_Analytics.PersonalInfoStoreMgr.getProperty("isLoggedIn", true) == "true") { var userType = encodeURI(CQ_Analytics.PersonalInfoStoreMgr.getProperty("userType")); if(typeof quantity != "undefined") { $.removeCookie("redirect"); $.removeCookie("part_no"); $.removeCookie("sampQty"); $.removeCookie("quantity"); $.removeCookie("buy"); } var data = "input=addtocart"eId=" + quoteId + ""eItemNumber=" + quoteItemNumber + "&qty=" + qty + "&part_no=" + encodeURIComponent(part_no); $.ajax({ type: "post", url: '/bin/validateRevenueOrder', async: false, data: data, success: function (msg, textStatus, jqXHR) { if (textStatus == "success") { //responce will be string when part is added to cart, else it is json obj if (typeof msg != 'string') { if(msg.error == "genericerrorText"){ digitalErrorFunction('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); } else{ var isOrderAllowed = msg.output.validateEmailDomain.isOrderAllowed; if (typeof isOrderAllowed != 'undefined' && isOrderAllowed != "true") { digitalErrorFunction('System error occured. Contact customer support for assistance.'); $('#revenuedomainerrordialog').modal('show'); return; } } } else { if(msg.match("^You") || msg.match("^Product")){ if(msg.match("^Your session expired")) { bootbox.confirm('Your session expired. Please login and try again.', function(result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den"+"&authorizableId="+authorizableId); //window.location="/en/storefront.html"; window.location="/en/mymaxim/login.html"; }); } else { digitalErrorFunction(msg); bootbox.alert(msg); return false; } } else if (msg.match("^No Price found")){ //bootbox.alert(msg); digitalErrorFunction('This part requires a quote for the quantity you have entered.'); bootbox.alert('This part requires a quote for the quantity you have entered.'); return false; }else if(msg.match('This part requires a quote for the quantity you have entered.')){ digitalErrorFunction(msg); bootbox.alert(msg); return false; }else if(msg.match("^zeroInventoryErrorMsg")){ digitalErrorFunction('Unfortunately there is no inventory to support this request. We only sell this type of product when we have excess inventory available because this package type comes off of our testers in reels. When we have excess inventory from a lot that completes final test, we can sell this product on cut tape strips in quantities less than reel size until it is sold out, which is currently the case. Please change your order to the tape & reel part number (usually ending in +T or +T&R) if you would like to order this product or check with our distribution partners in your region for smaller quantities.'); bootbox.alert('Unfortunately there is no inventory to support this request. We only sell this type of product when we have excess inventory available because this package type comes off of our testers in reels. When we have excess inventory from a lot that completes final test, we can sell this product on cut tape strips in quantities less than reel size until it is sold out, which is currently the case. Please change your order to the tape & reel part number (usually ending in +T or +T&R) if you would like to order this product or check with our distribution partners in your region for smaller quantities.'); }else if(msg==""){ digitalErrorFunction('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); return false; } else if(quoteId != "" && quoteId != undefined && ! msg.match("statusCode=success")) { digitalErrorFunction(msg); var msgMatch = msg.match("^Quote compliance not met for quote number (.[0-9]*) as compliance is (.[0-9]%)$"); if(msgMatch){ bootbox.alert('Quote compliance not met for quote number '+ msgMatch[1] + ' as compliance is ' + msgMatch[2]); }else { bootbox.alert(msg); } return false } else if(msg.match('To order this part, you must order the entire inventory of')){ bootbox.alert(msg); return false; } else if(msg.match('We are sorry! Unfortunately, there is not enough excess inventory to support this bulk SOT part request')){ bootbox.alert(msg); return false; } else if(msg.match('A valid quote is required to purchase this part')){ bootbox.alert(msg); return false; }else { $('#addToCartP').modal('hide'); mycart_widget("", function(status){ if(status && typeof _satellite != "undefined") _satellite.track("cart: add"); if(msg.match("entryNumber=1") && typeof _satellite != "undefined"){ _satellite.track("cart: open"); } }); if(quoteId != null && quoteId != "" && quoteId != undefined && msg.match("statusCode=success")){ window.digitalQuoteData = { quoteID : quoteId, quoteQuantity : qty, partNo : encodeURIComponent(part_no) } if(typeof _satellite != "undefined"){ _satellite.track("use-quote"); } } if ($("#buyParams").html() == "SavedLater") { //alert("Yes inside"); deleteSavedForLater(part_no); } } } } else { digitalErrorFunction('System error occured. Contact customer support for assistance.'+ JSON.stringify(msg)); bootbox.alert('System error occured. Contact customer support for assistance.'+ JSON.stringify(msg)); } } }); } else { $.cookie("quantity",qty); $("#addToCartP").modal("hide"); gigya.accounts.showScreenSet(aem.login.params); } } function redirectBulkOrder(partNumber,quantity){ var url="/en/storefront/bulk-order.html"; if(typeof partNumber != "undefined" && partNumber != "") { url+="?partNumber="+partNumber; } if(typeof quantity != "undefined" && quantity != "") { url+="&quantity="+quantity; } window.location.href = url; } function redirectToModelN(){ window.open("https://maxim.modeln.com/", '_blank',"width=400,height=150").focus(); } $(document).on('click', '.quoteDetails', function() { $("#useQuoteModal .modal-body").html(""); var index = ""; var quoteNo = ""; var part = $(this).data("part-no"); if(part == "" || part == "undefined") { digitalErrorFunction('Please enter a valid part number.'); bootbox.alert('Please enter a valid part number.'); return false; } if(quoteNo != "" && quoteNo != "undefined") { getQuotesList(part, index, quoteNo); } else { getQuotesList(part, index, quoteNo); digitalErrorFunction('Enter valid quote number'); //bootbox.alert('Enter valid quote number'); //return false; } }); var useQuoteModalTemplate = $("#useQuoteModalBody").html(); function getQuotesList(part, index, quoteId) { var userType = CQ_Analytics.PersonalInfoStoreMgr.getProperty("userType"); var oldPart = $("#partHidden"+index).val(); //oldpart == part to handle unnecessary quotelists api calls for same part. if(part == "" || part == undefined || part.length < 5 || oldPart == part) { return false; } if(userType == "" || userType == undefined){ $("#modelBuyCartButton").trigger("click"); gigya.accounts.showScreenSet(aem.login.params); return false; } var queryString = "quoteId="+quoteId+"&pendingStatus=&summery=disti&quantity=&materialNumber="+encodeURIComponent(part); var materialNumber = part; var activeFlag = 0; $.ajax({ url:"/bin/QuoteMangementServlet", type: 'GET', data: queryString, success:function(data){ //alert(JSON.stringify(data)); var useQuoteTemplate = Handlebars.compile(useQuoteModalTemplate); var useQuoteJson = {quotesList : [], code : materialNumber, index : index}; if(data.status == false) { var useQuoteJson = {quotesList : [], code : materialNumber, index : index, errorMessage : data.error.errorList.errors.message }; $("#modelBuyCartButton").trigger("click"); $("#quoteLineFlag"+index).val("false"); $('#useQuoteModal').html(useQuoteTemplate(useQuoteJson)); $('#useQuoteModal').modal('show'); digitalErrorFunction(data.error.errorList.errors.message); return false; } else { var quoteListJson = data.quoteList.quotes.quote; } if($.type(data.quoteList.quotes.quote) != "array") { if($.type(quoteListJson.quote_items) != "array") { if(quoteListJson.quote_items.product.code == materialNumber) { var quoteId = quoteListJson.ecom_qt_id_h; var quantity = quoteListJson.quote_items.quantity; //var price = findPriceByQuantity(quoteListJson.quote_items.product.volumePrices, quoteListJson.quote_items.quantity); price = (quoteListJson.quote_items.requote_price * 1).toFixed(3); if(userType == "DISTRIBUTOR") { price = (quoteListJson.quote_items.adj_disti_cost * 1).toFixed(3); quoteId = quoteListJson.modelNQuoteNumber; } var total = price * quantity; total =total.toFixed(3); if(quoteListJson.quote_items.quoteItemStatus == "ACTIVE" && quantity != "" && quantity != "undefined"){ activeFlag = 1; useQuoteJson.quotesList.push({"totalCost":total, "quoteItemId" : quoteListJson.quote_items.code, "status" : quoteListJson.quote_items.quoteItemStatus, "quantity":quantity, "entryNumber":quoteListJson.quote_items.item_num,"quoteId": quoteId, "price": price, "orderCompilance": quoteListJson.quote_items.ordcompliance}); } } else { //return useQuoteJson; //break; } } else { for(var i =0; i