﻿$(document).ready(function () {
    // hides content which can be shown via javascript, if javascript i disable it will be shown auto.
    $('.hiddencontent').hide();

    /* GLOBALS AND ULTILITIES */
    var idCounter = 1000;

    // Add unique classes to the elements whose state are to be saved in session storage
    var path = window.location.pathname;
    var pageName = path.substring(path.lastIndexOf('/') + 1, path.lastIndexOf('.')); // Better way to get page name?  
    $('.sitemap-content').addClass('id' + pageName + (idCounter++).toString());
    $('.ao-list-all').addClass('id' + pageName + (idCounter++).toString());
    $('.expandable-content').each(function () {
        var id = 'id' + pageName + (idCounter++).toString();
        $(this).addClass(id);
    });

    var uniqueClassRegex = new RegExp(/id.+[0-9]{4}/);
    function GetUniqueClass(classString) {
        return classString.match(uniqueClassRegex);
    }

    /*SLIDESHOW start- & subpage*/
    $('#slideshow .pushes').removeClass('pushes').addClass("slideshow");
    if (jQuery.browser.msie) { $('#slideshow').wrapInner('<div class="innerframe"></div>'); }
    $('#slideshow').append('<div class="pager"></div>')
    $('.slideshow').cycle({
        fx: 'fade',
        speed: 200,
        timeout: 8000,
        pause: 1,
        pager: '#slideshow .pager',
        activePagerClass: 'active',
        pagerAnchorBuilder: function (idx, slide) { return '<a href="#"></a>' }
    });

    /*gallery-template: slideshow + gallery*/
    $('.gallery-slideshow').after('<div id="gallery-thumb">').cycle({
        fx: 'fade',
        speed: 'fast',
        timeout: 5000,
        pause: 1,
        pager: '#gallery-thumb',
        activePagerClass: 'active',
        pagerAnchorBuilder: function (idx, slide) {
            var img = $(slide).children().eq(0).attr("src");
            return '<a href="#"><img src="' + img + '" /></a>';
        }
    });

    /*SEARCHBOX*/
    var searchbtn = $("#searchbar .search .submit")
    searchbtn.hide();
    $("body").click(function (event) { searchbtn.fadeOut(); });
    $("#searchbar .search .text").click(function (event) { searchbtn.fadeIn(); event.stopPropagation(); }).focusin(function (event) { searchbtn.fadeIn(); event.stopPropagation(); });

    /* A-Ö - list */
    $(".ao-list a").click(function () {
        $(this).toggleClass("active");
        $(".ao-list-all").fadeToggle(function () {
            var id = ".ao-list-all"; //GetUniqueClass($('.ao-list-all').attr('class'));
            if (id) {
                $.Storage.set(id.toString(), $('.ao-list-all').is(':visible').toString());
            }
        });
    });
    $('.ao-list-all').each(function () {
        var id = ".ao-list-all"; // GetUniqueClass($(this).attr('class'));
        if (id == null)
            return false;
        var visible = $.Storage.get(id.toString());
        if (visible == 'true') {
            $(this).show();
            $(this).siblings('.expandable').find('a').addClass('active');
        }
        else if (visible == 'false') {
            $(this).hide();
            $(this).siblings('.expandable').find('a').removeClass('active');
        }
    });
    //$(".ao-list-all").hide();
    $(".ao-list-all ul li:first").addClass("first");
    $(".ao-list-all ul li:last").addClass("last");

    /*FIND - pushtabs*/
    $(".find-content, .article-content").hide();
    $(".find-content:first, .article-content:first").show();
    $(".find-tabs li:first a, #article-nav li:first a.tab").addClass("active").show()

    $(".find-tabs li a").click(function () {
        $(".find-tabs li a").removeClass("active");
        $(this).addClass("active");
        $(".find-content").hide();
        var activeTab = $(this).attr("href");
        $(activeTab).show();
        return false;
    });
    $("#article-nav li a.tab").click(function () {
        $("#article-nav li a.tab").removeClass("active");
        $(this).addClass("active");
        $(".article-content").hide();
        var activeTab = $(this).attr("href");
        $(activeTab).fadeIn('slow');
        return false;
    });

    /* 
    FRAME's
    Expand/Disband .frame's 
    */
    $('.expandable-content').each(function () {
        var id = GetUniqueClass($(this).attr('class'));
        if (id == null)
            return false;
        var visible = $.Storage.get(id.toString());
        if (visible == 'true') {
            $(this).show();
            $(this).siblings('.expandable').find('a').addClass('active');
        }
        else if (visible == 'false') {
            $(this).hide();
            $(this).siblings('.expandable').find('a').removeClass('active');
        }
    });

    $('.frame .expandable a').click(function () {
        $(this).toggleClass('active');
        var $expandable = $(this).parent('.expandable').parent('.innerframe').find('.expandable-content');
        $expandable.toggle('slow', function () {
            var id = GetUniqueClass($(this).attr('class'));
            if (id) {
                $.Storage.set(id.toString(), $(this).is(':visible').toString());
            }
        });
        return false;
    });

    /*
    SITEMAP
    expand/disband sitemap
    */
    $('.sitemap-content').each(function () {
        var id = ".sitemap-content"; //GetUniqueClass($(this).attr('class'));

        if (id == null)
            return false;

        var visible = $.Storage.get(id.toString());
        if (visible == 'true') {
            $(this).show();
            $(this).siblings('.sitemap-nav').find('li.home a').addClass('active');
            $(this).siblings('.sitemap-nav').find('li.expandable a').removeClass().addClass('disband');
        }
        else if (visible == 'false') {
            $(this).hide();
            $(this).siblings('.sitemap-nav').find('li.home a').removeClass('active');
            $(this).siblings('.sitemap-nav').find('li.expandable a').removeClass().addClass('expand');
        }
    });

    $('.sitemap-nav .expandable a').click(function () {
        $(this).toggleClass('disband').toggleClass('expand');
        $('.sitemap-nav li.home a').toggleClass('active');
        $('.sitemap-content').fadeToggle('', function () {
            var id = ".sitemap-content"; //GetUniqueClass($(this).attr('class'));
            if (id) {
                $.Storage.set(id.toString(), $(this).is(':visible').toString());
            }
        });
        return false;
    });

    /*FEEDBACK*/
    //$('#feedback-content').hide(); //uses .hiddencontent
    $('#feedback').click(function () {
        $('#feedback-content').fadeToggle();
        return false;
    });

    /*FANCYBOX*/
    $(".zoom").fancybox({
        'centerOnScroll': 'true'
    });
    $(".getMap").fancybox({
        'transitionIn': 'fade',
        'transitionOut': 'fade',
        'overlayShow': true,
        'titleShow': false,
        'centerOnScroll': 'true',
        'type': 'iframe',
        'width': '90%',
        'height': '90%'
    });

    /* QUICKSEARCH */
    $(".fullsearch input.search").quicksearch("table.qs tbody tr", {
        stripeRows: ['even', 'odd']
    })

    /* EXPANDABLE */
    var $element = $('.expandable-content');
    var $expandLink = $('a.show-more');
    var elementsToShow = 3;
    var heights = [];

    // Hide elements    
    $element.each(function () {
        if ($(this).find('ul li').length > elementsToShow) {
            var id = GetUniqueClass($(this).attr('class'));

            if (id == null)
                return false;

            heights[id] = []
            heights[id]['expanded'] = $(this).find('ul').height();

            var i = 1;
            $(this).find('li').each(function () {
                if (i > elementsToShow)
                    $(this).hide();
                i++;
            });
            heights[id]['collapsed'] = $(this).find('ul').height();
        }
        else {
            // Hide show more
            $(this).find('a.show-more').hide();
        }
    });

    // Toggle on click
    $expandLink.click(function () {
        var id = GetUniqueClass($(this).parent('div').attr('class'));

        if (id == null)
            return false;

        var $a = $(this);
        if ($(this).siblings('ul').height() == heights[id]['expanded']) {
            $(this).siblings('ul').stop().animate({ 'height': heights[id]['collapsed'] }, 500, function () { $a.text('Se alla'); });
        }
        else {
            $(this).siblings('ul').stop().animate({ 'height': heights[id]['expanded'] }, 500, function () { $a.text('Se färre'); });
        }
        var i = 1;
        $(this).siblings('ul').find('li').each(function () {
            if (i > elementsToShow)
                $(this).fadeToggle('slow');
            i++;
        });
        return false;
    });

    //  $(".i-contact").click(function() {
    $(".article-toolbar a").click(function () {
        var activeTab = $(this).attr("href");
        $(activeTab).toggle('slow');
        return false;
    });

  

    /*tables*/
    $('table tbody tr:even').addClass('even');
    $('table tbody tr:odd').addClass('odd');
    
    $('.close-dsc').click(function () {
        $(this).parent().fadeOut();
    });
    $('.infoframe h2').next().hide().eq(0).show();
    $('.infoframe h2').click(function () {
        $(this).next('.infoTab').toggle('500');
        $(this).find('span').toggleClass('expand collapse')
    });

    if ($.browser.msie) {
        $('.nllPush, .nllExtPush').append('<div class="corner-tl"></div><div class="corner-tr"></div><div class="corner-br"></div><div class="corner-bl"></div>');
    }

    /* alert(jQuery.browser.version);*/
    /*activates cufon fonts*/
    Cufon.replace('h1,h2,h3,h4,h5,.cufon,.nllPushTitle');
});

