diff --git a/website/doctype/web_page/web_page.py b/website/doctype/web_page/web_page.py
index 324893d..d902744 100644
--- a/website/doctype/web_page/web_page.py
+++ b/website/doctype/web_page/web_page.py
@@ -42,9 +42,5 @@
 			
 	def prepare_template_args(self):
 		if self.doc.slideshow:
-			slideshow = webnotes.model_wrapper("Website Slideshow", self.doc.slideshow)
-			self.slides = slideshow.doclist.get({"doctype":"Website Slideshow Item"})
-			self.doc.slideshow_header = slideshow.doc.header or ""
-			for s in self.slides:
-				if s.image and not s.image.lower().startswith("http"):
-					s.image = "files/" + s.image
+			from website.helpers.slideshow import get_slideshow
+			get_slideshow(self)
diff --git a/website/doctype/website_script/__init__.py b/website/doctype/website_script/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/website/doctype/website_script/__init__.py
diff --git a/website/doctype/website_script/website_script.py b/website/doctype/website_script/website_script.py
new file mode 100644
index 0000000..928aa9f
--- /dev/null
+++ b/website/doctype/website_script/website_script.py
@@ -0,0 +1,8 @@
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import webnotes
+
+class DocType:
+	def __init__(self, d, dl):
+		self.doc, self.doclist = d, dl
\ No newline at end of file
diff --git a/website/doctype/website_script/website_script.txt b/website/doctype/website_script/website_script.txt
new file mode 100644
index 0000000..cf22537
--- /dev/null
+++ b/website/doctype/website_script/website_script.txt
@@ -0,0 +1,51 @@
+[
+ {
+  "owner": "Administrator", 
+  "docstatus": 0, 
+  "creation": "2012-12-27 11:51:24", 
+  "modified_by": "Administrator", 
+  "modified": "2012-12-27 12:25:04"
+ }, 
+ {
+  "issingle": 1, 
+  "description": "Script to attach to all web pages.", 
+  "doctype": "DocType", 
+  "module": "Website", 
+  "document_type": "Other", 
+  "name": "__common__"
+ }, 
+ {
+  "parent": "Website Script", 
+  "doctype": "DocField", 
+  "name": "__common__", 
+  "label": "Javascript", 
+  "parenttype": "DocType", 
+  "options": "Javascript", 
+  "fieldname": "javascript", 
+  "fieldtype": "Code", 
+  "permlevel": 0, 
+  "parentfield": "fields"
+ }, 
+ {
+  "parent": "Website Script", 
+  "read": 1, 
+  "name": "__common__", 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "parenttype": "DocType", 
+  "role": "Website Manager", 
+  "permlevel": 0, 
+  "parentfield": "permissions"
+ }, 
+ {
+  "name": "Website Script", 
+  "doctype": "DocType"
+ }, 
+ {
+  "doctype": "DocField"
+ }, 
+ {
+  "doctype": "DocPerm"
+ }
+]
\ No newline at end of file
diff --git a/website/doctype/website_settings/website_settings.txt b/website/doctype/website_settings/website_settings.txt
index 4ef8add..78e9336 100644
--- a/website/doctype/website_settings/website_settings.txt
+++ b/website/doctype/website_settings/website_settings.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-07-12 23:29:36", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-25 15:41:48"
+  "modified": "2012-12-27 12:27:02"
  }, 
  {
   "issingle": 1, 
@@ -81,6 +81,15 @@
   "permlevel": 0
  }, 
  {
+  "description": "Background shade of the top menu bar", 
+  "doctype": "DocField", 
+  "label": "Top Bar Background", 
+  "options": "Black\nWhite", 
+  "fieldname": "top_bar_background", 
+  "fieldtype": "Select", 
+  "permlevel": 0
+ }, 
+ {
   "description": "Brand is what appears on the top-right of the toolbar. If it is an image, make sure it\nhas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px", 
   "doctype": "DocField", 
   "label": "Brand HTML", 
@@ -172,22 +181,6 @@
   "permlevel": 0
  }, 
  {
-  "doctype": "DocField", 
-  "label": "Startup", 
-  "fieldname": "analytics", 
-  "fieldtype": "Section Break", 
-  "permlevel": 0
- }, 
- {
-  "description": "Bind events on startup and page change", 
-  "doctype": "DocField", 
-  "label": "Startup Code", 
-  "options": "Javascript", 
-  "fieldname": "startup_code", 
-  "fieldtype": "Code", 
-  "permlevel": 0
- }, 
- {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
diff --git a/website/helpers/product.py b/website/helpers/product.py
index 0497124..1e8257a 100644
--- a/website/helpers/product.py
+++ b/website/helpers/product.py
@@ -2,7 +2,10 @@
 # License: GNU General Public License (v3). For more information see license.txt
 
 from __future__ import unicode_literals
+
 import webnotes
+from webnotes.utils import cstr
+from website.utils import build_html, url_for_website, delete_page_cache
 
 
 @webnotes.whitelist(allow_guest=True)
@@ -26,8 +29,6 @@
 
 @webnotes.whitelist(allow_guest=True)
 def get_product_list(search=None, product_group=None, start=0, limit=10):
-	from webnotes.utils import cstr
-		
 	# base query
 	query = """select name, item_name, page_name, website_image, item_group, 
 			web_long_description as website_description
@@ -81,7 +82,6 @@
 				where item_group in (%s))) """ % (child_groups, child_groups))[0][0]
 
 def get_item_for_list_in_html(r):
-	from website.utils import build_html
 	scrub_item_for_list(r)
 	r.template = "html/product_in_list.html"
 	return build_html(r)
@@ -91,8 +91,7 @@
 		r.website_description = "No description given"
 	if len(r.website_description.split(" ")) > 24:
 		r.website_description = " ".join(r.website_description.split(" ")[:24]) + "..."
-	if r.website_image and not r.website_image.lower().startswith("http"):
-		r.website_image = "files/" + r.website_image
+	r.website_image = url_for_website(r.website_image)
 
 def get_parent_item_groups(item_group_name):
 	item_group = webnotes.doc("Item Group", item_group_name)
@@ -102,6 +101,5 @@
 		order by lft asc""", (item_group.lft, item_group.rgt), as_dict=True)
 		
 def invalidate_cache_for(item_group):
-	from website.utils import delete_page_cache
 	for i in get_parent_item_groups(item_group):
 		delete_page_cache(i.page_name)
\ No newline at end of file
diff --git a/website/helpers/slideshow.py b/website/helpers/slideshow.py
new file mode 100644
index 0000000..2c2ae4b
--- /dev/null
+++ b/website/helpers/slideshow.py
@@ -0,0 +1,26 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import webnotes
+
+def get_slideshow(obj):
+	slideshow = webnotes.model_wrapper("Website Slideshow", obj.doc.slideshow)
+	obj.slides = slideshow.doclist.get({"doctype":"Website Slideshow Item"})
+	obj.doc.slideshow_header = slideshow.doc.header or ""
+	for s in obj.slides:
+		if s.image and not s.image.lower().startswith("http"):
+			s.image = "files/" + s.image
+	
\ No newline at end of file
diff --git a/website/page/website_home/website_home.html b/website/page/website_home/website_home.html
index 8c986cc..b32995b 100644
--- a/website/page/website_home/website_home.html
+++ b/website/page/website_home/website_home.html
@@ -29,18 +29,15 @@
 	<div class="layout-side-section">
 		<div class="psidebar">
 			<div class="section">
-				<p><b>Create website with static pages and blogs</b></p>
-				<ul>
-				<li>"Website Settings" - to setup header and footers.
-				<li>"Web Page" - for static web page.
-				<li>"Blog" - for blog entry.
-				</ul>
-				<p><b>Notes: </b></p>
-				<ul>
-				<li>All pages are accessible via `#` + page name appended to your url.
-				<li>Product catalogue is updated from Item Master (set Show in Website = 'Yes', in
-				 Sales Settings).
-				</ul>			</div>
+				<div class="section-head">Advanced</div>
+				<div class="section-body">
+					<div class="section-item">
+						<a class="section-link" 
+							title = "Javascript to append to the head section of the page."
+							href="#Form/Website Script">Website Script</a>
+					</div>
+				</div>
+			</div>
 		</div>
 	</div>
 	<div style="clear: both;"></div>
diff --git a/website/templates/html/outer.html b/website/templates/html/outer.html
index aef91a9..322ce60 100644
--- a/website/templates/html/outer.html
+++ b/website/templates/html/outer.html
@@ -9,7 +9,7 @@
 	</header>
 	<div id="body_div">
 		<div class="navbar-wrapper">
-		<div class="navbar navbar-inverse" 
+		<div class="navbar{% if top_bar_background=="Black" %} navbar-inverse{% endif %}" 
 			style="margin-bottom: 0px;">
 			<div class="navbar-inner">
 			<div class="container">
@@ -61,7 +61,6 @@
 		</div>
 		</div>
 		<script>$('.dropdown-toggle').dropdown()</script>
-			
 		<div class="content" id="page-{{ name }}" style="display: block;">
 		{% block content %}
 		{% endblock %}
diff --git a/website/templates/html/product_group.html b/website/templates/html/product_group.html
index c44f695..7c22a15 100644
--- a/website/templates/html/product_group.html
+++ b/website/templates/html/product_group.html
@@ -9,7 +9,10 @@
 		<div class="layout-main" style="padding: 30px;">
 			{% include 'html/product_search_box.html' %}
 			{% include 'html/product_breadcrumbs.html' %}
-			{% if description %}
+			{% if slideshow %}<!-- slideshow -->
+			{% include "html/slideshow.html" %}
+			{% endif %}
+			{% if description %}<!-- description -->
 			<div>{{ description or ""}}</div>
 			{% else %}
 			<h3>{{ name }}</h3>
diff --git a/website/templates/html/product_page.html b/website/templates/html/product_page.html
index 898a669..a574cf6 100644
--- a/website/templates/html/product_page.html
+++ b/website/templates/html/product_page.html
@@ -22,19 +22,25 @@
 			<div class="layout-main" style="padding: 30px;">
 				{% include 'html/product_search_box.html' %}
 				{% include 'html/product_breadcrumbs.html' %}
-				<h3>{{ item_name }}</h3>
+				<h3 itemprop="name">{{ item_name }}</h3>
 				<p class="help">Item Code: {{ name }}</p>
-				<div class="product-page-content">
-					<div class="span6">
-					{% if website_image %}
-					<image class="item-main-image" src="{% if website_image.lower().startswith('http') %}{{ website_image}}{% else %}files/{{ website_image }}{% endif %}" />
+				<div class="product-page-content" 
+					itemscope itemtype="http://schema.org/Product">
+					{% if slideshow %}
+						{% include "html/slideshow.html" %}
 					{% else %}
-					<div class="img-area">
-						{% include 'html/product_missing_image.html' %}
+					<div class="span6">
+						{% if website_image %}
+						<image itemprop="image" class="item-main-image" 
+							src="{{ website_image }}" />
+						{% else %}
+						<div class="img-area">
+							{% include 'html/product_missing_image.html' %}
+						</div>
+						{% endif %}
 					</div>
 					{% endif %}
 					<br><br>
-					</div>
 					<div class="span3">
 						<div class="item-price hide">
 							<p>Price:</p>
@@ -44,7 +50,7 @@
 					<div class="clearfix"></div>
 					<div class="span9">
 						<h3>Product Description</h3>
-						<div>
+						<div itemprop="description">
 						{{ web_long_description or web_short_description or 
 							"[No description given]" }}
 						</div>
diff --git a/website/templates/html/slideshow.html b/website/templates/html/slideshow.html
new file mode 100644
index 0000000..8641724
--- /dev/null
+++ b/website/templates/html/slideshow.html
@@ -0,0 +1,21 @@
+{% if slideshow %}
+{{ slideshow_header }}
+<div id="myCarousel" class="carousel slide">
+	<div class="carousel-inner">
+		{% for slide in obj.slides %}
+		<div class="{% if slide.idx==1 %}active {% endif %}item">
+			<img src="{{ slide.image }}" />
+			<div class="carousel-caption">
+				<h4>{{ slide.heading }}</h4>
+				<p>{{ slide.description }}</p>
+			</div>
+		</div>
+		{% endfor %}
+	</div>
+	<a class="carousel-control left" href="#myCarousel"
+		data-slide="prev">&lsaquo;</a>
+	<a class="carousel-control right" href="#myCarousel" 
+		data-slide="next">&rsaquo;</a>
+	</div>
+	<script>$(".carousel").carousel();</script>
+{% endif %}
diff --git a/website/templates/html/web_page.html b/website/templates/html/web_page.html
index 78da963..aaa0aa8 100644
--- a/website/templates/html/web_page.html
+++ b/website/templates/html/web_page.html
@@ -10,27 +10,7 @@
 	<div class="layout-wrapper layout-wrapper-background">
 		<div class="web-content" style="text-align: {{ text_align }};">
 			<div class="layout-main">
-				{% if slideshow %}
-				{{ slideshow_header }}
-			    <div id="myCarousel" class="carousel slide">
-			    	<div class="carousel-inner">
-						{% for slide in obj.slides %}
-						<div class="{% if slide.idx==1 %}active {% endif %}item">
-							<img src="{{ slide.image }}" />
-							<div class="carousel-caption">
-								<h4>{{ slide.heading }}</h4>
-								<p>{{ slide.description }}</p>
-							</div>
-						</div>
-						{% endfor %}
-					</div>
-					<a class="carousel-control left" href="#myCarousel"
-						data-slide="prev">&lsaquo;</a>
-					<a class="carousel-control right" href="#myCarousel" 
-						data-slide="next">&rsaquo;</a>
-					</div>
-					<script>$(".carousel").carousel();</script>
-				{% endif %}
+				{% include "html/slideshow.html" %}
 				{{ main_section }}
 			</div>
 		</div>
diff --git a/website/utils.py b/website/utils.py
index 4af4981..8d24574 100644
--- a/website/utils.py
+++ b/website/utils.py
@@ -226,12 +226,14 @@
 	})
 	
 	settings = webnotes.doc("Website Settings", "Website Settings")
-	for k in ["brand_html", "copyright", "address"]:
+	for k in ["brand_html", "copyright", "address", "top_bar_background"]:
 		if k in settings.fields:
 			ret[k] = settings.fields[k]
 
 	if not ret.brand_html:
 		ret.brand_html = "ERPNext"
+	if not ret.top_bar_background:
+		ret.top_bar_background = "Black"
 	return ret
 
 def get_home_page():
@@ -250,4 +252,10 @@
 		webnotes.cache().delete_keys("page:")
 	
 def delete_page_cache(page_name):
-	webnotes.cache().delete_value("page:" + page_name)
\ No newline at end of file
+	webnotes.cache().delete_value("page:" + page_name)
+	
+def url_for_website(url):
+	if url and not url.lower().startswith("http"):
+		return "files/" + url
+	else:
+		return url
\ No newline at end of file
