# it to a query string.
data: data
- # Convert a serialized array into a serialized object
- serializeObject = (a) ->
- o = {}
- $.each a, ->
- v = @value or ''
- if (n = o[@name]) isnt undefined
- o[@name] = [n] unless n.push
- o[@name].push v
- else
- o[@name] = v
- return o
-
- # TODO unused
- $.fn.extend
-
- # Convert this serialized array to a serialized object
- _serializeObject: -> serializeObject @serializeArray()
-
- # Serialize this to a json string, an object, an array, a query string, or just return itself
- _serializeX: (X) ->
- switch X
- when 'j' then json.stringify @_serializeX 'o'
- when 'k' then json.stringify @_serializeX 'a'
- when 'p' then $.param @_serializeX 'a'
- when 's' then @serialize()
- when 'o' then serializeObject @_serializeX 'a'
- when 'a' then @serializeArray()
- else @
-
-
# We define the public interface of the module
# TODO wrap od in jquery so that we can use it to trigger events and bind event handlers
od =