var internalServerError = 'Internal Server Error. Please try again in a moment, or contact Customer Service.'; var closeBtnLabel = 'Close'; var updateBtnLabel = 'Update'; var carrierComparisonLabel = 'Shipping Carrier Comparison'; var carriersLabel = 'Carriers'; var sahLabel = 'Shipping & Handling'; var insuranceLabel = 'Insurance'; var totalLabel = 'Total'; var requiredLabel = '(Required)'; var optionalLabel = '(Optional)'; var insuranceNotIncludedLabel = '(Insurance not included)'; var estTimeLabel = 'Est. Delivery Time'; var shippingCalcNote = 'Shipping calculations are based on weight, package size, zip code, shipped to and carrier rates.'; /** *
Takes care of handling the response locally before invoking the success/failure handlers
* * @param response the response data * @param request the request * @return */ function handleLocalResponse(response, request) { var argument = response.argument; //check response status var json = response.responseText; var objResponse = json.length ? eval("("+json+")") : {status : "error", errmsg : "Empty response"}; request.params = Ext.util.JSON.decode(request.params.request); //if ok call success handler for specific action else call handleFailure if(objResponse.status == 'ok') { argument.handlerSuccess.createDelegate(this, [objResponse, request.params])(); } else { argument.handlerFailure.createDelegate(this, [objResponse, request.params])(); } loadMask.hide(); } /** *Takes care of firing an ajax call
* * @param url the url to send the request to * @param handleSuccess the success handler * @param handleFailure the failure handler * @param params the params to construct the request * @return */ function ajaxReq(url, handleSuccess, handleFailure, params) { loadMask = new Ext.LoadMask(Ext.getBody(), {msg:'Loading...'}); loadMask.show(); params = params || {}; Ext.Ajax.request({ method: 'POST', url: url, success: handleLocalResponse, failure: handleFailure, params: params, argument: { handlerSuccess: handleSuccess, handlerFailure: handleFailure } }); } /** *Fires an ajax call to get all countries
* * @param cId companyId * @param successHandler handler to invoke on success * @param failureHandler handler to invoke on failure * @return */ function loadCountries(successHandler, failureHandler, cid) { ajaxReq( "/gatewayService?req_type=JSON", successHandler, failureHandler, { 'role':'buyer', 'verb':'getCountries', 'resp_type':'JSON', 'serv_id':'buyerCheckoutService', 'data': { 'companyId':cid ? cid : '' } } ); } function loadCountriesSuccessHandler(response) { var str = ''; if(!response.response || !response.response.countries){ /* * Display error message in case of any errors */ str += '' + internalServerError + ' | '; str += '
' + msg + ' | '; str += '
'; str += ' | ' + carriersLabel + ' | '; str += '' + sahLabel + ' | '; /* * Display Insurance and Total headers only if Insurance is Offered. */ if(insuranceOffered == 'Y') { var insuranceHdr = '' + insuranceLabel; var totalHdr = ' | ' + totalLabel; if(insuranceRequired == 'Y') { insuranceHdr += requiredLabel; }else { insuranceHdr += optionalLabel; totalHdr += insuranceNotIncludedLabel; } insuranceHdr += ' | '; str += insuranceHdr; totalHdr += ''; str += totalHdr; } str += '' + estTimeLabel + ' | '; str += '
---|---|---|---|---|---|
'; if(carrierGroup == 'U') { str += ' '; }else if(carrierGroup == 'P') { str += ' '; }else if(carrierGroup == 'F') { str += ' '; } str += ' | '; str += ''; }else { str += ' | '; } str += ' | ' + displayName + ' | '; str += '' + Ext.util.Format.usMoney(shippingAndHandlingCost) + ' | '; if(insuranceOffered == "Y") { var total = parseFloat(shippingAndHandlingCost); if(insuranceRequired == "Y"){ total = parseFloat(shippingAndHandlingCost) + parseFloat(insuranceCost); } str += '' + Ext.util.Format.usMoney(insuranceCost) + ' | '; str += '' + Ext.util.Format.usMoney(total) + ' | '; } str += '' + estimatedTime + ' | '; str += ''; } } str += '
Note: ' + shippingCalcNote + '
'; } } str += ' '; document.getElementById('comparisonChart').innerHTML=str; } function loadShippingRatesFailureHandler(response) { Lotus.ErrorPod.dispRespMessage(response); var str = ''; str += ' '; document.getElementById('comparisonChart').innerHTML=str; }