/**
 * Color/Size picker implementation.
 */

dojo.provide("atg.b2cblueprint.picker");

atg.b2cblueprint.picker={

 //called when a user clicks on a color
  clickColor: function(color,productId,isMustHaves,isStyleguide){
    var form = dojo.byId("colorsizerefreshform_"+productId);
    var currentColor = form.elements.selectedColor.value;

    //if the color is not changing, dont 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.b2cblueprint.picker;
    picker.changeColor(color,productId,isMustHaves,isStyleguide);
    picker.setQuantity(productId);
    picker.setGiftlistId(productId);
    picker.submitRefreshForm(productId); 
  },

  getSwatchType: function (element) {
    var result = "_FNT";
    for (var i=0; i<element.children.length; i++) {
      if (element.children[i].tagName=="IMG" && element.children[i].alt!="") {
        if ( -1 < element.children[i].src.indexOf("_OB_SWT") ) {
          result = "_OB_FNT";
        }
      }
    }
    return result;
  },

  changeColor: function(element,color,productId,isMustHaves,isStyleguide,colorListId,wid,hei) {
    // dojo.byId('colorValue').innerHTML=element.name;
		// quick view: 'colorValue', pdp: 'colorValue_xxxx'
		var colorLabel = (colorListId == 'thil_quickView_colorList') ? 'colorValue' : 'colorValue_' + productId;
    dojo.byId(colorLabel).innerHTML=element.name;

    wid = ( typeof wid == "undefined"  || wid == null ) ? 388 : wid;
    hei = ( typeof hei == "undefined"  || hei == null ) ? 388 : hei;

    if ( typeof s7zoom == "undefined"  || s7zoom == null ) {
        var productDetailImage = dojo.byId("thil_productDetailImage");
        if( !productDetailImage ) {
          return false;
        }
        if (isStyleguide == true) {
          return false;
        } else if (isMustHaves == true) {
          dojo.byId("thil_productDetailImage").src='http://s7d3.scene7.com/is/image/ShopTommy/'+productId+'_'+color+'_FNT?wid='+wid+'&hei='+hei+'&fmt=jpeg&qlt=100%2c0&op_sharpen=1&resMode=trilin&op_usm=0.8%2c1.0%2c6%2c0&iccEmbed=0';
          var swtId = 'sw'+productId+'_'+color;
          PDPColorResetAndSet(productId,swtId,colorListId);
          return false;
        } else {
          dojo.byId("thil_productDetailImage").src='http://s7d3.scene7.com/is/image/ShopTommy/'+productId+'_'+color+'_FNT?wid='+wid+'&hei='+hei+'&fmt=jpeg&qlt=100%2c0&op_sharpen=1&resMode=trilin&op_usm=0.8%2c1.0%2c6%2c0&iccEmbed=0';
          var swtId = 'sw'+productId+'_'+color;
          PDPColorResetAndSet(productId,swtId,colorListId);
          return false;
        }
    } else {
      if (isStyleguide == true) {
        return false;
      } else {
        setNewZoomImage('ShopTommy/'+productId+'_'+color+this.getSwatchType(element), wid, hei, 'thil_productDetailImage');
        var swtId = 'sw'+productId+'_'+color;
        PDPColorResetAndSet(productId,swtId,colorListId);

        return false;
      }
    }
  },

  //called when a user clicks on a color
  clickColorMod: function(color,productId ,isMustHaves,isStyleguide,isMulti){
    var form = dojo.byId("colorsizerefreshform_"+productId); 
    form.elements.selectedColor.value = color;
    var picker=atg.b2cblueprint.picker;

    if(isMulti != true) picker.changeColorMod(color,productId);
    picker.setGiftlistId(productId);
    picker.submitRefreshForm(productId); 
    picker.setCurrentItemInfo(productId);
  },

  changeColorMod: function(color,productId) {
    var productDetailImage = dojo.byId("thil_productDetailImage");
    if(!productDetailImage){
      return false;
    }
    dojo.byId("thil_productDetailImage").src='http://s7d3.scene7.com/is/image/ShopTommy/'+productId+'_'+color+'_FNT?wid=388&hei=388&fmt=jpeg&qlt=100%2c0&op_sharpen=1&resMode=trilin&op_usm=0.8%2c1.0%2c6%2c0&iccEmbed=0';

  },

  //called when a user clicks on a size
  clickSize: function(size,productId){
    var form = dojo.byId("colorsizerefreshform_"+productId);

    //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.b2cblueprint.picker;
    picker.setQuantity(productId);
    picker.setGiftlistId(productId);
    picker.submitRefreshForm(productId);
  },

  clickSizeMod: function(size,productId){
    var form = dojo.byId("colorsizerefreshform_"+productId);

    //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.b2cblueprint.picker;
    picker.submitRefreshForm(productId);
  },

  setModQuantity: function(productId,qty){
    document.getElementById('input_qty_mod_'+productId).value = qty;
    var modqtyFild = dojo.byId("input_qty_mod_"+productId); 
    if(modqtyFild!=null){
      //var addtocartform = dojo.byId("addToCart_"+productId); 

      var currentQuantity = modqtyFild.value;
      var refreshform = dojo.byId("colorsizerefreshform_"+productId);
      refreshform.elements.savedquantity.value = currentQuantity;
       var picker = atg.b2cblueprint.picker;
      //picker.clickSizeMod(qty,productId);
      picker.submitRefreshForm(productId);
    }
  },

  //gets the quantity from the addtocart form and sets the refreshform quantity 
  //we do this so we can preserve the quantity between refreshes
  setQuantity: function(productId){
    var addtocartform = dojo.byId("addToCart_"+productId); 
    var currentQuantity = addtocartform.elements.atg_b2cblueprint_quantityField.value;
    var refreshform = dojo.byId("colorsizerefreshform_"+productId);
    refreshform.elements.savedquantity.value = currentQuantity;
  },

  //gets the quantity from the addToGiftList form and sets the refreshform savedgiftlist 
  //we do this so we can preserve the giftlist selection between refreshes
  setGiftlistId: function(productId){
    var addToGiftListForm = dojo.byId("addToGiftList");
    if(!addToGiftListForm){
      return;
    }

    var currentGiftList = addToGiftListForm.elements.atg_b2cblueprint_GiftListChoice.value;
    var refreshform = dojo.byId("colorsizerefreshform");
    refreshform.elements.savedgiftlist.value = currentGiftList;
  },

  //resets the color and size selected and submits the refresh form
  resetPicker: function(productId){
    var form = dojo.byId("colorsizerefreshform_"+productId);
    //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.b2cblueprint.picker;
    picker.setQuantity(productId);
    picker.setGiftlistId(productId);
    picker.submitRefreshForm(productId); 
  },

  submitRefreshForm: function(productId){
    dojo.io.bind({
      load: function(type, data,evt){
        var divColorPicker = dojo.byId("atg_b2cblueprint_picker_"+productId);
        //var divColorPicker = dojo.byId("multiitem_form");

        divColorPicker.innerHTML = data;
        var richCart = dojo.widget.byId('richCart');
        richCart.hijackAllAddToCartNodes();
        loadLinks();
      },
      formNode: dojo.byId("colorsizerefreshform_"+productId)
    });

  },

  setCurrentItemInfo: function(productId){
    var currentItem = dojo.byId("modfiedItem");
    if(currentItem!=null){
      var addtocartform = dojo.byId("addToCart_"+productId); 
      addtocartform.elements.originalItemId.value=currentItem.innerHTML;
    }
  },

  setQuantityOnGiftlistForm: function(){
    var addtocartform = dojo.byId("addToCart"); 
    var currentQuantity = addtocartform.elements.atg_b2cblueprint_quantityField.value;
    var addtogiftlistform = dojo.byId("addToGiftList");
    //set the quantity in the add to gift lsit form and submit it
    addtogiftlistform.elements.giftListAddQuantity.value = currentQuantity;
  }
};


