var pocetIzieb = 1;

/**
 * Rezervacny formular
 *
 */
$(function() {
    pocetIzieb = $('#pocet-izieb').val();

    $.datepicker.setDefaults($.datepicker.regional['']);
    //$(".datepicker").datepicker($.datepicker.regional['sk']);
    $(".datepicker").datepicker($.extend({
        minDate: 0},
        $.datepicker.regional['sk']
    ));

    // Validacia formularu pri stlacani tlacidiel a fokuse
    $('.check-it').live('keydown keyup keypress focusout change', function() {
        validujFormular(this);
    });

    $('#izba-1 .izba-zrus').hide();

    // Odstranenie izby zo zoznamu
    $('.izba-zrus').live('click', function() {
        odstranIzbu($(this).parent('div').attr('id'));
    });

    // Pridanie dalsej izby do zoznamu
    $('#izba-pridaj').click(function() {
        pocetIzieb++;
        $('#pocet-izieb').val(pocetIzieb);
        pridajDalsiuIzbu(pocetIzieb);
        prepocetCeny(pocetIzieb);
    });

    // Prepocitanie ceny pri kliknuti na select a checkboxy
    $('input:checkbox, select').click(function() {
        prepocetCeny($('#pocet-izieb').val());
    });

    // Prepocitanie ceny pri zobrazeni stranky
    $('#cena-1').ready(function() {
        prepocetCeny($('#pocet-izieb').val());
    });

    $('input[name=oprava]').val(function(){
        $('.check-it').each(function() {
            validujFormular(this);
        });
    });

    $(".datepicker").live('keydown keyup keypress focusout change', function() {
        prepocetCeny($('#pocet-izieb').val());
    });
});

/**
 * Prepocet ciastkovej ceny
 *
 */
function prepocetCiastkovejCeny(i)
{
    // Izba
    var cena = cenaIzby[$('#typ-izby-' + i).val()];

    // Dalsia osoba
    if ($('#dalsia-osoba-' + i + ':checked').val())
        cena += cenaIzby['dalsiaOsoba'];

    // Pristelok
    if ($('#pristelok-' + i + ':checked').val())
        cena += cenaIzby['pristelok'];

    return cena;
}

/**
 * Prepocet celkovej ceny
 *
 */
function prepocetCeny(pocetIzieb)
{
    var cena = 0;
    var cenaTotal = 0;
    var days = 0;

    var date1 = dateStrToUnix($('#field-datum-prichodu').val());
    var date2 = dateStrToUnix($('#field-datum-odchodu').val());

    if (date1 != 0 && date2 != 0 && date2 > date1)
        days = (date2 - date1)/(24 * 60 * 60);

    for (var i=1; i<=pocetIzieb; i=i+1) {
        cena = prepocetCiastkovejCeny(i);

        $('#cena-' + i).html(cena);

        cenaTotal += cena;
    }

    $('#cena').html(days * cenaTotal);
}

/**
 * Validacia formularu
 *
 */
function validujFormular(ident)
{
    var date1;
    var date2;
    var formId = $(ident).attr('id');
    var checkId = $(ident).attr('id').replace('field-', 'check-');

    // Test na null
    if ($('#' + formId).val() == '') {
        $('#' + checkId).attr('class', 'form-error');
    }
    else {
        $('#' + checkId).attr('class', 'form-ok');
    }

    if (formId == 'field-datum-prichodu' || formId == 'field-datum-odchodu') {
        date1 = dateStrToUnix($('#field-datum-prichodu').val());
        date2 = dateStrToUnix($('#field-datum-odchodu').val());

        if (date2 <= date1 && date2 > 0) {
            $('#check-datum-prichodu, #check-datum-odchodu').attr('class', 'form-error');
        }
        else if (date2 > 0) {
            $('#check-datum-prichodu, #check-datum-odchodu').attr('class', 'form-ok');
        }
    }
}

/**
 * Precislovanie indexov vo wrape izby
 *
 */
function precislujIzbu(idOld, i)
{
    // Zmenime ID wrapu
    //var izba = $(id).attr('id', 'izba-' + i).attr('id');

    var tmp = $(idOld).attr('id').match('.+\\-([0-9]+)');

    var old = tmp[1];

    // Zmenime ID-cka
    $(idOld).attr('id', 'izba-' + i);

    // Zmenime cislo izby
    $('#cislo-izby-' + old).attr('id', 'cislo-izby-' + i);
    $('#cislo-izby-' + i).html(i);

    // Zmenime indexy v nazvoch poli
    $('#typ-izby-' + old).attr('id', 'typ-izby-' + i);
    $('#typ-izby-' + i).attr('name', 'rez[izba][' + i + '][typ]');
    
    $('#dalsia-osoba-' + old).attr('id', 'dalsia-osoba-' + i);
    $('#dalsia-osoba-' + i).attr('name', 'rez[izba][' + i + '][dalsiaOsoba]');

    $('#pristelok-' + old).attr('id', 'pristelok-' + i);
    $('#pristelok-' + i).attr('name', 'rez[izba][' + i + '][pristelok]');

    // Ciastkova cena
    $('#cena-' + old).attr('id', 'cena-' + i);
}

/**
 * Odstranenie izby zo zoznamu
 *
 */
function odstranIzbu(id)
{
    $('#' + id).empty().remove();

    // Precislujeme izby
    cisloIzby = 1;

    $('.wrap-izba').each(function() {
        precislujIzbu(this, cisloIzby);
        cisloIzby++;
    });

    // Znizime pocet izieb
    pocetIzieb--;

    $('#pocet-izieb').val(pocetIzieb);

    // Prepocitame cenu
    prepocetCeny(pocetIzieb);
}

/**
 * Pridanie dalsej izby do zoznamu
 *
 */
function pridajDalsiuIzbu(i)
{
    var typIzby;

    clone = $('#izba-1').clone();

    clone.attr('id', 'izba-' + i);

    clone.find('#cislo-izby-1')
        .attr('id', 'cislo-izby-' + i)
        .html(i);

    clone.find('#typ-izby-1')
        .attr('id', 'typ-izby-' + i)
        .attr('name', 'rez[izba][' + i + '][typ]')
        .val('standard');

    clone.find('#dalsia-osoba-1')
        .attr('id', 'dalsia-osoba-' + i)
        .attr('name', 'rez[izba][' + i + '][dalsiaOsoba]')
        .attr('checked', false);

    clone.find('#pristelok-1')
        .attr('id', 'pristelok-' + i)
        .attr('name', 'rez[izba][' + i + '][pristelok]')
        .attr('checked', false);

    clone.find('.izba-zrus').show();

    // Ciastkova cena
    clone.find('#cena-1')
        .attr('id', 'cena-' + i);

    typIzby = clone.find('#typ-izby-' + i).val();

    clone.find('#cena-' + i).html(cenaIzby[typIzby]);

    clone.appendTo('#wrap-dalsia-izba');

    $('input:checkbox, select').click(function() {
        prepocetCeny($('#pocet-izieb').val());
    });
}

/**
 * 
 * 
 */
function dateStrToUnix(input)
{
    if (input != '') {
        date = input.match('([0-9]{1,2}).([0-9]{1,2}).([0-9]{4})');
        out = Date.parse(date[3] + '/' + date[2] + '/' + date[1]) / 1000;
    }
    else
        out = 0;

    return out;
}

