//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * @package Starweb Webshop System
 * @version See version-file
 * @copyright Copyright (c) 2000 - 2010, Ehandelslogik AB
 * 
 * @author Ehandelslogik 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: Div name to hide/show */
var sDivName = 'cssBtnBuy';

/** @var string - Get: Frameset or frameless */
var sLocationArtItem = ((IsFrameset() == true) && !location.href.indexOf("/Admin")) ? (sUrlShop + 'Frameset/fr' + sCartFrameName + '.php') : GetChrStrStr(top.location.href, "sAction=", true);
if(!sLocationArtItem){ alert("ERROR: sLocationArtItem is NOT set in ArtItem. Please contact support@starweb.se with this error message."); }

/** @var string - Get: Frameset or frameless */
var sLocationArtList = ((IsFrameset() == true) && !location.href.indexOf("/Admin")) ? (sUrlShop + 'Frameset/fr' + sCartFrameName + '.php') : location.pathname; //location.pathname
if(!sLocationArtList){ alert("ERROR: sLocationArtList is NOT set in ArtList. Please contact support@starweb.se with this error message."); }



var sVat;
var bIsInclVat;
var sChrStop;
var sChrComma;
var sUrlShop;
var sCartFrameName;
var sUrlBtnBuy; // @todo - If frameless design...
var sUrlBtnBuyPty = "";
var sUrlArtImg;
var sImgArtNameDefault;
var sArtModelIdSel = "";
var bIsViewCost;
var iCustRtlrNr;
var sCurrChr;
var fCurrWorthNr;
var iCurrDecNr;
var iDbId;
var sDbArtModelId;
var iDbArtVatNr;
var fDbWeightNr;
var fDbCostExclVatNr;
var fDbCostDiscountExclVatNr;
var fDbCostCustRtlrExclVatNr;
var sDbStockStatusTransl;
var sLangStockStatusIsEmpty;
var sUrlImgSoft_1;
var sImgFileName_1;
var iWdtNr_1;
var iHgtNr_1;
var bIsImgIsArtItemAutoZoom;
var bIsImgIsArtHighslide;
var sApp;
var iSetupShopSizeNr;
var bIsModMultiplyCustOwnTxtRealTim;
var sWarnTranslMsg;
var iArtPrmTotalNr;
var iArtPrm_DataTotalNr;
var aArtPrm_DataUniqueIdItem;
var aImgArtPrmItem;






//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * @name Function: Set Article Item Settings
 * @access public
 */
function SetArtItemSett(sVatSett, bIsInclVatSett, sChrStopSett, sChrCommaSett, sUrlShopSett, sCartFrameNameSett, sArtNameSett, sUrlBtnBuySett,
   sUrlArtImgSett, sImgArtNameDefaultSett, bIsViewCostSett, iCustRtlrNrSett, sCurrChrSett, fCurrWorthNrSett, iCurrDecNrSett, iDbIdSett,
   sDbArtModelIdSett, iDbArtVatNrSett, fDbWeightNrSett, fDbCostExclVatNrSett, fDbCostDiscountExclVatNrSett, fDbCostCustRtlrExclVatNrSett,
   sDbStockStatusTranslSett, sLangStockStatusIsEmptySett, sUrlImgSoft_1Sett, sImgFileName_1Sett, iWdtNr_1Sett, iHgtNr_1Sett,
   bIsImgIsArtItemAutoZoomSett, bIsImgIsArtHighslideSett, sAppSett, iSetupShopSizeNrSett,
   bIsModMultiplyCustOwnTxtRealTimeSett, sWarnTranslMsgSett, iArtPrmTotalNrSett, iArtPrm_DataTotalNrSett)
{
   sVat                             = sVatSett;
   bIsInclVat                       = bIsInclVatSett;
   sChrStop                         = sChrStopSett;
   sChrComma                        = sChrCommaSett;
   sUrlApp                          = sUrlShopSett;
   sCartFrameName                   = sCartFrameNameSett;
   sArtName                         = sArtNameSett;
   sUrlBtnBuy                       = sUrlBtnBuySett;
   sUrlArtImg                       = sUrlArtImgSett;
   sImgArtNameDefault               = sImgArtNameDefaultSett;
   bIsViewCost                      = bIsViewCostSett;
   iCustRtlrNr                      = iCustRtlrNrSett;
   sCurrChr                         = sCurrChrSett;
   fCurrWorthNr                     = fCurrWorthNrSett;
   iCurrDecNr                       = iCurrDecNrSett;
   iDbId                            = iDbIdSett;
   sDbArtModelId                    = sDbArtModelIdSett;
   iDbArtVatNr                      = iDbArtVatNrSett;
   fDbWeightNr                      = fDbWeightNrSett;
   fDbCostExclVatNr                 = fDbCostExclVatNrSett;
   fDbCostDiscountExclVatNr         = fDbCostDiscountExclVatNrSett;
   fDbCostCustRtlrExclVatNr         = fDbCostCustRtlrExclVatNrSett;
   sDbStockStatusTransl             = sDbStockStatusTranslSett;
   sLangStockStatusIsEmpty          = sLangStockStatusIsEmptySett;
   sUrlImgSoft_1                    = sUrlImgSoft_1Sett;
   sImgFileName_1                   = sImgFileName_1Sett;
   iWdtNr_1                         = iWdtNr_1Sett;
   iHgtNr_1                         = iHgtNr_1Sett;
   bIsImgIsArtItemAutoZoom          = bIsImgIsArtItemAutoZoomSett;
   bIsImgIsArtHighslide             = bIsImgIsArtHighslideSett;
   sApp                             = sAppSett;
   iSetupShopSizeNr                 = iSetupShopSizeNrSett;
   bIsModMultiplyCustOwnTxtRealTime = bIsModMultiplyCustOwnTxtRealTimeSett;
   sWarnTranslMsg                   = sWarnTranslMsgSett;
   iArtPrmTotalNr                   = iArtPrmTotalNrSett;
   iArtPrm_DataTotalNr              = iArtPrm_DataTotalNrSett;
}






/**
 * @name Function: Set Article Item Field Value List
 * @access public
 */
function SetArtItemFldValList()
{
   // Get: Is there article parameters?
   var frmArtItem = document.forms['frmArtItem'];
   var oArtPrm_0  = frmArtItem.elements['aItem[oArtPrm_0]']; // MUST BE FOUND BY NAME DUE TO LABEL IS IDENTIFIED BY ID!
   var sArtModelIdSel, sStockStatusSel, fArtWeightNrSel, fCostExclVatNrSel, fCostDiscountExclVatNrSel, fCostCustRtlrExclVatNrSel;
   var i, j, iUniqueIdRowNr;
   var sUniqueId            = "";
   var iArtQtyNr            = 1;
   var oArtQtyNrTxtBox      = document.getElementById("aItem[iArtQtyNr]");
   var oCustOwnTxt_1TxtArea = document.getElementById("aItem[oCustOwnTxt_1]");
   var oCustOwnTxt_2TxtArea = document.getElementById("aItem[oCustOwnTxt_2]");
   var oCustOwnTxt_3TxtArea = document.getElementById("aItem[oCustOwnTxt_3]");
   var oCustOwnTxt_4TxtArea = document.getElementById("aItem[oCustOwnTxt_4]");
   var sWarnMsg;
   
   
   
   switch(true)
   {
      // ARTICLE PARAMETER
      case ((oArtPrm_0 != "") && (oArtPrm_0 != undefined)):
         // Loop: Through all fields in array
         for(i=0, j=1; i<iArtPrmTotalNr; i++, j++)
         {
            // Get: Article parameter object
            var oArtPrmObj = frmArtItem["aItem[oArtPrm_"+ i +"]"]; // MUST BE FOUND BY NAME SINCE LABEL IS IDENTIFIED BY ID!
            
            
            /* Article parameter exists, set article parameter cost - Start */
            if(oArtPrmObj)
            {
               switch(true)
               {
                  // RADIO BUTTON
                  case (oArtPrmObj.type == "radio"):
                  case ((oArtPrmObj.type == undefined) && (oArtPrmObj.checked == undefined) && (oArtPrmObj.length > 0)): // Several radio buttons
                     // Check: If several radio buttons per parameter
                     if(oArtPrmObj.length > 0)
                     {
                        for(var k=0; k<oArtPrmObj.length; k++)
                        {
                           // Check: That value is checked
                           if(oArtPrmObj[k].checked)
                           {
                              sUniqueId += oArtPrmObj[k].value;
                              break;
                           }
                        }
                     }
                     // Check: Only ONE radio button per parameter
                     else if(oArtPrmObj.checked == true)
                     { sUniqueId += oArtPrmObj.value; }
                     break;
                     
                     
                  // SELECT LIST
                  default:
                     // Get: Selected article parameter id
                     if(oArtPrmObj.options)
                     { sUniqueId += oArtPrmObj.options[oArtPrmObj.selectedIndex].value; }
                     break;
               }
               
               
               // Set: Add value to total unique id string
               if(iArtPrmTotalNr != j)
               { sUniqueId += sChrStop; }
            }
            /* Article parameter exists, set article parameter cost - End */
         }
         
         
         if(sUniqueId)
         {
            // Loop: Through all fields in array
            for(iUniqueIdRowNr=0; iUniqueIdRowNr<iArtPrm_DataTotalNr; iUniqueIdRowNr++)
            {
               if(aArtPrm_DataUniqueIdItem[iUniqueIdRowNr][sUniqueId])
               {
                  sArtModelIdSel            = aArtPrm_DataUniqueIdItem[iUniqueIdRowNr][sUniqueId]["ModelId"];
                  sStockStatusSel           = aArtPrm_DataUniqueIdItem[iUniqueIdRowNr][sUniqueId]["sStockStatusTransl"];
                  fArtWeightNrSel           = aArtPrm_DataUniqueIdItem[iUniqueIdRowNr][sUniqueId]["WeightNr"];
                  fCostExclVatNrSel         = aArtPrm_DataUniqueIdItem[iUniqueIdRowNr][sUniqueId]["CostExclVatNr"];
                  fCostDiscountExclVatNrSel = aArtPrm_DataUniqueIdItem[iUniqueIdRowNr][sUniqueId]["CostDiscountExclVatNr"];
                  fCostCustRtlrExclVatNrSel = aArtPrm_DataUniqueIdItem[iUniqueIdRowNr][sUniqueId]["CostCustRtlrExclVatNr"];
                  //sImgArtPrmName            = aArtPrm_DataUniqueIdItem[iUniqueIdRowNr][sUniqueId]["Img"];
                  break;
               }
            }
         }
         break;
         
         
         
      // _NO_ ARTICLE PARAMETER
      default:
         sArtModelIdSel            = sDbArtModelId;
         sStockStatusSel           = sDbStockStatusTransl;
         fArtWeightNrSel           = fDbWeightNr;
         fCostExclVatNrSel         = fDbCostExclVatNr;
         fCostDiscountExclVatNrSel = fDbCostDiscountExclVatNr;
         fCostCustRtlrExclVatNrSel = fDbCostCustRtlrExclVatNr;
         break;
   }
   
   
   
   // Set: Model id, stock status, weight number, url to insert article in cart
   SetModelIdTxtBox(sArtModelIdSel);
   SetStockStatusTxtBox(sStockStatusSel);
   SetWeightNrTxtBox(fArtWeightNrSel);
   SetImgArtPrm(sUniqueId, iUniqueIdRowNr);
   SetUrlBtnBuy(iDbId, sArtModelIdSel);
   
   
   
   // Check: That accessory is installed, and that CustOwnTxt-field exists
   if((bIsModMultiplyCustOwnTxtRealTime == '1') && oCustOwnTxt_1TxtArea)
   {
      // Get: Article quantity
      iArtQtyNr = IsInteger(oArtQtyNrTxtBox.value) ? oArtQtyNrTxtBox.value : iArtQtyNr;
      
      // Get: Width * height
      var iCustOwnTxtValNr = (IsInteger(oCustOwnTxt_1TxtArea.value) && IsInteger(oCustOwnTxt_2TxtArea.value))
         ? (oCustOwnTxt_1TxtArea.value * oCustOwnTxt_2TxtArea.value)
         : (IsInteger(oCustOwnTxt_1TxtArea.value) ? oCustOwnTxt_1TxtArea.value : 0);
      
      
      // View: Warnings
      if((oCustOwnTxt_1TxtArea.value > "") && (IsInteger(oCustOwnTxt_1TxtArea.value) -1))
      {
         sWarnMsg = sWarnTranslMsg;
      }
      else if(oCustOwnTxt_2TxtArea)
      {
         if((oCustOwnTxt_2TxtArea.value > "") && (IsInteger(oCustOwnTxt_2TxtArea.value) -1))
         { sWarnMsg = sWarnTranslMsg; }
      }
      if(sWarnMsg)
      { alert(sWarnMsg); }
      
      
      if((iCustOwnTxtValNr > 0) && oCustOwnTxt_1TxtArea.value && !sWarnMsg)
      {
         // Get: Costs based on width/height
         var fCustOwnCostExclVatNr         = (iCustOwnTxtValNr * (fCostExclVatNrSel * iArtQtyNr));
         var fCustOwnCostDiscountExclVatNr = (iCustOwnTxtValNr * (fCostDiscountExclVatNrSel * iArtQtyNr));
         var fCustOwnCostCustRtlrExclVatNr = (iCustOwnTxtValNr * (fCostCustRtlrExclVatNrSel * iArtQtyNr));
         
         
         // Set: Cost text boxes
         SetArtCostTxtBoxList(fCustOwnCostExclVatNr, fCustOwnCostDiscountExclVatNr, fCustOwnCostCustRtlrExclVatNr);
         
         
         // View: Buy button
         DivToggle(sDivName, 1);
      }
      else
      {
         // Hide: Buy button
         DivToggle(sDivName, 0);
      }
   }
   else
   {
      // Set: Cost text boxes
      SetArtCostTxtBoxList(fCostExclVatNrSel, fCostDiscountExclVatNrSel, fCostCustRtlrExclVatNrSel);
   }
}






/**
 * @name Function: Set Article Cost Text Box List
 * @access private
 *
 * @param float fCostExclVatNrSel
 * @param float fCostDiscountExclVatNrSel
 * @param float fCostCustRtlrExclVatNrSel
 */
function SetArtCostTxtBoxList(fCostExclVatNrSel, fCostDiscountExclVatNrSel, fCostCustRtlrExclVatNrSel)
{
   if(bIsViewCost == true)
   {
      // Set: Cheapest price
      var fCostCheapestExclVatNr = "";
      switch(true)
      {
         // RETAILER
         case ((iCustRtlrNr > 0) && (fCostCustRtlrExclVatNrSel > 0)):
            fCostCheapestExclVatNr = fCostCustRtlrExclVatNrSel;
            break;
            
         // DISCOUNT
         case (fCostDiscountExclVatNrSel > 0):
            fCostCheapestExclVatNr = fCostDiscountExclVatNrSel;
            break;
            
         // COST
         case (fCostExclVatNrSel > 0):
            fCostCheapestExclVatNr = fCostExclVatNrSel;
            break;
      }
      
      
      switch(true)
      {
         // SET: Cost to both text boxes. If discounted cost OR retailer cost is set 
         case ((fCostDiscountExclVatNrSel > 0) && (fCostDiscountExclVatNrSel != fCostExclVatNrSel)):
         case ((fCostCustRtlrExclVatNrSel > 0) && (fCostCustRtlrExclVatNrSel != fCostExclVatNrSel)):
            SetArtCostExclVatNrTxtBox(fCostCheapestExclVatNr);
            SetArtCostDiscountExclVatNrTxtBox(fCostExclVatNrSel);
            break;
            
            
         // SET: Cost to both text boxes. If both prices are the same, hide discount price
         default:
            SetArtCostExclVatNrTxtBox(fCostCheapestExclVatNr);
            SetArtCostDiscountExclVatNrTxtBox(0.0);
            break;
      }
   }
}






/**
 * @name Function: Set Article Cost Excl VAT Text Box
 * @access private
 *
 * @param float fArtCostExclVatNr
 */
function SetArtCostExclVatNrTxtBox(fArtCostExclVatNr)
{
   // Get: Settings
   var oArtCostExclVatNr    = document.getElementById("oArtCostExclVatNr");
   var bIsViewCostInclVatNr = ((sVat == 'InclVatNr') && (bIsInclVat == true)) ? true : false;
   
   
   if(oArtCostExclVatNr)
   {
      // Get: Cost incl/excl VAT
      switch(bIsViewCostInclVatNr)
      {
         // INCL VAT - Due to customer within EU
         case true:
            var sVatStr       = (iDbArtVatNr.length == 1) ? '1.0' + iDbArtVatNr : '1.' + iDbArtVatNr;
            fArtCostExclVatNr = GetRoundCostNr((fArtCostExclVatNr * sVatStr) / fCurrWorthNr);
            break;
            
            
         // EXCL VAT - Due to customer outside of EU
         default:
            fArtCostExclVatNr = GetRoundCostNr(fArtCostExclVatNr / fCurrWorthNr);
            break;
      }
      
      
      // Set: Article cost and currency char
      oArtCostExclVatNr.value = fArtCostExclVatNr + sCurrChr;
   }
}






/**
 * @name Function: Set Article Cost Discount Excl VAT Text Box
 * @access private
 *
 * @param float fArtCostDiscountExclVatNr
 */
function SetArtCostDiscountExclVatNrTxtBox(fArtCostDiscountExclVatNr)
{
   // Get: Setting
   var oArtCostDiscountExclVatNr = document.getElementById("oArtCostDiscountExclVatNr");
   
   
   // Check: If discount cost exists
   if(fArtCostDiscountExclVatNr && oArtCostDiscountExclVatNr)
   {
      // Get: Is cost incl VAT? (Depending on customer country)
      var bIsViewCostInclVatNr = ((sVat == 'InclVatNr') && (bIsInclVat == true)) ? true : false;
      
      
      // Get: Cost incl/excl VAT
      switch(bIsViewCostInclVatNr)
      {
         // INCL VAT - Due to customer within EU
         case true:
            var sVatStr = (iDbArtVatNr.length == 1) ? '1.0' + iDbArtVatNr : '1.' + iDbArtVatNr;
            fArtCostDiscountExclVatNr = GetRoundCostNr((fArtCostDiscountExclVatNr * sVatStr) / fCurrWorthNr);
            break;
            
            
         // EXCL VAT - Due to customer outside of EU
         default:
            fArtCostDiscountExclVatNr = GetRoundCostNr(fArtCostDiscountExclVatNr / fCurrWorthNr);
            break;
      }
      
   
      // Set: Cost to article discount cost and currency char
      oArtCostDiscountExclVatNr.value = fArtCostDiscountExclVatNr + sCurrChr;
   }
   else
   {
      // Set: Empty value in text box
      oArtCostDiscountExclVatNr.value = "";
   }
}






/**
 * @name Function: Set Model Id Text Box
 * @access private
 *
 * @param string sArtModelId
 */
function SetModelIdTxtBox(sArtModelId)
{
   // Get: Setting
   var oArtModelId = document.getElementById("oArtModelId");
   
   
   if(sArtModelId && oArtModelId)
   { oArtModelId.value = sArtModelId; }
}






/**
 * @name Function: Set Stock Status Text Box
 * @access private
 *
 * @param array sStockStatus
 */
function SetStockStatusTxtBox(sStockStatus)
{
   // Get: Setting
   var oArtStockStatus = document.getElementById("oArtStockStatus");
   
   
   if(sStockStatus && oArtStockStatus)
   {
      oArtStockStatus.value = sStockStatus;
      
      
      // Set: Hide or show buy button
      (sStockStatus == sLangStockStatusIsEmpty) ? DivToggle(sDivName, 0) : DivToggle(sDivName, 1);
   }
}






/**
 * @name Function: Set Weight Number Text Box
 * @access private
 *
 * @param float fArtWeightNr
 */
function SetWeightNrTxtBox(fArtWeightNr)
{
   // Get: Settings
   var oArtWeightNr            = document.getElementById("oArtWeightNr");
   var sDivArtItemWeightNrName = "cssArtItemWeightNrTxt";
   
   
   if(fArtWeightNr && oArtWeightNr)
   {
      // Set: Hide weight number label
      DivToggle(sDivArtItemWeightNrName, 0);
      
      // Set: Weight to nothing
      oArtWeightNr.value = "";
      
      
      if(fArtWeightNr > 0)
      {
         // Set: Show weight number label
         DivToggle(sDivArtItemWeightNrName, 1);
         
         // Get: Weight number string
         if(fArtWeightNr < 1)
         {
            var sArtWeightNr  = (fArtWeightNr * 1000);
            sArtWeightNr     += ""; // Force string
            
            // Set: Max number of decimals
            sArtWeightNr = sArtWeightNr.substring(0, 7);
            
            sArtWeightNr += " gram";
         }
         else
         { sArtWeightNr = fArtWeightNr +" kg"; }
         
         
         // Set: Textbox to value
         oArtWeightNr.value = sArtWeightNr;
      }
   }
}






/**
 * @name Function: Set Image Article Parameter
 * @access private
 *
 * @param string sUniqueId
 * @param integer iUniqueIdRowNr
 */
function SetImgArtPrm(sUniqueId, iUniqueIdRowNr)
{
   // Get: Settings
   //var oArtImg_1    = document.getElementById("oArtItemImg_1");
   var oArtImg_1    = document.getElementById("cssArtItemImg_1");
   var oArtDivImg_1 = document.getElementById("cssImg_1");
   

   
   if(oArtImg_1)
   {
      switch(true)
      {
         // GET: Selected article parameter image
         case ((sUniqueId != "") && (iUniqueIdRowNr != undefined) && (iSetupShopSizeNr > 2)):
            if(aImgArtPrmItem[iUniqueIdRowNr][sUniqueId] != "")
            {
               switch(true)
               {
                  // Check: That it's an SWF flash movie
                  case (aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["sUrlImgSoft"].indexOf(".swf") != -1):
                     // Get: Image html (oArtItemImg_1 must be present)
                     var sImgHtml = "<div id=\"oArtItemImg_1\"> </div>";
                     
                     // Get: SWF flash video html
                     var sSwfFlashVideoHtml = GetSwfFlashMovieHtml(
                        aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["sUrlImgSoft"],
                        aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iWdtNr"],
                        aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iHgtNr"]
                     );
                     var sHrefHtml = (bIsImgIsArtItemAutoZoom == true)
                        ? "<a id=\"aUrlArtItemImg_1\" onmouseover=\"ImgPopupAutoZoomShow(this,'Flash','"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["sUrlImgSoft"].replace(" ", "%20") +"','"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iOrgWdtNr"] +"','"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iOrgHgtNr"] +"')\" onmouseout=\"ImgPopupAutoZoomHide()\" class=\"highslide\" onclick=\"return hs.htmlExpand(this, {objectType:'swf', objectWidth:'"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iOrgWdtNr"] +"', objectHeight:'"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iOrgHgtNr"] +"', align:'center', allowSizeReduction:false})\" href=\""+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["sUrlImgSoft"] +"\">"
                        : "<a id=\"aUrlArtItemImg_1\" class=\"highslide\" onclick=\"return hs.htmlExpand(this, {objectType:'swf', objectWidth:'"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iOrgWdtNr"] +"', objectHeight:'"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iOrgHgtNr"] +"', align:'center', allowSizeReduction:false})\" href=\""+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["sUrlImgSoft"] +"\">";
                     
                     
                     var iRandNr = Math.random();
                     iRandNr     = Math.floor(iRandNr * 100);
                                         
                     var sImgTransparentHtml = "<div><div>"+ sHrefHtml;
                         sImgTransparentHtml +="<img id=\"cssImgTransparentNr_"+ iRandNr +"\" src=\""+ sUrlShop +"Image/Pixel.gif\" class=\"cssImgTransparent cssIeOpacity\" />";
                         sImgTransparentHtml +="<style type=\"text/css\">.cssImg #cssImgTransparentNr_"+ iRandNr +" {height:"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iHgtNr"] +"px; width:"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iWdtNr"] +"px;}";
                         sImgTransparentHtml +=".cssArtItemImgThumbGallery #cssImgTransparentNr_"+ iRandNr +" { height:"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iWdtNr"] +"px; width:"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iHgtNr"] +"px; background-color:red; display:block; z-index:2; position:absolute; margin:0px;}";        
                         sImgTransparentHtml +="</style><img class=\"cssMovieIcon\" src=\""+ sUrlShop +"Image/icon_movie_highslide.png\"/></a></div>"+ sSwfFlashVideoHtml +"</div>"+ sImgHtml +"</div>";
                     
                     
                     // View: Url and image
                    // oArtDivImg_1.innerHTML = sHrefHtml + sSwfFlashVideoHtml + sImgHtml;
                     oArtDivImg_1.innerHTML = sImgTransparentHtml;
                     break;
                     
                     
                     
                  // Check: That it's not the default image
                  case ((aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["sUrlImgSoft"].indexOf(sImgArtNameDefault) == -1)
                     && (aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["sUrlImgSoft"] != "")):
                     // Get: Image html
                     var sImgHtml = GetImgHtml(
                        aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["sUrlImgSoft"],
                        aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iWdtNr"],
                        aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iHgtNr"]
                     );
                     var sHrefHtml = (bIsImgIsArtItemAutoZoom == true)
                        ? "<a id=\"aUrlArtItemImg_1\" onmouseover=\"ImgPopupAutoZoomShow(this,'Img','"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["sUrlImgSoft"].replace(" ", "%20") +"','"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iOrgWdtNr"] +"','"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iOrgHgtNr"] +"')\" onmouseout=\"ImgPopupAutoZoomHide()\" class=\"highslide\" onclick=\"return hs.expand(this, {align:'center'})\" href=\"\">"
                        : "<a id=\"aUrlArtItemImg_1\" class=\"highslide\" onclick=\"return hs.expand(this, {wrapperClassName: 'imgWrap', align:'center'})\" href=\"\">";
                     
                     // View: Url and image
                     oArtDivImg_1.innerHTML = sHrefHtml + sImgHtml;
                     
                     // Set: Url
                     var oUrlArtItemImg_1   = document.getElementById("aUrlArtItemImg_1");
                     oUrlArtItemImg_1.href  = aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["sUrlImgSoft"];
                     
                     // Set: Image
                     oArtImg_1.src    = aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["sUrlImgSoft"];
                     
                     // Set: Width/height
                     oArtImg_1.width  = aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iWdtNr"];
                     oArtImg_1.height = aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iHgtNr"];
                     break;
                     
                     
                     
                  // Get: Image to first article image (default article image "-IngenBildVald-.jpg")
                  default:
                     // Get: Image html
                     var sImgHtml = GetImgHtml(
                        sUrlImgSoft_1,
                        iWdtNr_1,
                        iHgtNr_1
                     );
                     var sHrefHtml = (bIsImgIsArtItemAutoZoom == true)
                        ? "<a id=\"aUrlArtItemImg_1\" onmouseover=\"ImgPopupAutoZoomShow(this,'Img','"+ sUrlImgSoft_1.replace(" ", "%20") +"','"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iOrgWdtNr"] +"','"+ aImgArtPrmItem[iUniqueIdRowNr][sUniqueId]["iOrgHgtNr"] +"')\" onmouseout=\"ImgPopupAutoZoomHide()\" class=\"highslide\" onclick=\"return hs.expand(this, {align:'center'})\" href=\"\">"
                        : "<a id=\"aUrlArtItemImg_1\" class=\"highslide\" onclick=\"return hs.expand(this, {wrapperClassName: 'imgWrap', align:'center'})\" href=\"\">";
                     
                     // View: Url and image
                     oArtDivImg_1.innerHTML = sHrefHtml + sImgHtml;
                     
                     // Set: Url
                     var oUrlArtItemImg_1   = document.getElementById("aUrlArtItemImg_1");
                     oUrlArtItemImg_1.href  = sUrlImgSoft_1;
                     
                     // Set: Image
                     oArtImg_1.src = sUrlImgSoft_1;
                     
                     // Set: Width/height
                     oArtImg_1.width  = iWdtNr_1;
                     oArtImg_1.height = iHgtNr_1;
                     break;
               }
            }
            else
            {
               // Set: Image to default article image "-IngenBildVald-.jpg"
               oArtImg_1.src = sUrlArtImg + sImgArtNameDefault;
               
               // Set: Width/height
               oArtImg_1.width  = iWdtNr_1;
               oArtImg_1.height = iHgtNr_1;
            }
            break;
      }
   }
}






/**
 * @name Function: Get Image Html
 * @access private
 *
 * @param string $sUrlImgSoft
 * @param integer $iWdtNr
 * @param integer $iHgtNr
 * 
 * @return string
 */
function GetImgHtml(sUrlImgSoft, iWdtNr, iHgtNr)
{
   var sImgHtml;
   
   // Get: Image html
   sImgHtml  = "<img src=\""+ sUrlImgSoft +"\" id=\"oArtItemImg_1\""; // style=\"height:"+ iHgtNr +"px; width:"+ iWdtNr +"px;\"
   sImgHtml += " class=\"cssImgBorder oArtItemImg_1\" alt=\"\" /></a>";
   sImgHtml += " <style>.oArtItemImg_1 { height:"+ iHgtNr +"px; width:"+ iWdtNr +"px; }</style>";
   
   return sImgHtml;
}






/**
 * @name Function: Get SWF Flash Movie Html
 * @access private
 *
 * @param string $sUrlImgSoft
 * @param integer $iWdtNr
 * @param integer $iHgtNr
 * 
 * @return string
 */
function GetSwfFlashMovieHtml(sUrlImgSoft, iWdtNr, iHgtNr)
{
   var sImgHtml;

   // Get: SWF flash movie html
   sImgHtml  = "<object id=\"cssSwf_1\" type=\"application/x-shockwave-flash\" data=\""+ sUrlImgSoft +"\" width=\""+ iWdtNr +"\" height=\""+ iHgtNr +"\">";
   sImgHtml += "<param value=\"opaque\" name=\"wmode\" />";
   sImgHtml += "<param value=\"\" name=\"flashvars\" />";
   sImgHtml += "<!--[if IE]>-->";
   sImgHtml += "<param name=\"movie\" value=\""+ sUrlImgSoft +"\" />";
   sImgHtml += "<!--<![endif]-->";
   sImgHtml += "</object>";
   
   return sImgHtml;
}






/**
 * @name Function: Set Url Btn Buy
 * @access private
 *
 * @param integer iId
 * @param string sArtModelId
 */
function SetUrlBtnBuy(iId, sArtModelId)
{
   if(sLocationArtItem)
   {
      // Get: Settings
      var sCustOwnTxt_1        = sCustOwnTxt_2 = sCustOwnTxt_3 = sCustOwnTxt_4 = "";
      var oCustOwnTxt_1TxtArea = document.getElementById("aItem[oCustOwnTxt_1]");
      var oCustOwnTxt_2TxtArea = document.getElementById("aItem[oCustOwnTxt_2]");
      var oCustOwnTxt_3TxtArea = document.getElementById("aItem[oCustOwnTxt_3]");
      var oCustOwnTxt_4TxtArea = document.getElementById("aItem[oCustOwnTxt_4]");
      var oArtQtyNrTxtBox      = document.getElementById("aItem[iArtQtyNr]");
      var iArtQtyNr            = 1;
      var sArtModelIdSafe      = sArtModelId.replace("+", "///");
      
      // Get: Customer own texts
      if(oCustOwnTxt_1TxtArea){ sCustOwnTxt_1 = oCustOwnTxt_1TxtArea.value; }
      if(oCustOwnTxt_2TxtArea){ sCustOwnTxt_2 = oCustOwnTxt_2TxtArea.value; }
      if(oCustOwnTxt_3TxtArea){ sCustOwnTxt_3 = oCustOwnTxt_3TxtArea.value; }
      if(oCustOwnTxt_4TxtArea){ sCustOwnTxt_4 = oCustOwnTxt_4TxtArea.value; }
      
      // Get: Article quantity
      if(oArtQtyNrTxtBox)
      { iArtQtyNr = IsInteger(oArtQtyNrTxtBox.value) ? oArtQtyNrTxtBox.value : iArtQtyNr; }
      
      //var sUrlChrStart = (IsFrameset() == true) ? "?" : (sLocationArtItem.match(".php?") ? "&" : "?");
      //alert("sLocationArtItem>>"+ sLocationArtItem);
      
      // Set: Url for inserting an article to the cart
      sUrlBtnBuyPty = 
         '?sAction=bIsInsertArt'
         + '&iId='           + iId
         + '&sArtModelId='   + sArtModelIdSafe
         + '&iArtQtyNr='     + iArtQtyNr
         + '&sCustOwnTxt_1=' + sCustOwnTxt_1
         + '&sCustOwnTxt_2=' + sCustOwnTxt_2
         + '&sCustOwnTxt_3=' + sCustOwnTxt_3
         + '&sCustOwnTxt_4=' + sCustOwnTxt_4;
   }
}






/**
 * @name Function: Get Url, Button Buy Article Item
 * @access public
 * 
 * @return string
 */
function GetUrlBtnBuyArtItem()
{
   if(sLocationArtItem)
   {
      // Get: Random string as BtnBuyKey
      var sBtnBuyKey = GetRandStr();
      
      // View: Cart buy popup message
      ViewDivPopupMsg("#cssCartBuyPopupMsg", 3000, false);
      
      // Get: Url for inserting an article to the cart
      var sUrlBtnBuy = sUrlShop +'Page/pgAjaxLoad.php'+ sUrlBtnBuyPty +'&sBtnBuyKey='+ sBtnBuyKey;
      /*var sUrlBtnBuy = (IsFrameset() == true)
         ? sUrlBtnBuyPty + "&sBtnBuyKey=" + sBtnBuyKey
         : sUrlShop + "Page/pgAjaxLoad.php" + sUrlBtnBuyPty + "&sBtnBuyKey=" + sBtnBuyKey;*/
      
      
      return sUrlBtnBuy;
   }
}






/**
 * @name Function: Get Url, Button Buy Article List
 * @access public
 *
 * @param integer iId
 * @param string sArtModelId
 * 
 * @return string
 */
function GetUrlBtnBuyArtList(iId, sArtModelId)
{
   if(sLocationArtList)
   {
      // Get: Settings
      var sArtModelIdSafe = sArtModelId.replace("+", "///");
      
      // Get: Random string as BtnBuyKey
      var sBtnBuyKey = GetRandStr();
      
      // View: Cart buy popup message
      ViewDivPopupMsg("#cssCartBuyPopupMsg", 3000, false);
      
      // Get: Url for inserting an article to the cart
      var sUrlBtnBuy =
         sUrlShop + 'Page/pgAjaxLoad.php'
         + '?sAction=bIsInsertArt'
         + '&iId='           + iId
         + '&sArtModelId='   + sArtModelIdSafe
         + '&sBtnBuyKey='    + sBtnBuyKey;
      
      
      return sUrlBtnBuy;
   }
}






/**
 * @name Function: Get Article Model Id Selected
 * @access public
 * 
 * @return string
 */
function GetArtModelIdSel()
{
   return sArtModelIdSel;
}






/**
 * @name Function: Get Char String In String
 * @access public
 * 
 * @desc Function was fetched from http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_strstr/
 * http://kevin.vanzonneveld.net
 * +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
 * +   bugfixed by: Onno Marsman
 *     example 1: GetChrStrStr('Kevin van Zonneveld', 'van');
 *     returns 1: 'van Zonneveld'
 *     example 2: GetChrStrStr('Kevin van Zonneveld', 'van', true);
 *     returns 2: 'Kevin '
 *
 * @param string haystack
 * @param string needle
 * @param boolean bool
 * 
 * @return string
 */
function GetChrStrStr(haystack, needle, bool)
{
    var pos = 0;
 
    haystack += '';
    pos       = haystack.indexOf(needle);
    
    if( pos == -1 ){
        return haystack;//return false;
    } else{
        if( bool ){
            return haystack.substr(0, pos);
        } else{
            return haystack.slice(pos);
        }
    }
}