﻿// JScript File
function ChangeSelectedItem(intItemID, intPartSetID)
{
    var intSelectedID = -1;
    //need to check if the item selected is same as previous click (to prevent duplicate options tables)
    var hdnChosenItemID = document.getElementById("UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPartSetID + "_hdnSelectedItemID");
    
    if(hdnChosenItemID != null)
    {
        if(hdnChosenItemID.value != "")
        {
            intSelectedID = hdnChosenItemID.value; 
        }
        hdnChosenItemID.value = intItemID; //set this straight away incase of click happy user
    }    
    if(intItemID != intSelectedID)
    {        
        AdvancedPricing.SetUserSelectedItem(intItemID);
        AdvancedPricing.GetSelectedItemPrice(intItemID, intPartSetID, CallBackItemPrice);
        AdvancedPricing.GetOptionsTable(intItemID, intPartSetID, CallBackNewOptionsTable);
        AdvancedPricing.GetItemDeliveryInfo(intItemID, intPartSetID, CallBackDeliveryInfo);
        //got remove the existing table here.
        var pnlSubOpts = document.getElementById("UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPartSetID + "_pnlPartSetItemOptions");
        var tblToRemove = document.getElementById("UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPartSetID + "_tblPartSetItemOptions");
        if(tblToRemove !=null)
        {
            pnlSubOpts.removeChild(tblToRemove);
        }
        
      
    }
}
function CallBackItemPrice(result)
{
    if(result!=null)
    {
        document.getElementById("UcStoreProduct1_ProfileProductOptionsAdvanced_lblTotal").innerHTML = result; 
    }
}
function CallBackNewOptionsTable(result)
{
    if(result != null)
    {
        if(result[0] != null)
        {
            //panel need to add table to
            var pnlSubOpts = document.getElementById("UcStoreProduct1_ProfileProductOptionsAdvanced_" + result[0] + "_pnlPartSetItemOptions");

            var newTable = document.createElement("tblPartSetItemOptions");
            var tblIDName = "UcStoreProduct1_ProfileProductOptionsAdvanced_" + result[0] + "_tblPartSetItemOptions";
            if((newTable != null) && (pnlSubOpts != null) && (result[1] != null))
            {
                newTable.setAttribute('id',tblIDName);
                newTable.innerHTML = result[1];
                pnlSubOpts.appendChild(newTable);
            }
        }
    }
}
function CallBackDeliveryInfo(result)
{
    if(result!=null)
    {
        document.getElementById("UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + result[0] + "_lblDeliverySchedule").innerHTML = result[1]; 
    }
}
function OptionsClicked(intItemOptionOptionsID, intItemOptionID, intPSItemID, intPSID)
{
    var ID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_txtOptionQty-" + intItemOptionOptionsID;
    var txtBoxQty = document.getElementById(ID);
    var intQty =1;
    if(txtBoxQty == null)
    {
        txtBoxQty = document.getElementById("txtOptionQty-" + intItemOptionOptionsID);
    }
    if(txtBoxQty != null)
    {
        var varQty = txtBoxQty.value;
        intQty = parseInt(varQty);
    }
    
    //select the parent ItemIDs checkbox...
    var CBID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_ItemOption-" + intItemOptionID;
    var ClickedRadioID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_radioPSIOOptionID-" + intItemOptionOptionsID;
                
    var chBoxToSelect = document.getElementById(CBID);
    
    if(chBoxToSelect == null) //when dynamically added the ID is defferent (.net does it). So check for both
    {
        chBoxToSelect = document.getElementById("ItemOption-" + intItemOptionID);
    }
    var radioClicked = document.getElementById(ClickedRadioID);
   
    //if that null check if its a 'replaced' radio button from user switching though
    if(radioClicked == null)
    {
        radioClicked = document.getElementById("radioPSIOOptionID-" + intItemOptionOptionsID);
    }

    var intSelectedOptionID = -1;
    //need to check if the item selected is same as previous click (to prevent duplicate options tables)
    var hdnChosenOptionItemID = document.getElementById("UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_hdnSelectedOptionItemID");
    
    if(hdnChosenOptionItemID != null)
    {
        if(hdnChosenOptionItemID.value != "")
        {
            intSelectedOptionID = hdnChosenOptionItemID.value; 
        }
        hdnChosenOptionItemID.value = intItemOptionOptionsID; //set this straight away incase of click happy user
    }    
    if(intItemOptionOptionsID != intSelectedOptionID)
    {     
        if(chBoxToSelect != null)
        {
            chBoxToSelect.checked = true;
        }
        if(radioClicked != null)
        {
            if(radioClicked.checked == true)
            {
                AdvancedPricing.AddOptionToRetail(intItemOptionID, intPSItemID, intItemOptionOptionsID, intQty, CallBackUpdatedPrice);
            }
            else
            {
                AdvancedPricing.RemoveOptionFromRetail(intItemOptionID, intPSItemID,  CallBackUpdatedPrice);
            }
        }
    }else
    {
        //ok de-select option..
        if(chBoxToSelect != null)
        {
            chBoxToSelect.checked = false;
        }
        if(radioClicked != null)
        {
            radioClicked.checked = false;
            AdvancedPricing.RemoveOptionFromRetail(intItemOptionID, intPSItemID, CallBackUpdatedPrice);
            if(hdnChosenOptionItemID != null)
            {
                hdnChosenOptionItemID.value = -1;
            }
        }
    }
}
function  CallBackUpdatedPrice(result)
{
  if(result!=null)
    {
        document.getElementById("UcStoreProduct1_ProfileProductOptionsAdvanced_lblTotal").innerHTML = result; 
    }
}
function SingleOptionCheckboxClicked(intItemOptionOptionsID, intItemOptionID, intPSItemID, intPSID)
{
    var ID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_txtOptionQty-" + intItemOptionOptionsID;
    var txtBoxQty = document.getElementById(ID);
    var intQty =1;
    if(txtBoxQty == null)
    {
        txtBoxQty = document.getElementById("txtOptionQty-" + intItemOptionOptionsID);
    }
    if(txtBoxQty != null)
    {
        var varQty = txtBoxQty.value;
        intQty = parseInt(varQty);
    }

    var CBID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_ItemOption-" + intItemOptionID;
    var chBoxSelected = document.getElementById(CBID);
    if(chBoxSelected == null) //when dynamically added the ID is defferent (.net does it). So check for both
    {
       chBoxSelected = document.getElementById("ItemOption-" + intItemOptionID);
    }
    if(chBoxSelected != null) //when dynamically added the ID is defferent (.net does it). So check for both
    {
        if(chBoxSelected.checked == true)
        {
            AdvancedPricing.AddOptionToRetail(intItemOptionID, intPSItemID, intItemOptionOptionsID, intQty, CallBackUpdatedPrice);
        }
        else
        {
            AdvancedPricing.RemoveOptionFromRetail(intItemOptionID, intPSItemID, CallBackUpdatedPrice);// intItemOptionOptionsID, 
        }
    }
}
function MultipleOptionCheckboxClicked(intItemOptionID, intPSItemID, intPSID)
{
    var ID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_ItemOption-" + intItemOptionID;
    var chBoxSelected = document.getElementById(ID);
    
    if(chBoxSelected == null) //when dynamically added the ID is defferent (.net does it). So check for both
    {
       chBoxSelected = document.getElementById("ItemOption-" + intItemOptionID);
    }
    if(chBoxSelected.checked == false)
    {
        AdvancedPricing.RemoveOptionFromRetail(intItemOptionID, intPSItemID, CallBackUpdatedPrice);
   
        var intSelectedOptionID = -1;
        //need to check if the item selected is same as previous click (to prevent duplicate options tables)
        var hdnChosenOptionItemID = document.getElementById("UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_hdnSelectedOptionItemID");
        
        //get the radio button info if we have any
        var intSelectedOptionID = -1;
        if(hdnChosenOptionItemID != null)
        {
            if(hdnChosenOptionItemID.value != "")
            {
                intSelectedItemOptionID = hdnChosenOptionItemID.value; 
                
                var ClickedRadioID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_radioPSIOOptionID-" + intSelectedItemOptionID;
                var radioClicked = document.getElementById(ClickedRadioID);
       
                //if that null check if its a 'replaced' radio button from user switching though
                if(radioClicked == null)
                {
                    radioClicked = document.getElementById("radioPSIOOptionID-" + intSelectedItemOptionID);
                }
                if(radioClicked != null)
                {
                    radioClicked.checked = false;
                    if(hdnChosenOptionItemID != null)
                    {
                        hdnChosenOptionItemID.value = -1;
                    }
                }
            }
        }
    }else
    {
        //the user has selected the checkbox but not the radiobutton! woops.
        
    }
}
function IncreasePSIOOptionQty(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID)
{
    var ID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_txtOptionQty-" + intPSIOOptionID;
    var txtBoxQty = document.getElementById(ID);
    
    if(txtBoxQty == null)
    {
        txtBoxQty = document.getElementById("txtOptionQty-" + intPSIOOptionID);
    }
    var varQty = txtBoxQty.value;
    var intQty = 1;
    if((varQty != null) && (varQty != ""))
    {
        intQty = parseInt(varQty);
    }
    
     var ClickedRadioID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_radioPSIOOptionID-" + intPSIOOptionID;
    var radioClicked = document.getElementById(ClickedRadioID);
    //if that null check if its a 'replaced' radio button from user switching though
    if(radioClicked == null)
    {
        radioClicked = document.getElementById("radioPSIOOptionID-" + intPSIOOptionID);
    }
    //select the parent ItemIDs checkbox...
    var CBID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_ItemOption-" + intItemOptionID;        
    var chBoxToSelect = document.getElementById(CBID);
    
    if(chBoxToSelect == null) //when dynamically added the ID is defferent (.net does it). So check for both
    {
        chBoxToSelect = document.getElementById("ItemOption-" + intItemOptionID);
    }

  
    //AdvancedPricing.RemoveOptionFromRetailPrice(intItemOptionID, intPSItemID, intPSIOOptionID, intQty, CallBackUpdatedPrice);
     var intSelectedOptionID = -1;
    //need to check if the item selected is same as previous click (to prevent duplicate options tables)
    var hdnChosenOptionItemID = document.getElementById("UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_hdnSelectedOptionItemID");
    
    if(hdnChosenOptionItemID != null)
    {
        if(hdnChosenOptionItemID.value != "")
        {
            intSelectedOptionID = hdnChosenOptionItemID.value; 
        }
        hdnChosenOptionItemID.value = intPSIOOptionID; //set this straight away incase of click happy user
    }    
    if(intPSIOOptionID != intSelectedOptionID)
    {     
        if((radioClicked != null) && (radioClicked.checked == false))
        {
            radioClicked.checked = true;
            if(chBoxToSelect != null)
            {
                chBoxToSelect.checked = true;
            }
        }
      
    }     
    intQty = intQty+1;
    txtBoxQty.value = intQty.toString();

    AdvancedPricing.AddOptionToRetail(intItemOptionID, intPSItemID, intPSIOOptionID, intQty, CallBackUpdatedPrice);
    
     ChangeOptionDisplayedPrice(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID, intQty);    
}
function DecreasePSIOOptionQty(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID)
{
    var ID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_txtOptionQty-" + intPSIOOptionID;
    var txtBoxQty = document.getElementById(ID);
    if(txtBoxQty == null)
    {
        txtBoxQty = document.getElementById("txtOptionQty-" + intPSIOOptionID);
    }
    var varQty = txtBoxQty.value;
    var intQty = 1;
    if((varQty != null) && (varQty != ""))
    {
        intQty = parseInt(varQty);
    }
    
    var ClickedRadioID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_radioPSIOOptionID-" + intPSIOOptionID;
    var radioClicked = document.getElementById(ClickedRadioID);

    //if that null check if its a 'replaced' radio button from user switching though
    if(radioClicked == null)
    {
        radioClicked = document.getElementById("radioPSIOOptionID-" + intPSIOOptionID);
    }
    if((radioClicked != null) && (radioClicked.checked == false))
    {
        radioClicked.checked = true;
    }
    intQty = intQty-1;
    if(intQty<1)
    {
        intQty = 1;
        
    }
    txtBoxQty.value = intQty.toString();
    //essentially this will remove the current one and re-add it -1 in qty.
    AdvancedPricing.AddOptionToRetail(intItemOptionID, intPSItemID, intPSIOOptionID, intQty, CallBackUpdatedPrice);
   
     ChangeOptionDisplayedPrice(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID, intQty);
}
function PSIOQtyChange(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID)
{
    var ID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_txtOptionQty-" + intPSIOOptionID;
    var txtBoxQty = document.getElementById(ID);
    if(txtBoxQty == null)
    {
        txtBoxQty = document.getElementById("txtOptionQty-" + intPSIOOptionID);
    }
    var varQty = txtBoxQty.value;
    var varQty = 1;
    varQty = txtBoxQty.value;
    var regx  =  new RegExp("[-+]?\\b\\d+\\b");
    var match = regx.exec(txtBoxQty.value);
    var intQty = 1;
    if((varQty != null) && (varQty != "") && (match != null))
    {
        intQty = parseInt(varQty);
    }else
    {
       txtBoxQty.value = "1";//force it to 1.
    }
      //select the parent ItemIDs checkbox...
    var CBID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_ItemOption-" + intItemOptionID;        
    var chBoxToSelect = document.getElementById(CBID);
    
    if(chBoxToSelect == null) //when dynamically added the ID is defferent (.net does it). So check for both
    {
        chBoxToSelect = document.getElementById("ItemOption-" + intItemOptionID);
    }
    var ClickedRadioID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_radioPSIOOptionID-" + intPSIOOptionID;
    var radioClicked = document.getElementById(ClickedRadioID);

    //if that null check if its a 'replaced' radio button from user switching though
    if(radioClicked == null)
    {
        radioClicked = document.getElementById("radioPSIOOptionID-" + intPSIOOptionID);
    }
    
      var intSelectedOptionID = -1;
    //need to check if the item selected is same as previous click (to prevent duplicate options tables)
    var hdnChosenOptionItemID = document.getElementById("UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_hdnSelectedOptionItemID");
    
    if(hdnChosenOptionItemID != null)
    {
        if(hdnChosenOptionItemID.value != "")
        {
            intSelectedOptionID = hdnChosenOptionItemID.value; 
        }
        hdnChosenOptionItemID.value = intPSIOOptionID; //set this straight away incase of click happy user
    }    
    if(intPSIOOptionID != intSelectedOptionID)
    {     
        if((radioClicked != null) && (radioClicked.checked == false))
        {
            radioClicked.checked = true;
            if(chBoxToSelect != null)
            {
                chBoxToSelect.checked = true;
            }
        }
        AdvancedPricing.AddOptionToRetail(intItemOptionID, intPSItemID, intPSIOOptionID, intQty, CallBackUpdatedPrice);
    
     ChangeOptionDisplayedPrice(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID, intQty);
    }
}
function IncreaseSinglePSIOOptionQty(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID)
{
    var ID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_txtOptionQty-" + intPSIOOptionID;
    var txtBoxQty = document.getElementById(ID);
    if(txtBoxQty == null)
    {
        txtBoxQty = document.getElementById("txtOptionQty-" + intPSIOOptionID);
    }
    var varQty = txtBoxQty.value;
    var intQty = 1;
    if((varQty != null) && (varQty != ""))
    {
        intQty = parseInt(varQty);
    }
    
    var CBID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_ItemOption-" + intItemOptionID;
    var chBoxSelected = document.getElementById(CBID);
    if(chBoxSelected == null) //when dynamically added the ID is defferent (.net does it). So check for both
    {
       chBoxSelected = document.getElementById("ItemOption-" + intItemOptionID);
    }
    if(chBoxSelected != null) //when dynamically added the ID is defferent (.net does it). So check for both
    {
        if(chBoxSelected.checked == false)
        {
            chBoxSelected.checked = true;
        }
    }

    intQty = intQty+1;
    txtBoxQty.value = intQty.toString();
    
    AdvancedPricing.AddOptionToRetail(intItemOptionID, intPSItemID, intPSIOOptionID, intQty, CallBackUpdatedPrice);    
    
     ChangeOptionDisplayedPrice(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID, intQty);        
}
function DecreaseSinglePSIOOptionQty(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID)
{
    var ID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_txtOptionQty-" + intPSIOOptionID;
    var txtBoxQty = document.getElementById(ID);
    if(txtBoxQty == null)
    {
        txtBoxQty = document.getElementById("txtOptionQty-" + intPSIOOptionID);
    }
    var varQty = txtBoxQty.value;
      var intQty = 1;
    if((varQty != null) && (varQty != ""))
    {
        intQty = parseInt(varQty);
    }
    
    var CBID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_ItemOption-" + intItemOptionID;
    var chBoxSelected = document.getElementById(CBID);
    if(chBoxSelected == null) //when dynamically added the ID is defferent (.net does it). So check for both
    {
       chBoxSelected = document.getElementById("ItemOption-" + intItemOptionID);
    }
    if(chBoxSelected != null) //when dynamically added the ID is defferent (.net does it). So check for both
    {
        if(chBoxSelected.checked == false)
        {
            chBoxSelected.checked = true;
        }
    }
    intQty = intQty-1;
    if(intQty<1)
    {
        intQty = 1;
        
    }
    txtBoxQty.value = intQty.toString();
    //essentially this will remove the current one and re-add it -1 in qty.
    AdvancedPricing.AddOptionToRetail(intItemOptionID, intPSItemID, intPSIOOptionID, intQty, CallBackUpdatedPrice);
    
     ChangeOptionDisplayedPrice(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID, intQty);
}
function PSIOSingleQtyChange(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID)
{
    var ID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_txtOptionQty-" + intPSIOOptionID;
    var txtBoxQty = document.getElementById(ID);
    if(txtBoxQty == null)
    {
        txtBoxQty = document.getElementById("txtOptionQty-" + intPSIOOptionID);
    }
    var varQty = 1;
    varQty = txtBoxQty.value;
    var regx  =  new RegExp("[-+]?\\b\\d+\\b");
    var match = regx.exec(txtBoxQty.value);
    var intQty = 1;
    if((varQty != null) && (varQty != "") && (match != null))
    {
        intQty = parseInt(varQty);
    }else
    
   {
       txtBoxQty.value = "1";//force it to 1.
   }
    
    var CBID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_ItemOption-" + intItemOptionID;
   
    var chBoxSelected = document.getElementById(CBID);
    if(chBoxSelected == null) //when dynamically added the ID is defferent (.net does it). So check for both
    {
       chBoxSelected = document.getElementById("ItemOption-" + intItemOptionID);
    }
    if(chBoxSelected != null) //when dynamically added the ID is defferent (.net does it). So check for both
    {
        if(chBoxSelected.checked == false)
        {
            chBoxSelected.checked = true;
        }
    }
     AdvancedPricing.AddOptionToRetail(intItemOptionID, intPSItemID, intPSIOOptionID, intQty, CallBackUpdatedPrice);
     
     ChangeOptionDisplayedPrice(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID, intQty);
}
function ChangeOptionDisplayedPrice(intPSIOOptionID, intItemOptionID, intPSItemID, intPSID, intQty)
{
    AdvancedPricing.ChnageOptionDisplayPrice(intPSIOOptionID, intPSID, intQty, CallbackChangeOptionDisplayPrice);
}
function CallbackChangeOptionDisplayPrice(result)
{
    var intPSID = result[0];
    var intPSIOOptionID = result[1];
    var Price = result[2];
    var priceLabelID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_OptionPriceNow-" + intPSIOOptionID; 
    var label = document.getElementById(priceLabelID);
    if(label == null)
    {
        label= document.getElementById("OptionPriceNow-" + intPSIOOptionID);
    }
    if(label == null)
    {
        priceLabelID = "UcStoreProduct1_ProfileProductOptionsAdvanced_PS-" + intPSID + "_ItemPriceNow-" + intPSIOOptionID; 
        label= document.getElementById( priceLabelID );
        if(label == null)
        {
            label= document.getElementById("ItemPriceNow-" + intPSIOOptionID);
        }
    }
    if(label != null)
    {
        label.innerHTML = Price;
    }
    
}
