var loadCalendarContent = false;
$(window).load(function() {
    $('#slider').nivoSlider({manualAdvance:false, effect: 'sliceUp', pauseTime:7000 ,afterChange: function() {
        var img = $('#slider').data('nivo:vars').currentImage;
        fillSliderHeader(img);
    }});
    var sliderFirstImg = $('#slider > img:first');
    if (sliderFirstImg.length == 1) {
        fillSliderHeader(sliderFirstImg[0]);
    }
    function fillSliderHeader(img) {
        var a = "<a href=" + $(img).data("url") + ">";
        var title = $(img).data("title");
        if (title.length > 28) {
            title = title.substr(0, 28) + "...";
        }
        $('h1', '#slideWrapper').html(a + title + "</a>");
        $('h2', '#slideWrapper').html(a + $(img).data("subtitle") + "</a>");
        $('h3', '#slideWrapper').html(a + $(img).data("date") + "&nbsp;</a>");
    }

    $('#slideWrapper').hover(function() {
        $('.nivo-directionNav', '#slideWrapper').show();
    }, function() {
        $('.nivo-directionNav', '#slideWrapper').hide();
    });
    $('.pictureSlideShow').nivoSlider({pauseTime:5000, effect: 'sliceUp'});
    $('#eventCall a.cal_pijl').live("click", function() {
        var url = $(this).attr("href");
        $('#eventCall').load(url);
        if (loadCalendarContent) {
            $('#content').load("evenementenPartial.htm" + url.substr(url.indexOf("?")));
        }
        return false;
    });
    $(".filterCriteria select").change(function() {
        $(this).closest("form").submit();
    });
    initMaps();
    setupOrderForm();
});

function initMaps() {
    var zindexInfoWindow = 1;
    $(".map").each(function() {
        var mapOptions = { zoom: $(this).data("zoomLevel"), mapTypeId: google.maps.MapTypeId.ROADMAP, disableDefaultUI: true,
            zoomControl: true,
            mapTypeControl: true};

        var map = new google.maps.Map(this, mapOptions);

        var locationsSelector = "#" + $(this).data("locations") + " li";
        if ($(locationsSelector).size() == 0) {
            $(this).hide();
        }
        $(locationsSelector).each(function(index, data) {
            var geocoder = new google.maps.Geocoder();
            var address = $(this).data("street") + " " + $(this).data("housenr") + " " + $(this).data("postalcode") + " " + $(this).data("muncipality");
            geocoder.geocode({ 'address': address}, function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    if ($(data).data("center") == true) {
                        map.setCenter(results[0].geometry.location);
                    }
                    var marker = new google.maps.Marker({
                        map: map,
                        position: results[0].geometry.location,
                        title: $(data).text()
                    });
                    var contentValue = "<div class='mapInfo'>";
                    contentValue += "<strong>" + $(data).text() + "</strong>";
                    contentValue += "<strong>" + $(data).data("street") + " " + $(data).data("housenr") + "</strong>";
                    contentValue += "<strong>" + $(data).data("postalcode") + " " + $(data).data("muncipality") + "</strong>";
                    if ($(data).data("link")) {
                        contentValue += "<a href='" + $(data).data("link") + "'>Details</a>";
                    }
                    contentValue += "</div>";
                    var infowindow = new google.maps.InfoWindow({
                        content: contentValue
                    });
                    google.maps.event.addListener(marker, 'click', function() {
                        infowindow.open(map, marker);
                        infowindow.setZIndex(zindexInfoWindow++);
                    });
                }
            });

        });
    }
            );
}

function setupOrderForm() {
    if ($("#orderItems").size() > 0) {
        $("#orderItems input").change(function() {
            var orderItemRow = $(this).closest('.orderItem');
            var orderItemTotal = 0;
            $("input", orderItemRow).each(function() {
                var aantal = parseFloat($(this).val() != "" ? $(this).val() : 0.0);
                orderItemTotal += parseFloat($(this).data('price')) * aantal;
            });
            //Update row total
            $(".price", orderItemRow).data("price", orderItemTotal).html(orderItemTotal);

            //Update total price
            var total = 0;
            $("#orderItems .price").each(function() {
                total += parseFloat($(this).data('price'));
            });
            $("#totalPrice").html(total);
        });
    }
}
