diff --git a/build.json b/build.json
index 0836706..24e9d45 100644
--- a/build.json
+++ b/build.json
@@ -43,6 +43,7 @@
 			"lib/css/bootstrap/buttons.css",
 			"lib/css/bootstrap/navbar.css",
 			"lib/css/bootstrap/dropdown.css",
+			"lib/css/bootstrap/tooltip.css",
 			"erpnext/startup/startup.css",
 			"erpnext/website/css/website.css"	
 		]
@@ -67,6 +68,7 @@
 			"lib/css/bootstrap/buttons.css",
 			"lib/css/bootstrap/navbar.css",
 			"lib/css/bootstrap/dropdown.css",
+			"lib/css/bootstrap/tooltip.css",
 			"erpnext/startup/startup.css"							
 		]
 	},
diff --git a/css/all-app.css b/css/all-app.css
index 3397f52..a6dcdb7 100644
--- a/css/all-app.css
+++ b/css/all-app.css
@@ -65,8 +65,30 @@
   border-bottom: 1px solid #ffffff;
 }
 
+/* links */
+
 a:active { outline:none; }
 
+a {
+  color: #0088cc;
+  text-decoration: none;
+}
+a:hover {
+  color: #005580;
+  text-decoration: underline;
+}
+
+.link_type {
+	padding:2px;
+	color: #0088cc;
+	cursor: pointer;
+}
+
+.link_type:hover {
+	color: #005580;
+	text-decoration: underline;
+}
+
 :focus { -moz-outline-style:none; }
 
 table.simpletable { border-collapse: collapse; margin-bottom: 10px;}
@@ -107,19 +129,6 @@
 
 #head_banner { background-color: #FFF; }
 
-.link_type {
-	padding:2px;
-	color: #00b;
-	text-decoration: underline;
-	cursor: pointer;
-}
-
-.link_type:hover {
-	color: #fff !important; 
-	background-color: #07b;
-	text-decoration: none;
-}
-
 div.std-footer {
 	margin: 13px 0px;
 	border-top: 1px solid #AAA;
@@ -1590,7 +1599,7 @@
 	margin-bottom: 7px;
 }
 
-div.psidebar .section-link {
+div.psidebar div.section-item, div.psidebar .section-link {
 	font-size: 11px;
 	color: #666;
 }
@@ -2618,6 +2627,174 @@
   display: block;
 }
 /*
+ *	lib/css/bootstrap/tooltip.css
+ */.tooltip {
+  position: absolute;
+  z-index: 1020;
+  display: block;
+  visibility: visible;
+  padding: 5px;
+  font-size: 11px;
+  opacity: 0;
+  filter: alpha(opacity=0);
+}
+.tooltip.in {
+  opacity: 0.8;
+  filter: alpha(opacity=80);
+}
+.tooltip.top {
+  margin-top: -2px;
+}
+.tooltip.right {
+  margin-left: 2px;
+}
+.tooltip.bottom {
+  margin-top: 2px;
+}
+.tooltip.left {
+  margin-left: -2px;
+}
+.tooltip.top .tooltip-arrow {
+  bottom: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-top: 5px solid #000000;
+}
+.tooltip.left .tooltip-arrow {
+  top: 50%;
+  right: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-left: 5px solid #000000;
+}
+.tooltip.bottom .tooltip-arrow {
+  top: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-bottom: 5px solid #000000;
+}
+.tooltip.right .tooltip-arrow {
+  top: 50%;
+  left: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-right: 5px solid #000000;
+}
+.tooltip-inner {
+  max-width: 200px;
+  padding: 3px 8px;
+  color: #ffffff;
+  text-align: center;
+  text-decoration: none;
+  background-color: #000000;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.tooltip-arrow {
+  position: absolute;
+  width: 0;
+  height: 0;
+}
+.popover {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 1010;
+  display: none;
+  padding: 5px;
+}
+.popover.top {
+  margin-top: -5px;
+}
+.popover.right {
+  margin-left: 5px;
+}
+.popover.bottom {
+  margin-top: 5px;
+}
+.popover.left {
+  margin-left: -5px;
+}
+.popover.top .arrow {
+  bottom: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-top: 5px solid #000000;
+}
+.popover.right .arrow {
+  top: 50%;
+  left: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-right: 5px solid #000000;
+}
+.popover.bottom .arrow {
+  top: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-bottom: 5px solid #000000;
+}
+.popover.left .arrow {
+  top: 50%;
+  right: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-left: 5px solid #000000;
+}
+.popover .arrow {
+  position: absolute;
+  width: 0;
+  height: 0;
+}
+.popover-inner {
+  padding: 3px;
+  width: 280px;
+  overflow: hidden;
+  background: #000000;
+  background: rgba(0, 0, 0, 0.8);
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+}
+.popover-title {
+  padding: 9px 15px;
+  line-height: 1;
+  background-color: #f5f5f5;
+  border-bottom: 1px solid #eee;
+  -webkit-border-radius: 3px 3px 0 0;
+  -moz-border-radius: 3px 3px 0 0;
+  border-radius: 3px 3px 0 0;
+}
+.popover-content {
+  padding: 14px;
+  background-color: #ffffff;
+  -webkit-border-radius: 0 0 3px 3px;
+  -moz-border-radius: 0 0 3px 3px;
+  border-radius: 0 0 3px 3px;
+  -webkit-background-clip: padding-box;
+  -moz-background-clip: padding-box;
+  background-clip: padding-box;
+}
+.popover-content p, .popover-content ul, .popover-content ol {
+  margin-bottom: 0;
+}
+/*
  *	erpnext/startup/startup.css
  */h1, h2, h3, h4, h5 {
 	font-family: Tahoma, Arial, Verdana, sans-serif;
diff --git a/css/all-web.css b/css/all-web.css
index 8abd1aa..1e15489 100644
--- a/css/all-web.css
+++ b/css/all-web.css
@@ -65,8 +65,30 @@
   border-bottom: 1px solid #ffffff;
 }
 
+/* links */
+
 a:active { outline:none; }
 
+a {
+  color: #0088cc;
+  text-decoration: none;
+}
+a:hover {
+  color: #005580;
+  text-decoration: underline;
+}
+
+.link_type {
+	padding:2px;
+	color: #0088cc;
+	cursor: pointer;
+}
+
+.link_type:hover {
+	color: #005580;
+	text-decoration: underline;
+}
+
 :focus { -moz-outline-style:none; }
 
 table.simpletable { border-collapse: collapse; margin-bottom: 10px;}
@@ -107,19 +129,6 @@
 
 #head_banner { background-color: #FFF; }
 
-.link_type {
-	padding:2px;
-	color: #00b;
-	text-decoration: underline;
-	cursor: pointer;
-}
-
-.link_type:hover {
-	color: #fff !important; 
-	background-color: #07b;
-	text-decoration: none;
-}
-
 div.std-footer {
 	margin: 13px 0px;
 	border-top: 1px solid #AAA;
@@ -1417,6 +1426,174 @@
   display: block;
 }
 /*
+ *	lib/css/bootstrap/tooltip.css
+ */.tooltip {
+  position: absolute;
+  z-index: 1020;
+  display: block;
+  visibility: visible;
+  padding: 5px;
+  font-size: 11px;
+  opacity: 0;
+  filter: alpha(opacity=0);
+}
+.tooltip.in {
+  opacity: 0.8;
+  filter: alpha(opacity=80);
+}
+.tooltip.top {
+  margin-top: -2px;
+}
+.tooltip.right {
+  margin-left: 2px;
+}
+.tooltip.bottom {
+  margin-top: 2px;
+}
+.tooltip.left {
+  margin-left: -2px;
+}
+.tooltip.top .tooltip-arrow {
+  bottom: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-top: 5px solid #000000;
+}
+.tooltip.left .tooltip-arrow {
+  top: 50%;
+  right: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-left: 5px solid #000000;
+}
+.tooltip.bottom .tooltip-arrow {
+  top: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-bottom: 5px solid #000000;
+}
+.tooltip.right .tooltip-arrow {
+  top: 50%;
+  left: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-right: 5px solid #000000;
+}
+.tooltip-inner {
+  max-width: 200px;
+  padding: 3px 8px;
+  color: #ffffff;
+  text-align: center;
+  text-decoration: none;
+  background-color: #000000;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.tooltip-arrow {
+  position: absolute;
+  width: 0;
+  height: 0;
+}
+.popover {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 1010;
+  display: none;
+  padding: 5px;
+}
+.popover.top {
+  margin-top: -5px;
+}
+.popover.right {
+  margin-left: 5px;
+}
+.popover.bottom {
+  margin-top: 5px;
+}
+.popover.left {
+  margin-left: -5px;
+}
+.popover.top .arrow {
+  bottom: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-top: 5px solid #000000;
+}
+.popover.right .arrow {
+  top: 50%;
+  left: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-right: 5px solid #000000;
+}
+.popover.bottom .arrow {
+  top: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-bottom: 5px solid #000000;
+}
+.popover.left .arrow {
+  top: 50%;
+  right: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-left: 5px solid #000000;
+}
+.popover .arrow {
+  position: absolute;
+  width: 0;
+  height: 0;
+}
+.popover-inner {
+  padding: 3px;
+  width: 280px;
+  overflow: hidden;
+  background: #000000;
+  background: rgba(0, 0, 0, 0.8);
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+}
+.popover-title {
+  padding: 9px 15px;
+  line-height: 1;
+  background-color: #f5f5f5;
+  border-bottom: 1px solid #eee;
+  -webkit-border-radius: 3px 3px 0 0;
+  -moz-border-radius: 3px 3px 0 0;
+  border-radius: 3px 3px 0 0;
+}
+.popover-content {
+  padding: 14px;
+  background-color: #ffffff;
+  -webkit-border-radius: 0 0 3px 3px;
+  -moz-border-radius: 0 0 3px 3px;
+  border-radius: 0 0 3px 3px;
+  -webkit-background-clip: padding-box;
+  -moz-background-clip: padding-box;
+  background-clip: padding-box;
+}
+.popover-content p, .popover-content ul, .popover-content ol {
+  margin-bottom: 0;
+}
+/*
  *	erpnext/startup/startup.css
  */h1, h2, h3, h4, h5 {
 	font-family: Tahoma, Arial, Verdana, sans-serif;
diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.js b/erpnext/accounts/page/accounts_browser/accounts_browser.js
index 13416e6..2f20a61 100644
--- a/erpnext/accounts/page/accounts_browser/accounts_browser.js
+++ b/erpnext/accounts/page/accounts_browser/accounts_browser.js
@@ -1,11 +1,19 @@
 pscript['onload_Accounts Browser'] = function(){
 	wn.require('lib/js/legacy/widgets/tree.js');
-  // if the user directly loads the page, ask to select the chart
-  var parent = $i('ab_body');
-  parent.innerHTML = 'Please select your chart: '
-  var sel = $a(parent,'select');
-  add_sel_options(sel, ['Account', 'Cost Center'], 'Account');
-  var btn = $btn(parent, 'Go', function() { pscript.make_chart(sel_val(sel)); }, {marginTop:'8px'});
+
+	var route = location.hash;
+	if(route.indexOf('/')!=-1) {
+		var chart_type = route.split('/')[1];
+		pscript.make_chart(chart_type);
+		return;
+	}
+	
+	// if the user directly loads the page, ask to select the chart
+	var parent = $i('ab_body');
+	parent.innerHTML = 'Please select your chart: '
+	var sel = $a(parent,'select');
+	add_sel_options(sel, ['Account', 'Cost Center'], 'Account');
+	var btn = $btn(parent, 'Go', function() { pscript.make_chart(sel_val(sel)); }, {marginTop:'8px'});
 }
 
 pscript.make_chart = function(b) {
diff --git a/erpnext/accounts/page/accounts_home/__init__.py b/erpnext/accounts/page/accounts_home/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/accounts/page/accounts_home/__init__.py
diff --git a/erpnext/accounts/page/accounts_home/accounts_home.html b/erpnext/accounts/page/accounts_home/accounts_home.html
new file mode 100644
index 0000000..e5c8a2e
--- /dev/null
+++ b/erpnext/accounts/page/accounts_home/accounts_home.html
@@ -0,0 +1,126 @@
+<div class="layout-wrapper layout-wrapper-background" id="page-selling-home">
+	<div class="layout-main-section">
+		<h1>Accounts</h1>
+		<hr>
+		<div style="width: 48%; float: left;">
+			<h4><a href="#!List/Journal Voucher">Journal Voucher</a></h4>
+			<p class="help">General Ledger Entries</p>
+			<h4><a href="#!List/Sales Invoice">Sales Invoice</a></h4>
+			<p class="help">Bills raised to Customers</p>
+			<h4><a href="#!List/Purchase Invoice">Purchase Invoice</a></h4>
+			<p class="help">Bills raised by Suppliers</p>
+		</div>
+		<div style="width: 48%; float: right;">
+			<h4><a href="#!Accounts Browser/Account">Chart of Accounts</a></h4>
+			<p class="help">Structure of books of accounts</p>
+			<h4><a href="#!Accounts Browser/Cost Center">Chart of Cost Centers</a></h4>
+			<p class="help">Structure cost centers</p>
+		</div>
+		<div style="clear: both"></div>
+		<hr>
+		<h3>Reports</h3>
+		<div class="reports-list"></div>
+	</div>
+	<div class="layout-side-section">
+		<div class="psidebar">
+			<div class="section">
+				<div class="section-head">Tools</div>
+				<div class="section-body">
+					<div class="section-item">
+						<a class="section-link" 
+							title="Update system bank entries (JV) with actual bank trasaction"
+							href="#!Form/Bank Reconciliation/Bank Reconciliation">Bank Reconciliation</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title="Cancel off untracked Payments (JV) against Invoices"
+							href="#!Form/Internal Reconciliation/Internal Reconciliation">Payment Reconciliation</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title="Clear your P/L account and balance your Balance Sheets"
+							href="#!List/Period Closing Voucher">Close Period Entry</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title="Export multiple Account Ledgers (GL) to spreadsheet (csv)"
+							href="#!Form/Ledger Balance Export/Ledger Balance Export">Export Multiple Ledgers (GL)</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title="Lease Agreements"
+							href="#!List/Lease Agreement">Lease Agreements</a>
+					</div>
+				</div>
+			</div>
+
+			<div class="section">
+				<div class="section-head">Setup</div>
+				<div class="section-body">
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Tax and charges structure master on sales transactions"
+							href="#!List/Other Charges">Sales Other Charges</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Tax and charges structure master on purchase transactions"
+							href="#!List/Purchase Other Charges">Purchase Other Charges</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Defaults for Point of Sale (Retail) type of Invoices"
+							href="#!List/POS Setting">Point of Sale (PoS) Setting</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Seasonal distributions for budgets"
+							href="#!List/Budget Distribution">Budget Distribution</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Mode of Payment master"
+							href="#!List/Mode of Payment">Mode of Payment</a>
+					</div>
+				</div>
+			</div>
+
+			<div class="section india-specific">
+				<div class="section-head">Tax Deduction (India)</div>
+				<div class="section-body">
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Tax Deduction at Source (TDS) payments to be made to the goverment"
+							href="#!List/TDS Payment">TDS Payments</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Update with acknowledgement recd from the government"
+							href="#!List/TDS Return Acknowledgement">TDS Return Acknowledgement</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Tax deduction (TDS) categories"
+							href="#!List/TDS Category">TDS Category</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Tax deduction (TDS) rates for different periods"
+							href="#!List/TDS Rate Chart">TDS Rate Chart</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Challan given to employees/suppliers whose tax (TDS) has been deducted"
+							href="#!List/Form 16A">Form 16A</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "C-Forms received from customers"
+							href="#!List/C-Form">C-Form</a>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div style="clear: both;"></div>
+</div>
\ No newline at end of file
diff --git a/erpnext/accounts/page/accounts_home/accounts_home.js b/erpnext/accounts/page/accounts_home/accounts_home.js
new file mode 100644
index 0000000..615a18e
--- /dev/null
+++ b/erpnext/accounts/page/accounts_home/accounts_home.js
@@ -0,0 +1,6 @@
+pscript['onload_accounts-home'] = function(wrapper) {
+	erpnext.module_page.setup_page('Accounts', wrapper);
+	if(wn.control_panel.country!='India') {
+		$('.india-specific').toggle(false);
+	}
+}
\ No newline at end of file
diff --git a/erpnext/accounts/page/accounts_home/accounts_home.txt b/erpnext/accounts/page/accounts_home/accounts_home.txt
new file mode 100644
index 0000000..5cbceff
--- /dev/null
+++ b/erpnext/accounts/page/accounts_home/accounts_home.txt
@@ -0,0 +1,28 @@
+# Page, accounts-home
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-02-21 13:23:08',
+		'docstatus': 0,
+		'modified': '2012-02-21 13:23:08',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Page
+	{
+		'doctype': 'Page',
+		'module': u'Accounts',
+		'name': '__common__',
+		'page_name': u'accounts-home',
+		'standard': u'Yes',
+		'title': u'Accounts Home'
+	},
+
+	# Page, accounts-home
+	{
+		'doctype': 'Page',
+		'name': u'accounts-home'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/buying/page/buying_home/__init__.py b/erpnext/buying/page/buying_home/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/buying/page/buying_home/__init__.py
diff --git a/erpnext/buying/page/buying_home/buying_home.txt b/erpnext/buying/page/buying_home/buying_home.txt
new file mode 100644
index 0000000..d2d2acc
--- /dev/null
+++ b/erpnext/buying/page/buying_home/buying_home.txt
@@ -0,0 +1,28 @@
+# Page, buying-home
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-02-21 13:22:54',
+		'docstatus': 0,
+		'modified': '2012-02-21 13:22:54',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Page
+	{
+		'doctype': 'Page',
+		'module': u'Buying',
+		'name': '__common__',
+		'page_name': u'buying-home',
+		'standard': u'Yes',
+		'title': u'Buying Home'
+	},
+
+	# Page, buying-home
+	{
+		'doctype': 'Page',
+		'name': u'buying-home'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/page/hr_home/__init__.py b/erpnext/hr/page/hr_home/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/hr/page/hr_home/__init__.py
diff --git a/erpnext/hr/page/hr_home/hr_home.txt b/erpnext/hr/page/hr_home/hr_home.txt
new file mode 100644
index 0000000..a5a4ba9
--- /dev/null
+++ b/erpnext/hr/page/hr_home/hr_home.txt
@@ -0,0 +1,28 @@
+# Page, hr-home
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-02-21 13:24:05',
+		'docstatus': 0,
+		'modified': '2012-02-21 13:24:05',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Page
+	{
+		'doctype': 'Page',
+		'module': u'HR',
+		'name': '__common__',
+		'page_name': u'hr-home',
+		'standard': u'Yes',
+		'title': u'Human Resources Home'
+	},
+
+	# Page, hr-home
+	{
+		'doctype': 'Page',
+		'name': u'hr-home'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/production/page/production_home/__init__.py b/erpnext/production/page/production_home/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/production/page/production_home/__init__.py
diff --git a/erpnext/production/page/production_home/production_home.txt b/erpnext/production/page/production_home/production_home.txt
new file mode 100644
index 0000000..4f6cabb
--- /dev/null
+++ b/erpnext/production/page/production_home/production_home.txt
@@ -0,0 +1,28 @@
+# Page, production-home
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-02-21 13:24:34',
+		'docstatus': 0,
+		'modified': '2012-02-21 13:24:34',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Page
+	{
+		'doctype': 'Page',
+		'module': u'Production',
+		'name': '__common__',
+		'page_name': u'production-home',
+		'standard': u'Yes',
+		'title': u'Production Home'
+	},
+
+	# Page, production-home
+	{
+		'doctype': 'Page',
+		'name': u'production-home'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/projects/page/projects_home/__init__.py b/erpnext/projects/page/projects_home/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/projects/page/projects_home/__init__.py
diff --git a/erpnext/projects/page/projects_home/projects_home.txt b/erpnext/projects/page/projects_home/projects_home.txt
new file mode 100644
index 0000000..665ac99
--- /dev/null
+++ b/erpnext/projects/page/projects_home/projects_home.txt
@@ -0,0 +1,28 @@
+# Page, projects-home
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-02-21 13:24:22',
+		'docstatus': 0,
+		'modified': '2012-02-21 13:24:22',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Page
+	{
+		'doctype': 'Page',
+		'module': u'Projects',
+		'name': '__common__',
+		'page_name': u'projects-home',
+		'standard': u'Yes',
+		'title': u'Projects Home'
+	},
+
+	# Page, projects-home
+	{
+		'doctype': 'Page',
+		'name': u'projects-home'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/selling/page/sales_browser/sales_browser.js b/erpnext/selling/page/sales_browser/sales_browser.js
index c7e400e..b7fc422 100644
--- a/erpnext/selling/page/sales_browser/sales_browser.js
+++ b/erpnext/selling/page/sales_browser/sales_browser.js
@@ -1,5 +1,13 @@
 pscript['onload_Sales Browser'] = function(){
   wn.require('lib/js/legacy/widgets/tree.js');
+
+	var route = location.hash;
+	if(route.indexOf('/')!=-1) {
+		var chart_type = route.split('/')[1];
+		new SalesBrowser().set_val(chart_type)
+		return;
+	}
+
   var parent = $i('tr_body');
   parent.innerHTML = 'Please select your chart: '
   var sel = $a(parent,'select');
diff --git a/erpnext/selling/page/selling_home/__init__.py b/erpnext/selling/page/selling_home/__init__.py
index 959135f..e69de29 100644
--- a/erpnext/selling/page/selling_home/__init__.py
+++ b/erpnext/selling/page/selling_home/__init__.py
@@ -1,12 +0,0 @@
-import webnotes
-
-@webnotes.whitelist()
-def get_report_list(arg=None):
-	"""return list of reports for this module"""	
-	webnotes.response['values'] = webnotes.conn.sql("""select 
-		distinct criteria_name, doc_type, parent_doc_type
-		from `tabSearch Criteria` 
-		where module='Selling' 
-		and docstatus in (0, NULL) 
-		order by criteria_name 
-		limit %(limit_start)s, %(limit_page_length)s""" % webnotes.form_dict, as_dict=True)
\ No newline at end of file
diff --git a/erpnext/selling/page/selling_home/selling_home.html b/erpnext/selling/page/selling_home/selling_home.html
index 5c7f1b1..2d421b5 100644
--- a/erpnext/selling/page/selling_home/selling_home.html
+++ b/erpnext/selling/page/selling_home/selling_home.html
@@ -29,27 +29,46 @@
 				<div class="section-head">Setup</div>
 				<div class="section-body">
 					<div class="section-item">
-						<a class="section-link" href="#!List/Price List">Price List</a>
+						<a class="section-link" 
+							title = "Tax and charges structure master"
+							href="#!List/Other Charges">Sales Other Charges</a>
 					</div>
 					<div class="section-item">
-						<a class="section-link" href="#!List/Sales BOM">Sales BOM</a>
+						<a class="section-link" 
+							title = "Multiple prices lists for items"
+							href="#!List/Price List">Price List</a>
 					</div>
 					<div class="section-item">
-						<a class="section-link" href="#!List/Customer Group">Customer Group</a>
+						<a class="section-link" 
+							title = "Group items and accessories in one item code"
+							href="#!List/Sales BOM">Sales BOM</a>
 					</div>
 					<div class="section-item">
-						<a class="section-link" href="#!List/Territory">Territory</a>
+						<a class="section-link" 
+							title = "Tree of customer groups"
+							href="#!Sales Browser/Customer Group">Customer Group</a>
 					</div>
 					<div class="section-item">
-						<a class="section-link" href="#!List/Sales Person">Sales Person</a>
+						<a class="section-link" 
+							title = "Tree of sales territories"
+							href="#!Sales Browser/Territory">Territory</a>
 					</div>
 					<div class="section-item">
-						<a class="section-link" href="#!List/Sales Partner">Sales Partner</a>
+						<a class="section-link" 
+							title = "Sales persons and targets"
+							href="#!Sales Browser/Sales Person">Sales Person</a>
 					</div>
 					<div class="section-item">
-						<a class="section-link" href="#!List/Campaign">Campaign</a>
+						<a class="section-link" 
+							title = "Commission partners and targets"
+							href="#!List/Sales Partner">Sales Partner</a>
 					</div>
-				</div>				
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Sales campaigns"
+							href="#!List/Campaign">Campaign</a>
+					</div>
+				</div>
 			</div>
 			<div class="section">
 				<div class="section-head">Tools</div>
diff --git a/erpnext/selling/page/selling_home/selling_home.js b/erpnext/selling/page/selling_home/selling_home.js
index 76fac70..46cf459 100644
--- a/erpnext/selling/page/selling_home/selling_home.js
+++ b/erpnext/selling/page/selling_home/selling_home.js
@@ -1,40 +1,3 @@
 pscript['onload_selling-home'] = function(wrapper) {
-	erpnext.module_page.hide_links(wrapper);
-	erpnext.module_page.make_list('Selling', wrapper);
-}
-
-wn.provide('erpnext.module_page');
-
-// hide list links where the user does
-// not have read permissions
-
-erpnext.module_page.hide_links = function(wrapper) {
-	$(wrapper).find('[href*="List/"]').each(function() {
-		var href = $(this).attr('href');
-		var dt = href.split('/')[1];
-		if(wn.boot.profile.can_read.indexOf(dt)==-1) {
-			$(this).toggle(false);
-		}
-	});
-}
-
-// make list of reports
-
-erpnext.module_page.make_list = function(module, wrapper) {
-	// make project listing
-	wrapper.list = new wn.widgets.Listing({
-		parent: $(wrapper).find('.reports-list').get(0),
-		method: 'selling.page.selling_home.get_report_list',
-		render_row: function(row, data) {
-			if(!data.parent_doc_type) data.parent_doc_type = data.doc_type;
-			$(row).html(repl('<a href="#!Report/%(doc_type)s/%(criteria_name)s" \
-				data-doctype="%(parent_doc_type)s">\
-				%(criteria_name)s</a>', data))
-		},
-		args: {
-			module: module
-		},
-		no_refresh: true
-	});
-	wrapper.list.run();	
+	erpnext.module_page.setup_page('Selling', wrapper);
 }
\ No newline at end of file
diff --git a/erpnext/startup/modules.js b/erpnext/startup/modules.js
index 0280c74..35de0e8 100644
--- a/erpnext/startup/modules.js
+++ b/erpnext/startup/modules.js
@@ -1,3 +1,69 @@
+wn.provide('erpnext.module_page');
+
+erpnext.module_page.setup_page = function(module, wrapper) {
+	erpnext.module_page.hide_links(wrapper);
+	erpnext.module_page.make_list(module, wrapper);
+	$(wrapper).find("a").tooltip({
+		delay: { show: 500, hide: 100 }
+	});	
+}
+
+// hide list links where the user does
+// not have read permissions
+
+erpnext.module_page.hide_links = function(wrapper) {
+	// lists
+	$(wrapper).find('[href*="List/"]').each(function() {
+		var href = $(this).attr('href');
+		var dt = href.split('/')[1];
+		if(wn.boot.profile.can_read.indexOf(get_label_doctype(dt))==-1) {
+			var txt = $(this).text();
+			$(this).parent().css('color', '#999').html(txt);
+		}
+	});
+	
+	// reports
+	$(wrapper).find('[data-doctype]').each(function() {
+		var dt = $(this).attr('data-doctype');
+		if(wn.boot.profile.can_read.indexOf(dt)==-1) {
+			var txt = $(this).text();
+			$(this).parent().css('color', '#999').html(txt);
+		}
+	});
+	
+	// single (forms)
+	$(wrapper).find('[href*="Form/"]').each(function() {
+		var href = $(this).attr('href');
+		var dt = href.split('/')[1];
+		if(wn.boot.profile.can_read.indexOf(get_label_doctype(dt))==-1) {
+			var txt = $(this).text();
+			$(this).parent().css('color', '#999').html(txt);
+		}
+	});}
+
+// make list of reports
+
+erpnext.module_page.make_list = function(module, wrapper) {
+	// make project listing
+	wrapper.list = new wn.widgets.Listing({
+		parent: $(wrapper).find('.reports-list').get(0),
+		method: 'utilities.get_report_list',
+		render_row: function(row, data) {
+			if(!data.parent_doc_type) data.parent_doc_type = data.doc_type;
+			$(row).html(repl('<a href="#!Report/%(doc_type)s/%(criteria_name)s" \
+				data-doctype="%(parent_doc_type)s">\
+				%(criteria_name)s</a>', data))
+		},
+		args: {
+			module: module
+		},
+		no_refresh: true
+	});
+	wrapper.list.run();	
+}
+
+
+
 // ====================================================================
 
 pscript.startup_make_sidebar = function() {
diff --git a/erpnext/startup/modules_new.js b/erpnext/startup/modules_new.js
deleted file mode 100644
index 5f912b0..0000000
--- a/erpnext/startup/modules_new.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Tools Page
-erpnext.ListPage = Class.extend({
-	init: function(opts) {
-		var me = this;
-		this.opts = opts;
-		this.page = page_body.add_page[opts.title];
-		this.page.wrapper = $a(this.page, 'div', 'layout_wrapper');
-		this.page.head = new PageHeading(this.wrapper, this.title)
-		this.page.list = new wn.widgets.Listing({
-			parent: this.page.wrapper,
-			query: opts.query,
-			render:row: opts.render_row
-		});
-	},
-	show: function() {
-		if(this.first) {
-			this.page.list.run();
-			this.first = false;
-		}
-		page_body.change_to(this.opts.title);
-	}
-});
-
-erpnext.ToolsPage = erpnext.ListPage.extend({
-	init: function(opts) {
-		this._super({
-			title: opts.module + ' Settings',
-			query: repl('select name, description from tabDocType where \
-				module=%(module)s and ifnull(issingle,0)=1 order by name asc', opts),
-			render_row: function(parent, data) {
-				parent.innerHTML = repl('<a href="#!Form/%(name)s/%(name)s">%(name)s</a>\
-					<div class="comment">%(description)s</div>', data)
-			}
-		})
-	}
-});
\ No newline at end of file
diff --git a/erpnext/startup/startup.js b/erpnext/startup/startup.js
index c68650a..a456500 100644
--- a/erpnext/startup/startup.js
+++ b/erpnext/startup/startup.js
@@ -111,5 +111,5 @@
 
 // start
 $(document).bind('startup', function() {
-	erpnext.startup.start();	
+	erpnext.startup.start();
 });
diff --git a/erpnext/startup/toolbar.js b/erpnext/startup/toolbar.js
index d5c5d97..1c8735c 100644
--- a/erpnext/startup/toolbar.js
+++ b/erpnext/startup/toolbar.js
@@ -2,11 +2,15 @@
 wn.provide('erpnext.toolbar');
 
 erpnext.toolbar.setup = function() {
+	// modules 
+	erpnext.toolbar.add_modules();
+	
 	// profile
 	$('#toolbar-user').append('<li><a href="#profile-settings">Profile Settings</a></li>');
 	
 	$('#toolbar-user').append('<li><a href="#My Company">Team / Messages</a></li>');
 
+
 	$('.navbar .pull-right').prepend('\
 		<li><a href="#" id="toolbar-new-comments"></a></li>');
 
@@ -52,3 +56,24 @@
 	page_body.wntoolbar.set_new_comments();
 }
 
+erpnext.toolbar.add_modules = function() {
+	$('<li class="dropdown">\
+		<a class="dropdown-toggle" data-toggle="dropdown" href="#"\
+			onclick="return false;">Modules<b class="caret"></b></a>\
+		<ul class="dropdown-menu">\
+			<li><a href="#!accounts-home" data-module="Accounts">Accounts</a></li>\
+			<li><a href="#!selling-home" data-module="Selling">Selling</a></li>\
+			<li><a href="#!stock-home" data-module="Stock">Stock</a></li>\
+			<li><a href="#!buying-home" data-module="Buying">Buying</a></li>\
+			<li><a href="#!support-home" data-module="Support">Support</a></li>\
+			<li><a href="#!hr-home" data-module="HR">Human Resources</a></li>\
+			<li><a href="#!projects-home" data-module="Projects">Projects</a></li>\
+			<li><a href="#!production-home" data-module="Production">Production</a></li>\
+			<li><a href="#!website-home" data-module="Website">Website</a></li>\
+			<li class="divider"></li>\
+			<li><a href="#!Setup" data-module="Setup">Setup</a></li>\
+		</ul>\
+		</li>').insertAfter('li[data-name="navbar-home"]');
+	$('.navbar .nav:first')	
+}
+
diff --git a/erpnext/stock/page/stock_home/__init__.py b/erpnext/stock/page/stock_home/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/stock/page/stock_home/__init__.py
diff --git a/erpnext/stock/page/stock_home/stock_home.html b/erpnext/stock/page/stock_home/stock_home.html
new file mode 100644
index 0000000..e1f7817
--- /dev/null
+++ b/erpnext/stock/page/stock_home/stock_home.html
@@ -0,0 +1,89 @@
+<div class="layout-wrapper layout-wrapper-background" id="page-selling-home">
+	<div class="layout-main-section">
+		<h1>Stock</h1>
+		<hr>
+		<div style="width: 48%; float: left;">
+			<h4><a href="#!List/Stock Entry">Stock Entry</a></h4>
+			<p class="help">Transfer stock from one warehouse to another</p>
+			<h4><a href="#!List/Delivery Note">Delivery Note</a></h4>
+			<p class="help">Delivery (shipment) to customers</p>
+			<h4><a href="#!List/Purchase Receipt">Purchase Receipt</a></h4>
+			<p class="help">Goods received from Suppliers</p>
+		</div>
+		<div style="width: 48%; float: right;">
+			<h4><a href="#!List/Item">Item</a></h4>
+			<p class="help">Item Master</p>
+			<h4><a href="#!List/Serial No">Serial No</a></h4>
+			<p class="help">Single unit of an Item</p>
+			<h4><a href="#!List/Batch">Batch</a></h4>
+			<p class="help">Batch of units of an Item</p>
+			<h4><a href="#!List/Item">Warehouse</a></h4>
+			<p class="help">Warehouse is where items are stored</p>
+		</div>
+		<div style="clear: both"></div>
+		<hr>
+		<h3>Reports</h3>
+		<div class="reports-list"></div>
+	</div>
+	<div class="layout-side-section">
+		<div class="psidebar">
+			<div class="section">
+				<div class="section-head">Tools</div>
+				<div class="section-body">
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Update stock by uploading a spreadsheet (csv) file"
+							href="#!List/Stock Reconciliation">Stock Reconciliation</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Details of item installations"
+							href="#!List/Installation Note">Installation Note</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Readings of incoming quality inspections"
+							href="#!List/List/QA Inspection Report">Incoming Inspection</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "List of expense heads (Account) that will be distributed across incoming purchases (costs that you find out some time after you receive goods, like Custom Duty, but are a part of item valuation)"
+							href="#!List/Landed Cost Master">Landed Cost Master</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Distribute costs on Purchase Receipts and add them to item value"
+							href="#!List/Landed Cost Wizard">Landed Cost Wizard</a>
+					</div>
+
+				</div>
+			</div>
+			<div class="section">
+				<div class="section-head">Setup</div>
+				<div class="section-body">
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Tree of item classification"
+							href="#!Sales Browser/Item Group">Item Group</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Unit of Measure (UOM) master"
+							href="#!List/UOM">Unit of Measure (UOM)</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "List of Item Brands (optional)"
+							href="#!List/Brand">Brand</a>
+					</div>
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Types of warehouses"
+							href="#!List/Warehouse Type">Warehouse Type</a>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div style="clear: both;"></div>
+</div>
\ No newline at end of file
diff --git a/erpnext/stock/page/stock_home/stock_home.js b/erpnext/stock/page/stock_home/stock_home.js
new file mode 100644
index 0000000..ead208f
--- /dev/null
+++ b/erpnext/stock/page/stock_home/stock_home.js
@@ -0,0 +1,3 @@
+pscript['onload_stock-home'] = function(wrapper) {
+	erpnext.module_page.setup_page('Stock', wrapper);
+}
\ No newline at end of file
diff --git a/erpnext/stock/page/stock_home/stock_home.txt b/erpnext/stock/page/stock_home/stock_home.txt
new file mode 100644
index 0000000..f3e7cda
--- /dev/null
+++ b/erpnext/stock/page/stock_home/stock_home.txt
@@ -0,0 +1,28 @@
+# Page, stock-home
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-02-21 13:23:22',
+		'docstatus': 0,
+		'modified': '2012-02-21 13:23:22',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Page
+	{
+		'doctype': 'Page',
+		'module': u'Stock',
+		'name': '__common__',
+		'page_name': u'stock-home',
+		'standard': u'Yes',
+		'title': u'Stock Home'
+	},
+
+	# Page, stock-home
+	{
+		'doctype': 'Page',
+		'name': u'stock-home'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/support/page/__init__.py b/erpnext/support/page/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/support/page/__init__.py
diff --git a/erpnext/support/page/support_home/__init__.py b/erpnext/support/page/support_home/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/support/page/support_home/__init__.py
diff --git a/erpnext/support/page/support_home/support_home.txt b/erpnext/support/page/support_home/support_home.txt
new file mode 100644
index 0000000..a462abd
--- /dev/null
+++ b/erpnext/support/page/support_home/support_home.txt
@@ -0,0 +1,28 @@
+# Page, support-home
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-02-21 13:23:35',
+		'docstatus': 0,
+		'modified': '2012-02-21 13:23:35',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Page
+	{
+		'doctype': 'Page',
+		'module': u'Support',
+		'name': '__common__',
+		'page_name': u'support-home',
+		'standard': u'Yes',
+		'title': u'Support Home'
+	},
+
+	# Page, support-home
+	{
+		'doctype': 'Page',
+		'name': u'support-home'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/utilities/__init__.py b/erpnext/utilities/__init__.py
index e69de29..99f3085 100644
--- a/erpnext/utilities/__init__.py
+++ b/erpnext/utilities/__init__.py
@@ -0,0 +1,12 @@
+import webnotes
+
+@webnotes.whitelist()
+def get_report_list(arg=None):
+	"""return list of reports for the given module module"""	
+	webnotes.response['values'] = webnotes.conn.sql("""select 
+		distinct criteria_name, doc_type, parent_doc_type
+		from `tabSearch Criteria` 
+		where module='%(module)s' 
+		and docstatus in (0, NULL) 
+		order by criteria_name 
+		limit %(limit_start)s, %(limit_page_length)s""" % webnotes.form_dict, as_dict=True)
\ No newline at end of file
diff --git a/erpnext/website/js/topbar.js b/erpnext/website/js/topbar.js
index 0db3753..247614b 100644
--- a/erpnext/website/js/topbar.js
+++ b/erpnext/website/js/topbar.js
@@ -14,7 +14,7 @@
 		$('.brand').html(wn.boot.website_settings.brand_html);
 		this.make_items();
 		$('.dropdown-toggle').dropdown();
-pull-right	},
+	},
 	make: function() {
 		$('header').append('<div class="navbar navbar-fixed-top">\
 			<div class="navbar-inner">\
@@ -54,7 +54,11 @@
 					$parent_li.addClass('dropdown');
 					$parent_li.find('a:first').addClass('dropdown-toggle')
 						.attr('data-toggle', 'dropdown')
-						.append('<b class="caret"></b>');
+						.attr('href', '')
+						.append('<b class="caret"></b>')
+						.click(function() {
+							return false;
+						});
 					$parent_li.append('<ul class="dropdown-menu"></ul>');
 				}
 				item.route = item.url || item.custom_page;
@@ -79,6 +83,7 @@
 		this.make_items();
 	},
 	make_items: function() {
+		alert(16);
 		var items = wn.boot.website_menus
 		for(var i=0;i<items.length;i++) {
 			var item = items[i];
diff --git a/erpnext/website/page/website_home/__init__.py b/erpnext/website/page/website_home/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/website/page/website_home/__init__.py
diff --git a/erpnext/website/page/website_home/website_home.txt b/erpnext/website/page/website_home/website_home.txt
new file mode 100644
index 0000000..a9af308
--- /dev/null
+++ b/erpnext/website/page/website_home/website_home.txt
@@ -0,0 +1,28 @@
+# Page, website-home
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-02-21 13:23:51',
+		'docstatus': 0,
+		'modified': '2012-02-21 13:23:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Page
+	{
+		'doctype': 'Page',
+		'module': u'Website',
+		'name': '__common__',
+		'page_name': u'website-home',
+		'standard': u'Yes',
+		'title': u'Website Home'
+	},
+
+	# Page, website-home
+	{
+		'doctype': 'Page',
+		'name': u'website-home'
+	}
+]
\ No newline at end of file
diff --git a/js/all-app.js b/js/all-app.js
index c24248d..ab94eee 100644
--- a/js/all-app.js
+++ b/js/all-app.js
Binary files differ
diff --git a/js/all-web.js b/js/all-web.js
index 614f0d0..d820dca 100644
--- a/js/all-web.js
+++ b/js/all-web.js
@@ -800,7 +800,8 @@
 /*
  *	lib/js/legacy/webpage/error_console.js
  */
-var err_console;var err_list=[];function errprint(t){err_list[err_list.length]=('<pre style="font-family: Courier, Fixed; font-size: 11px; border-bottom: 1px solid #AAA; overflow: auto; width: 90%;">'+t+'</pre>');}
+var err_console;var err_list=[];function errprint(t){if(!err_list)err_list=[];err_list.push('<pre style="font-family: Courier, Fixed; font-size: 11px; \
+  border-bottom: 1px solid #AAA; overflow: auto; width: 90%;">'+t+'</pre>');}
 function setup_err_console(){err_console=new Dialog(640,480,'Error Console')
 err_console.make_body([['HTML','Error List'],['Button','Clear'],['HTML','Error Report']]);var span=$a(err_console.widgets['Error Report'],'span','link_type');span.innerHTML='Send Error Report';span.onclick=function(){msg=prompt('How / where did you get the error [optional]')
 var call_back=function(r,rt){err_console.hide();msgprint("Error Report Sent")}
@@ -988,7 +989,8 @@
 this.run_startup_code=function(){$(document).trigger('startup');try{if(this.cp.custom_startup_code)
 eval(this.cp.custom_startup_code);}catch(e){errprint(e);}}
 this.setup=function(){this.cp=wn.control_panel;this.wrapper=$a($i('body_div'),'div');this.body=$a(this.wrapper,'div');this.setup_page_areas();if(user=='Guest')user_defaults.hide_webnotes_toolbar=1;if(!cint(user_defaults.hide_webnotes_toolbar)||user=='Administrator'){this.wntoolbar=new wn.ui.toolbar.Toolbar();}
-if(this.cp.page_width)$y(this.wrapper,{width:cint(this.cp.page_width)+'px'});}
+if(this.cp.page_width)
+$y(this.wrapper,{width:cint(this.cp.page_width)+'px'});}
 this.pages={};this.cur_page=null;this.add_page=function(label,onshow,onhide){var c=$a(this.center.body,'div');if(onshow)
 c.onshow=onshow;if(onhide)
 c.onhide=onhide;this.pages[label]=c;$dh(c);return c;}
@@ -1008,7 +1010,6 @@
 wn.control_panel=r.control_panel;}
 var setup_history=function(r){rename_observers.push(nav_obj);}
 var callback=function(r,rt){if(r.exc)console.log(r.exc);setup_globals(r);setup_history();var a=new Body();page_body.run_startup_code();page_body.setup_sidebar_menu();for(var i=0;i<startup_list.length;i++){startup_list[i]();}
-if(get_url_arg('embed')){newdoc(get_url_arg('embed'));return;}
 var t=to_open();if(t){historyChange(t);}else if(home_page){loadpage(home_page);}
 page_body.ready();}
 if(wn.boot){LocalDB.sync(wn.boot.docs);callback(wn.boot,'');if(wn.boot.error_messages)
@@ -1065,7 +1066,7 @@
 /*
  *	erpnext/website/js/topbar.js
  */
-wn.provide('erpnext.navbar');erpnext.navbar.navbar=Class.extend({init:function(){this.make();$('.brand').html(wn.boot.website_settings.brand_html);this.make_items();$('.dropdown-toggle').dropdown();pull-right},make:function(){$('header').append('<div class="navbar navbar-fixed-top">\
+wn.provide('erpnext.navbar');erpnext.navbar.navbar=Class.extend({init:function(){this.make();$('.brand').html(wn.boot.website_settings.brand_html);this.make_items();$('.dropdown-toggle').dropdown();},make:function(){$('header').append('<div class="navbar navbar-fixed-top">\
    <div class="navbar-inner">\
    <div class="container">\
     <a class="brand">[brand]</a>\
@@ -1079,14 +1080,8 @@
    </div>\
    </div>');$('.brand').attr('href','#!'+(wn.boot.website_settings.home_page||'Login Page'))},make_items:function(){var items=wn.boot.website_menus;for(var i=0;i<items.length;i++){var item=items[i];if(!item.parent_label&&item.parentfield=='top_bar_items'){item.route=item.url||item.custom_page;$('header .nav:first').append(repl('<li data-label="%(label)s">\
      <a href="#!%(route)s">%(label)s</a></li>',item))}}
-for(var i=0;i<items.length;i++){var item=items[i];if(item.parent_label&&item.parentfield=='top_bar_items'){$parent_li=$(repl('header li[data-label="%(parent_label)s"]',item));if(!$parent_li.hasClass('dropdown')){$parent_li.addClass('dropdown');$parent_li.find('a:first').addClass('dropdown-toggle').attr('data-toggle','dropdown').append('<b class="caret"></b>');$parent_li.append('<ul class="dropdown-menu"></ul>');}
+for(var i=0;i<items.length;i++){var item=items[i];if(item.parent_label&&item.parentfield=='top_bar_items'){$parent_li=$(repl('header li[data-label="%(parent_label)s"]',item));if(!$parent_li.hasClass('dropdown')){$parent_li.addClass('dropdown');$parent_li.find('a:first').addClass('dropdown-toggle').attr('data-toggle','dropdown').attr('href','').append('<b class="caret"></b>').click(function(){return false;});$parent_li.append('<ul class="dropdown-menu"></ul>');}
 item.route=item.url||item.custom_page;$parent_li.find('.dropdown-menu').append(repl('<li data-label="%(label)s">\
-     <a href="#!%(route)s">%(label)s</a></li>',item))}}}});erpnext.Footer=Class.extend({init:function(){$('footer').html(repl('<div class="web-footer">\
-   <div class="web-footer-menu"><ul></ul></div>\
-   <div class="web-footer-address">%(address)s</div>\
-   <div class="web-footer-copyright">&copy; %(copyright)s</div>\
-   <div class="web-footer-powered">Powered by \
-    <a href="https://erpnext.com">erpnext.com</a></div>\
-  </div>',wn.boot.website_settings));this.make_items();},make_items:function(){var items=wn.boot.website_menus
+     <a href="#!%(route)s">%(label)s</a></li>',item))}}}});erpnext.Footer=Class.extend({init:function(){alert(15);this.make_items();},make_items:function(){alert(16);var items=wn.boot.website_menus
 for(var i=0;i<items.length;i++){var item=items[i];if(!item.parent_label&&item.parentfield=='footer_items'){item.route=item.url||item.custom_page;$('.web-footer-menu ul').append(repl('<li><a href="#!%(route)s" \
      data-label="%(label)s">%(label)s</a></li>',item))}}}});$(document).bind('startup',function(){erpnext.footer=new erpnext.Footer();erpnext.navbar.navbar=new erpnext.navbar.navbar();})
\ No newline at end of file
diff --git a/version.num b/version.num
index 7b5a1ce..748e6f1 100644
--- a/version.num
+++ b/version.num
@@ -1 +1 @@
-589
\ No newline at end of file
+637
\ No newline at end of file
