﻿function makeUrlRelative(url) {
    return /^[a-z]+\:\/\/[^\/]*(.*)$/i.exec(url)[1];
}

function addReturnUrl(url) {
    var qs = jQuery.deparam.querystring();
    var returnUrl;

    if (!returnUrl) {
        if (qs) {
            returnUrl = qs.returnUrl;
        }
    }

    if (!returnUrl) {
        returnUrl = makeUrlRelative(document.location.href);
    }

    return jQuery.param.querystring(url, { returnUrl: returnUrl });
}







(function ($) {

    $('form:has(input:file)')
    .live('submit', function () {
        this.encoding = 'multipart/form-data'
    })
    ;

    $('form:has(input[name=ReturnUrl][value=])')
    .live('submit', function () {
        $('input[name=ReturnUrl][value=]', this).val(makeUrlRelative(document.location.href));
    })
    ;

    $('a.AddReturnUrl')
    .live('click', function (e) {
        this.href = addReturnUrl(this.href);
    })
    ;

    $('a.Replace')
    .live('click', function (e) {
        var state = $.deparam.fragment(true);
        $.extend(state, $.deparam.fragment(this.href, true));
        location.replace('#' + $.param(state, true));
        return false;
    })
    ;

})(jQuery);








