       vmController.on "PaymentModalDestroyed", hideLoaders
       form.on "FormValidationFailed", hideLoaders
 
-  showPaymentNotices: (form)->
-    group = KD.getSingleton("groupsController").getCurrentGroup()
+  confirmPayment: (type, plan, callback=->)->
+    paymentController = KD.getSingleton('paymentController')
+    group             = KD.getSingleton("groupsController").getCurrentGroup()
+
+    getBalance = (type, cb)->
+      if type is 'user'
+        KD.remote.api.JRecurlyPlan.getUserBalance cb
+      else
+        KD.remote.api.JRecurlyPlan.getGroupBalance group, cb
+
+    buildModal = (content, cb)->
+      modal           = new KDModalView
+        title         : "Confirm VM Creation"
+        content       : "<div class='modalformline'>#{content}</div>"
+        overlay       : yes
+        buttons       :
+          No          :
+            title     : "Cancel"
+            cssClass  : "modal-clean-gray"
+            callback  : =>
+              modal.destroy()
+              cb()
+          Yes         :
+            title     : "OK, create the VM"
+            cssClass  : "modal-clean-green"
+            callback  : =>
+              modal.destroy()
+              cb()
+              paymentController.makePaymentModal type, plan, ->
+                console.log "I'm done."
     
-    # Show user account balance, if necessary
-    {userCredits, userVM} = form.fields
-    userCredits.setClass "hidden"
-    userVM.setClass "hidden"
-
     group.canCreateVM
-      type    : "user"
-      planCode: "group_vm_1xs_1"
+      type     : type
+      planCode : plan.code
     , (err, status)->
       if not err and status
-        userVM.unsetClass "hidden"
+        content = """<p>
+                       You already subscribed for an additional 
+                       <strong>#{type}</strong> VM.
+                     </p>
+                     <p>
+                       You <strong>won't</strong> be charged. Do you want to 
+                       continue?.
+                     </p>
+                  """
+        buildModal content, callback
       else
-        KD.remote.api.JRecurlyPlan.getUserBalance (err, balance)->
-          if err or balance <= 0
-            userCredits.setClass "hidden"
+        getBalance type, (err, balance)->
+          if not err and balance > 0
+            charge = (plan.feeMonthly - balance) / 100
+            balance = balance / 100
+
+            content = """<p>
+                           You have $#{balance.toFixed(2)} credited to your 
+                           <strong>#{type}</strong> account.
+                         </p>
+                      """
+
+            if charge > 0
+              content += """<p>
+                              You will be charged for $#{charge.toFixed(2)}. 
+                              Do you want to continue?
+                            </p>
+                         """
+            else
+              content += """<p>
+                              You <strong>won't</strong> be charged. Do you 
+                              want to continue?
+                            </p>
+                         """
           else
-            userCredits.$('p span.price').text (balance / 100).toFixed(2)
-            userCredits.unsetClass "hidden"
-
-    # Show group account balance, if necessary
-    {groupCredits, groupVM} = form.fields
-    groupCredits.setClass "hidden"
-    groupVM.setClass "hidden"
-
-    group.canCreateVM
-      type    : "group"
-      planCode: "group_vm_1xs_1"
-    , (err, status)->
-      if not err and status
-        groupVM.unsetClass "hidden"
-      else
-        KD.remote.api.JRecurlyPlan.getGroupBalance group, (err, balance)->
-          if err or balance <= 0
-            groupCredits.setClass "hidden"
-          else
-            groupCredits.$('p span.price').text (balance / 100).toFixed(2)
-            groupCredits.unsetClass "hidden"
+            charge = plan.feeMonthly / 100
+            content = """<p>
+                           You will be charged for $#{charge.toFixed(2)}. Do 
+                           you want to continue?
+                         </p>
+                      """
+          buildModal content, callback
 
   askForApprove:(command, callback)->
 

      modal.once 'KDModalViewDestroyed', => @dialogIsOpen = no

      form = modal.modalTabs.forms["Create VM"]

      @showPaymentNotices form

      hideLoaders = ->
        {group, user, expensed} = form.buttons

                type                :
                  name              : "type"
                  type              : "hidden"

      if canCreateSharedVM
        modal.modalTabs.forms["Create VM"].buttons.group.show()
