[cleanup] document flow
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index 85f7748..7a83c7b 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -26,10 +26,9 @@
 		this._super();
 
 		hide_fields(this.frm.doc);
-		this.frm.page.add_document_flow(cur_frm)
 		// Show / Hide button
 		this.show_general_ledger();
-		
+
 		if(doc.update_stock==1 && doc.docstatus==1) {
 			this.show_stock_ledger();
 		}
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index cdb2652..be8a846 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -24,7 +24,6 @@
 
 	refresh: function(doc, dt, dn) {
 		this._super();
-		this.frm.page.add_document_flow(this.frm)
 		if(cur_frm.msgbox && cur_frm.msgbox.$wrapper.is(":visible")) {
 			// hide new msgbox
 			cur_frm.msgbox.hide();
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js
index c1fe693..d90c0da 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.js
@@ -20,7 +20,6 @@
 		// this.frm.dashboard.reset();
 		var allow_receipt = false;
 		var is_drop_ship = false;
-		this.frm.page.add_document_flow(this.frm)
 		for (var i in cur_frm.doc.items) {
 			var item = cur_frm.doc.items[i];
 			if(item.delivered_by_supplier !== 1) {
diff --git a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
index 2550448..b3030f7 100644
--- a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -7,7 +7,6 @@
 erpnext.buying.SupplierQuotationController = erpnext.buying.BuyingController.extend({
 	refresh: function() {
 		this._super();
-		this.frm.page.add_document_flow(this.frm);
 		if (this.frm.doc.docstatus === 1) {
 			cur_frm.add_custom_button(__("Purchase Order"), this.make_purchase_order,
 				__("Make"));
diff --git a/erpnext/public/build.json b/erpnext/public/build.json
index d912b68..cf412e1 100644
--- a/erpnext/public/build.json
+++ b/erpnext/public/build.json
@@ -27,7 +27,7 @@
 		"public/js/payment/payment_details.html",
 		"public/js/templates/item_selector.html",
 		"public/js/utils/item_selector.js",
-		"public/js/module_flow.js"
+		"public/js/utils/document_flow.js"
 	],
 	"js/item-dashboard.min.js": [
 		"stock/dashboard/item_dashboard.html",
diff --git a/erpnext/public/js/module_flow.js b/erpnext/public/js/utils/document_flow.js
similarity index 92%
rename from erpnext/public/js/module_flow.js
rename to erpnext/public/js/utils/document_flow.js
index 3c07b59..31aec8e 100644
--- a/erpnext/public/js/module_flow.js
+++ b/erpnext/public/js/utils/document_flow.js
@@ -3,8 +3,8 @@
 
 // for module flow
 
-
-frappe.module_flow =  {
+frappe.provide('frappe.document_flow');
+$.extend(frappe.document_flow, {
 	"Selling": {
 		"Sales Order": ["Quotation", "Sales Order", "Delivery Note", "Sales Invoice", "Journal Entry"],
 		"Quotation": ["Quotation", "Sales Order", "Delivery Note", "Sales Invoice", "Journal Entry"]
@@ -25,4 +25,4 @@
 		"Purchase Receipt": ["Supplier Quotation", "Purchase Order", "Purchase Receipt",
 			"Purchase Invoice", "Journal Entry"]
 	}
-}
\ No newline at end of file
+});
diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index d1ca691..f61f0e9 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -16,7 +16,6 @@
 	},
 	refresh: function(doc, dt, dn) {
 		this._super(doc, dt, dn);
-		this.frm.page.add_document_flow(this.frm)
 		if(doc.docstatus == 1 && doc.status!=='Lost') {
 			cur_frm.add_custom_button(__('Make Sales Order'),
 				cur_frm.cscript['Make Sales Order']);
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index 3ffa685..ce9c958 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -22,7 +22,6 @@
 		var allow_purchase = false;
 		var allow_delivery = false;
 		
-		this.frm.page.add_document_flow(this.frm)
 		if(doc.docstatus==1) {
 			if(doc.status != 'Closed') {
 
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index 9b51cfd..c5fce7d 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -8,7 +8,6 @@
 erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend({
 	refresh: function(doc, dt, dn) {
 		this._super();
-		this.frm.page.add_document_flow(this.frm)
 		if (!doc.is_return && doc.status!="Closed") {
 			if(flt(doc.per_installed, 2) < 100 && doc.docstatus==1)
 				cur_frm.add_custom_button(__('Installation Note'), this.make_installation_note, __("Make"));
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index 6fdb847..f622b63 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -29,7 +29,7 @@
 				}
 			})
 		})
-		
+
 		frm.set_query("supplier_warehouse", function() {
 			return {
 				filters: [["Warehouse", "company", "in", ["", cstr(frm.doc.company)]]]
@@ -41,7 +41,6 @@
 erpnext.stock.PurchaseReceiptController = erpnext.buying.BuyingController.extend({
 	refresh: function() {
 		this._super();
-		this.frm.page.add_document_flow(this.frm)
 		if(this.frm.doc.docstatus===1) {
 			this.show_stock_ledger();
 			if (cint(frappe.defaults.get_default("auto_accounting_for_stock"))) {
@@ -71,9 +70,9 @@
 				if (this.frm.has_perm("submit")) {
 					cur_frm.add_custom_button(__("Close"), this.close_purchase_receipt, __("Status"))
 				}
-				
+
 				cur_frm.add_custom_button(__('Return'), this.make_purchase_return, __("Make"));
-				
+
 				if(flt(this.frm.doc.per_billed) < 100) {
 					cur_frm.add_custom_button(__('Invoice'), this.make_purchase_invoice, __("Make"));
 				}