$(document).ready(function () {  
  $('#detail-variants input:radio').live('click', function () {
    
    recountDetailVariants();
    
    imageChange($(this).val());
    
    //myScrollTo('detailTop');
  });
  
  $('#detail-variants label').live('click', function () {
    recountDetailVariants();    
    
    // pro IE shit
    if ($.browser.msie)
    {
      //alert($(this).attr('for'))
      re = /item_variant_value_([0-9]*)/;
      temp = $(this).attr('for').match(re);      
      imageChange(temp[1]);
    }
    //myScrollTo('detailTop');
  });
  recountDetailVariants();
});


function checkAllRequiredVariants()
{
  var iCountRequiredSelected = 0;
  var bIsVariant = false;
  $('input[id^="item_variant_value_"]').each(function () {
    bIsVariant = true;
    if ($(this).attr('checked') == true) {
      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)
  {
    alert('Pro vložení produktu do košíku musíte vybrat všechny varianty produktu.');
    return false;
  }
  else return true;

}


function recountDetailVariants()
{
  var iTotalPrice = 0;
  var iTotalPriceVat = 0;
  var iTotalPriceAdd = 0;
  var iTotalPriceAddVat = 0;
  var iPriceAdd = 0; // cena pro varianty typu ADD
  var iPrice = 0; // zaklacni cena vyrobku, muze byt urcena z varianty typu PRICE
  var iPriceVat = 0;
  var iPriceAddVat = 0;
  var sVariantCatalogNumber = "";
  var bIsVariant = false;
  var sVariantName = '';

  $('input[id^="item_variant_value_"]').each(function () {
    bIsVariant = true;
    if ($(this).attr('checked') == 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_type == "price")
        {
          iPrice += oVariantInfo.price;
          iPriceVat += oVariantInfo.priceVat;
        }
        else
        {
          iPriceAdd = oVariantInfo.priceAdd;
          iPriceAddVat = oVariantInfo.priceAddVat;
          
          iTotalPriceAdd += oVariantInfo.priceAdd;        // celkova cena vsech oznacenych variant typu ADD
          iTotalPriceAddVat += oVariantInfo.priceAddVat;        // celkova cena vsech oznacenych variant typu ADD

          // 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));
        }
        
        $('#variant_value_name_'+oVariantInfo.variantId).text(oVariantInfo.name);
        if (oVariantInfo.name != '') sVariantName += ' - ' + oVariantInfo.name;
        //$('#variant_value_name').text(sVariantName);
        
        // katalogove cislo
        
        if (oVariantInfo.catalogNumber != "") sVariantCatalogNumber += '-'+oVariantInfo.catalogNumber;
      }
      
      /*if (!bNotChangeImageAfterPageLoad) imageChange(iVariantValueId);
      bNotChangeImageAfterPageLoad = false;*/
    }
  });
  $('#variant_value_name').text(sVariantName);
  
  if (!bIsVariant) return true;
  
  if (iPrice == 0) iPrice = iGoodsPrice;
  if (iPriceVat == 0) iPriceVat = iGoodsPriceVat;

  iTotalPrice = iPrice + iTotalPriceAdd;
  iTotalPriceVat = iPriceVat + iTotalPriceAddVat;
  
  iTotalPrice = Math.round(iTotalPrice);
  iTotalPriceVat = Math.round(iTotalPriceVat);

  iPrice = Math.round(iPrice);
  iPriceVat = Math.round(iPriceVat);

  $('#total_price').text(priceFormat(iTotalPrice)+'');
  $('#total_price_vat').text(priceFormat(iTotalPriceVat)+'');

  $('#base_price').text(priceFormat(iPrice)+'');
  $('#base_price_vat').text(priceFormat(iPriceVat)+'');

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


function imageChange(iVariantId)
{
  
  $('#nextImage div.next-foto-item').removeClass('hide-from-js');

  oVariantInfo = aVariantValue[iVariantId];
  
  if (!oVariantInfo) return false;
  if (oVariantInfo.imageUrl == '') return false;
  
  $('#detailMainImage').attr('src', oVariantInfo.imageUrl);
  $('#detailMainImageHref').attr('href', oVariantInfo.imageHref);
  


  offset = $('#detailMainImage').offset();
  var top, scrollTop;
  top = offset.top;
  scrollTop = $('html,body').scrollTop();
  elmTop = $('#detailMainImage').offset().top;

  if (scrollTop > elmTop) $('html,body').animate({scrollTop: top}, 1000);
}


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

  sPrice = sPrice.toString();
  sPrice = sPrice.replace("\.", ",");
  
  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);
    sPrice = sKoruny+','+sHalere;
  }
  else sPrice += ',-';

  return sPrice;
}


