/**
 * Color/Size picker implementation.
 */

dojo.provide("atg.b2cblueprint.picker");


atg.b2cblueprint.picker={
  //called when a user changes a size

  selectSize: function(select, addMultipleItems, productId){
    var picker = atg.b2cblueprint.picker;
    picker.clickSize(select, addMultipleItems, productId);
  },
  //called when a user changes a style
  selectStyle: function(select, addMultipleItems, productId){
    var picker = atg.b2cblueprint.picker;
    picker.clickStyle(select.options[select.selectedIndex].value, addMultipleItems, productId);
  },
  //called when a user clicks on a color
  clickColor: function(color, addMultipleItems, productId){
	
    if (addMultipleItems) {
      var form = dojo.byId("colorsizerefreshform" + "_" + productId);

      form.elements.productId.value = productId;
      var masterIndex = dojo.byId("hMasterIndex"+"_"+productId).value;
      form.elements.masterIndex.value = masterIndex;


      var currentColor = dojo.byId("hSelectedColor" + "_" + productId).value;
      //if the color is not changing, dont do anything
      if(currentColor == color){
        return;
      }
      form.elements.selectedColor.value = color;
    
    } else {
      var form = dojo.byId("colorsizerefreshform");

      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.setQuantity(addMultipleItems, productId);
    //picker.setGiftlistId();
    picker.submitRefreshForm(addMultipleItems, productId); 
	
	var s=s_gi(s_account);
	var variableString;
	variableString=document.getElementById('OMNIPageNameVar').innerHTML;
	variableString+="|"+ 'Click Color' +"|"+ color;
	
	s.tl(this,'o', variableString);
  },  

  //called when a user clicks on a size
  clickSize: function(size, addMultipleItems, productId){
	
    if (addMultipleItems) {
      var form = dojo.byId("colorsizerefreshform" + "_" + productId);
    
      form.elements.productId.value = productId;

      var masterIndex = dojo.byId("hMasterIndex"+"_" + productId).value;
      form.elements.masterIndex.value = masterIndex;

      var currentSize = dojo.byId("hSelectedSize" + "_" + productId).value;
      //if the user clicks the size that's already selected, don't do anything
      if(currentSize == size){
        return;
      }
      form.elements.selectedSize.value = size;

    } else {
    
      var form = dojo.byId("colorsizerefreshform");
      //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(addMultipleItems, productId);
    //picker.setGiftlistId();
    picker.submitRefreshForm(addMultipleItems, productId); 
	
	var s=s_gi(s_account);
	var variableString;
	variableString=document.getElementById('OMNIPageNameVar').innerHTML;
	variableString+="|"+ 'Click Size' +"|"+ size;
	
	s.tl(this,'o', variableString);
  },
  //called when a user clicks on a style
  clickStyle: function(style, addMultipleItems, productId){
    
    if (addMultipleItems) {
      var form = dojo.byId("colorsizerefreshform" + "_" + productId);

      form.elements.productId.value = productId;

      var masterIndex = dojo.byId("hMasterIndex"+"_"+productId).value;
      form.elements.masterIndex.value = masterIndex;

      var currentStyle = dojo.byId("hSelectedStyle" + "_" + productId).value;
     
      //if the user clicks the style that's already selected, don't do anything
      if(currentStyle == style){
        return;
      }
      form.elements.selectedStyle.value = style;

    } else {
      var form = dojo.byId("colorsizerefreshform");
      
      //if the user clicks the style that's already selected, don't do anything
      var currentStyle = form.elements.selectedStyle.value;
      
      if(currentStyle === style){
        return;
      }
  
      //set the new selected style in the refresh form and submit it
      form.elements.selectedStyle.value = style;
      
    }
    

    var picker=atg.b2cblueprint.picker;
    picker.setQuantity(addMultipleItems, productId);
   // picker.setGiftlistId();
    picker.submitRefreshForm(addMultipleItems, 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(addMultipleItems, productId)
  {
    
    if (addMultipleItems){
      var refreshform = dojo.byId("colorsizerefreshform" + "_" + productId);
    
      var savedQuantity = dojo.byId("atg_b2cblueprint_quantityField"+"_" + productId).value;
      refreshform.elements.savedquantity.value = savedQuantity;
      var masterIndex = dojo.byId("hMasterIndex"+"_" + productId).value;
      var addToCartQuantity = dojo.byId("CartFormHandler.items["+masterIndex+"].quantity");
      addToCartQuantity.value = savedQuantity
    }else {
      var refreshform = dojo.byId("colorsizerefreshform");

      var addtocartform = dojo.byId("addToCart"); 
      if (addtocartform.elements.atg_b2cblueprint_quantityField != null)
      {
        var currentQuantity = addtocartform.elements.atg_b2cblueprint_quantityField.value;
        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()
  {
    var addToGiftListForm = dojo.byId("addToGiftList");
    if(!addToGiftListForm){
      return;  
    }
    if (addToGiftListForm.elements.atg_b2cblueprint_GiftListChoice != null){
    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(addMultipleItems, productId){
      
    if (addMultipleItems){
     
      var form = dojo.byId("colorsizerefreshform" + "_" + productId);

      form.elements.productId.value = productId;
  
      var masterIndex = dojo.byId("hMasterIndex"+"_"+productId).value;
      form.elements.masterIndex.value = masterIndex;
      
      form.elements.selectedSize.value = "";
      form.elements.selectedColor.value = "";
      form.elements.selectedStyle.value = "";
      form.elements.savedquantity.value = "1";
      
      var masterIndex = dojo.byId("hMasterIndex"+"_"+productId).value;
      var addToCartcatalogRefId = dojo.byId("CartFormHandler.items["+masterIndex+"].catalogRefId");
      addToCartcatalogRefId.value = ""; 
      var addToCartQuantity = dojo.byId("CartFormHandler.items["+masterIndex+"].quantity");
      addToCartQuantity.value = "0"
      
           

    } else {
  
      var form = dojo.byId("colorsizerefreshform");

      //reset the new selected size and color in the refresh form and submit it
      form.elements.selectedSize.value = "";
      form.elements.selectedColor.value = "";
      form.elements.selectedStyle.value = "";
      form.elements.savedquantity.value = "1"
    } 

    var picker=atg.b2cblueprint.picker;
    //picker.setQuantity();
   // picker.setGiftlistId();
    picker.submitRefreshForm(addMultipleItems, productId);
    
   
  },

  submitRefreshForm: function(addMultipleItems, productId)
  {
  	
    if (addMultipleItems) {
	    //populate addMultipleItems to retain the value after AJAX call.
	  	if(dojo.byId("colorsizerefreshform"+"_"+productId) != null) {
			if(dojo.byId("colorsizerefreshform"+"_"+productId).elements.addMultipleItems != null) {
			   dojo.byId("colorsizerefreshform"+"_"+productId).elements.addMultipleItems.value = addMultipleItems;
			}
		}
    	dojo.xhrPost({
            url: '',
            load: function(data,ioArgs){
            
            var divColorPicker = dojo.byId("atg_b2cblueprint_picker"+"_"+productId);
            divColorPicker.innerHTML = data;
            
            try{var quickShopVar = isQuickShop;}
			catch(e){var quickShopVar = false;}
				
            if(!quickShopVar) {
            	atg.b2cblueprint.picker.buttonHiderForAccessories();
            	if(checkValid) {
            	   if(productId && productId != ""){
            	       checkColorStyleSizeMsg(true,productId);
            	   }else{
            	       checkColorStyleSize(productId);
            	   }
            	}
            }else{
               if(checkValid) {            	   
            	       checkErrorMsg(productId);            	  
            	}
            }          
            atg.b2cblueprint.picker.setSelectedSku(productId);
         
              
         },

            form: dojo.byId("colorsizerefreshform"+"_"+productId)
       });
    } else {
    dojo.xhrPost({
        url: '',
        load: function(data,ioArgs){
        var divColorPicker = dojo.byId("atg_b2cblueprint_picker");
        divColorPicker.innerHTML = data;
        if(checkValid) checkColorStyleSize();
        
          atg.b2cblueprint.picker.buttonHiderForAccessories(); 
        //for accessory
        //atg.b2cblueprint.picker.accessoryHandle();
     },

        form: dojo.byId("colorsizerefreshform")
   });
       }
  },
  
  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;
  },
  
  //
  resetSelectedSku: function(masterIndex)
  {
      var masterIndex = dojo.byId("hMasterIndex"+"_"+productId).value;
      var addToCartcatalogRefId = dojo.byId("CartFormHandler.items["+masterIndex+"].catalogRefId");
      addToCartcatalogRefId.value = ""; 
      var addToCartQuantity = dojo.byId("CartFormHandler.items["+masterIndex+"].quantity");
      addToCartQuantity.value = "0"
  },
  
  setSelectedSku: function(productId)
  {
    var selectedSkuFlag = dojo.byId("hSelectedSkuFlag"+"_"+productId).value;
   
    if (selectedSkuFlag) {
      var masterIndex = dojo.byId("hMasterIndex"+"_"+productId).value;
      var selectedSkuId = dojo.byId("hSelectedSkuId"+"_"+productId).value;
      var catalogRefId = dojo.byId("CartFormHandler.items["+masterIndex+"].catalogRefId");
      catalogRefId.value = selectedSkuId; 
      
    } else {
      atg.b2cblueprint.picker.resetSelectedSku(productId);
    }
    
  },
  
  copyInnerHtml: function(fromId, toId)
  {
	var fromDiv = dojo.byId(fromId);
	var toDiv = dojo.byId(toId);
	if(fromDiv == null || toDiv == null)
	{
		return false;
	}
	var data = fromDiv.innerHTML;
	toDiv.innerHTML = data;
	return true;
  },
  
  accessoryHandle: function()
  {
 	 if(dojo.byId("actionBottom") != null)
 	 {
 	 	var divActionTop = document.getElementById("actionTop");
 	 	atg.b2cblueprint.picker.copyInnerHtml('actionTop','actionBottom');
 	 	divActionTop.style.display = 'none';	 		 	
// 	 	var divColorPicker = document.getElementById("atg_b2cblueprint_picker");
// 	 	divColorPicker.innerHTML = divColorPicker.innerHTML.replace("id=\"accesoryHiddenActionDiv\"","style=\"display: none\"; id=\"accesoryHiddenActionDiv\"");
// 	 	divColorPicker.innerHTML = divColorPicker.innerHTML.replace('id="accesoryHiddenActionDiv"','style="display: none;" id="accesoryHiddenActionDiv"')
 	 	var divActionBottom = document.getElementById("actionBottom");
		divActionBottom.innerHTML = divActionBottom.innerHTML.replace("onclick=\"richCart.postData('addToCart');\"","onclick=\"richCart.postDataForAssessory('addToCart','addToCartForAccessories',this);\" name=\"/atg/b2cblueprint/order/purchase/CartFormHandler.addItemToOrder\"");  
 	 }
  },
 buttonHiderForAccessories:function()
 {

	var productSize = dojo.byId("productSize").value;
	
	var productIds=document.getElementsByName("productIds");

	var button = dojo.byId("add_to_cart_button");
	
	var display = '';
	
	for(i=0; i<productSize ; i++){
	    if(dojo.byId("hAvailabilityType"+"_"+productIds[i].value)){
		var availability = dojo.byId("hAvailabilityType"+"_"+productIds[i].value).value;
	
	
		if(availability == 'available'||availability == 'backorderable'||availability == 'preorderable'){
       		   		display='';
       		   		break;
       	    }else if (availability=='unavailable'){
       		        display='block';     
       	   }
       	   }
	}
	button.style.display='block';
	}
  
};


