diff --git a/accounts/doctype/account/account.js b/accounts/doctype/account/account.js
index d35d6ce..14e35d3 100644
--- a/accounts/doctype/account/account.js
+++ b/accounts/doctype/account/account.js
@@ -39,8 +39,7 @@
 		'is_pl_account', 'company'], false);
 
 	// read-only for root accounts
-  	root_acc = doc.parent ? false : true;
-	if(in_list(root_acc, doc.account_name)) {
+	if(!doc.parent_account) {
 		cur_frm.perm = [[1,0,0], [1,0,0]];
 		cur_frm.set_intro("This is a root account and cannot be edited.");
 	} else {
diff --git a/accounts/doctype/cost_center/cost_center.js b/accounts/doctype/cost_center/cost_center.js
index 0825383..3dde661 100644
--- a/accounts/doctype/cost_center/cost_center.js
+++ b/accounts/doctype/cost_center/cost_center.js
@@ -20,7 +20,7 @@
 	cur_frm.toggle_enable(['group_or_ledger', 'company_name'], doc.__islocal);
 
 	if(!doc.__islocal && doc.group_or_ledger=='Group') {
-		intro_txt += '<p><b>Note:</b> This is Cost Center is a <i>Group</i>, \
+		intro_txt += '<p><b>Note:</b> This Cost Center is a <i>Group</i>, \
 			Accounting Entries are not allowed against groups.</p>';
 	}
 
diff --git a/selling/page/sales_browser/sales_browser.js b/selling/page/sales_browser/sales_browser.js
index ce495db..be43e67 100644
--- a/selling/page/sales_browser/sales_browser.js
+++ b/selling/page/sales_browser/sales_browser.js
@@ -24,7 +24,14 @@
 
 	wrapper.make_tree = function() {
 		var ctype = wn.get_route()[1] || 'Territory';
-		erpnext.sales_chart = new erpnext.SalesChart(ctype, wrapper);
+		wn.call({
+			method: 'selling.page.sales_browser.sales_browser.get_children',
+			args: {ctype: ctype},
+			callback: function(r) {
+				var root = r.message[0]["value"];
+				erpnext.sales_chart = new erpnext.SalesChart(ctype, root, wrapper);
+			}
+		});
 	}
 	
 	wrapper.make_tree();
@@ -42,20 +49,13 @@
 };
 
 erpnext.SalesChart = Class.extend({
-	init: function(ctype, wrapper) {
-		var root_nodes = {
-			'Territory': 'All Territories',
-			'Item Group': 'All Item Groups',
-			'Customer Group': 'All Customer Groups',
-			'Sales Person': 'All Sales Persons'
-		}
-		
+	init: function(ctype, root, wrapper) {
 		$(wrapper).find('.tree-area').empty();
 		var me = this;
 		me.ctype = ctype;
 		this.tree = new wn.ui.Tree({
 			parent: $(wrapper).find('.tree-area'), 
-			label: root_nodes[ctype],
+			label: root,
 			args: {ctype: ctype},
 			method: 'selling.page.sales_browser.sales_browser.get_children',
 			click: function(link) {
@@ -72,7 +72,7 @@
 			}
 		});
 		this.tree.rootnode.$a
-			.data('node-data', {value: root_nodes[ctype], expandable:1})
+			.data('node-data', {value: root, expandable:1})
 			.click();		
 	},
 	make_link_toolbar: function(link) {
diff --git a/selling/page/sales_browser/sales_browser.py b/selling/page/sales_browser/sales_browser.py
index 92c75e0..49a05ff 100644
--- a/selling/page/sales_browser/sales_browser.py
+++ b/selling/page/sales_browser/sales_browser.py
@@ -1,11 +1,14 @@
 from __future__ import unicode_literals
 import webnotes
 
+
 @webnotes.whitelist()
 def get_children():
 	ctype = webnotes.form_dict.get('ctype')
 	webnotes.form_dict['parent_field'] = 'parent_' + ctype.lower().replace(' ', '_')
-	
+	if not webnotes.form_dict.get('parent'):
+		webnotes.form_dict['parent'] = ''
+		
 	return webnotes.conn.sql("""select name as value, 
 		if(is_group='Yes', 1, 0) as expandable
 		from `tab%(ctype)s`
diff --git a/setup/doctype/customer_group/customer_group.js b/setup/doctype/customer_group/customer_group.js
index 2b24c11..af0c6f0 100644
--- a/setup/doctype/customer_group/customer_group.js
+++ b/setup/doctype/customer_group/customer_group.js
@@ -20,7 +20,7 @@
 
 cur_frm.cscript.set_root_readonly = function(doc) {
 	// read-only for root customer group
-	if(doc.name==='All Customer Groups') {
+	if(!doc.parent_customer_group) {
 		cur_frm.perm = [[1,0,0], [1,0,0]];
 		cur_frm.set_intro("This is a root customer group and cannot be edited.");
 	} else {
diff --git a/setup/doctype/customer_group/customer_group.py b/setup/doctype/customer_group/customer_group.py
index 0f68521..cf126b8 100644
--- a/setup/doctype/customer_group/customer_group.py
+++ b/setup/doctype/customer_group/customer_group.py
@@ -31,20 +31,29 @@
 		self.nsm_parent_field = 'parent_customer_group';
 
 	def validate(self): 
-		if sql("select name from `tabCustomer Group` where name = %s and docstatus = 2", (self.doc.customer_group_name)):
+		if sql("select name from `tabCustomer Group` where name = %s and docstatus = 2", 
+		 		(self.doc.customer_group_name)):
 			msgprint("""Another %s record is trashed. 
-				To untrash please go to Setup & click on Trash."""%(self.doc.customer_group_name), raise_exception = 1)
-		self.validate_root_details("All Customer Groups", "parent_customer_group")
+				To untrash please go to Setup -> Recycle Bin.""" % 
+				(self.doc.customer_group_name), raise_exception = 1)
+				
+		super(DocType, self).validate()
+		
 
 	def on_trash(self):
-		cust = sql("select name from `tabCustomer` where ifnull(customer_group, '') = %s", self.doc.name)
+		cust = sql("select name from `tabCustomer` where ifnull(customer_group, '') = %s", 
+		 	self.doc.name)
 		cust = [d[0] for d in cust]
 		if cust:
-			msgprint("""Customer Group: %s can not be trashed/deleted because it is used in customer: %s. 
-				To trash/delete this, remove/change customer group in customer master""" % (self.doc.name, cust or ''), raise_exception=1)
+			msgprint("""Customer Group: %s can not be trashed/deleted \
+				because it is used in customer: %s. 
+				To trash/delete this, remove/change customer group in customer master""" %
+				(self.doc.name, cust or ''), raise_exception=1)
 
-		if sql("select name from `tabCustomer Group` where parent_customer_group = %s and docstatus != 2", self.doc.name):
-			msgprint("Child customer group exists for this customer group. You can not trash/cancel/delete this customer group.", raise_exception=1)
+		if sql("select name from `tabCustomer Group` where parent_customer_group = %s \
+				and docstatus != 2", self.doc.name):
+			msgprint("Child customer group exists for this customer group. \
+				You can not trash/cancel/delete this customer group.", raise_exception=1)
 
 		# rebuild tree
-		super(DocType, self).on_trash()
+		super(DocType, self).on_trash()
\ No newline at end of file
diff --git a/setup/doctype/item_group/item_group.js b/setup/doctype/item_group/item_group.js
index 3869eec..db894fa 100644
--- a/setup/doctype/item_group/item_group.js
+++ b/setup/doctype/item_group/item_group.js
@@ -14,6 +14,21 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+
+cur_frm.cscript.refresh = function(doc, cdt, cdn) {
+	cur_frm.cscript.set_root_readonly(doc);
+}
+
+cur_frm.cscript.set_root_readonly = function(doc) {
+	// read-only for root item group
+	if(!doc.parent_item_group) {
+		cur_frm.perm = [[1,0,0], [1,0,0]];
+		cur_frm.set_intro("This is a root item group and cannot be edited.");
+	} else {
+		cur_frm.set_intro(null);
+	}
+}
+
 //get query select item group
 cur_frm.fields_dict['parent_item_group'].get_query = function(doc,cdt,cdn) {
   return 'SELECT `tabItem Group`.`name`,`tabItem Group`.`parent_item_group` FROM `tabItem Group` WHERE `tabItem Group`.`is_group` = "Yes" AND  `tabItem Group`.`docstatus`!= 2 AND `tabItem Group`.`name` !="'+doc.item_group_name+'" AND `tabItem Group`.%(key)s LIKE "%s" ORDER BY  `tabItem Group`.`name` ASC LIMIT 50';
diff --git a/setup/doctype/sales_person/sales_person.js b/setup/doctype/sales_person/sales_person.js
index ba1a339..c529488 100644
--- a/setup/doctype/sales_person/sales_person.js
+++ b/setup/doctype/sales_person/sales_person.js
@@ -20,7 +20,7 @@
 
 cur_frm.cscript.set_root_readonly = function(doc) {
 	// read-only for root
-	if(doc.name==='All Sales Persons') {
+	if(!doc.parent_sales_person) {
 		cur_frm.perm = [[1,0,0], [1,0,0]];
 		cur_frm.set_intro("This is a root sales person and cannot be edited.");
 	} else {
diff --git a/setup/doctype/sales_person/sales_person.py b/setup/doctype/sales_person/sales_person.py
index 41d5042..943e724 100644
--- a/setup/doctype/sales_person/sales_person.py
+++ b/setup/doctype/sales_person/sales_person.py
@@ -33,3 +33,6 @@
 			if not flt(d.target_qty) and not flt(d.target_amount):
 				webnotes.msgprint("Either target qty or target amount is mandatory.")
 				raise Exception
+		
+		super(DocType, self).validate()
+		
\ No newline at end of file
diff --git a/setup/doctype/territory/territory.js b/setup/doctype/territory/territory.js
index a04bea3..2932006 100644
--- a/setup/doctype/territory/territory.js
+++ b/setup/doctype/territory/territory.js
@@ -20,7 +20,7 @@
 
 cur_frm.cscript.set_root_readonly = function(doc) {
 	// read-only for root territory
-	if(doc.name==='All Territories') {
+	if(!doc.parent_territory) {
 		cur_frm.perm = [[1,0,0], [1,0,0]];
 		cur_frm.set_intro("This is a root territory and cannot be edited.");
 	} else {
@@ -28,12 +28,6 @@
 	}
 }
 
-
-cur_frm.cscript.onload = function(){
-
-}
-
-
 //get query select territory
 cur_frm.fields_dict['parent_territory'].get_query = function(doc,cdt,cdn) {
   return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "Yes" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.`name` !="'+doc.territory_name+'" AND `tabTerritory`.%(key)s LIKE "%s" ORDER BY  `tabTerritory`.`name` ASC LIMIT 50';
diff --git a/setup/doctype/territory/territory.py b/setup/doctype/territory/territory.py
index 59c0b3a..4b6468e 100644
--- a/setup/doctype/territory/territory.py
+++ b/setup/doctype/territory/territory.py
@@ -33,3 +33,6 @@
 			if not flt(d.target_qty) and not flt(d.target_amount):
 				msgprint("Either target qty or target amount is mandatory.")
 				raise Exception
+		
+		super(DocType, self).validate()
+		
\ No newline at end of file
