dojo.provide("atg.b2cblueprint.shipping");

atg.b2cblueprint.shipping={

  /*
    //////////////////////////////////////////////////////////////////////////
        Methods used for 'Shipping Calculation' popup from the cart page
    //////////////////////////////////////////////////////////////////////////
  */
  
  openCalculateOrderShippingPopup: function(pEventCodeTracking ) {
      var trigger = dojo.widget.byId("richCalculateOrderShippingTrigger");
      trigger.toggleCalculateShipping(pEventCodeTracking);
  },
  
  
  getShippingCostForOrder: function() {

    var calculateShippingWidjet = dojo.widget.byId("calculateOrderShipping");

    dojo.io.bind({
    load: function(type, data, evt){

      var results = dojo.byId("atg_mff_calculateOrderShippingResults");
      results.innerHTML = data;
      var shippingTotal = dojo.byId("shippingTotalForOrder");
      
      calculateShippingWidjet.calculateShippingTotal.innerHTML = shippingTotal.value;
      var shippingOnCart = dojo.byId("calculateShippingId");
      
      shippingOnCart.innerHTML = shippingTotal.value;
    },
    formNode: dojo.byId("calculateOrderShippingResultsForm")
    });
  },
  
  
  changeMethodOnPopup: function(pSelect,pSourceWidgetId, index) {
    var methodToSubmit = dojo.byId(pSelect.id + "_method");
    
    methodToSubmit.value = pSelect.options[pSelect.selectedIndex].value;
    
    var calculateShippingWidjet = dojo.widget.byId(pSourceWidgetId);
    var saturdayDeliveryFlag = dojo.byId("RichCartSaturdayDelivery" + index);
//    var syncDelivery = true;
//    if (pSelect.id == 'defaultShippingGroup' && pSelect.options[pSelect.selectedIndex].value == 'Standard 4 to 7 Business Day Delivery') {
//      syncDelivery = false;
//    }
    atg.b2cblueprint.shipping.checkMethod(pSelect, saturdayDeliveryFlag, index, true);
  },
  
  
  initSaturdayDelivery: function (pCalculateShippingWidjet){
    var validForSaturdayDelivery = document.getElementById("validForSaturdayDelivery");
    if (validForSaturdayDelivery.value == 'true') {
      var deliveryOnSaturday;
      var currentSelection;

      var saturdayDeliveryMethod = document.getElementById("saturdayDeliveryMethod").value;
      if (saturdayDeliveryMethod == "Express 1 Day Delivery") {
        var index = 0;
        deliveryOnSaturday = document.getElementById("RichCartSaturdayDelivery" + index);
        while (deliveryOnSaturday) {
          currentSelection = document.getElementById("auxiliaryExpressExpediteShippingGroup" + index);
          if (currentSelection) {
            deliveryOnSaturday.disabled = (0 != currentSelection.options[currentSelection.selectedIndex].value.indexOf('Express'));
            if ( deliveryOnSaturday.disabled ) {
              deliveryOnSaturday.checked = false;
            }
          }
          currentSelection = document.getElementById("defaultShippingGroup" + index);
          if (currentSelection) {
            deliveryOnSaturday.disabled = (0 != currentSelection.options[currentSelection.selectedIndex].value.indexOf('Express'));
            if ( deliveryOnSaturday.disabled ) {
              deliveryOnSaturday.checked = false;
            }
          }
          currentSelection = document.getElementById("auxiliaryStandardLLShippingGroup" + index);
          if (currentSelection) {
            deliveryOnSaturday.disabled = (0 != currentSelection.options[currentSelection.selectedIndex].value.indexOf('Express'));
            if ( deliveryOnSaturday.disabled ) {
              deliveryOnSaturday.checked = false;
            }
          }
          index++;
          deliveryOnSaturday = document.getElementById("RichCartSaturdayDelivery" + index);
        }
      } else if (saturdayDeliveryMethod == "Expedite 2 to 3 Business Day Delivery") {
        var index = 0;
        deliveryOnSaturday = document.getElementById("RichCartSaturdayDelivery" + index);
        while (deliveryOnSaturday) {
          currentSelection = document.getElementById("auxiliaryExpressExpediteShippingGroup" + index);
          if (currentSelection) {
            deliveryOnSaturday.disabled = (0 != currentSelection.options[currentSelection.selectedIndex].value.indexOf('Expedite'));
            if ( deliveryOnSaturday.disabled ) {
              deliveryOnSaturday.checked = false;
            }
          }
          currentSelection = document.getElementById("defaultShippingGroup" + index);
          if (currentSelection) {
            deliveryOnSaturday.disabled = (0 != currentSelection.options[currentSelection.selectedIndex].value.indexOf('Expedite'));
            if ( deliveryOnSaturday.disabled ) {
              deliveryOnSaturday.checked = false;
            }
          }
          currentSelection = document.getElementById("auxiliaryStandardLLShippingGroup" + index);
          if (currentSelection) {
            deliveryOnSaturday.disabled = (0 != currentSelection.options[currentSelection.selectedIndex].value.indexOf('Expedite'));
            if ( deliveryOnSaturday.disabled ) {
              deliveryOnSaturday.checked = false;
            }
          }
          index++;
          deliveryOnSaturday = document.getElementById("RichCartSaturdayDelivery" + index);
        }
      }
    }
  },
  
  setDeliveryOnSaturday: function(pShippingGroupName, pSaturdayDeliveryFlag, index, pChecked) {
    pSaturdayDeliveryFlag.checked = pChecked;
    changeSaturdayDeliveryCheckbox(pShippingGroupName, pSaturdayDeliveryFlag, index);
  },

  checkMethod: function (pSelect, pSaturdayDeliveryFlag, index, pSyncDelivery) {
    var validForSaturdayDelivery = document.getElementById("validForSaturdayDelivery");
    if (validForSaturdayDelivery.value == 'true') {
      var saturdayDeliveryMethod = document.getElementById("saturdayDeliveryMethod").value;
      var deliveryOnSaturday = pSaturdayDeliveryFlag;
      
      if (pSyncDelivery) {
        atg.b2cblueprint.shipping.syncDelivery(pSelect, index, 'true');
      }
      deliveryOnSaturday.disabled = !atg.b2cblueprint.shipping.isValidSaturdayDelivery(saturdayDeliveryMethod, pSelect);
      if ( deliveryOnSaturday.disabled ) {
        deliveryOnSaturday.checked = false;
        var saturdayDeliveryToSend = dojo.byId(pSelect.id + "_deliveryOnSaturday");
        saturdayDeliveryToSend.value = false;
      }
      var pShippingGroup = atg.b2cblueprint.shipping.getShipmentName(index);
      atg.b2cblueprint.shipping.repairSaturdayDeliveryCheckbox(pShippingGroup, index);
    } else {
      if (pSyncDelivery) {
        atg.b2cblueprint.shipping.syncDelivery(pSelect, index, 'false');
      }
    }
  }, 

  isValidSaturdayDelivery: function(saturdayDeliveryMethod, pSelect) {
    return ( 0 == pSelect.options[pSelect.selectedIndex].value.indexOf(saturdayDeliveryMethod) );
  },

  isValidSaturdayDeliveryRichCart: function(pSelect) {
    var saturdayDeliveryMethod = document.getElementById("saturdayDeliveryMethod").value;
    return ( 0 == pSelect.options[pSelect.selectedIndex].value.indexOf(saturdayDeliveryMethod) );
  },

  isAnotherGroupHasSelection: function (pSaturdayDeliveryMethod) {
    var anotherSelection = document.getElementById("auxiliaryExpressExpediteShippingGroup");
    if (anotherSelection && anotherSelection.options[anotherSelection.selectedIndex].value == pSaturdayDeliveryMethod) {
      return true;
    }
    return false;
  },

  syncDelivery: function (pSelect, index, deliveryOnSaturday) {
    var shmethod = pSelect.options[pSelect.selectedIndex].value;
    var pShippingGroup = atg.b2cblueprint.shipping.getShipmentName(index);
    if ( pShippingGroup == "auxiliaryExpressExpediteShippingGroup" ) {
      if ( 0 == shmethod.indexOf("Expedite") ) {
        var shipment = atg.b2cblueprint.shipping.findShipment("defaultShippingGroup");
        if ( -1 < shipment ) {
            var method = dojo.byId("defaultShippingGroup" + shipment);
            if ( 0 != method.selectedIndex ) {
              method.selectedIndex = 1;
              dojo.byId("defaultShippingGroup" + shipment + "_method").value = method.options[method.selectedIndex].value;
              if (deliveryOnSaturday) {
                atg.b2cblueprint.shipping.checkDeliveryOnSaturdayRichCart("defaultShippingGroup", method, shipment);
              }
          }
        }
      } else if ( 0 == shmethod.indexOf("Express") ) {
        var shipment = atg.b2cblueprint.shipping.findShipment("defaultShippingGroup");
        if ( -1 < shipment ) {
          var method = dojo.byId("defaultShippingGroup" + shipment);
          if ( 0 != method.selectedIndex ) {
            method.selectedIndex = 2;
            dojo.byId("defaultShippingGroup" + shipment + "_method").value = method.options[method.selectedIndex].value;
            if (deliveryOnSaturday) {
              atg.b2cblueprint.shipping.checkDeliveryOnSaturdayRichCart("defaultShippingGroup", method, shipment);
            }
          }
        }
      }
    } else if ( pShippingGroup == "defaultShippingGroup" ) {
      if ( 0 == shmethod.indexOf("Expedite") ) {
        var shipment = atg.b2cblueprint.shipping.findShipment("auxiliaryExpressExpediteShippingGroup");
        if ( -1 < shipment ) {
          var method = dojo.byId("auxiliaryExpressExpediteShippingGroup" + shipment);
          method.selectedIndex = 0;
          dojo.byId("auxiliaryExpressExpediteShippingGroup" + shipment + "_method").value = method.options[method.selectedIndex].value;
          if (deliveryOnSaturday) {
            atg.b2cblueprint.shipping.checkDeliveryOnSaturdayRichCart("auxiliaryExpressExpediteShippingGroup", method, shipment);
          }
        }
      } else if ( 0 == shmethod.indexOf("Express") ) {
        var shipment = atg.b2cblueprint.shipping.findShipment("auxiliaryExpressExpediteShippingGroup");
        if ( -1 < shipment ) {
          var method = dojo.byId("auxiliaryExpressExpediteShippingGroup" + shipment);
          method.selectedIndex = 1;
          dojo.byId("auxiliaryExpressExpediteShippingGroup" + shipment + "_method").value = method.options[method.selectedIndex].value;
          if (deliveryOnSaturday) {
            atg.b2cblueprint.shipping.checkDeliveryOnSaturdayRichCart("auxiliaryExpressExpediteShippingGroup", method, shipment);
          }
        }
      }
    }
  },
  
  /*
    ///////////////////////////////////////////////
        Methods used on the 'Shipping' step
    ///////////////////////////////////////////////
  */
  
  changeMethodOnShippingStep: function(pRadio, pShippingGroupName, pSyncDelivery, pSourceWidgetId, index)
  {
    var shippingOnCart = dojo.byId("orderShippingCost");
    shippingOnCart.innerHTML = "<font style=\"font-size: 0.8em\">Calculating...</font>";

    var totalOnCart = dojo.byId("orderTotalCost");
    totalOnCart.innerHTML = "<font style=\"font-size: 0.8em\">Calculating...</font>";

    var methodToSubmit = dojo.byId(pShippingGroupName + index + "_method");
    methodToSubmit.value = pRadio.value;
    
    atg.b2cblueprint.shipping.checkMethodOnShippingStep(pShippingGroupName, pRadio, pSyncDelivery, index);
    
    dojo.io.bind({
    load: function(type, data, evt){

      var results = dojo.byId("atg_mff_calculateOrderShippingResults");
      results.innerHTML = data;
      var shippingTotal = dojo.byId("shippingTotalForOrder");
      var orderTotal = dojo.byId("orderTotalForOrder");
      
      shippingOnCart.innerHTML = shippingTotal.value;
      totalOnCart.innerHTML = orderTotal.value;

      },
    formNode: dojo.byId("calculateOrderShippingResultsForm")
    });
  },

  clickSaturdayDeliveryCheckbox: function(pShippingGroupName, pSaturdayDeliveryFlag, index) {
    atg.b2cblueprint.shipping.changeSaturdayDeliveryCheckbox(pShippingGroupName, pSaturdayDeliveryFlag, index);
    atg.b2cblueprint.shipping.syncSaturdayDeliveryCheckbox(pShippingGroupName, pSaturdayDeliveryFlag, index);
  },

  syncSaturdayDeliveryCheckbox: function(pShippingGroupName, pSaturdayDeliveryFlag, index) {
    if ( "defaultShippingGroup" == pShippingGroupName ) {
      var shipment = atg.b2cblueprint.shipping.findShipment("auxiliaryExpressExpediteShippingGroup");
      if ( -1 < shipment ) {
        var anotherFlag = dojo.byId("RichCartSaturdayDelivery" + shipment);
        if (anotherFlag && !anotherFlag.disabled && anotherFlag.checked != pSaturdayDeliveryFlag.checked ) {
          anotherFlag.checked = pSaturdayDeliveryFlag.checked;
          atg.b2cblueprint.shipping.changeSaturdayDeliveryCheckbox("auxiliaryExpressExpediteShippingGroup", anotherFlag, shipment);
        }
      }
    } else if ( "auxiliaryExpressExpediteShippingGroup" == pShippingGroupName ) {
      var shipment = atg.b2cblueprint.shipping.findShipment("defaultShippingGroup");
      if ( -1 < shipment ) {
        var anotherFlag = dojo.byId("RichCartSaturdayDelivery" + shipment);
        if (anotherFlag && !anotherFlag.disabled && anotherFlag.checked != pSaturdayDeliveryFlag.checked ) {
          anotherFlag.checked = pSaturdayDeliveryFlag.checked;
          atg.b2cblueprint.shipping.changeSaturdayDeliveryCheckbox("defaultShippingGroup", anotherFlag, shipment);
        }
      }
    }
  },

  repairSaturdayDeliveryCheckbox: function(pShippingGroupName, index) {
    if ( "defaultShippingGroup" == pShippingGroupName ) {
      var pSaturdayDeliveryFlag = dojo.byId("RichCartSaturdayDelivery" + index);
      if ( pSaturdayDeliveryFlag && !pSaturdayDeliveryFlag.disabled ) {
        var shipment = atg.b2cblueprint.shipping.findShipment("auxiliaryExpressExpediteShippingGroup");
        if ( -1 < shipment ) {
          var anotherFlag = dojo.byId("RichCartSaturdayDelivery" + shipment);
          if (anotherFlag && !anotherFlag.disabled && anotherFlag.checked != pSaturdayDeliveryFlag.checked ) {
            pSaturdayDeliveryFlag.checked = anotherFlag.checked;
            atg.b2cblueprint.shipping.changeSaturdayDeliveyValue("defaultShippingGroup", index, pSaturdayDeliveryFlag.checked);
          }
        }
      }
    }
  },

  changeSaturdayDeliveryCheckbox: function(pShippingGroupName, pSaturdayDeliveryFlag, index) {
    var saturdayDeliveryToSend = dojo.byId(pShippingGroupName + index + "_deliveryOnSaturday");
    saturdayDeliveryToSend.value = pSaturdayDeliveryFlag.checked;
  },

  changeSaturdayDeliveyValue: function(pShippingGroupName, index, pChecked) {
    var saturdayDeliveryToSend = dojo.byId(pShippingGroupName + index + "_deliveryOnSaturday");
    saturdayDeliveryToSend.value = pChecked;
  },
  
  changeSaturdayDeliveryCheckboxOnShippingStep: function(pShippingGroupName, pSaturdayDeliveryFlag, index)
  {
    var shippingOnCart = dojo.byId("orderShippingCost");
    shippingOnCart.innerHTML = "<font style=\"font-size: 0.8em\">Calculating...</font>";

    var totalOnCart = dojo.byId("orderTotalCost");
    totalOnCart.innerHTML = "<font style=\"font-size: 0.8em\">Calculating...</font>";

    atg.b2cblueprint.shipping.changeSaturdayDeliveyValue(pShippingGroupName, index, pSaturdayDeliveryFlag.checked);
    atg.b2cblueprint.shipping.syncSaturdayDeliveryCheckboxOnShippingStep(pShippingGroupName, pSaturdayDeliveryFlag, index);
    
    dojo.io.bind({
    load: function(type, data, evt){

      var results = dojo.byId("atg_mff_calculateOrderShippingResults");
      results.innerHTML = data;
      var shippingTotal = dojo.byId("shippingTotalForOrder");
      var orderTotal = dojo.byId("orderTotalForOrder");
      
      shippingOnCart.innerHTML = shippingTotal.value;
      totalOnCart.innerHTML = orderTotal.value;

      },
    formNode: dojo.byId("calculateOrderShippingResultsForm")
    });
  },
  
  syncSaturdayDeliveryCheckboxOnShippingStep: function(pShippingGroupName, pSaturdayDeliveryFlag, index) {
    if ( "defaultShippingGroup" == pShippingGroupName ) {
      var shipment = atg.b2cblueprint.shipping.findShipment("auxiliaryExpressExpediteShippingGroup");
      if ( -1 < shipment ) {
        var anotherFlag = dojo.byId("deliveryOnSaturdayFlag" + shipment);
        if (anotherFlag && !anotherFlag.disabled && anotherFlag.checked != pSaturdayDeliveryFlag.checked ) {
          anotherFlag.checked = pSaturdayDeliveryFlag.checked;
          atg.b2cblueprint.shipping.changeSaturdayDeliveyValue("auxiliaryExpressExpediteShippingGroup", shipment, anotherFlag.checked);
        }
      }
    } else if ( "auxiliaryExpressExpediteShippingGroup" == pShippingGroupName ) {
      var shipment = atg.b2cblueprint.shipping.findShipment("defaultShippingGroup");
      if ( -1 < shipment ) {
        var anotherFlag = dojo.byId("deliveryOnSaturdayFlag" + shipment);
        if (anotherFlag && !anotherFlag.disabled && anotherFlag.checked != pSaturdayDeliveryFlag.checked ) {
          anotherFlag.checked = pSaturdayDeliveryFlag.checked;
          atg.b2cblueprint.shipping.changeSaturdayDeliveyValue("defaultShippingGroup", shipment, anotherFlag.checked);
        }
      }
    }
  },

  repairSaturdayDeliveryCheckboxOnShippingStep: function(pShippingGroupName, index) {
    if ( "defaultShippingGroup" == pShippingGroupName ) {
      var pSaturdayDeliveryFlag = dojo.byId("deliveryOnSaturdayFlag" + index);
      if ( pSaturdayDeliveryFlag && !pSaturdayDeliveryFlag.disabled ) {
        var shipment = atg.b2cblueprint.shipping.findShipment("auxiliaryExpressExpediteShippingGroup");
        if ( -1 < shipment ) {
          var anotherFlag = dojo.byId("deliveryOnSaturdayFlag" + shipment);
          if (anotherFlag && !anotherFlag.disabled && anotherFlag.checked != pSaturdayDeliveryFlag.checked ) {
            pSaturdayDeliveryFlag.checked = anotherFlag.checked;
            atg.b2cblueprint.shipping.changeSaturdayDeliveyValue("defaultShippingGroup", index, pSaturdayDeliveryFlag.checked);
          }
        }
      }
    }
  },
  
  initSaturdayDeliveryOnShippingStep: function () {
    var validForSaturdayDelivery = document.getElementById("validForSaturdayDelivery");
    if (validForSaturdayDelivery.value == 'true') {
      var saturdayDeliveryMethod = document.getElementById("saturdayDeliveryMethod").value;
      var index = 0;
      var deliveryOnSaturday = document.getElementById("deliveryOnSaturdayFlag" + index);
      while (deliveryOnSaturday) {
        var shoppingGroup = null;
        if (saturdayDeliveryMethod == "Express 1 Day Delivery") {
          var currentSelection = document.getElementById("shippingMethod_auxExpExp_expressDelivery" + index);
          if ( currentSelection ) {
            shoppingGroup = "auxiliaryExpressExpediteShippingGroup";
            deliveryOnSaturday.disabled = !currentSelection.checked;
          } else {
            currentSelection = document.getElementById("shippingMethod_default_express" + index);
            if ( currentSelection ) {
              shoppingGroup = "defaultShippingGroup";
              deliveryOnSaturday.disabled = !currentSelection.checked;
            } else {
              currentSelection = document.getElementById("shippingMethod_default_express_ll" + index);
              if ( currentSelection ) {
                shoppingGroup = "auxiliaryStandardLLShippingGroup";
                deliveryOnSaturday.disabled = !currentSelection.checked;
              }
            }
          }
        } else if (saturdayDeliveryMethod == "Expedite 2 to 3 Business Day Delivery") {
          var currentSelection = document.getElementById("shippingMethod_auxExpExp_expediteDelivery" + index);
          if ( currentSelection ) { 
            shoppingGroup = "auxiliaryExpressExpediteShippingGroup";
            deliveryOnSaturday.disabled = !currentSelection.checked;
          } else {
            currentSelection = document.getElementById("shippingMethod_default_expedite" + index);
            if ( currentSelection ) {
              shoppingGroup = "defaultShippingGroup";
              deliveryOnSaturday.disabled = !currentSelection.checked;
            } else {
              currentSelection = document.getElementById("shippingMethod_default_expedite_ll" + index);
              if ( currentSelection ) {
                shoppingGroup = "auxiliaryStandardLLShippingGroup";
                deliveryOnSaturday.disabled = !currentSelection.checked;
              }
            }
          }
        }
        if ( deliveryOnSaturday.disabled ) {
          deliveryOnSaturday.checked = false;
        }
        if ( shoppingGroup ) {
          atg.b2cblueprint.shipping.changeSaturdayDeliveyValue(shoppingGroup, index, deliveryOnSaturday.checked);
        }
        index++;
        deliveryOnSaturday = document.getElementById("deliveryOnSaturdayFlag" + index);
      }
    }
  },

  checkMethodOnShippingStep: function (pShippingGroup, pRadio, pSyncDelivery, index) {

    var validForSaturdayDelivery = document.getElementById("validForSaturdayDelivery");
    if (validForSaturdayDelivery.value == 'true') {
      if (pSyncDelivery) {
        atg.b2cblueprint.shipping.syncDeliveryOnShippingStep(pShippingGroup, pRadio, index, 'true');
      }
      atg.b2cblueprint.shipping.checkDeliveryOnSaturday(pShippingGroup, pRadio, index);
      atg.b2cblueprint.shipping.repairSaturdayDeliveryCheckboxOnShippingStep(pShippingGroup, index);
    } else {
      if (pSyncDelivery) {
        atg.b2cblueprint.shipping.syncDeliveryOnShippingStep(pShippingGroup, pRadio, index, 'false');
      }
    }
    
  },
  
  checkDeliveryOnSaturday: function(pShippingGroup, pRadio, index) {
      var deliveryOnSaturday = document.getElementById("deliveryOnSaturdayFlag" + index);
      deliveryOnSaturday.disabled = !atg.b2cblueprint.shipping.isValidSaturdayDeliveryOnShippingStep(pRadio);
      if ( deliveryOnSaturday.disabled ) {
        deliveryOnSaturday.checked = false;
        atg.b2cblueprint.shipping.changeSaturdayDeliveyValue(pShippingGroup, index, false);
      }
  }, 

  checkDeliveryOnSaturdayRichCart: function(pShippingGroup, pSelect, index) {
    var deliveryOnSaturday = document.getElementById("RichCartSaturdayDelivery" + index);
    deliveryOnSaturday.disabled = !atg.b2cblueprint.shipping.isValidSaturdayDeliveryRichCart(pSelect);
    if ( deliveryOnSaturday.disabled ) {
      deliveryOnSaturday.checked = false;
      atg.b2cblueprint.shipping.changeSaturdayDeliveyValue(pShippingGroup, index, false);
    }
  }, 

  isValidSaturdayDeliveryOnShippingStep: function(pRadio) {
    var shmethod = pRadio.value;
    if (shmethod) {
      var saturdayDeliveryMethod = document.getElementById("saturdayDeliveryMethod").value;
      if ("Express 1 Day Delivery" == saturdayDeliveryMethod) {
        if (0==shmethod.indexOf("Express")) {
          return true;
        }
      } else if ("Expedite 2 to 3 Business Day Delivery" == saturdayDeliveryMethod) {
        if (0==shmethod.indexOf("Expedite")) {
          return true;
        }
      }
    }
  },

  isAnotherGroupHasSelectionOnShippingStep: function (pSaturdayDeliveryMethod) {
    if (pSaturdayDeliveryMethod == "Express 1 Day Delivery") {
      var anotherSelection = document.getElementById("shippingMethod_auxExpExp_expressDelivery");
      if (anotherSelection && anotherSelection.checked) {
        return true;
      }
    } else if (pSaturdayDeliveryMethod == "Expedite 2 to 3 Business Day Delivery") {
      var anotherSelection = document.getElementById("shippingMethod_auxExpExp_expediteDelivery");
      if (anotherSelection && anotherSelection.checked) {
        return true;
      }
    }
    return false;
  },

  syncDeliveryOnShippingStep: function (pShippingGroup, pRadio, index, deliveryOnSaturday) {
    var shmethod = pRadio.value;
    if ( pShippingGroup == "auxiliaryExpressExpediteShippingGroup" ) {
      if ( 0 == shmethod.indexOf("Expedite") ) {
        var shipment = atg.b2cblueprint.shipping.findShipment("defaultShippingGroup");
        if ( -1 < shipment ) {
          var defaultShipment = dojo.byId("shippingMethod_default_standard" + shipment);
          if ( defaultShipment && !defaultShipment.checked ) {
            var method = dojo.byId("shippingMethod_default_expedite" + shipment);
            method.checked = true;
            dojo.byId("defaultShippingGroup" + shipment + "_method").value = method.value;
            if (deliveryOnSaturday) {
              atg.b2cblueprint.shipping.checkDeliveryOnSaturday("defaultShippingGroup", method, shipment);
            }
          }
        }
      } else if ( 0 == shmethod.indexOf("Express") ) {
        var shipment = atg.b2cblueprint.shipping.findShipment("defaultShippingGroup");
        if ( -1 < shipment ) {
          var defaultShipment = dojo.byId("shippingMethod_default_standard" + shipment);
          if ( defaultShipment && !defaultShipment.checked ) {
            var method = dojo.byId("shippingMethod_default_express" + shipment);
            method.checked = true;
            dojo.byId("defaultShippingGroup" + shipment + "_method").value = method.value;
            if (deliveryOnSaturday) {
              atg.b2cblueprint.shipping.checkDeliveryOnSaturday("defaultShippingGroup", method, shipment);
            }
          }
        }
      }
    } else if ( pShippingGroup == "defaultShippingGroup" ) {
      if ( 0 == shmethod.indexOf("Expedite") ) {
        var shipment = atg.b2cblueprint.shipping.findShipment("auxiliaryExpressExpediteShippingGroup");
        if ( -1 < shipment ) {
          var method = dojo.byId("shippingMethod_auxExpExp_expediteDelivery" + shipment);
          method.checked = true;
          dojo.byId("auxiliaryExpressExpediteShippingGroup" + shipment + "_method").value = method.value;
          if (deliveryOnSaturday) {
            atg.b2cblueprint.shipping.checkDeliveryOnSaturday("auxiliaryExpressExpediteShippingGroup", method, shipment);
          }
        }
      } else if ( 0 == shmethod.indexOf("Express") ) {
        var shipment = atg.b2cblueprint.shipping.findShipment("auxiliaryExpressExpediteShippingGroup");
        if ( -1 < shipment ) {
          var method = dojo.byId("shippingMethod_auxExpExp_expressDelivery" + shipment);
          method.checked = true;
          dojo.byId("auxiliaryExpressExpediteShippingGroup" + shipment + "_method").value = method.value;
          if (deliveryOnSaturday) {
            atg.b2cblueprint.shipping.checkDeliveryOnSaturday("auxiliaryExpressExpediteShippingGroup", method, shipment);
          }
        }
      }
    }
  },
  
  findShipment: function(pShipment) {
    var result = -1;
    var index = 0;
    var shipment = dojo.byId("mff.shipment" + index);
    while (shipment) {
      if ( pShipment == shipment.value ) {
        result = index;
        break;
      }
      shipment = dojo.byId("mff.shipment" + (++index));
    }
    return result;
  },
  
  getShipmentName: function(index) {
    var result = null;
    var shipment = dojo.byId("mff.shipment" + index);
    if ( shipment ) {
      result = shipment.value;
    }
    return result;
  },

  /*
    ///////////////////////////////////////////////////
        Shipping calculation from the product page
    ///////////////////////////////////////////////////
  */
  
  openCalculateProductShippingPopup: function(pEventCodeTracking) {
      var trigger = dojo.widget.byId("richCalculateShippingTrigger");
      trigger.toggleCalculateShipping(pEventCodeTracking);
  },
  
  
  submitRefreshForm: function() {
    dojo.io.bind({
    load: function(type, data, evt){
      var divColorPicker = dojo.byId("atg_b2cblueprint_calculateShippingResults");
      divColorPicker.innerHTML = data;
      },
    formNode: dojo.byId("calculateShippingResultsForm")
    });
  },
  
  initSaturdayDeliveryOnProductPage: function(pCalculateShippingWidjet, pCalculateShippingSelect) {
    var saturdayDeliveryMethod = dojo.byId("hShippingMethodForSaturdayDelivery");

    if (saturdayDeliveryMethod.value != '' ) {

      var saturdayDeliveryFlag = pCalculateShippingWidjet.saturdayDeliveryFlag;//dojo.byId("saturdayDeliveryFlag");
      
      var selectedMethod = pCalculateShippingSelect.options[0];
      if (selectedMethod.value == saturdayDeliveryMethod.value) {
        saturdayDeliveryFlag.disabled = false;
      } else {
        saturdayDeliveryFlag.disabled = true;
        saturdayDeliveryFlag.checked = false;
      }
    } else {
      dojo.html.hide(pCalculateShippingWidjet.saturdayDelivery);
    }
  },
  
  checkSaturday: function(pSelect,pSourceWidgetId) {
    
    var calculateShippingWidjet = dojo.widget.byId(pSourceWidgetId);
    var saturdayDeliveryMethod = dojo.byId("hShippingMethodForSaturdayDelivery");
    
    var saturdayDeliveryFlag = calculateShippingWidjet.saturdayDeliveryFlag;//dojo.byId("saturdayDeliveryFlag");
    
    var selectedMethod = pSelect.options[pSelect.selectedIndex];
    if (saturdayDeliveryMethod.value != '' && selectedMethod.value == saturdayDeliveryMethod.value) {
      saturdayDeliveryFlag.disabled = false;
    } else {
      saturdayDeliveryFlag.disabled = true;
      saturdayDeliveryFlag.checked = false;
    }
  },
  
  getShippingCost: function() {
    var calculateShippingWidjet = dojo.widget.byId("calculateShipping");
    
    var quantityToSend = dojo.byId("hQuantity");
    var addtocartform = dojo.byId("addToCart"); 
    var selectedQuantity = addtocartform.elements.atg_b2cblueprint_quantityField;
    if (undefined==selectedQuantity.length) {
      quantityToSend.value = selectedQuantity.value;
    } else {
      quantityToSend.value = 0;
      var skuarray = "";
      try {
        var selectedSku = addtocartform.elements.atg_b2cblueprint_catalogRefId;
        for (var i = 0; i < selectedQuantity.length; i++ ) {
          skuarray += selectedSku[i].value + "=" + selectedQuantity[i].value + ":";
        }
        var hSkuArray = dojo.byId("hSkuArray");
        hSkuArray.value = skuarray;
      } catch (err) {
        skuarray = "";
      } 
    }
    
    var calculateShippingSelect = calculateShippingWidjet.calculateShippingSelect;//dojo.byId("calculateShippingSelect");
    var methodToSend = dojo.byId("hShippingMethod");
    var selectedOption = calculateShippingSelect.options[calculateShippingSelect.selectedIndex];
    methodToSend.value = selectedOption.value;

    var saturdayDeliveryFlag = calculateShippingWidjet.saturdayDeliveryFlag;//dojo.byId("saturdayDeliveryFlag");
    var saturdayDeliveryToSend = dojo.byId("hDeliveryOnSaturday");
    saturdayDeliveryToSend.value = saturdayDeliveryFlag.checked;
    
    dojo.io.bind({
    load: function(type, data, evt){
      var divColorPicker = dojo.byId("atg_b2cblueprint_calculateShippingResults");
      divColorPicker.innerHTML = data;
      var shippingTotal = dojo.byId("hShippingTotal");
      
      calculateShippingWidjet.selectedMethod.innerHTML = selectedOption.text;
      calculateShippingWidjet.saturdayDeliveryShow.innerHTML ="";
      if(calculateShippingWidjet.saturdayDeliveryFlag.checked){
        calculateShippingWidjet.saturdayDeliveryShow.innerHTML = '(' + calculateShippingWidjet.i18n.showSaturdayDeliveryText + ')';
      }
      calculateShippingWidjet.calculateShippingTotal.innerHTML = '- ' + shippingTotal.value;
      },
    formNode: dojo.byId("calculateShippingResultsForm")
    });
  }
};


//"auxiliaryExpressExpediteShippingGroup"
//"defaultShippingGroup"
//"auxiliaryStandardLLShippingGroup"
