<script type='text/javascript'>
    (function() {
        //make images always fit the screen
        var images = $('.question-page .post-body img');
        //these breakpoints must match those in css
        //for explanation see utils.js:LimitedWidthImage
        var breakpoints = [
            [980, undefined],
            [800, 55]
        ];
        var maxWidth = 685;
        images.each(function(idx, item) {
            var img = new LimitedWidthImage(breakpoints, maxWidth);
            img.decorate($(item));
        });
    })();
</script>
{% compress js %}
<script type='text/javascript' src='{{"/js/editor.js"|media}}'></script>
<script type="text/javascript" src='{{"/bootstrap/js/bootstrap.js"|media}}'></script>
{% include "meta/markdown_javascript.html" %}
<script type='text/javascript' src='{{"/js/jquery.validate.min.js"|media}}'></script>
<script type='text/javascript' src='{{"/js/post.js"|media}}'></script>
{% endcompress %}
<script type="text/javascript">
    // define reputation needs for comments
    askbot['urls']['getPostHtml'] = '{% url get_post_html %}';
    $(document).ready(function(){
        $("#nav_questions").attr('className',"on");
        $("#" + askbot['data']['answersSortTab']).attr('className',"on");
        
        Vote.init(
            askbot['data']['questionId'],
            askbot['data']['threadSlug'],
            askbot['data']['questionAuthorId'],
            askbot['data']['userId']
        );
        
        if ((askbot['data']['threadIsClosed'] === false) && askbot['data']['userIsAuthenticated']) {
            initEditor();
        }
        
        lanai.highlightSyntax();
        $('#btLogin').bind('click', function(){
            window.location.href='{{ settings.LOGIN_URL }}';
        });
        if (window.location.hash === 'fmanswer'){
            $('#fmanswer textarea').focus();
        }

        if (askbot['settings']['enableSharingGoogle']) {
            $.getScript("//apis.google.com/js/plusone.js");
        }

        if (askbot['data']['userId'] === askbot['data']['questionAuthorId']) {
            $("#fmanswer_button").click(function() {
                $("#fmanswer").show();
                $("#fmanswer_button").hide();
            });
        }

        if (askbot['data']['userIsAuthenticated']) {
            var draftHandler = new DraftAnswer();
            draftHandler.setThreadId({{ thread.id }});
            draftHandler.decorate($(document));
        }

        var expanders = $('.expander');
        expanders.each(function(idx, item) {
            var expanderElement = $(item);
            var post = expanderElement.closest('.post,.comment');
            if (post.length === 1) {
                var expander = new PostExpander();
                expander.setPostId(post.data('postId'));
                expander.decorate(expanderElement);
            }
        });
    });

    $(window).bind('hashchange', animate_hashes);

    function animate_hashes(){
      var id_value = window.location.hash;
      if (id_value != ""){
        var previous_color = $(id_value).css('background-color');
        $(id_value).css('backgroundColor', '#FFF8C6');
        $(id_value).animate(
            {backgroundColor: '#ff7f2a'}, 1000
        ).animate({backgroundColor: '#FFF8C6'}, 1000, function(){
            $(id_value).css('backgroundColor', previous_color);
        });
      }
    }

    
    function initEditor(){
        $('#editor').TextAreaResizer();
        //highlight code synctax when editor has new text
        $("#editor").typeWatch({highlight: false, wait: 3000,
                         captureLength: 5, callback: lanai.highlightSyntax});
                         
        var display = true;
        var txt = "[{% trans %}hide preview{% endtrans %}]";
        $('#pre-collapse').text(txt);
        $('#pre-collapse').bind('click', function(){
            txt = display ? "[{% trans %}show preview{% endtrans %}]" : "[{% trans %}hide preview{% endtrans %}]";
            display = !display;
            $('#previewer').toggle();
            $('#pre-collapse').text(txt);
        });
        setupFormValidation(
            $("#fmanswer"),
            CPValidator.getAnswerFormRules(),
            CPValidator.getAnswerFormMessages()
        );
    }
    (function() {
        var editorBox = $('.folded-editor');
        if (editorBox.length) {
            var foldedEditor = new FoldedEditor();
            foldedEditor.decorate(editorBox);
        }
    })();
</script>
