//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * @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 Item Field Value Item
 * @access public
 *
 * @param string sFrmName
 */
function SetFldValListForArtItem(sFrmName)
{
   // Get: Article parameter select boxes
   var oArtPrmOneSelBox = sFrmName.elements["oArtPrmOne"];
   var oArtPrmTwoSelBox = sFrmName.elements["oArtPrmTwo"];
   
   
   
   /* Params exists, set param cost - Start */
   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, article id, url to insert article in cart
      SetStockStatusTxtBox(sFrmName, sStockStatusSel);
      SetArtIdTxtBox(sFrmName, sArtIdSel);
      SetUrlBtnBuy(sFrmName, iDbId, iArtPrmOneId + sChrStop + iArtPrmTwoId);
      
      
      
      if(bIsViewCost == true)
      {
         /* Get: Article cost - Start */
         var aArtPrmGrpCostExclVatNoItem = new Array();
         var aArtPrmElmntCostExclVatNoItem = new Array();
         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)
         {
            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);
               SetArtCostDiscountExclVatNoTxtBox(sFrmName, 0.0);
            }
            else
            {
               SetArtCostExclVatNoTxtBox(sFrmName, fArtCostDiscountExclVatSelNo);
               SetArtCostDiscountExclVatNoTxtBox(sFrmName, fArtCostExclVatSelNo);
            }
         }
         /* Get: Article discount cost - End */
         
         
         
         /* Get: Article cost - Start */
         else
         { SetArtCostExclVatNoTxtBox(sFrmName, fArtCostExclVatSelNo); }
         /* 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];
            }
            
            
            // Set: Cheapest price
            var fCostCheapestExclVatNo = "";
            switch(true)
            {
               case ((iCustRtlrNo > 0) && (fArtCostRtlrExclVatSelNo > 0)):
                  fCostCheapestExclVatNo = fArtCostRtlrExclVatSelNo;
                  break;
                  
               case (fArtCostDiscountExclVatSelNo > 0):
                  fCostCheapestExclVatNo = fArtCostDiscountExclVatSelNo;
                  break;
                  
               case (fArtCostExclVatSelNo > 0):
                  fCostCheapestExclVatNo = fArtCostExclVatSelNo;
                  break;
            }
            
            
            // Set: Cost to text boxes
            SetArtCostExclVatNoTxtBox(sFrmName, fCostCheapestExclVatNo);
            
            
            // Set: Only view old price, incase there´s a cheaper price
            if(fCostCheapestExclVatNo != fArtCostExclVatSelNo)
            { SetArtCostDiscountExclVatNoTxtBox(sFrmName, fArtCostExclVatSelNo); }
         }
         /* Get: Article retailer cost - End */
      }
   }
   /* Params exists, set param cost - End */
   
   
   
   /* No parameters, set normal cost - Start */
   else
   {
      // Set: Stock, article id, url to insert article in cart
      SetStockStatusTxtBox(sFrmName, sDbStockStatus);
      SetArtIdTxtBox(sFrmName, sDbArtId);
      SetUrlBtnBuy(sFrmName, iDbId, '');
      
      
      
      if(bIsViewCost == true)
      {
         /* Get: Article discount cost - Start */
         if(fDbArtCostDiscountExclVatNo != 0)
         {
            // Set: Cost to text boxes
            SetArtCostExclVatNoTxtBox(sFrmName, fDbArtCostDiscountExclVatNo);
            SetArtCostDiscountExclVatNoTxtBox(sFrmName, fDbArtCostExclVatNo);
         }
         /* Get: Article discount cost - End */
         
         
         
         /* Get: Article cost - Start */
         else
         { SetArtCostExclVatNoTxtBox(sFrmName, fDbArtCostExclVatNo); }
         /* Get: Article cost - End */
      
      
         
         /* Get: Article retailer cost - Start */
         if(iCustRtlrNo > 0)
         {
            // Set: Cheapest price
            var fCostCheapestExclVatNo = "";
            switch(true)
            {
               case ((iCustRtlrNo > 0) && (fDbArtCostRtlrExclVatNo > 0)):
                  fCostCheapestExclVatNo = fDbArtCostRtlrExclVatNo;
                  break;
                  
               case (fDbArtCostDiscountExclVatNo > 0):
                  fCostCheapestExclVatNo = fDbArtCostDiscountExclVatNo;
                  break;
                  
               case (fDbArtCostExclVatNo > 0):
                  fCostCheapestExclVatNo = fDbArtCostExclVatNo;
                  break;
            }
            
            
            // Set: Cost to text boxes
            SetArtCostExclVatNoTxtBox(sFrmName, fCostCheapestExclVatNo);
            
            
            // Set: Only view old price, incase there´s a cheaper price
            if(fCostCheapestExclVatNo != fDbArtCostExclVatNo)
            { SetArtCostDiscountExclVatNoTxtBox(sFrmName, fDbArtCostExclVatNo); }
         }
         /* Get: Article retailer cost - End */
      }
   }
   /* No parameters, set normal cost - End */
}






/**
 * @name Function: Set Article Cost Excl VAT Text Box
 * @access private
 *
 * @param string sFrmName
 * @param float fArtCostExclVatNo
 */
function SetArtCostExclVatNoTxtBox(sFrmName, fArtCostExclVatNo)
{
   // 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
   sFrmName.oArtCostExclVatNo.value = fArtCostExclVatNo + sCurrChr;
}






/**
 * @name Function: Set Article Cost Discount Excl VAT Text Box
 * @access private
 *
 * @param string sFrmName
 * @param float fArtCostDiscountExclVatNo
 */
function SetArtCostDiscountExclVatNoTxtBox(sFrmName, fArtCostDiscountExclVatNo)
{
   // Check: If discount cost exists
   if(fArtCostDiscountExclVatNo)
   {
      // 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: Cost to article discount cost and currency char
      sFrmName.oArtCostDiscountExclVat.value = fArtCostDiscountExclVatNo + sCurrChr;
   }
   else
   {
      // Empty value in txtbox
      sFrmName.oArtCostDiscountExclVat.value = "";
   }
}






/**
 * @name Function: Set Article Stock Status Text Box
 * @access private
 *
 * @param string sFrmName
 * @param array sStockStatus
 */
function SetStockStatusTxtBox(sFrmName, sStockStatus)
{
   sFrmName.oStockStatus.value = sStockStatus;
   
   
   // Set: Hide or show buy button
   (sStockStatus == sStockStatusIsEmpty) ? ToggleLayer(sLayerName, 0) : ToggleLayer(sLayerName, 1);
}






/**
 * @name Function: Set Article Id Text Box
 * @access private
 *
 * @param string sFrmName
 * @param string sArtId
 */
function SetArtIdTxtBox(sFrmName, sArtId)
{
   sFrmName.oArtId.value = sArtId;
}






/**
 * @name Function: Set Url Btn Buy
 * @access private
 *
 * @param string sFrmName
 * @param int iId
 * @param string sArtPrmIdItem
 */
function SetUrlBtnBuy(sFrmName, iId, sArtPrmIdItem)
{
   // Get: Settings
   var oArtTxtBox = sFrmName.elements['sArtTxt'];
   var oArtQtyNoTxtBox = sFrmName.elements['iQtyNo'];
   var iArtQtyNo = 1;
   
   
   // Get: Article quantity
   if(oArtQtyNoTxtBox)
   { iArtQtyNo = IsInteger(oArtQtyNoTxtBox.value) ? oArtQtyNoTxtBox.value : iArtQtyNo; }
   
   
   // Get: Url for inserting an article to the cart
   sUrlBtnBuyPty = (
      '?sAction=bIsInsertArt'
      + '&iId=' + iId
      + '&sArtPrmIdItem=' + sArtPrmIdItem
      + '&iQtyNo=' + iArtQtyNo
      + '&sArtTxt=' + oArtTxtBox.value);
}






/**
 * @name Function: Get Url Btn Buy
 * @access public
 */
function GetUrlBtnBuy()
{
   return sUrlBtnBuy + sUrlBtnBuyPty;
}
