//AJAX browser history support functions function useDhtmlHistory(){ return (navigator.userAgent.toLowerCase().indexOf('safari') == - 1); } function initializeDhtmlHistory(methodName){ if(useDhtmlHistory()){ dhtmlHistory.initialize(); dhtmlHistory.addListener(methodName); } } function addDhtmlHistory(keyName, keyValue){ if(useDhtmlHistory()){ dhtmlHistory.add(keyName, keyValue); } } //General AJAX Utils function reportError(msg){ window.status = msg; } function getQueryStringParams(){ var sUrl = window.location.href; var qsp = ''; var ajaxQsp = sUrl.indexOf('#'); if(ajaxQsp > 0){ qsp = sUrl.substring(ajaxQsp + 1,sUrl.length); if(qsp=='') sUrl = sUrl.replace('#',''); } var stdQsp = sUrl.indexOf('?'); if(stdQsp > 0 && qsp=='') qsp = sUrl.replace('#','').substring(stdQsp + 1,sUrl.length); return qsp; } //AJAX functions function addSample(frm, prdId){ var url = '/checkout/add_item.cmd'; if(frm.elements){ if(prdId!=null) frm.sampleProductId.value=prdId; frm.quantity.value="1"; var pars = Form.serialize(frm); var myAjax = new Ajax.Updater('mysamples', url, {method: 'get', parameters: pars}); } else { reportError("Error adding sample."); } } function addItemToWishList(frm, divToUpdate, formName){ var url = '/user/add_item_to_wishlist.cmd'; var pars = Form.serialize(frm) + '&formName=' + formName; var myAjax = new Ajax.Updater(divToUpdate, url, {method: 'post', parameters: pars, evalScripts: true}); } function showSamples(){ var url = '/includes/samples.jsp'; var pars = ''; var myAjax = new Ajax.Updater('mysamples', url, {method: 'get', parameters: pars}); } function showRefinements(qsParams){ var url = '/catalog/refine_refinement_panel.jsp'; var pars = qsParams; var myAjax = new Ajax.Updater('refinements', url, {method: 'get', parameters: pars, evalScripts: true, onLoading: loadingRefinement, onComplete: formatRefMenu}); } function showProducts(qsParams){ var url = '/catalog/refine_product_panel.jsp'; var pars = qsParams; var myAjax = new Ajax.Updater('products', url, {method: 'get', parameters: pars, evalScripts: true, onLoading: loadingProducts, onComplete: completeProducts}); } function completeProducts(){ $("products").className = "refine-prodwrap-off"; $("refine-prodwrap").className = "refine-prodwrap-transoff"; } function loadingProducts(){ $("products").className = "refine-prodwrap-on"; $("refine-prodwrap").className = "refine-prodwrap-transon"; } function refine(prodRefDispNameIdStr, isSelected){ dcsMultiTrack('WT.cg_n','','WT.cg_s','','WT.ti','Refinements Used','WT.si_n','Refinements','WT.si_p','used'); var refParams = (document.refinementForm.brParams.value).replace('?',''); if (isSelected) refParams += '&remove=' + prodRefDispNameIdStr; else refParams += '&add=' + prodRefDispNameIdStr; showRefinements(refParams); showProducts(refParams); addDhtmlHistory(refParams, refParams); } function showProductDetails(rQsp) { var url = '/catalog/product_details_panel.jsp'; var pars = rQsp; var myAjax = new Ajax.Updater('product_details', url, {method: 'get', parameters: pars}); } function addProduct(frm) { var url = '/checkout/add_item.cmd'; var pars = Form.serialize(frm); var myAjax = new Ajax.Updater('product_details', url, {method: 'get', parameters: pars}); } function resetPanels(resetParams) { resetParams = resetParams.replace('?',''); showRefinements(resetParams); showProducts(resetParams); addDhtmlHistory(resetParams, resetParams); } function sortResults(currQsParams) { var sortIndx = currQsParams.indexOf('&sort='); if(sortIndx>0) { var refParams = currQsParams.substring(0, sortIndx) + '&sort=' + document.sortForm.sort.value + currQsParams.substring(sortIndx+7, currQsParams.length); } else { var refParams = currQsParams + '&sort=' + document.sortForm.sort.value; } refParams = refParams.replace('?',''); showRefinements(refParams); showProducts(refParams); addDhtmlHistory(refParams, refParams); } function addProdToCompare(frm, divToUpdate, formName){ var url = '/user/add_item_to_comparison.cmd'; var pars = Form.serialize(frm) + '&formName=' + formName; var myAjax = new Ajax.Updater(divToUpdate, url, {method: 'post', parameters: pars, evalScripts: true}); } function showCompareList(formName){ var url = '/includes/compare_items.jsp'; var pars = 'formName=' + formName; var myAjax = new Ajax.Updater('compare-layer-items', url, {method: 'post', parameters: pars}); } function showInfoPopup(accName){ var url = '/popup/acc_info_popup.jsp'; var pars = 'pageName=' + accName; var myAjax = new Ajax.Updater('product-info-content-layer', url, {method: 'get', parameters: pars, onComplete: visibleProductInfo}); } function showCheckOutList(productID){ var url = '/includes/checkout_pop.jsp'; var pars = 'productId=' + productID; var myAjax = new Ajax.Updater('tab_acc_trim_l', url, {method: 'get', parameters: pars}); } function showAccTrimList(productID){ var url = '/includes/acc_trim_list.jsp'; var pars = 'productId=' + productID; var myAjax = new Ajax.Updater('acc_trim_list', url, {method: 'get', parameters: pars}); } function showAccTrimListSwatch(productID){ var url = '/includes/acc_trim_list_swatch.jsp'; var pars = 'productId=' + productID; var myAjax = new Ajax.Updater('product-specs-wrapper', url, {method: 'get', parameters: pars}); } function addAccessaryProduct(frm) { var url = '/checkout/add_acc_item_to_order.cmd'; var pars = Form.serialize(frm); var myAjax = new Ajax.Updater('tab_acc_trim_l', url, {method: 'post', parameters: pars}); } function addAccTrimProduct(frm) { var url = '/checkout/add_acc_trim_item_to_order.cmd'; var pars = Form.serialize(frm); var myAjax = new Ajax.Updater('acc_trim_list', url, {method: 'post', parameters: pars}); } function addAccTrimSwatchProduct(frm) { var url = '/checkout/add_acc_trim_item_swatch_to_order.cmd'; var pars = Form.serialize(frm); var myAjax = new Ajax.Updater('product-specs-wrapper', url, {method: 'post', parameters: pars}); } function updateRefinementPanel(updateParams){ updateParams = updateParams.replace('?',''); showProducts(updateParams); addDhtmlHistory(updateParams, updateParams); } function updateProductPanel(updateParams){ updateParams = updateParams.replace('?',''); showProducts(updateParams); addDhtmlHistory(updateParams, updateParams); } function emailProductPageToFriend(frm){ var url = '/catalog/ajax_product_email.cmd'; var pars = Form.serialize(frm); var myAjax = new Ajax.Updater('tab_emailafriend_l', url, {method: 'post', parameters: pars}); } function emailCurrentPageToFriend(frm){ var url = '/catalog/ajax_product_email.cmd'; var pars = Form.serialize(frm); var myAjax = new Ajax.Updater('panel_email_friend', url, {method: 'post', parameters: pars}); } function showEmailAFriendPop(frm){ var url = '/catalog/email_success.jsp'; var pars = Form.serialize(frm); var myAjax = new Ajax.Updater('panel_email_friend', url, {method: 'post', parameters: pars}); } function loadEmailAFriendTab(productId){ var url = '/catalog/email_success.jsp'; var pars = 'productId=' + productId; var myAjax = new Ajax.Updater('tab_emailafriend_l', url, {method: 'post', parameters: pars}); }