var wyswietlany_okres = 'mc';



/***************************************************************************/
Number.prototype.round = function( places, truncate )
{
   var factor = Math.pow( 10, places );
   return Math[Boolean(truncate)?'floor':'round']( this * factor ) / factor;
}




/***************************************************************************/
function wyslij(field_number)
{

  $('#choice').val(field_number);

  if (field_number < 3)
  {
    $(".model").attr("disabled", "disabled");
    if (field_number < 2)
      $(".serie").attr("disabled", "disabled");
  }

//  alert($('#calc-form'));

  $.post(window.location.protocol + '//' + window.location.hostname + '/ajax',
    $('#calc-form').serialize(),
      function(data) {
        $('#ajax').html(data);
      }
  );
}



/***************************************************************************/
function przelicz()
{
  if ($('#choice').val() > 2)
  {
    var adres = 'wyniki/';


    if($('select[name="brand"]:enabled').length !== 0 && $('select[name="brand"]:enabled').val() != 'wybierz markę')
    {
      adres += $('select[name="brand"]').val()
    }
    else
    {
      $('select[name="brand"]:enabled').addClass('blad');
      return 0;
    }


    adres += '/'


    if($('select[name="serie"]:enabled').length !== 0 && ( $('select[name="serie"]:enabled').val() != 'wybierz serię' && $('select[name="serie"]:enabled').val() != 'brak' ))
    {
      adres += $('select[name="serie"]').val()
    }
    else
    {
      $('select[name="serie"]:enabled').addClass('blad');
      return 0;
    }


    adres += '/'


    if($('select[name="model"]:enabled').length !== 0 && ( $('select[name="model"]:enabled').val() != 'wybierz model' && $('select[name="model"]:enabled').val() != 'brak'))
    {
      adres += $('select[name="model"]').val()
    }
    else
    {
      $('select[name="model"]:enabled').addClass('blad');
      return 0;
    }


    adres += '/'
    adres += $('input[name="copy"]').val();

    window.location = window.location.protocol + '//' + window.location.hostname + '/' + encodeURI(adres).replace(/%20/g, '+');
  }
}


/*

/***************************************************************************
function waliduj_liczbe_kopii()
{
  var wartosc = $('input[name="copy"]').val();
  alert($('input[name="copy"]').val());
  $('input[name="copy"]').val(wartosc.replace(/![0-9]/, ''));
}
*/



/***************************************************************************/
function drukuj_do_pdf() {

data = '<html><head></head>'

data += '<style>';
data += 'p, span, h1, h2, h3{margin: 0; padding: 0; margin-top: 0.5em; margin-bottom: 0.5em;}';
data += 'body{font-family: Arial, Verdana, sans-serif;}';
data += 'p{font-size:12pt;}';
data += '#podsumowanie{font-size:14pt;}';
data += '#wycena{font-size: 22pt;}';
data += '#wordpress, #wordpress p, #wordpress span{font-size: 11pt;}';
data += 'h2{font-size: 18pt; font-weight: normal}';
data += '.wybrany{text-decoration: underline;}';
data += 'ul{font-size: 12pt;}';
data += '</style>';

data += '<body><p class="dane"><a href="http://www.artonery.pl">www.artonery.pl</a> | <a href="mailto:zakupy@artonery.pl">zakupy@artonery.pl</a> | tel. 012 410 55 11 | fax. 012 410 55 10</p>';
data += '<p id="wycena">Wycena ' + $('#wycena').html() + '</p>';
data += '<h2>Podzespół:</h2>';



////////////////////////////////////////////////////////////////////////
$(".typ").each( function()
  {
    data += '<h3>' + $(this).find('.nazwa_typu').html() + '</h3>';
    $(".produkt", $(this)).each(function() {


      wybrany = '';
      $(this).find(':radio:checked').each( function() {
        wybrany = 'wybrany';
      });
      data += '<p class="' + wybrany + '">';
      data += '<a href="' + $(this).parent().find('a').attr('href') + '">';
      data += $('a', $(this)).html();
      data += '</a>';
      data += ', <b>';
      data += $(this).find('.brutto').html() + 'zł brutto ';
      data += '</b>';
      data += '(' + $(this).find('.netto').html() + 'zł netto)';

      if(wyswietlany_okres == 'mc')
        okres = 'miesięcznie';
      else
        okres = 'rocznie';

     //data += okres;

      data += ', wymiana <b>' + $(this).find('.wymiana_'+wyswietlany_okres).html() + '/' + wyswietlany_okres + '</b>';

      if ($(this).hasClass('najlepszy_'+wyswietlany_okres))
        data += ' (najtańsze rozwiązanie!)';

      $(this).find(':radio:checked').each( function() {
        data += ' (wybrane rozwiązanie)';
      });

      data += '</p>';
    });
  });
////////////////////////////////////////////////////////////////////////


data += '<br/><h3>Wybrane rozwiązanie:</h3>';
data += '<ul><li>koszt druku 100 stron: <b>' + $('#wybrane_rozwiazanie').find('.koszt_stu_stron').find('.koszt_brutto').html() + ' zł brutto </b>(' + $('#wybrane_rozwiazanie').find('.koszt_stu_stron').find('.koszt_netto').html() + ' zł netto) </li>';
data += '<li>koszt druku ' + $('#ilosc_stron').val() + ' stron: <b>' + $('#wybrane_rozwiazanie').find('.koszt_stron').find('.koszt_brutto').html() + ' zł brutto </b>(' + $('#wybrane_rozwiazanie').find('.koszt_stron').find('.koszt_netto').html() + ' zł netto) </li>';
data += '<li>koszt miesięczny: <b>' + $('#wybrane_rozwiazanie').find('.koszt_miesieczny').find('.koszt_brutto').html() + ' zł brutto </b>(' + $('#wybrane_rozwiazanie').find('.koszt_miesieczny').find('.koszt_netto').html() + ' zł netto) </li>';
data += '<li>koszt roczny: <b>' + $('#wybrane_rozwiazanie').find('.koszt_roczny').find('.koszt_brutto').html() + ' zł brutto </b>(' + $('#wybrane_rozwiazanie').find('.koszt_roczny').find('.koszt_netto').html() + ' zł netto) </li></ul>';



data += '<br/><h3>Najtańsze rozwiązanie:</h3>';
data += '<ul><li>koszt druku 100 stron: <b>' + $('#najtansze_rozwiazanie').find('.koszt_stu_stron').find('.koszt_brutto').html() + ' zł brutto </b>(' + $('#najtansze_rozwiazanie').find('.koszt_stu_stron').find('.koszt_netto').html() + ' zł netto) </li>';
data += '<li>koszt druku ' + $('#ilosc_stron').val() + ' stron: <b>' + $('#najtansze_rozwiazanie').find('.koszt_stron').find('.koszt_brutto').html() + ' zł brutto </b>(' + $('#najtansze_rozwiazanie').find('.koszt_stron').find('.koszt_netto').html() + ' zł netto) </li>';
data += '<li>koszt miesięczny: <b>' + $('#najtansze_rozwiazanie').find('.koszt_miesieczny').find('.koszt_brutto').html() + ' zł brutto </b>(' + $('#najtansze_rozwiazanie').find('.koszt_miesieczny').find('.koszt_netto').html() + ' zł netto) </li>';
data += '<li>koszt roczny: <b>' + $('#najtansze_rozwiazanie').find('.koszt_roczny').find('.koszt_brutto').html() + ' zł brutto </b>(' + $('#najtansze_rozwiazanie').find('.koszt_roczny').find('.koszt_netto').html() + ' zł netto) </li></ul>';


data += '<br/><p id="podsumowanie"><b>Podsumowanie: ' + $('.podsumowanie_najtansze', '#podsumowanie_krotkie').html() + '</b></p><br/>';

data += '<div id="wordpress">' + $('#wordpress_content').html() + '</div>';

data += '</body></html>';

//alert(data);

$('#dokument').val(data);

$('#pdf').submit();

}




/***************************************************************************/
function podkresl_link(blok)
{
  blok.find("h2").css('text-decoration', 'underline');
  blok.find("h2").css('color', '#ea232a');
}

function odkresl_link(blok)
{
  blok.find("h2").css('text-decoration', 'none');
  blok.find("h2").css('color', '#ea232a');
}


/***************************************************************************/
function najlepsze_oryginaly(brutto_netto, okres, f)
{
  if ( !(okres == 'rok') )
    okres = 'mc';

  if ( !(brutto_netto == 'brutto') )
    brutto_netto = 'netto';

  $(".typ").each( function()
    {

      $(".najlepszy_oryginal_"+okres, $(this)).each().removeClass("najlepszy_oryginal_"+okres) ;

      najlepsza_cena = '';
      najlepsze_id = '';

      if ( $(".ORYGINAŁ .produkt", $(this)).length )
      {
        $(".ORYGINAŁ .produkt", $(this)).each( function()
          {
            id = $(this).attr("id");
            cena = parseFloat($(this).find("."+brutto_netto).text().replace(',', '.')) * (parseFloat($(this).find(".wymiana_"+okres).text()) + 1);
            if ( (najlepsza_cena == '') || (cena < najlepsza_cena) )
            {
              najlepsza_cena = cena;
              najlepsze_id = id;
            }
          });
        $("#"+najlepsze_id).addClass("najlepszy_oryginal_"+okres);
      }
    });

    if (typeof f == "function") f();
}


/***************************************************************************/
function najlepsze_produkty(brutto_netto, okres, f)
{
  if ( !(okres == 'rok') )
    okres = 'mc';

  if ( !(brutto_netto == 'brutto') )
    brutto_netto = 'netto';

  $(".typ").each( function()
    {
      $(".najlepszy_"+okres, $(this)).each().removeClass("najlepszy_"+okres) ;

      najlepsza_cena = '';
      najlepsze_id = '';

      $(".produkt", $(this)).each( function()
        {
          id = $(this).attr("id");
          cena = parseFloat($(this).find("."+brutto_netto).text().replace(',', '.')) * (parseFloat($(this).find(".wymiana_"+okres).text()) + 1);
          if ( (najlepsza_cena == '') || (cena < najlepsza_cena) )
          {
            najlepsza_cena = cena;
            najlepsze_id = id;
          }
        });
      $("#"+najlepsze_id).addClass("najlepszy_"+okres);
    });

  if (typeof f == "function") f();
}



/***************************************************************************/
function koloruj_najlepsze(okres, f) /* !!! dodano okres, zmienic w wywolaniu */
{
  if (okres == 'rok')
    przeciwny = 'mc';
  else
    przeciwny = 'rok';


  $(":not(.najlepszy_"+okres+") .najlepszy_"+przeciwny+" .opis").each( function()
    {
      $(this).css('background-color', 'transparent');
    });

  $(".najlepszy_"+okres+" .opis").each( function()
    {
      $(this).css('background-color', '#fedd34');
    });

  if (typeof f == "function") f();
}



/***************************************************************************/
function zaznacz_najlepsze(okres, f) /* !!! dodano okres, zmienic w wywolaniu */
{
  $(".najlepszy_"+okres+" :radio").each( function()
    {
      $(this).attr('checked', 'checked');
    });

  if (typeof f == "function") f();
}



/***************************************************************************/
function licz_roznice(brutto_netto, okres, f)
{
  if ( !(okres == 'rok') )
    okres = 'mc';

  if ( !(brutto_netto == 'brutto') )
    brutto_netto = 'netto';

  $(".saving p").each( function()
    {
      $(this).css('display', 'none');
    });

  $(".typ").each( function()
    {
      if ( $(".najlepszy_oryginal_"+okres, $(this)).length && $(".ZAMIENNIK .najlepszy_"+okres, $(this)).length )
      {
        cena_oryginalu = parseFloat($(this).find(".najlepszy_oryginal_"+okres+" ."+brutto_netto).text().replace(',', '.')) * (parseFloat($(this).find(".najlepszy_oryginal_"+okres+" .wymiana_"+okres).text())); // +1

        $(".ZAMIENNIK .produkt", $(this)).each( function()
          {
            cena_zamiennika = parseFloat($(this).find("."+brutto_netto).text().replace(',', '.')) * (parseFloat($(this).find(".wymiana_"+okres).text())); // +1

            if ( cena_zamiennika < cena_oryginalu )
            {
              saving = (cena_oryginalu - cena_zamiennika).round(2, false).toFixed(2).toString().replace('.', ',')
              $(this).find(".saving_"+brutto_netto).html( saving );
              $(".saving p", $(this)).css('display', 'block');
            }

          });

      }
    });

  if (typeof f == "function") f();
}



/***************************************************************************/
function sumuj(brutto_netto, rozwiazanie, okres)
{
  suma = 0;

  if ( !(okres == 'rok') )
    okres = 'mc';

  if ( !(rozwiazanie == 'najtansze') )
    rozwiazanie = 'wybrane';



  if (rozwiazanie == 'najtansze')
  {
    $('.najlepszy_'+okres).each( function()
      {
        suma += parseFloat($(this).find("."+brutto_netto).text().replace(',', '.')) * (parseFloat($(this).find(".wymiana_"+okres).text()) + 1);
      });
  }

  else
  {
    /* !!! zmienic po wyciagnieciu radio z <p> */
    $(':radio:checked').parent().parent().each( function()
      {
        suma += parseFloat($(this).find("."+brutto_netto).text().replace(',', '.')) * (parseFloat($(this).find(".wymiana_"+okres).text()) + 1);
      });
  }


  suma = suma.round(2, true).toFixed(2).toString().replace('.', ',');

  if ( okres == 'rok')
    okres = 'roczny';
  else
    okres = 'miesieczny';

  $('#'+rozwiazanie+'_rozwiazanie').find(".koszt_"+okres).find(".koszt_"+brutto_netto).html(suma);


}

function sumuj_wybrane(f)
{
  sumuj('brutto', 'wybrane', 'mc');
  sumuj('netto', 'wybrane', 'mc');
  sumuj('brutto', 'wybrane', 'rok');
  sumuj('netto', 'wybrane', 'rok');

  if (typeof f == "function") f();
}

function sumuj_najtansze(f)
{
  sumuj('brutto', 'najtansze', 'mc');
  sumuj('netto', 'najtansze', 'mc');
  sumuj('brutto', 'najtansze', 'rok');
  sumuj('netto', 'najtansze', 'rok');

  if (typeof f == "function") f();
}



/***************************************************************************/
function licz_roznice_kosztow(okres, f)
{
  if ( okres == 'rok')
    okres = 'roczny';
  else
    okres = 'miesieczny';

  najtanszy_koszt = parseFloat($('#najtansze_rozwiazanie').find(".koszt_"+okres).find(".koszt_brutto").text().replace(',', '.'));

  wybrany_koszt = parseFloat($('#wybrane_rozwiazanie').find(".koszt_"+okres).find(".koszt_brutto").text().replace(',', '.'));

  roznica_kosztow = wybrany_koszt - najtanszy_koszt;

  roznica_procentowa = 100 * roznica_kosztow / wybrany_koszt;

  if (roznica_kosztow == 0)
    $(".podsumowanie_najtansze").html("<span class=\"wysoka_linia\">wybrane rozwiązanie jest najtańszym rozwiązaniem</span>");
  else
  {
    roznica_kosztow = roznica_kosztow.round(2, true).toFixed(2).toString().replace('.', ',');
    roznica_procentowa = roznica_procentowa.round(0, true).toString().replace('.', ',');
    $(".podsumowanie_najtansze").html("najtańsze rozwiązanie jest tańsze o <span class=\"duzy_font niska_linia\">"+roznica_kosztow+" zł</span>, co stanowi "+roznica_procentowa+"% różnicę");
  }

  if (typeof f == "function") f();
}




/***************************************************************************/
function licz_koszt_druku(rozwiazanie, ilosc, brutto_netto, okres)
{
  if ( ilosc == 'sto' )
  {
    ilosc_stron = 100;
  }
  else
  {
    ilosc_stron = Number($("#ilosc_stron").val());
  }

  if ( !(rozwiazanie == 'najtansze') )
    rozwiazanie = 'wybrane';

  /* parseFloat($(this).find("."+brutto_netto).text().replace(',', '.')) */

  mianownik = 1; // nie zero, bo mnożymy
  licznik = 0;

  if (rozwiazanie == 'najtansze')
  {
    liczony_produkt = $(".najlepszy_"+okres);
  }
  else
    liczony_produkt= $(':radio:checked').parent().parent();


    liczony_produkt.each( function()
    {
      prod = parseFloat($(this).find("."+brutto_netto).text().replace(',', '.'));
      liczony_produkt.not(this).find(".yield").each( function()
      {
        prod *= Number($(this).val());
      });

      licznik += prod;
    });

    licznik *= ilosc_stron;

    liczony_produkt.find(".yield").each ( function()
    {
      mianownik *= Number($(this).val());
    });

    wynik = licznik/mianownik;
    wynik = (wynik.round(2, true).toFixed(2).toString().replace('.', ','));

    if ( ilosc == 'sto' )
      $("#"+rozwiazanie+"_rozwiazanie").find(".koszt_stu_stron").find(".koszt_"+brutto_netto).html(wynik);
    else
      $("#"+rozwiazanie+"_rozwiazanie").find(".koszt_stron").find(".koszt_"+brutto_netto).html(wynik);
}




/***************************************************************************/
function aktualizuj()
{
  licz_roznice('brutto', wyswietlany_okres);
  licz_roznice('netto', wyswietlany_okres);
  sumuj_wybrane();
  licz_roznice_kosztow(wyswietlany_okres);

  licz_koszt_druku('wybrane', '', 'brutto', wyswietlany_okres);
  licz_koszt_druku('wybrane', 'sto', 'brutto', wyswietlany_okres);
  licz_koszt_druku('wybrane', '', 'netto', wyswietlany_okres);
  licz_koszt_druku('wybrane', 'sto', 'netto', wyswietlany_okres);
}




/***************************************************************************/
function zmien_okres(okres_link)
{
  if (wyswietlany_okres != okres_link)
  {
    $('.okres_'+wyswietlany_okres).removeClass('okres_aktywny');
    $('.wymiana_'+wyswietlany_okres).css('display', 'none');

    if (wyswietlany_okres == 'mc')
    {
      wyswietlany_okres = 'rok';
      $(".miesiecznie_rocznie").html("rocznie");
    }
    else
    {
      wyswietlany_okres = 'mc';
      $(".miesiecznie_rocznie").html("miesięcznie");
    }

    $('.okres_'+wyswietlany_okres).addClass('okres_aktywny');
    $('.wymiana_'+wyswietlany_okres).css('display', 'inline');

    koloruj_najlepsze(wyswietlany_okres);
    sumuj_najtansze(wyswietlany_okres);
    sumuj_wybrane();
    licz_roznice('brutto', wyswietlany_okres);
    licz_roznice('netto', wyswietlany_okres);
    licz_roznice_kosztow(wyswietlany_okres);

  }
}



/***************************************************************************/
$(document).ready(function()
{
  najlepsze_oryginaly('brutto','mc');
  najlepsze_produkty('brutto','mc');
  najlepsze_oryginaly('brutto','rok');
  najlepsze_produkty('brutto','rok');
  koloruj_najlepsze('mc');
  zaznacz_najlepsze('mc');
  licz_roznice('brutto','mc');
  licz_roznice('netto', 'mc');
  sumuj_najtansze();
  sumuj_wybrane();
  licz_roznice_kosztow(wyswietlany_okres);
  licz_koszt_druku('najtansze', '', 'brutto', wyswietlany_okres);
  licz_koszt_druku('najtansze', 'sto', 'brutto', wyswietlany_okres);
  licz_koszt_druku('najtansze', '', 'netto', wyswietlany_okres);
  licz_koszt_druku('najtansze', 'sto', 'netto', wyswietlany_okres);
  licz_koszt_druku('wybrane', '', 'brutto', wyswietlany_okres);
  licz_koszt_druku('wybrane', 'sto', 'brutto', wyswietlany_okres);
  licz_koszt_druku('wybrane', '', 'netto', wyswietlany_okres);
  licz_koszt_druku('wybrane', 'sto', 'netto', wyswietlany_okres);

  $('input[name="copy"]').keyup(function(){
      var wartosc = $(this).val();
      $(this).val(wartosc.replace(/[^0-9]+/g, ''));
    });
});

