function parseArguments(url, data, success, dataType) {
    if ($.isFunction(data)) dataType = success, success = data, data = undefined
    if (!$.isFunction(success)) dataType = success, success = undefined
    return {
      url: url
    , data: data
    , success: success
    , dataType: dataType
    }
  }
function parseArguments(url, data, success, dataType) {
    if ($.isFunction(data)) dataType = success, success = data, data = undefined
    if (!$.isFunction(success)) dataType = success, success = undefined
    return {
      url: url
    , data: data
    , success: success
    , dataType: dataType
    }
  }
function parseArguments ( url , data , success , dataType ) { if ( $ . isFunction ( data ) ) dataType = success , success = data , data = undefined if ( ! $ . isFunction ( success ) ) dataType = success , success = undefined return { url : url , data : data , success : success , dataType : dataType } }
handle optional data/success arguments
handle optional data / success arguments