$(document).ready(function () {  
  $('#variant input:radio').live('click', function () {
    $('input[name="iVariantInstockId"]').attr('checked', false);
    recountDetailVariants();
  });
  $('#variant input:checkbox').live('click', function () {
    $('input[name="iVariantInstockId"]').attr('checked', false);
    recountDetailVariants();
  });
  $('#JSgoodsHeight').live('change', recountDetailVariants);
  $('#JSgoodsWidth').live('change', recountDetailVariants);
  $('#JSgoodsHeight,#JSgoodsWidth').live('keypress', function (event) {
    if(event.originalEvent.keyCode == 13)
    {
      $(this.blur());
      return false;
    }
  });
  $('input[name="iVariantInstockId"]').live('click', variantInstockChanged);

  recountDetailVariants();
});



// kdyz kliknu na varianty skladem
function variantInstockChanged()
{
  var iInstockId, aVariantIdList;
  iInstockId = $('input[name="iVariantInstockId"]:checked').val();
  aVariantIdList = aVariantListInstock[iInstockId];
  if (aVariantIdList.length > 0)
  {
    for(i in aVariantIdList)
    {
      $('#item_variant_value_'+aVariantIdList[i]).attr('checked', true);
    }
  }
  recountDetailVariants();
  return true;
}


function checkAllRequiredVariants()
{
  var iCountRequiredSelected = 0;
  var bIsVariant = false;
  $('input[id^="item_variant_value_"]').each(function () {
    bIsVariant = true;
    if ($(this).attr('checked')) {
      re = /^item_variant_value_([0-9]*)$/;
      id = $(this).attr('id');
      ereg = id.match(re);
      iVariantValueId = ereg[1];

      oVariantInfo = aVariantValue[iVariantValueId];
      iVariantId = oVariantInfo.variantId;
      for (i in aRequiredVariantId)
      {
        if (aRequiredVariantId[i] == iVariantId) iCountRequiredSelected++;
      }
    };
  });
  if (!bIsVariant) return true;
  if (iCountRequiredSelected < aRequiredVariantId.length)
  {
    elm = $('input[id^="item_variant_value_"]')
    offset = $(elm).offset();
    window.scrollTo(offset.top, offset.left);
    alert('Pro vložení produktu do košíku musíte vybrat všechny varianty produktu.');
    return false;
  }
  else return true;

}





function recountDetailVariants()
{
  var iTotalPrice = iGoodsPrice;
  var iTotalPriceAdd = 0;
  var iBaseGoodsPrice = iGoodsPrice;
  var iPriceAdd = 0; // cena pro varianty typu ADD
  var sVariantCatalogNumber = "";
  var bIsVariant = false;

  $('#detail-variant-table').empty();
  
  $('input[id^="item_variant_value_"]').each(function () {
    bIsVariant = true;
      
    re = /^item_variant_value_([0-9]*).*$/;
    id = $(this).attr('id');
    ereg = id.match(re);
    iVariantValueId = ereg[1];

    oVariantInfo = aVariantValue[iVariantValueId];

    if (oVariantInfo)
    {
      if (oVariantInfo.price+0 == 0 && oVariantInfo.procent+0 > 0)
        iPriceAdd = iBaseGoodsPrice * (oVariantInfo.procent/100);
      else
        iPriceAdd = oVariantInfo.price;

      iPriceAddVat = Math.round((iPriceAdd * ((iGoodsVat/100)+1)));

      $('#JSvariantItemPrice_'+iVariantValueId).html( priceFormat(iPriceAddVat) );

      if ($(this).attr('checked'))
      {
        if (oVariantInfo.increment_base_price) iBaseGoodsPrice += iPriceAdd;
        
        iTotalPriceAdd += iPriceAdd;        // celkova cena vsech oznacenych variant typu ADD
        iTotalPrice += iPriceAdd;
        
        // jestlize je mozne najit element pro vepsani priplatku, tak ho tam napis
        $('#add_price_'+oVariantInfo.variantId).text(priceFormat(iPriceAdd));
        $('#add_price_vat_'+oVariantInfo.variantId).text(priceFormat(iPriceAddVat));

        $('#detail-variant-table').append('<tr><td title="'+oVariantInfo.name+'">'+oVariantInfo.name+'</td><td class="tar nowrap"><span class="price">'+priceFormat(iPriceAddVat)+'</span> Kč</td></tr>');
      }
    }

  });

  $('#detail-variant-table').append('<tr><th colspan="2" class="top5px tar"><a href="#variant" onclick="return !myScrollTo(this)">Změnit varianty &raquo;</a></th></tr>');

  //if (!bIsVariant) return true;
    // pokud je mozne nakoupit za 1m ctverecni, tak to musim v konecne cene zohlednit
  if ($('input[name="iHeight"]').length > 0)
  {
    $('#JStotalPriceVatByMeter').html(numberFormat(Math.round(iTotalPrice * ((iGoodsVat/100)+1) )));

    var iHeight = parseFloat($('input[name="iHeight"]').val());
    var iWidth = parseFloat($('input[name="iWidth"]').val());
    if (isNaN(iHeight)) iHeight = 0;
    if (isNaN(iWidth)) iWidth = 0;
    iTempHeight = checkHeight(iHeight);
    iTempWidth = checkWidth(iWidth);
    if (iTempHeight != iHeight) $('input[name="iHeight"]').val(iTempHeight);
    if (iTempWidth != iWidth) $('input[name="iWidth"]').val(iTempWidth);

    iHeight = iTempHeight/100;
    iWidth = iTempWidth/100;

    iDimension = (iHeight * iWidth); // prevedeno na metry
    iDimension = Math.round(iDimension*100)/100;
    var iTotalPriceWithDimension = iDimension * iTotalPrice;

    // ted doplnim do stranky
    //$('#JSgoodsBasePrice').html(numberFormat(Math.round(iGoodsPrice)));
    iTotalPrice = Math.round(iTotalPrice);
    //$('#JSgoodsVariantExtraPrice').html(numberFormat(Math.round(iGoodsVariantPriceTotal)));
    $('#JStotal_price').html(numberFormat(Math.round(iTotalPriceWithDimension)));
    $('#JStotal_price_vat').html(numberFormat(Math.round(iTotalPriceWithDimension * ((iGoodsVat/100)+1) )));

  }
  else
  {


    iTotalPriceVat = Math.round(iTotalPrice * ((iGoodsVat/100)+1));
    $('#JStotal_price').html(priceFormat(iTotalPrice)+'');
    $('#JStotal_price_vat').html(priceFormat(iTotalPriceVat)+'');
  }
  

  $('#variant_catalog_number').text(sVariantCatalogNumber);
  
}


function checkHeight(iHeight)
{
  if (typeof(iBuyForMeterHeightFrom) != 'undefined')
  {
    bShowAlert = false;
    if (iHeight < iBuyForMeterHeightFrom) {iHeight = iBuyForMeterHeightFrom; bShowAlert = true;}
    if (iHeight > iBuyForMeterHeightTo) {iHeight = iBuyForMeterHeightTo; bShowAlert = true;}
    if (bShowAlert) alert('Musíte zadat délku v rozmezí od '+iBuyForMeterHeightFrom+' do '+iBuyForMeterHeightTo);
  }
  return iHeight;
}


function checkWidth(iWidth)
{
  if (typeof(iBuyForMeterWidthFrom) != 'undefined')
  {
    bShowAlert = false;
    if (iWidth < iBuyForMeterWidthFrom) {iWidth = iBuyForMeterWidthFrom; bShowAlert = true;}
    if (iWidth > iBuyForMeterWidthTo) {iWidth = iBuyForMeterWidthTo; bShowAlert = true;}
    if (bShowAlert) alert('Musíte zadat šířku v rozmezí od '+iBuyForMeterWidthFrom+' do '+iBuyForMeterWidthTo);
  }
  return iWidth;
}



function priceFormat(sPrice) {
  //iPrice = parseFloat(sPrice);
  //sPrice = Math.round(iPrice);

  sPrice = sPrice.toString();
  sPrice = sPrice.replace("\.", ",");
  var rgx;
  re = /^([0-9]*),([0-9]*)$/;
  regs = sPrice.match(re);
  if (regs) {
    sHalere = regs[2];
    sKoruny = regs[1];
    if (sHalere.length == 1) sHalere += '0';
    if (sHalere.length > 2) sHalere = sHalere.substr(0,2);
    rgx = /(\d+)(\d{3})/;
    while (rgx.test(sKoruny)) {
      sKoruny = sKoruny.replace(rgx, '$1' + ' ' + '$2');
    }
    sPrice = sKoruny+','+sHalere;
  }
  else
  {
    rgx = /(\d+)(\d{3})/;
    while (rgx.test(sPrice)) {
      sPrice = sPrice.replace(rgx, '$1' + ' ' + '$2');
    }
    sPrice += ',-';
  }

  return sPrice;
}


