;(function($) {
    $(document).ready(function() {
        
        // drop downs
        $("#header-nav ul.depth-2").hide();
        $("#header-nav ul.depth-2").bgiframe();
        $("#header-nav li.depth-1").hover(function() {
            $(this).css("z-index", "50");
            $(this).find("ul.depth-2").show();
            $(this).find("a").addClass("over");
        }, function() {
            $(this).css("z-index", "1");
            $(this).find("ul.depth-2").hide();
            $(this).find("a").removeClass("over");
        });
        
        // more events
        $("#header-ere-events-lists-container").hide();
        $("#header-ere-events-lists-container").bgiframe();
        $("#header-ere-more-events a.more").click(function() {
            $block = $("#header-ere-more-events");
            if ($block.hasClass("clicked")) {
                $block.css("z-index", "1");
                $block.find("#header-ere-events-lists-container").hide();
                $block.find("a").removeClass("over");
                $block.removeClass("clicked");
            } else {
                $block.css("z-index", "200");
                $block.find("#header-ere-events-lists-container").show();
                $block.find("a").addClass("over");
                $block.addClass("clicked");
            }
            return false;
        });
        $("#header-ere-events-lists").click(function() {
            $("#header-ere-upcoming-events").unbind("click");
            return true;
        });
        $(document).click(function(e) {
            if (!$.contains($("#header-ere-more-events").get(0), e.target)) {
                if ($("#header-ere-more-events").hasClass("clicked")) {
                    $("#header-ere-more-events").css("z-index", "1");
                    $("#header-ere-more-events").find("#header-ere-events-lists-container").hide();
                    $("#header-ere-more-events").find("a").removeClass("over");
                    $("#header-ere-more-events").removeClass("clicked");
                }
            }
        });
        
        // notification closer
        $("div.notifier a.close-box").click(function() { 
            $(this).blur();
            $(this).parent("div.notifier").fadeOut(100);
            return false; 
        });
        
        // revealer
        $("a.expander").each(function() {
            var the_id = $(this).attr("href") + "-";
            if (the_id === window.location.hash + "-") {
                $(the_id).show();
            }
            $(this).toggleClass("expanded", $(the_id).is(':visible'));
        });
        $("a.expander").click(function() { 
            $(this).blur();
            var the_id = $(this).attr("href") + "-";
            $(the_id).toggle();
            $(this).toggleClass("expanded", $(the_id).is(':visible'));
            return false; 
        });
        $("a.canceller").click(function() { 
            $(this).blur();
            var the_id = $(this).attr("href") + "-";
            $(the_id).hide();
            $("a.expander").each(function() {
                var the_id = $(this).attr("href") + "-";
                $(this).toggleClass("expanded", $(the_id).is(':visible'));
            });
            return false; 
        });
        
        // viewer
        $("a.viewer").each(function() {
            var the_id = $(this).attr("href");
            if (the_id === window.location.hash) {
                $(the_id).show();
            }
            $(this).parent().toggleClass("expanded", $(the_id).is(':visible'));
        });
        $("a.viewer").click(function() { 
            $(this).blur();
            var the_viewer = this;
            var the_id = $(this).attr("href");
            $(the_id).slideToggle('fast', function() {
                $(the_viewer).parent().toggleClass("expanded", $(the_id).is(':visible'));
            });
            return false; 
        });
        
        // textarea counter
        $(".count-chars").each(function() {
            function update_chars_left(the_textarea) {
                var max_len = 140;
                var tweet_len = the_textarea.value.length;
                var $char_count = $("label[for="+$(the_textarea).attr("id")+"]").parent().find("span.char-count");
                if (tweet_len >= max_len) {
                    the_textarea.value = the_textarea.value.substring(0, max_len); // truncate
                    $char_count.html("0");
                    $char_count.parent().addClass("maxed");
                } else {
                    $char_count.html(max_len - tweet_len);
                    $char_count.parent().removeClass("maxed");
                }
            }
            $(this).keyup(function() {
                update_chars_left(this);
            });
            update_chars_left(this);
        });
        
    });
})(jQuery);
