﻿$(document).ready(function () {

    //SlideToggle på aktiviteter
    var activityYear, activityYearIs
    activityYear = $('.activity-year');
    activityYearIs = activityYear.length > 1;

    if (activityYearIs) {

        $('.handle-bar').click(function () {
            $(this).parent().next('.handle').slideToggle('slow', function () {
                // Animation complete.
            });
        });

    }

    // set up the slideshow
    $('#banner')
        .cycle({
            fx: 'fade',
            speed: 880,
            timeout: 5500,
            prev: '#prev',
            next: '#next',
            pager: '#controls'
        });

    var slide = $("ul#slide-nav");

    $("#image-caroussel").hover(function () {
        slide.show();
    },
      function () {
          slide.hide();

      });

    //== SHOW/HIDE FIELDS I AKTIVITESFORMULAR ==//

    $('.names-age-gender fieldset').hide(); /* Skal muligvis sættes ind i HEAD */
    $('.names-age-gender fieldset#kid1').show(); /* Skal muligvis sættes ind i HEAD */

    $('#kids-amount').change(function () {

        $('.names-age-gender fieldset').each(function (index) {
            if (index <= $('#kids-amount').val() - 1) {
                $(this).fadeIn();
            } else {
                $(this).fadeOut();
            }
        });
    });

    //== SIKRER AT DE FELTER DER ER UDFYLDT, VISES HVIS MAN GÅR TILBAGE PÅ EN ORDRE==/
    if ($('#kids-amount').val() > 0) {

        $('.names-age-gender fieldset').each(function (index) {
            if (index <= $('#kids-amount').val() - 1) {
                $(this).fadeIn();
            } else {
                $(this).fadeOut();
            }
        });

    }

    //== SIKRER AT DER KUN VISES DET ANTAL FELTER DER ER INDTASTET I ANTAL BØRN ==//
    $('#kids-amount').change(function () {

        $('.names-age-gender fieldset').each(function (index) {
            if (index <= $('#kids-amount').val() - 1) {
                $(this).fadeIn();
            } else {
                $(this).fadeOut();
            }
        });
    });

    //== VALIDERING AF AKTIVITETSFORMULAR ==//

    $('#activities-subscription').submit(function (e) {

        var $form = $(this);

        var errorContainerStart = '<div class="warning"><h3>Felter der mangler at blive udfyldt</h3><ol>';
        var errorContainerEnd = '</ol></div>';
        var errorContainerText = '';
        var noErrors = true;

        $form.find('.required:visible').each(function (index) {

            var $this = $(this);
            var value = $this.val();
            var inputType = $this.attr("type");

            if (inputType === "radio") {
                var preSib = $this.prev().prev();
                var preType = preSib.attr("type");
                if (preType === "radio") {
                    var thisIsChecked;
                    preIsChecked = preSib.is(':checked');
                    thisIsChecked = $this.is(':checked');
                    if (!preIsChecked && !thisIsChecked) {
                        errorContainerText += '<li>' + $this.attr('data-validation-text') + '</li>';
                        noErrors = false;
                    }
                }
            } else {
                if (value.length < 1) {
                    errorContainerText += '<li>' + $this.attr('data-validation-text') + '</li>';
                    noErrors = false;
                }
            }
        });

        var errorText = errorContainerStart + errorContainerText + errorContainerEnd;
        if (!noErrors) {
            $("#outerform-wrapper").prepend(errorText);
            //Skjuler alle instanser af .warning der injectes i DOM'en
            $('.warning').hide();

            //Viser den første/seneste instans af .warning i DOM'en
            $('.warning:first').show();
            return false;
        } else {
            //$form.submit();
            return true;
        }
        return false;
    });

});

//== MENU HOVER FUNKTIONALITET ==//

$(document).ready(function () {

    function megaHoverOver() {
        $(this).find(".sub").stop().fadeTo('fast', 1).show();

        //Calculate width of all ul's
        (function ($) {
            jQuery.fn.calcSubWidth = function () {
                rowWidth = 0;
                //Calculate row
                $(this).find("ul").each(function () {
                    rowWidth += $(this).width();
                });
            };
        })(jQuery);

        $(this).calcSubWidth();
        //Set Width
        $(this).find(".sub").css({ 'width': rowWidth });
    }

    function megaHoverOut() {
        var isActive = $(this).hasClass('active');
        //console.log(isActive);
        if (!isActive) {
            $(this).find(".sub").stop().fadeTo('fast', 0, function () {

                $(this).hide();

            });
        }
    }


    var config = {
        sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)    
        interval: 100, // number = milliseconds for onMouseOver polling interval    
        over: megaHoverOver, // function = onMouseOver callback (REQUIRED)    
        timeout: 500, // number = milliseconds delay before onMouseOut    
        out: megaHoverOut // function = onMouseOut callback (REQUIRED)    
    };

    //$("ul#mainNav li .sub").css({ 'opacity': '0' });
    $("ul#mainNav li").hoverIntent(config);

    //Tilmeldingsformular validering
    var button = $('.buttonsBottom .right');
    var buttonOnpage = button.length > 0;
    //alert(button.length);

    //checker om input felterne allerede er udfyldt og fjerner error klassen, hvis de er
    var $allErrors = $('.error');
    $allErrors.each(function () {
        var $this = $(this);

        //Her fjernes alle .error klasserne, hvis man er logget ind (felterne er præudfyldt på forhånd).
        if ($this.prev().val().length > 0) {
            $this.removeClass('error');
        }

        //Hvis en værdi ændres så den er tom, så sættes .error klassen på span elementet igen (Ved redigering af brugerinfo).
        $this.prev().change(function () {

            if ($(this).val().length < 1) {

                $this.addClass('error');
            }

        });

    });

    if (buttonOnpage) {

        $('.buttonsBottom .right').click(function () {
            var $error = $('.error:first');

            //sætter den første error class i fokus
            $error.prev().focus();

            //Fjerner error class, når det pågældende input felt fjernes
            $($error).prev().change(function () {
                $error.removeClass('error');
            });

        });

    }

    //Sætter højden på .aktivitetsliste til det samme som #col2, hvis den er længere end .aktivitetsliste
    var col2Height = $('#col2').height();
    var newHeight = col2Height - 50;
    var aktivitetslisteHeight = $('.aktivitetsliste').height();
    var higher = aktivitetslisteHeight - col2Height;
    var aktivitetsliste = $('.aktivitetsliste');
    var aktivitetslisteIs = aktivitetsliste.length > 0;

    if (aktivitetslisteIs && higher < 0) {
        aktivitetsliste.height(newHeight);
    }

    //Flytter beskeden om at man er afmeldt aktivitet fra dens oprindelige placering i DOM'en til først på siden, så den er synlig
    var warningBox = $('.cancel-activity');
    var WarningBoxIs = warningBox.length > 0;
    var brodtekst = $('#brodtekst h1');
    var memberactivities = $('.member-activities');

    if (WarningBoxIs) {

        //Hvis .cancel-activity ikke har nogle søskende af typen .activity-info skjules h3
        if (warningBox.siblings('.activity-info').length == 0) {
            warningBox.siblings('h3').hide();
        }

        if (brodtekst.length > 0) {
            warningBox.appendTo(brodtekst);
        }

        if (memberactivities.length > 0) {
            warningBox.prependTo(memberactivities);
        }

    }

});
