﻿function ecf_PurchaseModule_OnAccessoriesUpdate(source, accessories)
{
    ecf_PurchaseModule_InitAccessoryCheckboxes();
}

function ecf_PurchaseModule_UpdatePrices(source, accessories)
{
    if(source!=null)
    {
        if(!source.checked)
        {
            accessories[0] = -source.getAttribute('accessoryid');
        }       
    }
    
    try
    {
        Ignify.eCommerce.Web.Store.MasterTemplates.Ignify.Modules.SharedModules.PurchaseModule.UpdatePrice(m_ecf_PurchaseModule_ProductId, m_ecf_PurchaseModule_VariationId, m_ecf_PurchaseModule_CurrencyCode, accessories, function(result) {ecf_PurchaseModule_UpdatePricesCallback(result, source);});
    }
    catch(error)
    {
        ecf_PurchaseModule_ToggleAccessoryCheckboxes(false);
    }
}

function ecf_PurchaseModule_UpdatePricesCallback(result, source)
{
   
    var itemCode = document.getElementById(m_ecf_PurchaseModule_ItemCodeControlId);    
    //var availability = document.getElementById(m_ecf_PurchaseModule_AvailabilityControlId);
    var priceListControl = document.getElementById(m_ignify_PurchaseModule_PriceListControlId);
    var qtyPricingControl = document.getElementById(m_ecf_PurchaseModule_QtyPricingControlId);
    
    var itemStockQty = document.getElementById(m_ecf_PurchaseModule_StockQtyControlId);
    var priceSaveControl = document.getElementById(m_ignify_PurchaseModule_PriceSaveControlId);
    var prodButton = document.getElementById(m_ecf_PurchaseModule_btnAddtoCartControlId);
    var HeightInc= null;
    if(m_ecf_PurchaseModule_HeightIncControlId!=null)
         HeightInc= document.getElementById(m_ecf_PurchaseModule_HeightIncControlId);
    var HeightCm=null;
    if(m_ecf_PurchaseModule_HeightCmControlId!=null)
        HeightCm=document.getElementById(m_ecf_PurchaseModule_HeightCmControlId);
    var LengthInc= null;
    if(m_ecf_PurchaseModule_LengthIncControlId!=null)
        LengthInc=document.getElementById(m_ecf_PurchaseModule_LengthIncControlId);
    var LengthCm=null;
    if(m_ecf_PurchaseModule_LengthCmControlId!=null)
        LengthCm=document.getElementById(m_ecf_PurchaseModule_LengthCmControlId);
    var WidthInc= null;
    if(m_ecf_PurchaseModule_WidthIncControlId!=null)
        WidthInc=document.getElementById(m_ecf_PurchaseModule_WidthIncControlId);
    var WidthCm= null;
    if(m_ecf_PurchaseModule_WidthCmControlId!=null)
        WidthCm=document.getElementById(m_ecf_PurchaseModule_WidthCmControlId);
    var WeightShow= null;
    if(m_ecf_PurchaseModule_WeightShow!=null)
        WeightShow=document.getElementById(m_ecf_PurchaseModule_WeightShow);    
    
    var HeightIncSlv= null;
    if(m_ecf_PurchaseModule_HeightIncSlvControlId!=null)
         HeightIncSlv= document.getElementById(m_ecf_PurchaseModule_HeightIncSlvControlId);
    
    var HeightCmSlv=null;
    
    if(m_ecf_PurchaseModule_HeightCmSlvControlId!=null)
        HeightCmSlv=document.getElementById(m_ecf_PurchaseModule_HeightCmSlvControlId);
      
    var LengthIncSlv= null;
    if(m_ecf_PurchaseModule_LengthIncSlvControlId!=null)
        LengthIncSlv=document.getElementById(m_ecf_PurchaseModule_LengthIncSlvControlId);
    var LengthCmSlv=null;
    if(m_ecf_PurchaseModule_LengthCmSlvControlId!=null)
        LengthCmSlv=document.getElementById(m_ecf_PurchaseModule_LengthCmSlvControlId);
    var WidthIncSlv= null;
    if(m_ecf_PurchaseModule_WidthIncSlvControlId!=null)
        WidthIncSlv=document.getElementById(m_ecf_PurchaseModule_WidthIncSlvControlId);
    var WidthCmSlv= null;
    if(m_ecf_PurchaseModule_WidthCmSlvControlId!=null)
        WidthCmSlv=document.getElementById(m_ecf_PurchaseModule_WidthCmSlvControlId);
        
    var FreeShip=  null
    if (m_ecf_PurchaseModule_FreeShiping != null)
        FreeShip = document.getElementById(m_ecf_PurchaseModule_FreeShiping);
//    var Dimensionshow=  null
//    if (m_ecf_PurchaseModule_Dimension != null)
//        Dimensionshow = document.getElementById(m_ecf_PurchaseModule_Dimension);
 var SleeveDimensionshow = document.getElementById(m_ecf_PurchaseModule_SleeveDimension);   
  
    var pricelabel;
//   var i=0;
//   for(i=0;i<=result.value.length;i++)
//   {
//   alert(result.value[i]);
//   }
   if(result.error!=null)
    {
        //alert("AJAX: Error occured while processing the request, refresh the page. Message: " + result.error.Message + ", code: " + result.error.Code);
        ecf_PurchaseModule_ToggleAccessoryCheckboxes(false);
        return;
    }
   
    if(result.value == null || result.value.length < 3)
        return;
       
    //listPrice.innerHTML = result.value[0];
    //finalPrice.innerHTML = result.value[1];
    //if(discountPrice != null)
    //    discountPrice.innerHTML = result.value[2];
        
    if(result.value.length >= 4)
        itemCode.innerHTML = result.value[3];
        
    //if(result.value.length >= 5)        
    //availability.innerHTML = result.value[4];
    
    if(result.value.length >= 6)        
      { 
        priceListControl.innerHTML = result.value[5];
        pricelabel=result.value[5].replace('$','');
      
         //Check Price here for Free Ship label show.
       if(FreeShip!= null)
         {
         
             if (parseInt(pricelabel) <= parseInt("100"))
              {     
                    FreeShip.style.visibility = "hidden";
              }
              else
              {
                 FreeShip.style.visibility = "visible";
              }
          }
       
       }
    if(result.value.length >= 21)        
      { 
           if(result.value[21].length > 0)
           {
                priceSaveControl.style.visibility = "visible";
                priceSaveControl.innerHTML = "<BR> Now: " + result.value[21];
            }
           else
                priceSaveControl.style.visibility = "hidden";
       }       
  
    if(result.value.length >= 7 && qtyPricingControl != "undefined" && qtyPricingControl != null)
        qtyPricingControl.innerHTML = result.value[6];
       //Check Quantity here By Gazanafar.
       if (parseInt(result.value[6]) < parseInt("1"))
        {
            alert("The item you have selected is currently out of stock.\n Please select another item.");
            prodButton.style.visibility = "hidden";
         }
        else
        {
          prodButton.style.visibility = "visible";
        }
  
    if(result.value.length >= 8)  
      {
      if(result.value[7].length>0)
        HeightInc.innerHTML = result.value[7];
       else
       {
        if (HeightInc != null)
            HeightInc.innerHTML="";
        }
      }
    
    if(result.value.length >=9)  
       {
       if(result.value[8].length>0)
         HeightCm.innerHTML = result.value[8];
        else
        {
            if(HeightCm!=null)
                HeightCm.innerHTML="";
        }
      }
     if(result.value.length >= 10)        
        {
        if(result.value[9].length>0)
         LengthInc.innerHTML = result.value[9];
         else
         {
         if(LengthInc!=null)
            LengthInc.innerHTML="";
         }
      }
    
     if(result.value.length >= 11) 
     {       
         if(result.value[10].length>0)
          LengthCm.innerHTML = result.value[10];
          else
          {
          if(LengthCm!=null)
            LengthCm.innerHTML="";
          }
      }
 
     if(result.value.length >= 12)        
         {
         if(result.value[11].length>0)
          WidthInc.innerHTML = result.value[11];
          else
          {
          if(WidthInc!=null)
                WidthInc.innerHTML="";
           }
        }
        
     if(result.value.length >= 13)        
         {
         if(result.value[12].length>0)
           WidthCm.innerHTML = result.value[12];
           else
           {
           if(WidthCm!=null)
                WidthCm.innerHTML="";
           }
         }

     if(result.value.length >= 14)        
      {
     
        if(result.value[13]!=null)
        {
         
         if(result.value[13].length>0)
         {
        
          HeightIncSlv.innerHTML = result.value[13];
          }
           else
           {
           
          if (HeightIncSlv != null)
                HeightIncSlv.innerHTML ="";
           }
        }
      }
  

       if(result.value.length >= 15)
       {
            if(result.value[14].length>0)
                HeightCmSlv.innerHTML = result.value[14];
           else
           {
                if (HeightCmSlv != null)
                HeightCmSlv.innerHTML ="";
                }
        }
     
     if(result.value.length >= 16)        
        {
        if(result.value[15].length>0)
         LengthIncSlv.innerHTML = result.value[15];
       else
       {
       if (LengthIncSlv != null)
        LengthIncSlv.innerHTML ="";
         }
}
     if(result.value.length >= 17) 
     {       
         if(result.value[16].length>0)
          LengthCmSlv.innerHTML = result.value[16];
        else
         {
       if (LengthCmSlv != null)
        LengthCmSlv.innerHTML ="";
        }
      }

     if(result.value.length >= 18)        
         {
         if(result.value[17].length>0)
          WidthIncSlv.innerHTML = result.value[17];
        else
          {
       if (WidthIncSlv != null)
        WidthIncSlv.innerHTML ="";
        }
}
     if(result.value.length >= 19)        
         {
         if(result.value[18].length>0)
           WidthCmSlv.innerHTML = result.value[18];
         else
           {
       if (WidthCmSlv != null)
        WidthCmSlv.innerHTML ="";
         } 
 }
     
     
//     if(result.value.length >= 20)        
//         {
//         alert('19...'+result.value[19]);
//             if(result.value[19].length>0)
//             {
//             var test = ' 1lb | 0.45kg ';
//             WeightShow.innerHTML = test;
//             }
//             else
//             {
//             if (WeightShow != null)
//             WeightShow.innerHTML ="";
//            }
//         }
         
         if((HeightIncSlv!=null)&&(LengthIncSlv!=null)&&(WidthIncSlv!=null))
         {
              
             if(result.value[19].length>0)
             {
             
             WeightShow.innerHTML = result.value[19];
             }
             else
             {
             if (WeightShow != null)
             WeightShow.innerHTML ="";
             }
        }  
    
// if((HeightInc!=null)&&(HeightCm!=null)&&(LengthInc!=null)&&(LengthCm!=null)&&(WidthInc!=null)&&(WidthCm!=null)&&(WeightShow!=null))
// {
//      if((HeightInc.innerHTML="")&&(HeightCm.innerHTML="")&&(LengthInc.innerHTML="")&&(LengthCm.innerHTML="")&&(WidthInc.innerHTML="")&&(WidthCm.innerHTML="")&&(WeightShow.innerHTML=""))
//            Dimensionshow.style.visibility = "hidden";
//     else
//            Dimensionshow.style.visibility = "visible";  
//  }  
    
  if((HeightIncSlv!=null)&&(HeightCmSlv!=null)&&(LengthIncSlv!=null)&&(LengthCmSlv!=null)&&(WidthIncSlv!=null)&&(WidthCmSlv!=null))
    {
        if((HeightIncSlv.innerHTML=="")&&(HeightCmSlv.innerHTML=="")&&(LengthIncSlv.innerHTML=="")&&(LengthCmSlv.innerHTML=="")&&(WidthIncSlv.innerHTML=="")&&(WidthCmSlv.innerHTML==""))
                 SleeveDimensionshow.style.visibility = "hidden"; 
        else
                  SleeveDimensionshow.style.visibility = "visible"; 
     }            
}

function ecf_PurchaseModule_PurchaseOptionChanged(source)
{
    document.getElementById("__ECFPURCHASEMODULE_ITEMID").value = source.value;
    m_ecf_PurchaseModule_VariationId = source.value;
    ecf_PurchaseModule_InitAccessoryCheckboxes();
}

function ecf_PurchaseModule_Init()
{
    window.onload = function(){ecf_PurchaseModule_InitAccessoryCheckboxes2(true);ecf_PurchaseModule_InitOptionLists();};    
}

function ecf_PurchaseModule_InitOptionLists()
{ 
    if(typeof(ecf_PurchaseModule_DropdownArray) == "undefined")
        return;
        
    initDynamicOptionLists();       
    
    document.getElementById(ecf_PurchaseModule_DropdownArray[ecf_PurchaseModule_DropdownArray.length - 1]).onchange = new Function("ecf_PurchaseModule_PurchaseOptionChanged(this)");
    for(var index = 0; index<ecf_PurchaseModule_DropdownArray.length; index++)
    {
        var dropdown = document.getElementById(ecf_PurchaseModule_DropdownArray[index]);
        if(dropdown != null && dropdown.options.Length > 0)
            dropdown.options[0].selected = true;
    }
}

function ecf_PurchaseModule_InitAccessoryCheckboxes()
{
    ecf_PurchaseModule_InitAccessoryCheckboxes2(false);
}

function ecf_PurchaseModule_InitAccessoryCheckboxes2(onload)
{
    // get array length
    var arrayLength = 0;
    var ecf_PurchaseModule_CheckboxesArray=0;
    var hasCheckedControls = false;
    for(var index = 0; index<ecf_PurchaseModule_CheckboxesArray.length; index++)
    {
       var checked = document.getElementById(ecf_PurchaseModule_CheckboxesArray[index]);      
        if(checked.checked)
           arrayLength++;
    }

    // populate array
    var items = new Array(arrayLength);
    for(var index = 0; index<ecf_PurchaseModule_CheckboxesArray.length; index++)
    {
        var checked = document.getElementById(ecf_PurchaseModule_CheckboxesArray[index]);
        var id = document.getElementById(ecf_PurchaseModule_CheckboxesArray[index]).getAttribute('accessoryid');
       
        if(checked.checked)
        {
            hasCheckedControls = true;
            items[index] = id;
        }
    }

    // don't update on first visit if checkbox-es are not checked, they will be checked only if back button is clicked    
    if((onload && hasCheckedControls) || !onload)
        ecf_PurchaseModule_UpdatePrices(null, items);
}

function ecf_PurchaseModule_ToggleAccessoryCheckboxes(check)
{
//    for(var index = 0; index<ecf_PurchaseModule_CheckboxesArray.length; index++)
//    {
//       
//        var checked = document.getElementById(ecf_PurchaseModule_CheckboxesArray[index]);      
//       
//        checked.checked = check;
//        
//    }
}