$(document).ready(function () {

    var ua = navigator.userAgent;
    var uaChecker = {
        iphone: ua.match(/(iPhone|iPod|iPad)/),
        android: ua.match(/Android/),
        iemobile: ua.match(/IEMobile/)
    };

    if ($('ul.spots').length) {
        $('ul.spots').masonry({
            itemSelector: '.masonry',
            columnWidth: 216,
            gutterWidth: 18
        });
    }
    if ($('div#articlerotation div#rotation').length) {
        $('div#articlerotation div#rotation').cycle({
            timeout: 6000,
            speed: 500,
            fx: 'fade',
            next: '#next',
            prev: '#prev'
        });
    }

    $("span.statement").click(function () {
        $(this).closest('div.paragraph').children('div.overlay').fadeToggle('fast', 'linear');
    });

    $('img.close').click(function () {
        $(this).parent('div.overlay').fadeToggle('fast', 'linear');
    });

    if ($('#toolbox').length) {
        var tbx = document.getElementById("toolbox"),
	    svcs = { facebook: 'Facebook', twitter: 'Twitter', print: 'Udprint side', email: 'Send som mail' };

        for (var s in svcs) {
            tbx.innerHTML += '<a class="addthis_button_' + s + '">' + svcs[s] + '</a>';
        }
        addthis.toolbox("#toolbox");
    }

    if ($('a.lightbox').length) {
        $('a.lightbox').fancybox({
            'overlayColor': '#000',
            'overlayOpacity': 0.8,
            'titlePosition': 'over',
            'autoScale': true
        });
    }

    $("ul#profilenavigation li.first span").click(function () {
        $('ul#profilenavigation.loggedin ul').fadeToggle();
    });

    var url = document.location.toString();
    if (url.match('#')) {
        $('#' + url.split('#')[1]).css("background-color", "#ccc");
    }

    if ($('table.interactive tbody.collapse').length) {
        $('table.interactive tr.country').each(function () {
            var divhtml = $(this).next('tr.details').html();

            $(this).data('details', divhtml);
            $(this).next('tr.details').remove();
        });
    }

    $('table.interactive tbody.collapse td.country span.expander').click(function () {
        var details = $(this).closest('tr').next('tr').attr('class');

        if (details == 'details') {
            $(this).closest('tr').removeClass('expanded');
            $(this).closest('tr').next('tr').remove();
        } else {
            var row = '<tr class="details">' + $(this).closest('tr').data('details') + '</tr>';
            $(this).closest('tr').addClass('expanded');
            $(this).closest('tr').after(row);
        }
    });

    if ($('table#contacts').length) {
        $('#contacts tr.member').each(function () {
            var divhtml = $(this).next('tr').html();

            $(this).data('details', divhtml);
            $(this).next('tr').remove();
        });

        $("#contacts").tablesorter({
            headers: {
                2: {
                    sorter: false
                }
            }
        });

        $("#contacts").bind("sortStart", function () {
            $('tr.details').remove();
            $('tr.listitem0').removeClass('listitem0');
        });

        $("#contacts").bind("sortEnd", function () {
            $('#contacts tbody tr:nth-child(even)').addClass('listitem0');
        });

        var theTable = $('table#contacts');
        if (theTable) {
            theTable.find("tbody > tr.member").find("td:eq(1)").mousedown(function () {
                $(this).prev().find(":checkbox").click()
            });
        }
    }

    $("#memberfilter").keyup(function () {
        $.uiTableFilter(theTable, this.value);
        $('tr.details').css('display', 'none');
    })

    if (theTable) {
        $('form#mainform').submit(function () {
            theTable.find("tbody > tr.member:visible > td:eq(1)").mousedown();
            return false;
        }).focus();
    }

    $('#contacts img.more').click(function () {
        var details = $(this).closest('tr').next('tr').attr('class');

        if (details == 'details') {
            $(this).closest('tr').next('tr').remove();
        } else {
            var row = '<tr class="details">' + $(this).closest('tr').data('details') + '</tr>';
            $(this).closest('tr').after(row);
        }
    });

    $('table#contacts tr.details td img.close').live('click', function () {
        $(this).closest('tr.details').remove();
    });

    $('div.filters img').click(function () {
        document.getElementById('memberfilter').value = '';
        $.uiTableFilter(theTable, document.getElementById('memberfilter').value);
        $('div.filters input').focus();
        $('tr.details').css('display', 'none');
    });

    if ($('div#gmap').length) {
        var locationArr = $('div#gmap').attr('rel').split(',');
        var countriesArr = $('ul.locations li a');
        var markersArray = [];
        var latlng;

        var center = new google.maps.LatLng(locationArr[0], locationArr[1]);

        var myOptions = {
            zoom: Number(locationArr[2]),
            center: center,
            panControl: true,
            zoomControl: true,
            mapTypeControl: false,
            scaleControl: false,
            streetViewControl: false,
            overviewMapControl: false,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        var map = new google.maps.Map(document.getElementById('gmap'), myOptions);
        var bounds = new google.maps.LatLngBounds();

        $.each(countriesArr, function (index, value) {
            var currentMarker = $(countriesArr[index]).attr('rel').split(',', 3);
            var latlng = new google.maps.LatLng(parseFloat(currentMarker[1]), parseFloat(currentMarker[2]));
            var marker = new google.maps.Marker({ position: latlng, map: map, title: currentMarker[0] });

            google.maps.event.addListener(marker, 'click', function () {
                window.location = $(countriesArr[index]).attr('href');
            });

            google.maps.event.addListener(marker, 'mouseover', function () {
                $('ul.maplist li a:contains("' + currentMarker[0] + '"), li.countries li a:contains("' + currentMarker[0] + '")').parent('li').addClass('highlight');
            });

            google.maps.event.addListener(marker, 'mouseout', function () {
                $('ul.maplist li a:contains("' + currentMarker[0] + '"), li.countries li a:contains("' + currentMarker[0] + '")').parent('li').removeClass('highlight');
            });

            bounds.extend(latlng);
            markersArray.push(marker);
        });

        if (countriesArr.length != 0) {
            map.fitBounds(bounds);
        } else {
            var marker = new google.maps.Marker({ position: center, map: map });
        }

        $('ul.maplist li a, ul.leftnavigation li a[rel]').hover(
            function () {
                toggleBounce(markersArray[$(this).parent().prevAll().length]);
            },
            function () {
                toggleBounce(markersArray[$(this).parent().prevAll().length]);
            }
        );

        $('ul.locations ').css('display', 'none');
    };

    var fancySettings = {
        'autoDimensions': false,
        'width': 445,
        'height': 'auto'
    };
    if (uaChecker.android || uaChecker.iphone || uaChecker.iemobile) {
        fancySettings.scrolling = 'no';
        fancySettings.onComplete = function () {
            $.fancybox.resize();
        }
    }

    $("a.fancyLogin").fancybox($.extend(fancySettings, { 'onClosed': function () {
        $("#panLogin").css("display", "block");
        $("#panForgotPass").css("display", "none");
    }
    }));

    $("a.fancyChangePass").fancybox(fancySettings);
    $("a.fancyChangeProfile").fancybox(fancySettings);
    $("a.fancyboxWaitinglist").fancybox($.extend(fancySettings, { 'onComplete': function () {
        if (!uaChecker.android && !uaChecker.iphone && !uaChecker.iemobile) {
            var wHeight = $(window).height();
            var fHeight = $('#fancybox-inner table').height();
            if ((fHeight + 100) < wHeight)
                $.fancybox.resize();
        }
        else {
            $.fancybox.resize();
        }
    }
    }));

    $("a.fancyboxTheme").fancybox($.extend(fancySettings, { 'width': 'auto', 'height': 'auto' }));

    if ($.datepicker) {
        $.datepicker.setDefaults($.datepicker.regional["da"]);

        $(".datetimepicker").datepicker({
            duration: "",
            showTime: true,
            constrainInput: false,
            stepMinutes: 1,
            stepHours: 1,
            altTimeField: "",
            time24h: true
        })

        $(".datepicker.birthdate").datepicker({
            constrainInput: false,
            minDate: new Date(1901, 1 - 1, 1),
            yearRange: "1901:" + $(".datepicker.birthdate").datepicker("option", "maxDate"),
            changeMonth: true,
            changeYear: true,
            altTimeField: ""
        })
    }

    if ($(".accordian").length) {

        $(".accordian.collapsible").accordion({
            header: "h4",
            collapsible: true
        });

        $(".register .accordian.collapsible").accordion({
            active: false
        });
    }


    var alignWith = "servicenavigation" //Either servicenavigation or sidebar
    var searchBoxWith = 69; //searchboxwidth + searchinput padding

    if (alignWith == "sidebar") {
        //Make searchbox align with sidebar
        var sidebarOuterWidth = $("#sidebar").outerWidth();
        var sidebarpaddingleftPx = $("#sidebar").css('padding-left');
        var sidebarpaddingleft = 0;
        if (sidebarpaddingleftPx)
            sidebarpaddingleft = Number(sidebarpaddingleftPx.replace('px', ''));
        if (!isNaN(sidebarpaddingleft))
            $("#query").css("width", Number(sidebarOuterWidth) - sidebarpaddingleft - searchBoxWith);
        else
            $("#query").css("width", Number(sidebarOuterWidth) - searchBoxWith);
    }
    else if (alignWith == "servicenavigation") {
        //Make searchbox align with servicenavigation
        var servicenavigationOuterWidth = $("#servicenavigation").outerWidth();
        var servicenavigationFirstPaddingLeftPx = $("#servicenavigation .first a").css('padding-left');
        var servicenavigationFirstPaddingLeft = 0;
        if (servicenavigationFirstPaddingLeftPx)
            servicenavigationFirstPaddingLeft = Number(servicenavigationFirstPaddingLeftPx.replace('px', ''));

        if (!isNaN(servicenavigationFirstPaddingLeft))
            $("#query").css("width", Number(servicenavigationOuterWidth) - servicenavigationFirstPaddingLeft - searchBoxWith);
        else
            $("#query").css("width", Number(servicenavigationOuterWidth) - searchBoxWith);
    }
});

function toggleBounce(marker) {

    if (marker.getAnimation() != null) {
        marker.setAnimation(null);
    } else {
        marker.setAnimation(google.maps.Animation.BOUNCE);
    }
}

function limitChars(textid, limit, infodiv) {
    var text = $('#' + textid).val();
    var textlength = text.length;
    if (textlength > limit) {
        $('#' + textid).next('span.typecount').html('Du kan ikke skrive mere end ' + limit + ' bogstaver');
        $('#' + textid).val(text.substr(0, limit));
        return false;
    }
    else {
        $('#' + textid).next('.' + infodiv).html('Du har ' + (limit - textlength) + ' bogstaver tilbage');
        return true;
    }
}

