         marginTop   : '+=20'
     }, 600
 
+class JumpInStep
+    constructor : (@father, @name) ->
+        @_jqBtn     = PrivateValue.GetOnly ($ '#' + @name + 'Btn')
+        @_jqDiv     = PrivateValue.GetOnly ($ 'div#' + @name)
+        @_jqCancel  = PrivateValue.GetOnly ((do @_jqDiv.get).find '#' + @name + 'Cancel')
+        (do @_jqBtn.get).click @display
+        (do @_jqCancel.get).click @hide
+
+    display : (event) =>
+        do @father.hide
+        (do @_jqDiv.get).fadeTo 0.01
+        (do @_jqDiv.get).animate {
+            left    : '-=290'
+        }, 600
+
+    hide    : (event) =>
+        do @father.show
+        (do @_jqDiv.get).fadeTo 0.99
+        (do @_jqDiv.get).animate {
+            left    : '+=290'
+        }, 600
+
 class ChoiceForm
     constructor : (@name) ->
         @_jqElem    = PrivateValue.GetOnly ($ '#' + @name)

        (do @_jqElem.get).fadeIn 600

    onSubmit    : (event) =>

class SignUpForm extends ChoiceForm
    onSubmit    : (event) =>

    do ($ 'span#choicesContainer > div div').show
    do FadeIn
    choices =
        '#jumpIn'   : new Choice 'jumpIn', JumpInForm
        '#logIn'    : new Choice 'logIn'
        '#signUp'   : new Choice 'signUp', SignUpForm

