/** * Color/Size picker implementation. * Dojo version: 1.0 */ dojo.provide("atg.store.picker"); dojo.require("dojo.parser"); atg.store.picker={ /** * Adds the item to Cart */ addtoCart : function (){ if (!this.checkAddtoCartAvailable()){ // if product's color/size is not selected do nothing // just show corresponding message dojo.byId('promptSelectDIV').style.display='block'; dojo.byId('promptSelectDIV2').style.display='none'; dojo.byId('promptSelectDIV3').style.display='none'; return; } //post addToCart form to richCart widget dijit.byId("atg_store_richCart").postForm("addToCart"); }, /** * Check the status of addToCart form * * @return true: if item can be added to the cart * false: if not */ checkAddtoCartAvailable: function(){ var addtocartform = dojo.byId("addToCart"); var selectedSku = addtocartform.elements["/atg/store/order/purchase/CartFormHandler.items[0].catalogRefId"].value; if( !selectedSku){ return false; console.debug("checkAddtoCartAvailable: SKU not available"); } return true; }, /** * Called when a user clicks on a color, it changes selected color * to the passed one * @param color: which color is selected */ clickColor: function(color){ console.debug('selected color is ' + color); var formId = "colorsizerefreshform"; var form = dojo.byId(formId); var currentColor = form.elements.selectedColor.value; //if the color is not changing, don't do anything if(currentColor == color){ return; } //set the new selected color in the refresh form and submit it form.elements.selectedColor.value = color; var picker=atg.store.picker; picker.setQuantity(formId); picker.setGiftlistId(formId); picker.submitRefreshForm(formId); }, /** * Called when a user clicks on a size, it changes selected size * in the refresh form to the passed one * @param size: which size is selected */ clickSize: function(size){ console.debug('selected size is ' + size); var formId = "colorsizerefreshform"; var form = dojo.byId(formId); //if the user clicks the size that's already selected, don't do anything var currentSize = form.elements.selectedSize.value; if(currentSize === size){ return; } //set the new selected size in the refresh form and submit it form.elements.selectedSize.value = size; var picker=atg.store.picker; picker.setQuantity(formId); picker.setGiftlistId(formId); picker.submitRefreshForm(formId); }, /** * Called when a user clicks on a wood finish, it changes selected wood finish * to the passed one * @param color: which wood finish is selected */ clickWoodFinish: function(woodFinish){ console.debug('selected wood finish is ' + woodFinish); var formId = "woodfinishrefreshform"; var form = dojo.byId(formId); var currentWoodFinish = form.elements.selectedWoodFinish.value; //if the wood finish is not changing, don't do anything if(currentWoodFinish == woodFinish){ return; } //set the new selected wood finish in the refresh form and submit it form.elements.selectedWoodFinish.value = woodFinish; var picker=atg.store.picker; picker.setQuantity(formId); picker.setGiftlistId(formId); picker.submitRefreshForm(formId); }, /** * Gets the quantity from the addToCart form and sets the refresh form quantity. * We do this so we can preserve the quantity between refreshes. */ setQuantity: function(formId) { var currentQuantity = dojo.query(".atg_store_numericInput")[0].value; var refreshform = dojo.byId(formId); refreshform.elements.savedquantity.value = currentQuantity; }, /** * Gets the gift list id from the addToGiftList form and sets the refreshform savedgiftlist * parameter. * We do this so we can preserve the gift list selection between refreshes */ setGiftlistId: function(formId) { var addToGiftListForm = dojo.byId("addToGiftList"); if(!addToGiftListForm){ return; } var currentGiftList = addToGiftListForm.elements["/atg/commerce/gifts/GiftlistFormHandler.giftlistId"].value; var refreshform = dojo.byId(formId); refreshform.elements.savedgiftlist.value = currentGiftList; }, /** * Resets the color and size selected and submits the refresh form */ resetPicker: function(formId){ var form = dojo.byId(formId); //reset the new selected size and color in the refresh form and submit it form.elements.selectedSize.value = ""; form.elements.selectedColor.value = ""; var picker=atg.store.picker; picker.setQuantity(formId); picker.setGiftlistId(formId); picker.submitRefreshForm(formId); }, /** * Submits the refresh form. */ submitRefreshForm: function(formId){ dojo.xhrGet({ //url: "http://localhost:8080/store/browse/gadgets/pickerContents.jsp", load: function(data){ var divColorPicker = dojo.byId("picker_contents"); //data = data.replace(/