$(function(){

    // hide the content header if it's empty
    if ($('#contentheader').text()==''){
        $('#contentheader').hide();
    }

    if ($('#messages li').length > 0)
    {
        $('#messages')
            .slideToggle('slow',function(){
                window.setTimeout(function(){
                    $('#messages:visible').slideToggle('slow');
                },5000);
            })
            .click(function(){
                $('#messages').slideToggle('slow');
            });
    }

    $('a.prompt,button.prompt').click(function(e){
        e.stopPropagation();
        var msg = $(this).attr('prompt');
        var title = $(this).attr('title');
        var href= $(this).attr('href');
        pr.confirm({
            'msg':msg,
            'title':title,
            'onYes':href
        });
        return false;
    });

    $('input.autocomplete').each(function(){
        var url = $(this).attr('target');
        if (url){
            $(this).autocomplete({
                'source':url,
                'minLength':2
            });
        }
    });

    $('header').click(function(){
        document.location.href="/";
    }).css('cursor','pointer');

    function daysHoursMinutesToSeconds() {
        var day = parseInt($(this).find('.duration-day').val()||0);
        var hour = parseInt($(this).find('.duration-hour').val()||0);
        var minute = parseInt($(this).find('.duration-minute').val()||0);
        var secs = (day*86400)+(hour*3600)+(minute*60);
        $(this).find('.duration_total_seconds').val(secs);
    }

    $('.duration').each(function(){
        var self = this;
        $(this).find('.duration-day,.duration-hour,.duration-minute').blur(function(){
            daysHoursMinutesToSeconds.call(self);
        });
        daysHoursMinutesToSeconds.call(self);
    });


    $(document).ajaxSend(function(event, xhr, settings) {
        function getCookie(name) {
            var cookieValue = null;
            if (document.cookie && document.cookie != '') {
                var cookies = document.cookie.split(';');
                for (var i = 0; i < cookies.length; i++) {
                    var cookie = jQuery.trim(cookies[i]);
                    // Does this cookie string begin with the name we want?
                    if (cookie.substring(0, name.length + 1) == (name + '=')) {
                        cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                        break;
                    }
                }
            }
            return cookieValue;
        }
        function sameOrigin(url) {
            // url could be relative or scheme relative or absolute
            var host = document.location.host; // host + port
            var protocol = document.location.protocol;
            var sr_origin = '//' + host;
            var origin = protocol + sr_origin;
            // Allow absolute or scheme relative URLs to same origin
            return (url == origin || url.slice(0, origin.length + 1) == origin + '/') ||
                (url == sr_origin || url.slice(0, sr_origin.length + 1) == sr_origin + '/') ||
                // or any other URL that isn't scheme relative or absolute i.e relative.
                !(/^(\/\/|http:|https:).*/.test(url));
        }
        function safeMethod(method) {
            return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
        }

        if (!safeMethod(settings.type) && sameOrigin(settings.url)) {
            xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
        }
    });

    $('input:submit,button').button();

    // This will set the focus to the first form text field.
    $('form input[type=text]').first().focus();
});

