summaryrefslogtreecommitdiff
blob: c675aede005b926b7079e5e7a039ecb77db92f5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// from http://stackoverflow.com/questions/4399005/implementing-jquerys-shake-effect-with-animate
// replacement for broken Effect.Shake from JQuery UI
jQuery.fn.shake = function (steps, duration, amount, vertical) {
    var s = steps || 3;
    var d = duration || 120;
    var a = amount || 3;
    var v = vertical || false;
    this.css('position', 'relative');
    var cur = parseInt(this.css(v ? "top" : "left"), 10);
    if (isNaN(cur))
        cur = 0;

    var ds = d / s;

    if (v) {
        for (i = 0; i < s; i++)
            this.animate({ "top": cur + a + "px" }, ds).animate({ "top": cur - a + "px" }, ds);
        this.animate({ "top": cur }, 20);
    }
    else {
        for (i = 0; i < s; i++)
            this.animate({ "left": cur + a }, ds).animate({ "left": cur - a + "px" }, ds);
        this.animate({ "left": cur }, 20);
    }

    return this;
}

jQuery(function($) {
    $('.has-tooltip').tooltip();

    $('a.notice-link').click(function() {
        if ($(this).hasClass('active')) {
            $('div.notice').show(400);
            $(this).removeClass('active');
            $('#notices-for').html('');

            return false;
        } else {
            var affected_notices = $("div.notice[data-services~='" + $(this).data('service') +"']");

            if (affected_notices.length > 0) {
                $("div.notice:not([data-services~='" + $(this).data('service') +"'])").hide(400);
                affected_notices.show(400);
                $('#notices-for').html('for ' + $(this).data('service-name'));
                $('a.notice-link.active').removeClass('active');
                $(this).addClass('active');
            } else {
                $(this).shake();
                return false;
            }
        }

        if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
            var target = $(this.hash);
            target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
            if (target.length) {
                $('html,body').animate({
                    scrollTop: target.offset().top
                }, 200);
                return false;
            }
        }
    });
});

InfraStatus = {};