$(document).ready(function(){

    $('div.banner_main div.menu_position div').mouseenter(function(){
        //$(this).parent().find('ul').slideDown();
        $(this).parent().find('ul').stop(!true, !true).slideDown(400, function() {
            $(this).css('height', 'auto');
        });
    });

    $('div.banner_main div.menu_position').mouseleave(function(){
        /*$(this).queue(function(){
            $(this).find('ul').delay(1000).slideUp();
            $(this).dequeue();
        });*/
        $(this).find('ul').stop(!true, !true).slideUp(400, function() {
            $(this).css('height', 'auto');
        });
    });

    $('.textSmall').click(function(){
        $('.site_content').removeClass('bigFont');
        $('.site_content').addClass('smallFont');
    });

    $('.textMedium').click(function(){
        $('.site_content').removeClass('bigFont');
        $('.site_content').removeClass('smallFont');
    });

    $('.textLarge').click(function(){
        $('.site_content').addClass('bigFont');
        $('.site_content').removeClass('smallFont');
    });

    $('#produkty .produkty_button').click(function(){
        showProductList();
    });

    $('#produkty .inputText').click(function(){
        showProductList();
    });

    $('#top_menu .produkty_button_up').click(function(){
        hideProductList();
    });

    $('.productListWrapper div.menuPos').click(function(){
        showProductSubList($(this));
    });

    $('.productListWrapper .produkty_back').click(function(){
        hideProductSubList();
    });

    $('.printer').click(function() {
        window.print();
    });

    $.each($('.col_lft_menu a.active'), function(){
        $(this).parents('li').find('ul').show();
    });

    images = $('.gallery > *');

    if(images)
    {
        if(images.size() > 1)
        {            
            (function(gallery) {
                var images = gallery.children();
                var w = 628;
                var w_all = 0;

                images.each(function() {
                    $(this).width(w);
                });

                w_all = w*images.length;

                var slider = $('<div />');
                slider.width(w_all+w);
                slider.css("margin-left", "0px");

                images.wrapAll(slider);

                slider = images.parent();

                var clone = images.first().clone(true);
                slider.append(clone);

                var maxMargin = w_all-w;

                var steps = $('.step');

                gallery.data('rotatorSetInterval', function () {
                    var interval = setInterval(function() {
                        var currentMargin = parseInt(slider.css("margin-left"))*-1;
                        if (currentMargin > maxMargin)
                        {
                            slider.css('margin-left', '0px');
                        }
                        slider.animate({
                            marginLeft: "-="+w
                          }, 750, function() {
                              currentMargin = parseInt(slider.css("margin-left"))*-1;
                              var step = Math.round(currentMargin/w);
                              steps.removeClass('active');

                              if (step+1 > steps.length)
                              {
                                step = 0;
                              }

                              steps.eq(step).addClass('active');
                          });
                    }, 8000);

                    gallery.data('rotatorInterval', interval);
                });

                gallery.data('rotatorClearInterval', function() {
                    clearInterval(gallery.data('rotatorInterval'));
                });

                gallery.data('rotatorSetInterval')();

                steps.click(function() {
                   gallery.data('rotatorClearInterval')();

                   var index = $(this).index();

                   steps.removeClass('active');
                   $(this).addClass('active');

                   slider.css('margin-left', (w*index*-1)+"px");
                   gallery.data('rotatorSetInterval')();
                });

            })($('.gallery'));

        }else{
            images.eq(0).show();
        }

        departamenty();
        $('ul.departments li').click(function(){
           var tmp = $(this).text();
           $.each($('#contactsTable').children().children('tr'), function(k,v){
                if( $(v).children('td:first-child').text() ==  tmp)
                    {
                        $('#depDetails div').remove();
                        $('#depDetails').append('<div style="clear:both;"></div>');
                        $(v).find('td:nth-child(2)').find('table').clone().appendTo('#depDetails div');
                        $('#depDetails li').css('width','360px');
                    }
            });
        });

        var url = window.location.pathname;
        $('form#form_kontaktowy').append('<input type="hidden" name="urlHidden" value="'+url+'"/>');
    }

	function departamenty()
        {
            $('#contactsTable').hide();
            $('#contactsTable').parent().append('<ul class="departments"><ul class="depsLeft" style="float: left; width: 225px; margin: 0px 20px 0px 0px;"></ul><ul class="depsRight" style="float: left; width: 225px; margin: 0px;"></ul></ul><div id="depDetails"><div></div></div>');

/**/
            var total = $('#contactsTable').children().children('tr').size();
            var half = Math.floor(total/2);

            var tableChildren = $('#contactsTable').children().children('tr');

            for(k = 0 ; k < half; k++)
            {
                var parent = $('#contactsTable').parent().find('ul.departments ul.depsLeft');
                parent.append('<li style="width: 225px; text-align:left;"><a href="#depDetails">'+tableChildren.eq(k).children('td:first-child').text()+'</a></li>');
            }
            for(k = half ; k < total; k++)
            {
                var parent = $('#contactsTable').parent().find('ul.departments ul.depsRight');
                parent.append('<li style="width: 225px; text-align:left;"><a href="#depDetails">'+tableChildren.eq(k).children('td:first-child').text()+'</a></li>');
            }

/**/
            /*
            $.each($('#contactsTable').children().children('tr'), function(k,v){
                $('#contactsTable').parent().find('ul.departments').append('<li style="float:left; width: 225px; text-align:left;"><a href="#depDetails">'+$(this).children('td:first-child').text()+'</a></li>');
            });
            */
            
        }
	
	jQuery.event.add(window, "load", resizeFrame);
	jQuery.event.add(window, "resize", resizeFrame);

	function resizeFrame() 
	{
		var winHeight  = $(window).height(); 
		
		var divIns = $('#sliderWrapper').height();
		
		var newHeight = (winHeight-divIns-158);
		
		$('#sliderWrapper').css("height", newHeight+divIns+"px");
	}

        $('.checkbox').click(function(){
            $(this).toggleClass('checked');
        });

        $('.buttonClose').click(function(){
            $(this).parent().fadeOut('fast');
            $('.background').addClass('hide');
        });

	
    $('.banner_main_img div.menu_position .menu_position_title').click(function(){
        var link = $(this).parent().siblings('ul').find('li:last a');
        if(link.length){
            location.href = link.attr('href');
        }
    })

    $('.banner_main_img_ru div.menu_position .menu_position_title').click(function(){
        var link = $(this).parent().siblings('ul').find('li:last a');
        if(link.length){
            location.href = link.attr('href');
        }
    })

    $('.banner_main_img_en div.menu_position .menu_position_title').click(function(){
        var link = $(this).parent().siblings('ul').find('li:last a');
        if(link.length){
            location.href = link.attr('href');
        }
    })

    $('.jobsWrap table').click(function(){
        var link = $(this).siblings('a');
        if(link.length){
            location.href = link.attr('href');
        }
    })
});

function showProductList()
{
//  if ($.browser.msie && $.browser.version.substr(0,1)<8)
    $('.menu_position').addClass('onBottom');
    $('#produkty .inputText').fadeOut(200);
    $('#produkty .produkty_button').fadeOut(200);
    $("#produkty .input").delay(200).animate({width: "384px"}, 500 );
    $('#top_menu .productListWrapper').delay(700).slideDown(600);
}

function hideProductList()
{
    $('#top_menu .productListWrapper').slideUp(600);
    $("#produkty .input").delay(600).animate({width: "132px"}, 500 );
    $('#produkty .inputText').delay(1000).fadeIn(400);
    $('#produkty .produkty_button').delay(1000).fadeIn(400);
    $('.menu_position').removeClass('onBottom');
}

function showProductSubList(item)
{
    $('.productListWrapper_sub div.title span').remove();
    $('.productListWrapper_sub div.title').append('<span>'+item.html()+'</span>');
    $('.productListWrapper_sub ul li').remove();
    $('.productListWrapper_sub ul').append(item.parent().find('ul').html());
    $(".productListWrapper_sub").animate({right: "-1px"}, 200 );
}

function hideProductSubList()
{
    $(".productListWrapper_sub").animate({right: "-389px"}, 200 );
    $('.productListWrapper_sub ul li').remove();
}

function addToCart(id) {
        $('.basketBox').append('<input type="hidden" id="artId" value="'+id+'">');
        $('.basketBox').fadeIn('slow');
        $('.background').removeClass('hide');
}

function addToCartSubmit() {
    $('.basketBox').fadeOut('slow');
    $('.background').addClass('hide');
    var ilosc = $('#ilosc').val();
    var artId = $('#artId').val();
    var edit = $('#edit').val();

    if(edit == '1')
    { 
        $.post('/koszyk-usun', {id: artId}, function(data){
            $.post('/koszyk-dodaj', {id: artId, ilosc: ilosc}, function(data){
                location.reload();
            }, "json");
        }, "json");

        return false;
    }

    $.post('/koszyk-dodaj', {id: artId, ilosc: ilosc}, function(data){
        $('#basket div').remove();
        $('#basket').append("<div>"+data.quantity+" szt "+data.price+" zł</div>");
    }, "json");

    return false;
}

function changeProductFeatures(id, ilosc)
{
    $('.basketBox').append('<input type="hidden" id="artId" value="'+id+'">');
    $('.basketBox').append('<input type="hidden" id="edit" value="1">');
    $('.basketBox #ilosc').attr('value',ilosc);
    $('.basketBox').fadeIn('slow');
    $('.background').removeClass('hide');
    return false;
}

function commitForm()
{
    var err = false;
    $('#form_kontaktowy .row span').remove();

    if($('#form_kontaktowy input#imie').val() == '')
    {
        $('#form_kontaktowy input#imie').after('<span>Nie wypełniono pola</span>');
        err = true;
    }

    var email = $('#form_kontaktowy input#email').val();
    if(email == '')
    {
        $('#form_kontaktowy input#email').after('<span>Nie wypełniono pola</span>');
        err = true;
    }
    else if(!isValidEmailAddress(email))
    {
        $('#form_kontaktowy input#email').after('<span>Niepoprawny adres e-mail</span>');
        err = true;
    }

    if($('#form_kontaktowy input#temat').val() == '')
    {
        $('#form_kontaktowy input#temat').after('<span>Nie wypełniono pola</span>');
        err = true;
    }

    if($('#form_kontaktowy textarea#tresc').val() == '')
    {
        $('#form_kontaktowy textarea#tresc').after('<span>Nie wypełniono pola</span>');
        err = true;
    }
        
    if(err == true) return false;
    //alert('Zgłoszenie zostało wysłane.');
    $('#form_kontaktowy').submit();
    return false;
}

function commitFormRek()
{
    var err = false;
    $('#form_kontaktowy .row span').remove();

    if($('#form_kontaktowy input#imie').val() == '')
    {
        $('#form_kontaktowy input#imie').after('<span>Nie wypełniono pola</span>');
        err = true;
    }

    if($('#form_kontaktowy input#nazwisko').val() == '')
    {
        $('#form_kontaktowy input#nazwisko').after('<span>Nie wypełniono pola</span>');
        err = true;
    }

    if($('#form_kontaktowy input#ulica').val() == '')
    {
        $('#form_kontaktowy input#ulica').after('<span>Nie wypełniono pola</span>');
        err = true;
    }

    if($('#form_kontaktowy input#miasto').val() == '')
    {
        $('#form_kontaktowy input#miasto').after('<span>Nie wypełniono pola</span>');
        err = true;
    }

    if($('#form_kontaktowy input#temat').val() == '')
    {
        $('#form_kontaktowy input#temat').after('<span>Nie wypełniono pola</span>');
        err = true;
    }

    var kod = $('#form_kontaktowy input#kod').val();
    if(kod == '')
    {
        $('#form_kontaktowy input#kod').after('<span>Nie wypełniono pola</span>');
        err = true;
    }
    else if(!isValidPostalCode(kod))
    {
        $('#form_kontaktowy input#kod').after('<span>Nie wypełniono poprawnie pola</span>');
        err = true;
    }

    if($('#form_kontaktowy textarea#opis').val() == '')
    {
        $('#form_kontaktowy textarea#opis').after('<span>Nie wypełniono pola</span>');
        err = true;
    }

    var email = $('#form_kontaktowy input#email').val();
    if($.trim(email) != '' && !isValidEmailAddress(email))
    {
        $('#form_kontaktowy input#email').after('<span>Niepoprawny adres e-mail</span>');
        err = true;
    }

    if(err == true) return false;
    //alert('Zgłoszenie zostało wysłane.');
    $('#form_kontaktowy').submit();
    return false;
}

function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    return pattern.test(emailAddress);
}

function isValidPostalCode(postalCode) {
    var pattern = new RegExp(/[0-9]{2}-[0-9]{3}/);
    return pattern.test(postalCode);
}
