Merge branch '1209' of github.com:webnotes/erpnext into 1209
diff --git a/home/page/profile_settings/profile_settings.js b/home/page/profile_settings/profile_settings.js
index e9cd81f..a0bb49a 100644
--- a/home/page/profile_settings/profile_settings.js
+++ b/home/page/profile_settings/profile_settings.js
@@ -27,7 +27,18 @@
 		this.wrapper.appframe = new wn.ui.AppFrame($(this.wrapper).find('.layout-appframe'), 'Profile Settings');
 		this.wrapper.appframe.add_button('Change Password', this.change_password);
 		this.wrapper.appframe.add_button('Change Background', this.change_background);
-		
+		this.wrapper.appframe.add_label("Set Theme:");
+		this.wrapper.appframe.add_select("Theme", 
+			["Default", "Desert", "Sky", "Tropic", "Snow", "Sun"]).change(function() {
+				erpnext.set_theme($(this).val().toLowerCase());
+			}).change(function() {
+				wn.call({
+					module: "home",
+					page: "profile_settings",
+					method: "set_user_theme",
+					args: {theme: $(this).val() }
+				})
+			});
 		this.tab = make_table($a($(this.wrapper).find('.layout-main').get(0), 'div', '', {marginTop:'19px'}), 
 			1, 2, '90%', ['50%', '50%'], {padding:'11px'})
 		this.img = $a($td(this.tab, 0, 0), 'img', '', {width: '120px', maxHeight:'200px'});
diff --git a/home/page/profile_settings/profile_settings.py b/home/page/profile_settings/profile_settings.py
index 0de424f..4aed1ce 100644
--- a/home/page/profile_settings/profile_settings.py
+++ b/home/page/profile_settings/profile_settings.py
@@ -110,3 +110,7 @@
 	webnotes.conn.set_value('Profile', user, 'background_image', fid)
 	
 	return fid
+
+@webnotes.whitelist()	
+def set_user_theme():
+	webnotes.conn.set_default("theme", webnotes.form_dict.theme, webnotes.session.user)
diff --git a/public/build.json b/public/build.json
index 8764bec..7ff8ac0 100644
--- a/public/build.json
+++ b/public/build.json
@@ -1,20 +1,20 @@
 {
 	"public/css/all-web.css": [
-		"app/startup/startup.css",
+		"app/public/js/startup.css",
 		"app/website/css/website.css"	
 	],
 	"public/css/all-app.css": [
-		"app/startup/startup.css"
+		"app/public/js/startup.css"
 	],
 	"public/js/all-web.js": [
-		"app/startup/startup.js",
+		"app/public/js/startup.js",
 		"app/public/js/conf.js"
 	],
 	"public/js/all-app.js": [
-		"app/startup/startup.js",
-		"app/startup/js/modules.js",
-		"app/startup/js/toolbar.js",
-		"app/startup/js/feature_setup.js",
+		"app/public/js/startup.js",
+		"app/public/js/modules.js",
+		"app/public/js/toolbar.js",
+		"app/public/js/feature_setup.js",
 		"app/public/js/conf.js"
 	],
 }
\ No newline at end of file
diff --git a/startup/js/feature_setup.js b/public/js/feature_setup.js
similarity index 100%
rename from startup/js/feature_setup.js
rename to public/js/feature_setup.js
diff --git a/startup/js/modules.js b/public/js/modules.js
similarity index 100%
rename from startup/js/modules.js
rename to public/js/modules.js
diff --git a/startup/startup.css b/public/js/startup.css
similarity index 100%
rename from startup/startup.css
rename to public/js/startup.css
diff --git a/startup/startup.js b/public/js/startup.js
similarity index 85%
rename from startup/startup.js
rename to public/js/startup.js
index 73938db..0b43183 100644
--- a/startup/startup.js
+++ b/public/js/startup.js
@@ -58,6 +58,9 @@
 		if(wn.boot.user_background) {
 			erpnext.set_user_background(wn.boot.user_background);
 		}
+		if(wn.boot.profile.defaults.theme) {
+			erpnext.set_theme(wn.boot.profile.defaults.theme[0].toLowerCase());
+		}
 
 		// always allow apps
 		wn.boot.profile.allow_modules = wn.boot.profile.allow_modules.concat(
@@ -205,4 +208,48 @@
 	if(cur_frm)
 		cur_frm.save();
 	return false;
-});
\ No newline at end of file
+});
+
+// theme setter
+
+erpnext.themes = {
+	metal: {
+		sidebar: "#f2f2f2",
+		titlebar: "#dfdfdf",
+		toolbar: "#e9e9e9"
+	},
+	desert: {
+		sidebar: "#FFFDF7",
+		titlebar: "#DAD4C2",
+		toolbar: "#FAF6E9"
+	},
+	tropic: {
+		sidebar: "#FAFFF7",
+		toolbar: "#EEFAE9",
+		titlebar: "#D7ECD1"
+	},
+	sky: {
+		sidebar: "#F7FFFE",
+		toolbar: "#E9F9FA",
+		titlebar: "#D7F5F7"
+	},
+	snow: {
+		sidebar: "#fff",
+		titlebar: "#fff",
+		toolbar: "#fff"
+	},
+	sun: {
+		sidebar: "#FFFFEF",
+		titlebar: "lightYellow",
+		toolbar: "#FFFDCA"		
+	}
+}
+
+erpnext.set_theme = function(theme) {
+	wn.dom.set_style(repl(".layout-wrapper-background { \
+		background-color: %(sidebar)s !important; }\
+	.appframe-toolbar { \
+		background-color: %(toolbar)s !important; }\
+	.appframe-titlebar { \
+		background-color: %(titlebar)s !important; }", erpnext.themes[theme]));
+}
\ No newline at end of file
diff --git a/public/js/themes.js b/public/js/themes.js
new file mode 100644
index 0000000..a60d3cf
--- /dev/null
+++ b/public/js/themes.js
@@ -0,0 +1,41 @@
+erpnext.themes = {
+	metal: {
+		sidebar: "#f2f2f2",
+		titlebar: "#dfdfdf",
+		toolbar: "#e9e9e9"
+	},
+	desert: {
+		sidebar: "#FFFDF7",
+		titlebar: "#DAD4C2",
+		toolbar: "#FAF6E9"
+	},
+	tropic: {
+		sidebar: "#FAFFF7",
+		toolbar: "#EEFAE9",
+		titlebar: "#D7ECD1"
+	},
+	sky: {
+		sidebar: "#F7FFFE",
+		toolbar: "#E9F9FA",
+		titlebar: "#D7F5F7"
+	},
+	snow: {
+		sidebar: "#fff",
+		titlebar: "#fff",
+		toolbar: "#fff"
+	},
+	sun: {
+		sidebar: "#FFFFEF",
+		titlebar: "lightYellow",
+		toolbar: "#FFFDCA"		
+	}
+}
+
+erpnext.set_theme = function(theme) {
+	wn.dom.set_style(repl(".layout-wrapper-background { \
+		background-color: %(sidebar)s !important; }\
+	.appframe-toolbar { \
+		background-color: %(toolbar)s !important; }\
+	.appframe-titlebar { \
+		background-color: %(titlebar)s !important; }", erpnext.themes[theme]));
+}
\ No newline at end of file
diff --git a/startup/js/toolbar.js b/public/js/toolbar.js
similarity index 100%
rename from startup/js/toolbar.js
rename to public/js/toolbar.js