window.onload = init;

function init() {
    externalLinks_init();
}

function externalLinks_init() {
    if (!document.getElementsByTagName) {
        return;
    }

    var links = document.getElementsByTagName('a');

    for (var i=0; i<links.length; i++) {
        var link = links[i];

        if (link.getAttribute('href') && link.getAttributeNode('class') && (link.getAttributeNode('class').value.search(/external/) >= 0)) {
            link.onclick = externalLinks_open;
            link.onkeypress = externalLinks_open;
        }
    }
}

function externalLinks_open(a) {
    window.open(this.href);
    return false;
}


function askEmailFunction(v, m, f)
{
    if (false == v) { // preskocit
        $.post(FRBASE + "email-handler/", { task: "set-email-skip", email: f.input_email }, function()
            {
            document.location = f.href
            }
        );
        return false;
    }

	an = m.children('#input_email');

	if(!checkEmailFormat(f.input_email)) {
		an.css("border", "solid #ff0000 1px");
		$('#error-text').text('(' + email_error_text + ')').show().fadeOut(2000);
		return false;
	} else {
	    $.post(FRBASE + "email-handler/", { task: "set-email", email: f.input_email }, function()
            {
                document.location = f.href
            }
        );
	    
	   	return false;
    }
}

function checkEmailFormat(email)
{
    re = new RegExp("^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+[\.][a-zA-Z]{2,4}$");
    return re.test(email)
}

function emailPrompt(a)
{
    $.post(FRBASE + "email-handler/", {
            'task': 'is-email-setted'
        }, function(data){
            eval("data = "+data)

            if (data === false) {
                email_prompt_txt += '<input type="hidden" id="href" name="href" value="'+ a.href +'" />'
                $.prompt(email_prompt_txt, { submit: askEmailFunction, buttons: { "Přejít k objednávce":true, "Přeskočit":false }, classes: "email_prompt" });
            } else {
                document.location = a.href;
            }
        }
    );

    return false;
}

function chooseProducts()
{
    var elems = $("#products-ajax-filter input.product_input")
    var list = '<table>'
    var product_ids = new Array()
    $('#products_holder').html('')
    plus_price = 0;

    for (var i = 0; i < elems.length; i++) {

        if (elems[i].checked) {
            actual_price_to_html = actual_price = parseInt($("#price_"+$(elems[i]).attr('name')).val())
            var url_parts = $(elems[i]).attr('name').split('---');
            url = detail_url_base + url_parts[0] + '/' + url_parts[1];

            if ($('#persons_select_' + $(elems[i]).attr('name')).length > 0) {
                persons_count = $("input[name='persons_" + $(elems[i]).attr('name') + "[]']:checked").length;
                /// musim zmensit zakladni cenu vybraneho produktu - nevybrali si ho treba vsechny osoby
                count_all = 1;

                if (parseInt($("#count").val()) > 1) {
                    count_all = parseInt($("#count").val());
                }
                actual_price = (actual_price / count_all) * persons_count;
            } else {
                persons_count = 1;
            }

            plus_price += actual_price
            list += '<tr><td>' + $(elems[i]).val() + '</td><td>' + actual_price_to_html + ',- Kč</td><td><a href=\'#\' onclick=\'return openThickBox("' + detail_text + '", "' + url + '");\'>' + detail_text + '</a></td><td>' + persons_count + ' x</td></tr>'
            product_ids.push($(elems[i]).attr('name'))
            $('#products_holder').append('<input type="hidden" name="product_ids[]" value="' + $(elems[i]).attr('name') + '">')
        }
    }

    countTotalPrice(plus_price)

    list += '</table>'

    if (product_ids.length < 1) {
        $('#chosen_products').html(default_products)
    } else {
        $('#chosen_products').html(list)
    }

    tb_remove();
    return false;
}

function openThickBox(title, uri)
{
    tb_show(title, uri)
    return false
}

function checkChosenProducts()
{
    var elems = $("#products_holder input")

    for (var i = 0; i < elems.length; i++) {
        val = $(elems[i]).val()
        $('#' + val).attr('checked', 'checked')
    }
}

function showHideGiftName()
{
    if ($("#gift_voucher:checked").length > 0) {
        $('#gift_name_holder').removeClass('non-visible')
    } else {
        $('#gift_name_holder').addClass('non-visible')
    }
}

function showHideMoney()
{
    if ($("#money_voucher").val() == -1) {
        $('#money_holder').removeClass('non-visible')
    } else {
        $('#money_holder').addClass('non-visible')
    }
}

function countTotalPrice()
{
    var count = 1;
    
    if (parseInt($("#count").val()) > 1) {
        count = parseInt($("#count").val());
    }

    $("#total_price").html(count * (main_product_price + plus_price));
}

/// Pridani dalsi JS kontroly pri odesilani formulare
function myCheckForm(form, errorToText1, errorToText2)
{
    var ret = true
    var date_from = $('#date_from')
    var date_to = $('#date_to')

    if (0 < date_from.length) {
        ret = checkFutureDate(date_from)
    }

    if (0 < date_to.length) {
        ret = (ret && checkFutureDate(date_to))
    }

    if (!ret) {
        $.prompt(errorToText1.replace(/\n/g, "<br />\n"), { opacity: 0.8 });
        return ret
    }

    min_procedure_count = parseInt($('#min_procedure_count').val())
    products_size = $("input[name=product_ids\\[\\]]").size()

    if (products_size <= min_procedure_count) {
        ret = false
    }

    if (!ret) {
        $.prompt(errorToText2.replace(/XXX/g, min_procedure_count), { opacity: 0.8 });
    }

    return ret
}

function checkFutureDate(input)
{
    var myArray = $(input).val().split('.')
    var myDate = new Date(myArray[2], (myArray[1] - 1), myArray[0])
    var today = new Date()

    if (myDate>today) {
        return true
    } else {
        return false
    }
}

function showPersonsInputs()
{
    var count = 1;

    if (parseInt($("#count").val()) > 1) {
        count = parseInt($("#count").val());
    }

    if (count > 10) {
        count = 10;
        $("#count").val(count);
        alert('Maximální počet osob je 10. Pro hromadné objednávky nás prosím kontaktujte přímo.');
    }

    $('#add_persons_container').html('');

    for (i=2;i<=count;i++) {
        $('#add_persons_container').append(
        "<div class='form_item input_field required'><label for='add_person_"+i+"' title='"+add_person_title+i+"'>"+add_person_title+i+"<span class='required_mark'>*</span></label><input type='text' name='add_persons[]' id='add_person_"+i+"' value='' class='required' /><div class='form_cleaner'></div></div>"+
        "<div class='form_item input_field required'><label for='add_person_year_"+i+"' title='"+add_person_year+i+"'>"+add_person_year+i+"<span class='required_mark'>*</span></label><input type='text' name='add_persons_years[]' id='add_person_year_"+i+"' value='' class='required' /><div class='form_cleaner'></div></div>"
        );
    }

    ///jeste nastavim pocet osob do sessiony
    $.post(FRBASE + "pridat-produkty/helper", { action: "set_persons_count", count: count });
}
