//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * @package Starweb Webshop System
 * @version See version-file
 * @copyright Copyright (c) 2000 - 2007, Ehandelslogik i Lund AB
 * 
 * @author Ehandelslogik i Lund AB, org.no 556696-9019  (Starweb)
 *  Country: Sweden
 *  Homepage: www.starweb.se
 *  E-mail: support@starweb.se
 * 
 * License:
 * This program is not "free" software and restrictions apply!
 * This file as well as all other files containing the code to our software may ONLY be used and/or redistributed with written permission from us.
 * You'll find information regarding our conditions and pricing on our homepage. Contact us immediately if any of these conditions are not clear.
 */
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/** Initialize: Public variables */
/** @var string - Get: Layer name to hide/show */
var sLayerName = 'oLayerBtnBuy';






//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * @name Function: Set Article List Article Parameter Field Value List
 * @access public
 *
 * @desc Used for PARAMETER(S)
 *
 * @param string sFrmName
 * @param string sDbStockStatus
 * @param int iDbArtVatNo
 * @param string sDbArtPrmArtIdItem
 * @param string sDbArtPrmStockStatusItem
 * @param string sDbArtPrmCostExclVatNoItem
 * @param string sDbArtPrmCostDiscountExclVatNoItem
 * @param string sDbArtPrmCostRtlrExclVatNoItem
 * @param int iCustRtlrNo
 * @param int iItemNo
 */
function SetFldValListForArtListArtPrmItem(sFrmName, sDbStockStatus, iDbArtVatNo, sDbArtPrmArtIdItem, sDbArtPrmStockStatusItem,
   sDbArtPrmCostExclVatNoItem, sDbArtPrmCostDiscountExclVatNoItem, sDbArtPrmCostRtlrExclVatNoItem, iCustRtlrNo, iItemNo)
{
   // Get: Article parameter select boxes
   var oArtPrmOneSelBox = sFrmName.elements["oArtPrmOne" + iItemNo];
   var oArtPrmTwoSelBox = sFrmName.elements["oArtPrmTwo" + iItemNo];
   
   
   
   if(oArtPrmOneSelBox)
   {
      // Get: Selected param
      var iArtPrmOneId = oArtPrmOneSelBox.selectedIndex;
      var iArtPrmTwoId = oArtPrmTwoSelBox ? oArtPrmTwoSelBox.selectedIndex : '';
      
      
      
      /* Get: Article Id - Start */
      var aArtPrmGrpArtIdItem = new Array();
      var aArtPrmElmntArtIdItem = new Array();
      var sArtIdSel = "";
      
      
      if(sDbArtPrmArtIdItem)
      {
         if(oArtPrmTwoSelBox)
         {
            aArtPrmGrpArtIdItem = sDbArtPrmArtIdItem.split(sChrStop);
            aArtPrmElmntArtIdItem = (aArtPrmGrpArtIdItem[iArtPrmOneId])
               ? aArtPrmGrpArtIdItem[iArtPrmOneId].split(sChrComma)
               : aArtPrmGrpArtIdItem[0].split(sChrComma);
            sArtIdSel = aArtPrmElmntArtIdItem[iArtPrmTwoId];
         }
         else
         {
            aArtPrmElmntArtIdItem = sDbArtPrmArtIdItem.split(sChrComma);
            sArtIdSel = aArtPrmElmntArtIdItem[iArtPrmOneId];
         }
      }
      /* Get: Article Id - End */
      
      
      
      /* Get: Article stock status - Start */
      var aArtPrmGrpStockStatusItem = new Array();
      var aArtPrmElmntStockStatusItem = new Array();
      var sStockStatusSel = "";
      
      if(sDbArtPrmStockStatusItem)
      {
         if(oArtPrmTwoSelBox)
         {
            aArtPrmGrpStockStatusItem = sDbArtPrmStockStatusItem.split(sChrStop);
            aArtPrmElmntStockStatusItem = (aArtPrmGrpStockStatusItem[iArtPrmOneId])
               ? aArtPrmGrpStockStatusItem[iArtPrmOneId].split(sChrComma)
               : aArtPrmGrpStockStatusItem[0].split(sChrComma);
            sStockStatusSel = aArtPrmElmntStockStatusItem[iArtPrmTwoId];
         }
         else
         {
            aArtPrmElmntStockStatusItem = sDbArtPrmStockStatusItem.split(sChrComma);
            sStockStatusSel = aArtPrmElmntStockStatusItem[iArtPrmOneId];
         }
      }
      else
      { sStockStatusSel = sDbStockStatus; }
      /* Get: Article stock status - End */
      
      
      
      // Set: Stock status and article id
      SetStockStatusTxtBox(sFrmName, sStockStatusSel, iItemNo);
      SetArtIdTxtBox(sFrmName, sArtIdSel, iItemNo);
      
      
      
      if(bIsViewCost == true)
      {
         /* Get: Article cost - Start */
         var aArtPrmGrpCostExclVatNoItem = new Array();
         var aArtPrmElmntCostExclVatNoItem = new Array();
         var fArtCostExclVatSelNo = "";
         
         
         
         // Get: Cost from selected param
         if(oArtPrmTwoSelBox)
         {
            aArtPrmGrpCostExclVatNoItem = sDbArtPrmCostExclVatNoItem.split(sChrStop);
            aArtPrmElmntCostExclVatNoItem = (aArtPrmGrpCostExclVatNoItem[iArtPrmOneId])
               ? aArtPrmGrpCostExclVatNoItem[iArtPrmOneId].split(sChrComma)
               : aArtPrmGrpCostExclVatNoItem[0].split(sChrComma);
            fArtCostExclVatSelNo = aArtPrmElmntCostExclVatNoItem[iArtPrmTwoId];
         }
         else
         {
            aArtPrmElmntCostExclVatNoItem = sDbArtPrmCostExclVatNoItem.split(sChrComma);
            fArtCostExclVatSelNo = aArtPrmElmntCostExclVatNoItem[iArtPrmOneId];
         }
         /* Get: Article cost - End */
         
         
         
         /* Get: Article discount cost - Start */
         if(sDbArtPrmCostDiscountExclVatNoItem)
         {
            // Get: Settings
            var aArtPrmGrpCostDiscountExclVatNoItem = new Array();
            var aArtPrmElmntCostDiscountExclVatNoItem = new Array();
            var fArtCostDiscountExclVatSelNo = "";
            
            
            // Get: Cost from selected param
            if(oArtPrmTwoSelBox)
            {
               aArtPrmGrpCostDiscountExclVatNoItem = sDbArtPrmCostDiscountExclVatNoItem.split(sChrStop);
               aArtPrmElmntCostDiscountExclVatNoItem = (aArtPrmGrpCostDiscountExclVatNoItem[iArtPrmOneId])
                  ? aArtPrmGrpCostDiscountExclVatNoItem[iArtPrmOneId].split(sChrComma)
                  : aArtPrmGrpCostDiscountExclVatNoItem[0].split(sChrComma);
               fArtCostDiscountExclVatSelNo = aArtPrmElmntCostDiscountExclVatNoItem[iArtPrmTwoId];
            }
            else
            {
               aArtPrmElmntCostDiscountExclVatNoItem = sDbArtPrmCostDiscountExclVatNoItem.split(sChrComma);
               fArtCostDiscountExclVatSelNo = aArtPrmElmntCostDiscountExclVatNoItem[iArtPrmOneId];
            }
            
            
            // Set: Cost to text boxes. If both prices are the same, hide discount price.
            if (fArtCostDiscountExclVatSelNo == fArtCostExclVatSelNo)
            {
               SetArtCostExclVatNoTxtBox(sFrmName, fArtCostDiscountExclVatSelNo, iDbArtVatNo, iItemNo);
               SetArtCostDiscountExclVatNoTxtBox(sFrmName, 0.0, iDbArtVatNo, iItemNo);
            }
            else
            {
               SetArtCostExclVatNoTxtBox(sFrmName, fArtCostDiscountExclVatSelNo, iDbArtVatNo, iItemNo);
               SetArtCostDiscountExclVatNoTxtBox(sFrmName, fArtCostExclVatSelNo, iDbArtVatNo, iItemNo);
            }
            // Set: Cost to text boxes
         }
         /* Get: Article discount cost - End */
         
         
         
         /* Get: Article cost - Start */
         else
         { SetArtCostExclVatNoTxtBox(sFrmName, fArtCostExclVatSelNo, iDbArtVatNo, iItemNo); }
         /* Get: Article cost - End */
         
         
         
         /* Get: Article retailer cost - Start */
         if((iCustRtlrNo > 0) && (sDbArtPrmCostRtlrExclVatNoItem != ''))
         {
            var aArtPrmGrpCostRtlrExclVatNoItem = new Array();
            var aArtPrmElmntCostRtlrExclVatNoItem = new Array();
            var fArtCostRtlrExclVatSelNo = "";
            
            // Get: Cost from selected param
            if(oArtPrmTwoSelBox)
            {
               aArtPrmGrpCostRtlrExclVatNoItem = sDbArtPrmCostRtlrExclVatNoItem.split(sChrStop);
               aArtPrmElmntCostRtlrExclVatNoItem = (aArtPrmGrpCostRtlrExclVatNoItem[iArtPrmOneId])
                  ? aArtPrmGrpCostRtlrExclVatNoItem[iArtPrmOneId].split(sChrComma)
                  : aArtPrmGrpCostRtlrExclVatNoItem[0].split(sChrComma);
               
               fArtCostRtlrExclVatSelNo = aArtPrmElmntCostRtlrExclVatNoItem[iArtPrmTwoId];
            }
            else
            {
               aArtPrmElmntCostRtlrExclVatNoItem = sDbArtPrmCostRtlrExclVatNoItem.split(sChrComma);
               fArtCostRtlrExclVatSelNo = aArtPrmElmntCostRtlrExclVatNoItem[iArtPrmOneId];
            }
            
            
            // Get: Cheapest price
            var fCostCheapestExclVatNo = "";
            switch(true)
            {
               // RETAIL COST
               case ((iCustRtlrNo > 0) && (fArtCostRtlrExclVatSelNo > 0)):
                  fCostCheapestExclVatNo = fArtCostRtlrExclVatSelNo;
                  break;
                  
                  
               // DISCOUNT COST
               case (fArtCostDiscountExclVatSelNo > 0):
                  fCostCheapestExclVatNo = fArtCostDiscountExclVatSelNo;
                  break;
                  
                  
               // DEFAULT COST
               case (fArtCostExclVatSelNo > 0):
                  fCostCheapestExclVatNo = fArtCostExclVatSelNo;
                  break;
            }
            
            
            // Set: Cost to text boxes
            SetArtCostExclVatNoTxtBox(sFrmName, fCostCheapestExclVatNo, iDbArtVatNo, iItemNo);
            SetArtCostDiscountExclVatNoTxtBox(sFrmName, fArtCostExclVatSelNo, iDbArtVatNo, iItemNo);
         }
         /* Get: Article retailer cost - End */
      }
   }
}






/**
 * @name Function: Set Article List Field Value List
 * @access public
 *
 * @desc Used when NO PARAMETER(S)
 *
 * @param string sFrmName
 * @param string sDbArtId
 * @param string sDbStockStatus
 * @param int iDbArtVatNo
 * @param float fDbArtCostExclVatNo
 * @param float fDbArtCostDiscountExclVatNo
 * @param float fDbArtCostRtlrExclVatNo
 * @param int iCustRtlrNo
 * @param int iItemNo
 */
function SetFldValListForArtListItem(sFrmName, sDbArtId, sDbStockStatus, iDbArtVatNo,
   fDbArtCostExclVatNo, fDbArtCostDiscountExclVatNo, fDbArtCostRtlrExclVatNo, iCustRtlrNo, iItemNo)
{
   // Set: Stock status and article id
   SetStockStatusTxtBox(sFrmName, sDbStockStatus, iItemNo);
   SetArtIdTxtBox(sFrmName, sDbArtId, iItemNo);
   
   
   
   if(bIsViewCost == true)
   {
      /* Get: Article discount cost - Start */
      if(fDbArtCostDiscountExclVatNo != 0)
      {
         // Set: Cost to text boxes
         SetArtCostExclVatNoTxtBox(sFrmName, fDbArtCostDiscountExclVatNo, iDbArtVatNo, iItemNo);
         SetArtCostDiscountExclVatNoTxtBox(sFrmName, fDbArtCostExclVatNo, iDbArtVatNo, iItemNo);
      }
      /* Get: Article discount cost - End */
      
      
      
      /* Get: Article cost - Start */
      else
      { SetArtCostExclVatNoTxtBox(sFrmName, fDbArtCostExclVatNo, iDbArtVatNo, iItemNo); }
      /* Get: Article cost - End */
      
      
      
      /* Get: Article retailer cost - Start */
      if(iCustRtlrNo > 0)
      {
         // Get: Cheapest price
         var fCostCheapestExclVatNo = "";
         switch(true)
         {
            // RETAIL COST
            case ((iCustRtlrNo > 0) && (fDbArtCostRtlrExclVatNo > 0)):
               fCostCheapestExclVatNo = fDbArtCostRtlrExclVatNo;
               break;
               
               
            // DISCOUNT COST
            case (fDbArtCostDiscountExclVatNo > 0):
               fCostCheapestExclVatNo = fDbArtCostDiscountExclVatNo;
               break;
               
               
            // DEFAULT COST
            case (fDbArtCostExclVatNo > 0):
               fCostCheapestExclVatNo = fDbArtCostExclVatNo;
               
               /* Set: Hide cost incase discount is exactly the same cost as the normal cost */
               if((fDbArtCostRtlrExclVatNo == 0) && (fDbArtCostDiscountExclVatNo == 0))
               { fDbArtCostExclVatNo = false; }
               break;
         }
         
         // Set: Cost to text boxes
         SetArtCostExclVatNoTxtBox(sFrmName, fCostCheapestExclVatNo, iDbArtVatNo, iItemNo);
         SetArtCostDiscountExclVatNoTxtBox(sFrmName, fDbArtCostExclVatNo, iDbArtVatNo, iItemNo);
      }
      /* Get: Article retailer cost - End */
   }
}






/**
 * @name Function: Set Article Cost Excl VAT Text Box
 * @access private
 *
 * @param string sFrmName
 * @param float fArtCostExclVatNo
 * @param int iDbArtVatNo
 * @param int iItemNo
 */
function SetArtCostExclVatNoTxtBox(sFrmName, fArtCostExclVatNo, iDbArtVatNo, iItemNo)
{
   // Get: Cost textbox
   var oArtCostExclVatNoFld = sFrmName.elements['oArtCostExclVatNo' + iItemNo];
   
   
   // Check: That textbox exists
   if(oArtCostExclVatNoFld)
   {
      // Get: Is cost incl VAT? (Depending on customer country)
      var bIsViewCostInclVat = ((sVat == 'InclVat') && (bIsInclVat == true)) ? true : false;
      
      
      // Get: Cost incl/excl VAT
      switch(bIsViewCostInclVat)
      {
         // INCL VAT - Due to customer within EU
         case true:
            var sVatStr = (iDbArtVatNo.length == 1) ? '1.0' + iDbArtVatNo : '1.' + iDbArtVatNo;
            fArtCostExclVatNo = RoundCostNo((fArtCostExclVatNo * sVatStr) / fCurrWorthNo);
            break;
            
            
         // EXCL VAT - Due to customer outside of EU
         default:
            fArtCostExclVatNo = RoundCostNo(fArtCostExclVatNo / fCurrWorthNo);
            break;
      }
      
      
      // Set: Article cost and currency char
      oArtCostExclVatNoFld.value = fArtCostExclVatNo + sCurrChr;
   }
}






/**
 * @name Function: Set Article Cost Discount Excl VAT Text Box
 * @access private
 *
 * @param string sFrmName
 * @param float fArtCostDiscountExclVatNo
 * @param int iDbArtVatNo
 * @param int iItemNo
 */
function SetArtCostDiscountExclVatNoTxtBox(sFrmName, fArtCostDiscountExclVatNo, iDbArtVatNo, iItemNo)
{
   // Get: Discount textbox
   var oArtCostDiscountExclVatFld = sFrmName.elements['oArtCostDiscountExclVat' + iItemNo];
   
   // Check: If discount cost exists
   if(fArtCostDiscountExclVatNo)
   {
      // Check: That textbox exists
      if(oArtCostDiscountExclVatFld)
      {
         // Get: Is cost incl VAT? (Depending on customer country)
         var bIsViewCostInclVat = ((sVat == 'InclVat') && (bIsInclVat == true)) ? true : false;
         
         
         // Get: Cost incl/excl VAT
         switch(bIsViewCostInclVat)
         {
            // INCL VAT - Due to customer within EU
            case true:
               var sVatStr = (iDbArtVatNo.length == 1) ? '1.0' + iDbArtVatNo : '1.' + iDbArtVatNo;
               fArtCostDiscountExclVatNo = RoundCostNo((fArtCostDiscountExclVatNo * sVatStr) / fCurrWorthNo);
               break;
               
               
            // EXCL VAT - Due to customer outside of EU
            default:
               fArtCostDiscountExclVatNo = RoundCostNo(fArtCostDiscountExclVatNo / fCurrWorthNo);
               break;
         }
         
         
         // Set: Discounted cost and currency char
         oArtCostDiscountExclVatFld.value = fArtCostDiscountExclVatNo + sCurrChr;
      }
   }
   else
   {
      // Empty value in txtbox
      oArtCostDiscountExclVatFld.value = "";
   }
}






/**
 * @name Function: Set Article Stock Status Text Box
 * @access private
 *
 * @param string sFrmName
 * @param array sStockStatus
 * @param int iItemNo
 */
function SetStockStatusTxtBox(sFrmName, sStockStatus, iItemNo)
{
   // Get: Stock status textbox
   var oStockStatusFld = sFrmName.elements['oStockStatus' + iItemNo];
   
   
   // Check: That textbox exists
   if(oStockStatusFld)
   {
      // Set: Hide or show buy button
      (sStockStatus == sStockStatusIsEmpty) ? ToggleLayer(sLayerName + iItemNo, 0) : ToggleLayer(sLayerName + iItemNo, 1);
      
      
      // Set: Stock status
      oStockStatusFld.value = sStockStatus;
   }
}






/**
 * @name Function: Set Article Id Text Box
 * @access private
 *
 * @param string sFrmName
 * @param string sArtId
 * @param int iItemNo
 */
function SetArtIdTxtBox(sFrmName, sArtId, iItemNo)
{
   // Get: Article id textbox
   var oArtIdFld = sFrmName.elements['oArtId' + iItemNo];
   
   
   // Check: That textbox exists
   if(oArtIdFld)
   {
      // Set: Article id
      oArtIdFld.value = sArtId;
   }
}






/**
 * @name Function: Get Url Button Buy
 * @access public
 *
 * @param string sFrmName
 * @param int iId
 * @param int iItemNo
 */
function GetUrlBtnBuy(sFrmName, iId, iItemNo)
{
   var sUrlBtnBuy = "";
   var sUrl = sUrlApp + 'Frameset/fr' + sCartFrameName + '.php?sAction=bIsInsertArt&iId=';
   
   // Get: Article parameter select boxes
   var oArtPrmOneSelBox = sFrmName.elements["oArtPrmOne" + iItemNo];
   var oArtPrmTwoSelBox = sFrmName.elements["oArtPrmTwo" + iItemNo];
   
   
   // Get: Buttonīs buy path
   // PARAMETER(S)
   if(oArtPrmOneSelBox)
   {
      var iArtPrmOneId = oArtPrmOneSelBox.selectedIndex;
      var iArtPrmTwoId = oArtPrmTwoSelBox ? oArtPrmTwoSelBox.selectedIndex : '';
      
      sUrlBtnBuy = (sUrl + iId + '&sArtPrmIdItem=' + iArtPrmOneId + sChrStop + iArtPrmTwoId);
   }
   // NO PARAMETER(S)
   else
   { sUrlBtnBuy = (sUrl + iId); }
   
   
   return sUrlBtnBuy;
}