$('html').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;
    }
    if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
        // Only send the token to relative URLs i.e. locally.
        xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
    }
});
(function ($){
    $.msgbar = {
        succ: function(s, clear){
            if(arguments.length==1){var clear=true;}
            var message = $($.format('<li class="success">{0}<a href="#"><small>清除</small></a></li>', s));
            $('a', message).click(function(){$(this).parent().fadeOut()});
            if(clear){
                $('ul#messages').empty();
            }
            message.appendTo($('ul#messages')).fadeIn();
        },
        erro: function(s, clear){
            if(arguments.length==1){var clear=true;}
            var message = $($.format('<li class="error">{0}<a href="#"><small>清除</small></a></li>', s));
            $('a', message).click(function(){$(this).parent().fadeOut()});
            if(clear){
                $('ul#messages').empty();
            }
            message.appendTo($('ul#messages')).fadeIn();
        }
    
    }
})(jQuery);

function getQueryParams(qs) {
    qs = qs.split("+").join(" ");
    var params = {},
        tokens,
        re = /[?&]?([^=]+)=([^&]*)/g;
    while (tokens = re.exec(qs)) {
        params[decodeURIComponent(tokens[1])]
            = decodeURIComponent(tokens[2]);
    }
    return params;
}

function toggle_comment_form(id){
    var cform = $('#comment_form_' + id);
    if(cform.hasClass('hidden')) {
        cform.prev().text("取消");
        cform.slideDown();
    }
    else {
        cform.prev().text("回复");
        cform.slideUp();
    }
    cform.toggleClass('hidden');
}


jQuery.fn.autoscroll = function() {
    $('html,body').animate({scrollTop: this.offset().top}, 500);
}

jQuery.fn.uniform = function(settings) {
  settings = jQuery.extend({
    valid_class    : 'valid',
    invalid_class  : 'invalid',
    focused_class  : 'focused',
    holder_class   : 'ctrlHolder',
    field_selector : 'input, select, textarea'
  }, settings);
  
  return this.each(function() {
    var form = jQuery(this);
 
    // Select form fields and attach them higlighter functionality
    form.find(settings.field_selector).focus(function() {
      form.find('.' + settings.focused_class).removeClass(settings.focused_class);
      jQuery(this).parents("." + settings.holder_class).addClass(settings.focused_class)
    }).blur(function() {
      form.find('.' + settings.focused_class).removeClass(settings.focused_class);
    });
  });
};

// Auto set on page load...
$(document).ready(function() {
    try{
        var q = jQuery('form.uniForm');
        if(q.length) {
            q.uniform();
        }
        $(document.activeElement).focus();
    }catch(e){}
});

function check_fields(field) {
    if (field.title==field.value || this.value == '') {
        $(field).removeClass('field-focused');
    } else {
        $(field).addClass('field-focused');
    };
};

function isAbo(){
    return (/^Aboboo!Agent/.test(navigator.userAgent))
}

$(function(){
    jQuery.ajaxSetup({timeout:30000});
    $('form').not('.abo-form form').submit(function(){$('input[type="submit"], button',$(this)).attr('disabled', true)});
    $('a._gp').click(function(){history.back(); return false;}).attr('title', '回到上一页');
    $('a._gn').click(function(){history.forward(); return false;}).attr('title', '去往下一页');
    $('a._rf').click(function(){history.go(0); return false;}).attr('title', '刷新当前页');
    $('a._sr').click(function(){
        var q = $('input[name=q]', 'form#search');
        if(q.attr('title')==q.attr('value')){
            q.val('');
        }
        $(this).parent('form').submit();
    }).attr('title', '找找课件');
    $("#messages li a").click(function() {
        $(this).parent().fadeOut();
        return false;
    });
    $('.field')
        .each(function(){check_fields(this);})
        .focus(function(){
            if(this.title==this.value){
                this.value = '';
                check_fields(this);
            }})
        .blur(function(){
            if(this.value=='') {
                this.value = this.title;
                check_fields(this);
            }});
    if('1'==$.cookie('__abous')){
            var n = $.cookie('__aboun');
            var t = ['<li class="sub"><dl><dt><b></b><a href="/profiles/profile/{0}/" title="{0}">{0}</a></dt><dd>',
                '<div><a href="/notices/">消息通知</a></div>',
                '<div><a href="/invite/" title="推荐人和新注册用户均可获得额外积分奖励">邀请朋友</a></div>'];
        if(!isAbo()){
            t.push('<div><a href="/account/logout/">退出登录</a></div>');
        }
        t.push('</dd></dl></li>');
        $('#id-user-toolbar').html($.format(t.join(''), n ? n : ""));
    }else{
        if(!isAbo()){
            var n = $.cookie('__aboun');
            $('#id-user-toolbar').html($.format('<li>{0}<a href="/account/login/">请登录</a></li>', n ? n : ""));
        }
    }
    $(document).ajaxStart(function(){
        $('#_ld_').show();
        $('#_rf_').hide();
    });
    $(document).ajaxStop(function(){
        $('#_ld_').hide();
        $('#_rf_').show();
    });
});


    


