diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.js b/erpnext/accounts/page/accounts_browser/accounts_browser.js
index 61b36d2..e5fca9f 100644
--- a/erpnext/accounts/page/accounts_browser/accounts_browser.js
+++ b/erpnext/accounts/page/accounts_browser/accounts_browser.js
@@ -1,4 +1,5 @@
 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: '
diff --git a/erpnext/accounts/page/financial_statements/financial_statements.html b/erpnext/accounts/page/financial_statements/financial_statements.html
index 6e69bc2..e6735fa 100644
--- a/erpnext/accounts/page/financial_statements/financial_statements.html
+++ b/erpnext/accounts/page/financial_statements/financial_statements.html
@@ -1,6 +1,5 @@
 <div class="layout_wrapper">
 <div id="fs_header"></div>
-</div>
 <!--  table.statement td {    vertical-align: middle;  }  table.statement td select {    width: 100px;  }  table.stmt_table {    table-layout: fixed;    border-collapse: collapse;  }  table.stmt_table td {    vertical-align: middle;    padding: 2px;  }  td.stmt_level0 {    font-weight: bold;    font-size: 14px;    border-bottom: 1px solid #AAA;  }  td.stmt_level1 {    font-weight: bold;    font-size: 12px;  }  td.stmt_level2 {    font-size: 11px;  }  td.stmt_level3 {    font-size: 11px;  }  td.stmt_level4 {    font-size: 12px;    font-weight: bold;    border-bottom: 1px solid #000;  }  td.stmt_level5 {    color: BLUE;    font-size: 11px;  }  --> <!--
 <div style="border: 1px solid #cccccc; padding: 4px; margin-top: 8px; background-color: #eeeeee; width: 98%;">
 <table class="statement" border="0" cellspacing="2px">
@@ -25,7 +24,8 @@
 <div style="margin:10px 0px 10px 0px" mce_style="margin:10px 0px 10px 0px"><button class="button" onclick="pscript.print_statement();">Print</button></div>
 -->
 <div id="print_html">
-<div id="stmt_title1" style="margin:16px 0px 4px 0px; font-size: 16px; font-weight: bold; color: #888;"></div>
-<div id="stmt_title2" style="margin:0px 0px 8px 0px; font-size: 16px; font-weight: bold;"></div>
-<div id="stmt_tree" style="margin: 0px 0px 16px; overflow: auto; display: none; width: 100%;"></div>
+	<div id="stmt_title1" style="margin:16px 0px 4px 0px; font-size: 16px; font-weight: bold; color: #888;"></div>
+	<div id="stmt_title2" style="margin:0px 0px 8px 0px; font-size: 16px; font-weight: bold;"></div>
+	<div id="stmt_tree" style="margin: 0px 0px 16px; overflow: auto; display: none; width: 100%;"></div>
+</div>
 </div>
diff --git a/erpnext/home/page/event_updates/event_updates.js b/erpnext/home/page/event_updates/event_updates.js
index 078dfc2..faf9a75 100644
--- a/erpnext/home/page/event_updates/event_updates.js
+++ b/erpnext/home/page/event_updates/event_updates.js
@@ -449,51 +449,40 @@
 }
 
 FeedList.prototype.make_list = function() {
-	this.list_area = $a(this.wrapper,'div')
-	this.no_result = $a(this.wrapper, 'div','help_box',{display:'none'},'Nothing to show yet. Your feed will be updated as you start your activities')
-	
-	var l = new Listing('Feed List',1);
 	var me = this;
-
-	// style
-	l.colwidths = ['100%']; l.page_len = 20;	
-	l.opts.cell_style = {padding:'0px'};
-	l.opts.hide_rec_label = 1;
+	this.list_area = $a(this.wrapper,'div')
 	
-	// build query
-	l.get_query = function(){
-		this.query = repl('select \
+	this.list = new wn.widgets.Listing({
+		parent: this.list_area,
+		query: repl('select \
 			distinct t1.name, t1.doc_type, t1.doc_name, t1.subject, t1.modified_by, \
-			concat(ifnull(t2.first_name,""), " ", ifnull(t2.last_name,"")), t1.modified, t1.color \
+			concat(ifnull(t2.first_name,""), " ", ifnull(t2.last_name,"")) as full_name, \
+			t1.modified, t1.color \
 			from tabFeed t1, tabProfile t2, tabUserRole t3, tabDocPerm t4 \
 			where t1.doc_type = t4.parent \
 			and t2.name = t1.owner \
 			and t3.parent = "%(user)s" \
 			and t4.role = t3.role \
 			and ifnull(t4.`read`,0) = 1 \
-			order by t1.modified desc', {user:user})
-		this.query_max = ''
-	}
-	
-	// render list ui
-	l.show_cell = function(cell,ri,ci,d){ me.render_feed(cell,ri,ci,d); }
-	
-	// onrun
-	l.onrun = function(){ $(me.wrapper).fadeIn(); if(me.after_run) me.after_run(); }
-	
-	// make
-	l.make(this.list_area);
-	$dh(l.btn_area);
-
-	this.list = l;
+			order by t1.modified desc', {user:user}),
+		no_result_message: 'Nothing to show yet. Your feed will be updated as you start your activities',
+		render_row: function(parent, data) {
+			me.render_feed(parent, data)
+		},
+		onrun: function() {
+			$(me.wrapper).fadeIn(); 
+			if(me.after_run) me.after_run();
+		},
+		hide_refresh: true
+	});
 }
 
 FeedList.prototype.after_run = function() {
 	this.list.has_data() ? $dh(this.no_result) : $ds(this.no_result)
 }
 
-FeedList.prototype.render_feed = function(cell,ri,ci,d) {
-	new FeedItem(cell, d[ri], this);
+FeedList.prototype.render_feed = function(parent, data) {
+	new FeedItem(parent, data, this);
 }
 
 // Item
@@ -527,12 +516,12 @@
 
 FeedItem.prototype.add_day_sep = function(det) {
 	var me = this;
-	var prev_date = det[6].split(' ')[0];
+	var prev_date = det.modified.split(' ')[0];
 	
 	var make_div = function() {
 		var div = $a(me.head, 'div', '', 
 			{borderBottom:'1px solid #888', margin:'8px 0px', padding:'2px 0px', color:'#888', fontSize:'11px'});
-		div.innerHTML = comment_when(det[6], 1);
+		div.innerHTML = comment_when(det.modified, 1);
 		
 		// today?
 		if(prev_date==get_today()) {
@@ -554,32 +543,31 @@
 	tag = $a($td(this.tab,0,0), 'div', '', 
 		{color:'#FFF', padding:'3px', textAlign:'right', fontSize:'11px', whiteSpace:'nowrap', overflow:'hidden', cursor:'pointer'});
 	$br(tag,'3px');
-	$y(tag, {backgroundColor:(det[7] ? det[7] : '#273')});
-	tag.innerHTML = get_doctype_label(det[1]);
-	tag.dt = det[1]
+	$y(tag, {backgroundColor:(det.color || '#273')});
+	tag.innerHTML = get_doctype_label(det.doc_type);
+	tag.dt = det.doc_type;
 	tag.onclick = function() { loaddocbrowser(this.dt); }
 }
 
 FeedItem.prototype.render_references = function(div, det) {
 	// name
-	div.tab = make_table(div, 1, 2, '100%', [null, '15%'])
-	//div.innerHTML = '<b>' + (strip(det[11]) ? det[11] : det[2]) + ' (' + cint(det[12]) + '): </b> has ' + det[7] + ' ';
-	
-	var dt = det[1]; var dn = det[2]
+	div.tab = make_table(div, 1, 2, '100%', [null, '15%'])	
+	var dt = det.doc_type; var dn = det.doc_name
 	
 	// link
 	var allow = in_list(profile.can_read, dt);
-	var span = $a($td(div.tab,0,0), 'span', (allow ? 'link_type': ''), null, det[2]);
+	var span = $a($td(div.tab,0,0), 'span', (allow ? 'link_type': ''), null, det.doc_name);
 	span.dt = dt; span.dn = dn;
 	if(allow) span.onclick = function() { loaddoc(this.dt, this.dn); }
 	
 	// subject
-	if(det[3]) {
-		$a($td(div.tab,0,0), 'span', '', {marginLeft:'7px', color:'#444'}, det[3]);
+	if(det.subject) {
+		$a($td(div.tab,0,0), 'span', '', {marginLeft:'7px', color:'#444'}, det.subject);
 	}
 	
 	// by
-	$y($td(div.tab,0,1), {fontSize:'11px'}).innerHTML = (strip(det[5]) ? det[5] : det[4]);
+	$y($td(div.tab,0,1), {fontSize:'11px'}).innerHTML = 
+		(strip(det.full_name) ? det.full_name : det.modified_by);
 }
 
 HomeStatusBar = function() {
diff --git a/erpnext/patches/jan_mar_2012/subdomain_login_patch.py b/erpnext/patches/jan_mar_2012/subdomain_login_patch.py
index df26e4d..fcf72dc 100644
--- a/erpnext/patches/jan_mar_2012/subdomain_login_patch.py
+++ b/erpnext/patches/jan_mar_2012/subdomain_login_patch.py
@@ -14,6 +14,7 @@
 	from webnotes.model import delete_doc
 	delete_doc("DocType", "SSO Control")
 	delete_doc("DocType", "WN ERP Client Control")
+	delete_doc("DocType", "Production Tips Common")
 	delete_doc("DocType", "DocTrigger")
 
 	# cleanup control panel
diff --git a/erpnext/production/page/bill_of_materials/bill_of_materials.html b/erpnext/production/page/bill_of_materials/bill_of_materials.html
index 1263e44..55b4e70 100644
--- a/erpnext/production/page/bill_of_materials/bill_of_materials.html
+++ b/erpnext/production/page/bill_of_materials/bill_of_materials.html
@@ -1,4 +1,4 @@
-<div style="margin:0px">
+<div class="layout_wrapper">
 <div id="bom_header">&nbsp;</div>
 <!--
 <div style="color: #444444;" mce_style="color: #444444;">
diff --git a/erpnext/production/page/bill_of_materials/bill_of_materials.js b/erpnext/production/page/bill_of_materials/bill_of_materials.js
index f2c9b0a..c40fa11 100644
--- a/erpnext/production/page/bill_of_materials/bill_of_materials.js
+++ b/erpnext/production/page/bill_of_materials/bill_of_materials.js
@@ -1,4 +1,5 @@
 pscript['onload_Bill of Materials'] = function() {
+	wn.require('lib/js/legacy/widgets/tree.js');
 	
 	// header and toolbar
 	var h = new PageHeader('bom_header','Bill of Materials','BOM gives the breakdown of cost for product');
@@ -113,12 +114,11 @@
   $c('runserverobj', args={'doctype':'BOM Control', 'docname':'BOM Control', 'method':'calculate_cost', 'arg':pscript.bom_no}, function(r,rt) {
       var calculated = r.message;
       if (calculated == 'calculated') {pscript.show_bom();}
-      else  {$i('bom_tree').innerHTML = "Sorry it's taking too long try next time....";}
+      else  {$i('bom_tree').innerHTML = "Not available";}
   });	
 }
 
 pscript.collapse_all = function(){
-  alert("In");
   pscript.bom_tree.collapseall()
 }
 
diff --git a/erpnext/selling/page/sales_browser/sales_browser.js b/erpnext/selling/page/sales_browser/sales_browser.js
index c0c4542..d2ba627 100644
--- a/erpnext/selling/page/sales_browser/sales_browser.js
+++ b/erpnext/selling/page/sales_browser/sales_browser.js
@@ -1,4 +1,5 @@
 pscript['onload_Sales Browser'] = function(){
+  wn.require('lib/js/legacy/widgets/tree.js');
   var parent = $i('tr_body');
   parent.innerHTML = 'Please select your chart: '
   var sel = $a(parent,'select');
diff --git a/erpnext/setup/doctype/item_group/item_group.txt b/erpnext/setup/doctype/item_group/item_group.txt
index d2604fd..2e0731c 100644
--- a/erpnext/setup/doctype/item_group/item_group.txt
+++ b/erpnext/setup/doctype/item_group/item_group.txt
@@ -5,16 +5,18 @@
 	{
 		'creation': '2010-08-08 17:09:06',
 		'docstatus': 0,
-		'modified': '2010-12-24 11:58:29',
-		'modified_by': 'abhishek@webnotestech.com',
+		'modified': '2012-01-30 12:14:30',
+		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
+		'_last_update': '1322549700',
 		'allow_trash': 1,
 		'autoname': 'field:item_group_name',
 		'colour': 'White:FFF',
+		'default_print_format': 'Standard',
 		'doctype': 'DocType',
 		'document_type': 'Master',
 		'in_create': 1,
@@ -25,7 +27,7 @@
 		'section_style': 'Simple',
 		'server_code_error': ' ',
 		'show_in_menu': 0,
-		'version': 54
+		'version': 57
 	},
 
 	# These values are common for all DocField
@@ -59,7 +61,6 @@
 		'cancel': 0,
 		'create': 0,
 		'doctype': 'DocPerm',
-		'idx': 1,
 		'permlevel': 1,
 		'role': 'Material Manager',
 		'submit': 0,
@@ -72,7 +73,6 @@
 		'cancel': 0,
 		'create': 0,
 		'doctype': 'DocPerm',
-		'idx': 2,
 		'permlevel': 0,
 		'role': 'Material Manager',
 		'submit': 0,
@@ -85,7 +85,6 @@
 		'cancel': 0,
 		'create': 0,
 		'doctype': 'DocPerm',
-		'idx': 3,
 		'permlevel': 1,
 		'role': 'Material User',
 		'submit': 0,
@@ -98,7 +97,6 @@
 		'cancel': 0,
 		'create': 0,
 		'doctype': 'DocPerm',
-		'idx': 4,
 		'permlevel': 0,
 		'role': 'Material User',
 		'submit': 0,
@@ -110,7 +108,6 @@
 		'cancel': 1,
 		'create': 1,
 		'doctype': 'DocPerm',
-		'idx': 5,
 		'permlevel': 0,
 		'role': 'System Manager',
 		'write': 1
@@ -121,7 +118,6 @@
 		'cancel': 1,
 		'create': 1,
 		'doctype': 'DocPerm',
-		'idx': 6,
 		'permlevel': 0,
 		'role': 'Material Master Manager',
 		'write': 1
@@ -130,21 +126,8 @@
 	# DocField
 	{
 		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
 		'fieldname': 'item_group_name',
 		'fieldtype': 'Data',
-		'idx': 2,
 		'label': 'Item Group Name',
 		'oldfieldname': 'item_group_name',
 		'oldfieldtype': 'Data',
@@ -155,21 +138,8 @@
 	# DocField
 	{
 		'doctype': 'DocField',
-		'fieldname': 'show_in_catalogue',
-		'fieldtype': 'Check',
-		'idx': 3,
-		'label': 'Show in catalogue',
-		'oldfieldname': 'show_in_catalogue',
-		'oldfieldtype': 'Check',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
 		'fieldname': 'description',
 		'fieldtype': 'Text',
-		'idx': 4,
 		'label': 'Description',
 		'oldfieldname': 'description',
 		'oldfieldtype': 'Text',
@@ -182,7 +152,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'parent_item_group',
 		'fieldtype': 'Link',
-		'idx': 5,
 		'label': 'Parent Item Group',
 		'oldfieldname': 'parent_item_group',
 		'oldfieldtype': 'Link',
@@ -199,7 +168,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'is_group',
 		'fieldtype': 'Select',
-		'idx': 6,
 		'label': 'Has Child Node',
 		'oldfieldname': 'is_group',
 		'oldfieldtype': 'Select',
@@ -211,10 +179,20 @@
 	# DocField
 	{
 		'doctype': 'DocField',
+		'fieldname': 'trash_reason',
+		'fieldtype': 'Small Text',
+		'label': 'Trash Reason',
+		'oldfieldname': 'trash_reason',
+		'oldfieldtype': 'Small Text',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
 		'fieldname': 'lft',
 		'fieldtype': 'Int',
 		'hidden': 1,
-		'idx': 7,
 		'in_filter': 1,
 		'label': 'lft',
 		'no_copy': 1,
@@ -232,7 +210,6 @@
 		'fieldname': 'rgt',
 		'fieldtype': 'Int',
 		'hidden': 1,
-		'idx': 8,
 		'in_filter': 1,
 		'label': 'rgt',
 		'no_copy': 1,
@@ -248,13 +225,13 @@
 	{
 		'doctype': 'DocField',
 		'fieldname': 'old_parent',
-		'fieldtype': 'Data',
+		'fieldtype': 'Link',
 		'hidden': 1,
-		'idx': 9,
 		'label': 'old_parent',
 		'no_copy': 1,
 		'oldfieldname': 'old_parent',
 		'oldfieldtype': 'Data',
+		'options': 'Item Group',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
diff --git a/erpnext/stock/doctype/item/item.txt b/erpnext/stock/doctype/item/item.txt
index d6ac71b..28d0c7a 100644
--- a/erpnext/stock/doctype/item/item.txt
+++ b/erpnext/stock/doctype/item/item.txt
@@ -5,14 +5,14 @@
 	{
 		'creation': '2010-08-08 17:09:05',
 		'docstatus': 0,
-		'modified': '2012-01-17 18:39:39',
+		'modified': '2012-01-30 12:10:37',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1325570647',
+		'_last_update': '1327904359',
 		'allow_attach': 1,
 		'allow_trash': 1,
 		'autoname': 'field:item_code',
@@ -495,6 +495,98 @@
 
 	# DocField
 	{
+		'doctype': 'DocField',
+		'fieldtype': 'Section Break',
+		'label': 'Website Details',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'description': 'Check here to show this item on your website under "Products"',
+		'doctype': 'DocField',
+		'fieldname': 'show_in_website',
+		'fieldtype': 'Check',
+		'label': 'Show in website',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'description': 'Small image shown in listings (100px width) (Attach first)',
+		'doctype': 'DocField',
+		'fieldname': 'thumbnail_image',
+		'fieldtype': 'Select',
+		'label': 'Thumbnail Image',
+		'options': 'attach_files:',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'description': 'Small image shown product page (300px width) (Attach first)',
+		'doctype': 'DocField',
+		'fieldname': 'full_image',
+		'fieldtype': 'Select',
+		'label': 'Full Image',
+		'options': 'attach_files:',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldtype': 'Column Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'description': 'Price list for your website (leave blank if you do not want to show the price)',
+		'doctype': 'DocField',
+		'fieldname': 'website_price_list',
+		'fieldtype': 'Link',
+		'label': 'Website Price List',
+		'options': 'Price List',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'description': 'Enter your shipping warehouse if you want "In Stock" or "Out of Stock" to appear on your website',
+		'doctype': 'DocField',
+		'fieldname': 'website_warehouse',
+		'fieldtype': 'Link',
+		'label': 'Website Warehouse',
+		'options': 'Warehouse',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldtype': 'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'description': 'Detailed description of your product for your website. Formatted in html/markdown format.',
+		'doctype': 'DocField',
+		'fieldname': 'website_description',
+		'fieldtype': 'Code',
+		'label': 'Website Description',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
 		'colour': 'White:FFF',
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
@@ -624,34 +716,6 @@
 	# DocField
 	{
 		'doctype': 'DocField',
-		'fieldname': 'manufacturer',
-		'fieldtype': 'Data',
-		'label': 'Manufacturer',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'manufacturer_part_no',
-		'fieldtype': 'Data',
-		'label': 'Manufacturer Part Number',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_supplier_details',
-		'fieldtype': 'Table',
-		'label': 'Item Supplier Details',
-		'options': 'Item Supplier',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
 		'label': 'Sales Details',
 		'oldfieldtype': 'Section Break',
diff --git a/erpnext/support/doctype/support_ticket/support_ticket.py b/erpnext/support/doctype/support_ticket/support_ticket.py
index 986a9b5..4ae3f29 100644
--- a/erpnext/support/doctype/support_ticket/support_ticket.py
+++ b/erpnext/support/doctype/support_ticket/support_ticket.py
@@ -65,6 +65,8 @@
 		d = Document('Support Ticket Response')
 		d.from_email = from_email or webnotes.user.name
 		d.parent = self.doc.name
+		d.parenttype = "Support Ticket"
+		d.parentfield = "responses"
 		d.mail = response
 		d.content_type = content_type
 		d.save(1)
diff --git a/erpnext/utilities/doctype/production_tips_common/production_tips_common.js b/erpnext/utilities/doctype/production_tips_common/production_tips_common.js
deleted file mode 100644
index 4dfc00a3..0000000
--- a/erpnext/utilities/doctype/production_tips_common/production_tips_common.js
+++ /dev/null
@@ -1,71 +0,0 @@
-// Global dictionary of next steps for doctypes
-// ============================================
-pscript.tip_prod_dict = {'Production Order':['Material Transfer', 'Backflush']};
-
-
-// Set tips depending on conditions
-// ================================
-cur_frm.cscript.get_tips = function(doc, cdt, cdn){
-  var next_step_list = pscript.tip_prod_dict[cur_frm.doctype] ? pscript.tip_prod_dict[cur_frm.doctype] : 0;
-  
-  if(cur_frm.doctype!='Production Planning Tool'){
-    // new doc
-    if(doc.__islocal){
-      if(doc.status=='Cancelled' || doc.amended_from)
-        cur_frm.set_tip("You can now make changes in this " + cur_frm.doctype + " and save it by clicking on the <div style='font-weight:bold; display:inline'>Save</div> button in the above toolbar.");
-      else{ 
-        cur_frm.set_tip("To create " + cur_frm.doctype + " please start by entering all the mandatory fields (marked <div style='color:Red; display:inline'> Red</div>).");
-        if(cur_frm.doctype=='Stock Entry') cur_frm.append_tip("If your purpose is Production Order, please go to <div style='font-weight:bold; display:inline'>Items</div> tab and click <div style='font-weight:bold; display:inline'>Get Items</div> to fetch the items.");
-        cur_frm.append_tip("You can then save this form by clicking on the <div style='font-weight:bold; display:inline'>Save</div> button in the above toolbar.");
-      }
-    }
-    
-    // doc exists
-    else if(!doc.__islocal){
-      // execute when doc is saved
-      if(doc.docstatus==0 && cur_frm.doctype!='Production Planning Tool')
-        cur_frm.set_tip("You have saved your " + cur_frm.doctype + ". You can make this draft permanent by clicking on <div style='font-weight:bold; display:inline'>Submit</div> button above.");
-        
-      // execute if doc is submitted
-      else if(doc.docstatus==1){
-        cur_frm.set_tip("You have submitted this " + cur_frm.doctype + ".");
-        for(var i=0; i<next_step_list.length; i++){
-          if(i==0)  cur_frm.append_tip("To proceed select the <div style='font-weight:bold; display:inline'>Next Steps</div> tab below. To transfer raw materials to Finished Goods Warehouse click on <div style='font-weight:bold; display:inline'>" + next_step_list[i] +"</div>.");
-          else  cur_frm.append_tip("To update the quantity of finished goods and raw materials in their respective warehouses click on <div style='font-weight:bold; display:inline'>" + next_step_list[i] + "</div>.");
-        }
-        cur_frm.append_tip("(To amend this "+ cur_frm.doctype + " click on the <div style='font-weight:bold; display:inline'>Cancel</div> button above.)");
-      }
-      
-      // execute when doc is amended
-      else if(doc.docstatus==2){
-        cur_frm.set_tip("To make this " + cur_frm.doctype + " editable click on the <div style='font-weight:bold; display:inline'>Amend</div> button above.");
-      }
-    }
-  }
-}
-  
-
-// Execute if current doctype is Production Planning Tool
-// ======================================================
-cur_frm.cscript.get_PPT_tips = function(doc, cdt, cdn)
-{
-  cur_frm.set_tip('Welcome to Production Planning Wizard. This helps you to raise production order and see your raw material status as you plan your production.');
-  cur_frm.append_tip("To start fetch all open Production Orders and Sales Orders by clicking on the <div style='font-weight:bold; display:inline'>Get Open Documents</div> button in the <div style='font-weight:bold; display:inline'>Against Document</div> tab below");
-  
-  cur_frm.cscript['Get Open Documents'] = function(doc, cdt, cdn){
-    cur_frm.set_tip("To include the required orders in the Production Plan check mark the <div style='font-weight:bold; display:inline'>Include In Plan</div> cell below.");
-    cur_frm.append_tip("Next you can go to the <div style='font-weight:bold; display:inline'>Items</div> tab and click on <div style='font-weight:bold; display:inline'>Get Items</div> button to fetch the items of the selected orders.");
-  }
-  
-  cur_frm.cscript['Get Items'] = function(doc, cdt, cdn){
-    cur_frm.set_tip("Now to raise a Production Order just click on <div style='font-weight:bold; display:inline'>Raise Production Ordre</div> button below the table.");
-    cur_frm.append_tip("In order to see the Raw Material Report click on <div style='font-weight:bold; display:inline'>Get Raw Material Report</div> button below the table.");
-  }
-}
-
-
-// Executes when doc is edit status of doc is changed
-// ==================================================
-cur_frm.cscript.edit_status_changed = function(doc, cdt, cdn){
-  cur_frm.cscript.get_tips();
-}
diff --git a/erpnext/utilities/doctype/production_tips_common/production_tips_common.txt b/erpnext/utilities/doctype/production_tips_common/production_tips_common.txt
deleted file mode 100644
index 13209ad..0000000
--- a/erpnext/utilities/doctype/production_tips_common/production_tips_common.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# DocType, Production Tips Common
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:14',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'issingle': 1,
-		'module': 'Utilities',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 37
-	},
-
-	# DocType, Production Tips Common
-	{
-		'doctype': 'DocType',
-		'name': 'Production Tips Common'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/utilities/page/trash/trash.html b/erpnext/utilities/page/trash/trash.html
index 0fdca75..b17e475 100644
--- a/erpnext/utilities/page/trash/trash.html
+++ b/erpnext/utilities/page/trash/trash.html
@@ -1,2 +1,4 @@
-<div id="trash_header">&nbsp;</div>
-<div id="trash_div" style="margin: 0px;">&nbsp;</div>
\ No newline at end of file
+<div class="layout_wrapper">
+<div id="trash_header"></div>
+<div id="trash_div" style="margin: 0px;"></div>
+</div>
\ No newline at end of file
diff --git a/erpnext/website/Module Def/Website/Website.txt b/erpnext/website/Module Def/Website/Website.txt
index 1fe0444..fa35cde 100644
--- a/erpnext/website/Module Def/Website/Website.txt
+++ b/erpnext/website/Module Def/Website/Website.txt
@@ -5,14 +5,13 @@
 	{
 		'creation': '2012-01-23 17:05:32',
 		'docstatus': 0,
-		'modified': '2012-01-27 14:30:06',
+		'modified': '2012-01-30 12:19:11',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
 
 	# These values are common for all Module Def Role
 	{
-		'__islocal': 1,
 		'doctype': 'Module Def Role',
 		'name': '__common__',
 		'parent': 'Website',
@@ -22,7 +21,6 @@
 
 	# These values are common for all Module Def Item
 	{
-		'__islocal': 1,
 		'doctype': 'Module Def Item',
 		'name': '__common__',
 		'parent': 'Website',
@@ -72,30 +70,6 @@
 
 	# Module Def Item
 	{
-		'display_name': 'Top Bar Settings',
-		'doc_name': 'Top Bar Settings',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Contact Us Settings',
-		'doc_name': 'Contact Us Settings',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Home Settings',
-		'doc_name': 'Home Settings',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
 		'display_name': 'About Us Settings',
 		'doc_name': 'About Us Settings',
 		'doc_type': 'Single DocType',
@@ -118,6 +92,14 @@
 		'doctype': 'Module Def Item'
 	},
 
+	# Module Def Item
+	{
+		'display_name': 'Products Settings',
+		'doc_name': 'Products Settings',
+		'doc_type': 'Single DocType',
+		'doctype': 'Module Def Item'
+	},
+
 	# Module Def Role
 	{
 		'doctype': 'Module Def Role',
diff --git a/erpnext/utilities/doctype/production_tips_common/__init__.py b/erpnext/website/doctype/product_group/__init__.py
similarity index 100%
rename from erpnext/utilities/doctype/production_tips_common/__init__.py
rename to erpnext/website/doctype/product_group/__init__.py
diff --git a/erpnext/website/doctype/product_group/product_group.txt b/erpnext/website/doctype/product_group/product_group.txt
new file mode 100644
index 0000000..b26ec13
--- /dev/null
+++ b/erpnext/website/doctype/product_group/product_group.txt
@@ -0,0 +1,57 @@
+# DocType, Product Group
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-01-30 12:17:12',
+		'docstatus': 0,
+		'modified': '2012-01-30 12:17:12',
+		'modified_by': 'Administrator',
+		'owner': 'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': 'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': 'Website',
+		'name': '__common__',
+		'section_style': 'Simple',
+		'show_in_menu': 0,
+		'version': 1
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': 'DocField',
+		'name': '__common__',
+		'parent': 'Product Group',
+		'parentfield': 'fields',
+		'parenttype': 'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Product Group
+	{
+		'doctype': 'DocType',
+		'name': 'Product Group'
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'item_group',
+		'fieldtype': 'Link',
+		'label': 'Item Group',
+		'options': 'Item Group'
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'label',
+		'fieldtype': 'Data',
+		'label': 'Label'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/production_tips_common/__init__.py b/erpnext/website/doctype/products_settings/__init__.py
similarity index 100%
copy from erpnext/utilities/doctype/production_tips_common/__init__.py
copy to erpnext/website/doctype/products_settings/__init__.py
diff --git a/erpnext/website/doctype/products_settings/products_settings.txt b/erpnext/website/doctype/products_settings/products_settings.txt
new file mode 100644
index 0000000..9e60f95
--- /dev/null
+++ b/erpnext/website/doctype/products_settings/products_settings.txt
@@ -0,0 +1,72 @@
+# DocType, Products Settings
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-01-30 12:15:00',
+		'docstatus': 0,
+		'modified': '2012-01-30 13:50:53',
+		'modified_by': 'Administrator',
+		'owner': 'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': '1327906116',
+		'colour': 'White:FFF',
+		'description': 'Products are automatically updated from the item master. To add products to the website, go to the <a href="#!List/Item">Item master</a> and check "Show in Website" in the "Website Details"\n\n',
+		'doctype': 'DocType',
+		'issingle': 1,
+		'module': 'Website',
+		'name': '__common__',
+		'section_style': 'Simple',
+		'show_in_menu': 0,
+		'version': 3
+	},
+
+	# These values are common for all DocField
+	{
+		'colour': 'White:FFF',
+		'description': 'Product Groups that are listed on the website. The first product group from this list will be listed by default on the "Products Page"',
+		'doctype': 'DocField',
+		'fieldname': 'groups',
+		'fieldtype': 'Table',
+		'label': 'Groups',
+		'name': '__common__',
+		'options': 'Product Group',
+		'parent': 'Products Settings',
+		'parentfield': 'fields',
+		'parenttype': 'DocType',
+		'permlevel': 0
+	},
+
+	# These values are common for all DocPerm
+	{
+		'create': 1,
+		'doctype': 'DocPerm',
+		'name': '__common__',
+		'parent': 'Products Settings',
+		'parentfield': 'permissions',
+		'parenttype': 'DocType',
+		'permlevel': 0,
+		'read': 1,
+		'role': 'Website Manager',
+		'write': 1
+	},
+
+	# DocType, Products Settings
+	{
+		'doctype': 'DocType',
+		'name': 'Products Settings'
+	},
+
+	# DocPerm
+	{
+		'doctype': 'DocPerm'
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/website/page/blog/blog.js b/erpnext/website/page/blog/blog.js
index f86e98d..6be1d07 100644
--- a/erpnext/website/page/blog/blog.js
+++ b/erpnext/website/page/blog/blog.js
@@ -1,4 +1,3 @@
-wn.require('lib/js/lib/prettydate.js')
 
 pscript.onload_blog = function(wrapper) {
 	wrapper.blog_list = new wn.widgets.Listing({
diff --git a/erpnext/website/page/products/README.md b/erpnext/website/page/products/README.md
new file mode 100644
index 0000000..e40b446
--- /dev/null
+++ b/erpnext/website/page/products/README.md
@@ -0,0 +1,27 @@
+## Products
+
+Contains
+
+- List of Products tagged by Item master
+	- image
+	- short description (md)
+	- pricing info (if public) (public pricelist)
+	- stock info (website warehouse)
+- Search
+- Sidebar contains categories (# of items in each category)
+
+When Item is Saved, a page for that item is created with
+
+- Large image
+- Smaller images
+- Long Description
+- Pricing info
+- Stock info
+- Contact Button (instead of Buy / Add to cart)
+
+### Steps
+
+- update item master
+- update item category (show in web + priority) (or in a products settings page)
+- # of public items in each category
+- validation - item cannot have show in item if parent does not have it
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/production_tips_common/__init__.py b/erpnext/website/page/products/__init__.py
similarity index 100%
copy from erpnext/utilities/doctype/production_tips_common/__init__.py
copy to erpnext/website/page/products/__init__.py
diff --git a/erpnext/website/page/products/products.html b/erpnext/website/page/products/products.html
new file mode 100644
index 0000000..57f1354
--- /dev/null
+++ b/erpnext/website/page/products/products.html
@@ -0,0 +1,11 @@
+<div class="layout_wrapper" id="content-products">
+	<div class="web-main-section">
+		<h2 class="products-category"></h2>
+		<div class="products-search">
+			<input name="products-search" /><button class="btn">Search</button>
+		</div>
+	</div>
+	<div class="web-side-section">
+		<h3>Categories</h3>
+	</div>
+</div>
\ No newline at end of file
diff --git a/erpnext/website/page/products/products.js b/erpnext/website/page/products/products.js
new file mode 100644
index 0000000..993397d
--- /dev/null
+++ b/erpnext/website/page/products/products.js
@@ -0,0 +1,11 @@
+erpnext.products = {}
+
+pscript.onload_products = function(wrapper) {
+	// get erpnext.products.default_category
+	
+	// make search box
+	
+	// make main listing based on default category
+	
+	// make sidelisting of categories
+}
\ No newline at end of file
diff --git a/erpnext/website/page/products/products.txt b/erpnext/website/page/products/products.txt
new file mode 100644
index 0000000..f00a05b
--- /dev/null
+++ b/erpnext/website/page/products/products.txt
@@ -0,0 +1,43 @@
+# Page, products
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-01-30 10:49:01',
+		'docstatus': 0,
+		'modified': '2012-01-30 10:49:01',
+		'modified_by': 'Administrator',
+		'owner': 'Administrator'
+	},
+
+	# These values are common for all Page
+	{
+		'doctype': 'Page',
+		'module': 'Website',
+		'name': '__common__',
+		'page_name': 'products',
+		'standard': 'Yes',
+		'title': 'Products'
+	},
+
+	# These values are common for all Page Role
+	{
+		'doctype': 'Page Role',
+		'name': '__common__',
+		'parent': 'products',
+		'parentfield': 'roles',
+		'parenttype': 'Page',
+		'role': 'Guest'
+	},
+
+	# Page, products
+	{
+		'doctype': 'Page',
+		'name': 'products'
+	},
+
+	# Page Role
+	{
+		'doctype': 'Page Role'
+	}
+]
\ No newline at end of file
diff --git a/index.html b/index.html
index 6ab3b03..d758f2f 100644
--- a/index.html
+++ b/index.html
@@ -3,89 +3,16 @@
 	<meta charset="utf-8">
 	<title>ERPNext</title>
 	<meta name="author" content="">
-	<script type="text/javascript">window._version_number="233";
+	<script type="text/javascript">window._version_number="249";
 
 /*
 *	lib/js/wn/class.js
 */
-/*
 
-Inheritence "Class"
--------------------
-see: http://ejohn.org/blog/simple-javascript-inheritance/
-To subclass, use:
-
-	var MyClass = Class.extend({
-		init: function
-	})
-
-*/
-
-/* Simple JavaScript Inheritance
- * By John Resig http://ejohn.org/
- * MIT Licensed.
- */
-// Inspired by base2 and Prototype
-
-(function(){
-	var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;
-	// The base Class implementation (does nothing)
-	this.Class = function(){};
-	
-	// Create a new Class that inherits from this class
-	Class.extend = function(prop) {
-		var _super = this.prototype;
-		
-		// Instantiate a base class (but only create the instance,
-		// don't run the init constructor)
-		initializing = true;
-		var prototype = new this();
-		initializing = false;
-		
-		// Copy the properties over onto the new prototype
-		for (var name in prop) {
-			// Check if we're overwriting an existing function
-			prototype[name] = typeof prop[name] == "function" && 
-				typeof _super[name] == "function" && fnTest.test(prop[name]) ?
-				(function(name, fn){
-					return function() {
-						var tmp = this._super;
-						
-						// Add a new ._super() method that is the same method
-						// but on the super-class
-						this._super = _super[name];
-						
-						// The method only need to be bound temporarily, so we
-						// remove it when we're done executing
-						var ret = fn.apply(this, arguments);				
-						this._super = tmp;
-						
-						return ret;
-					};
-				})(name, prop[name]) :
-				prop[name];
-		}
-		
-		// The dummy class constructor
-		function Class() {
-			// All construction is actually done in the init method
-			if ( !initializing && this.init )
-				this.init.apply(this, arguments);
-		}
-		
-		// Populate our constructed prototype object
-		Class.prototype = prototype;
-		
-		// Enforce the constructor to be what we expect
-		Class.prototype.constructor = Class;
-
-		// And make this class extendable
-		Class.extend = arguments.callee;
-		
-		return Class;
-	};
-})();
-
+(function(){var initializing=false,fnTest=/xyz/.test(function(){xyz;})?/\b_super\b/:/.*/;this.Class=function(){};Class.extend=function(prop){var _super=this.prototype;initializing=true;var prototype=new this();initializing=false;for(var name in prop){prototype[name]=typeof prop[name]=="function"&&typeof _super[name]=="function"&&fnTest.test(prop[name])?(function(name,fn){return function(){var tmp=this._super;this._super=_super[name];var ret=fn.apply(this,arguments);this._super=tmp;return ret;};})(name,prop[name]):prop[name];}
+function Class(){if(!initializing&&this.init)
+this.init.apply(this,arguments);}
+Class.prototype=prototype;Class.prototype.constructor=Class;Class.extend=arguments.callee;return Class;};})();
 /*
 *	lib/js/wn/provide.js
 */
diff --git a/version.num b/version.num
index f937f7e..cb16690 100644
--- a/version.num
+++ b/version.num
@@ -1 +1 @@
-233
\ No newline at end of file
+249
\ No newline at end of file
