diff --git a/core/js/config.php b/core/js/config.php
new file mode 100644
index 0000000000000000000000000000000000000000..bab9e6fd7e678530ac8355647f1916d7f6b61e12
--- /dev/null
+++ b/core/js/config.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Copyright (c) 2013 Lukas Reschke <lukas@statuscode.ch>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+// Set the content type to Javascript
+header("Content-type: text/javascript");
+
+// Disallow caching
+header("Cache-Control: no-cache, must-revalidate"); 
+header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); 
+
+// Enable l10n support
+$l = OC_L10N::get('core');
+
+// Get the config
+$debug = (defined('DEBUG') && DEBUG) ? 'true' : 'false';
+$array = array(
+	"oc_debug" => $debug,
+	"oc_webroot" => "\"".OC::$WEBROOT."\"",
+	"oc_appswebroots" =>  "\"".$_['apps_paths']. "\"", 
+	"oc_current_user" =>  "\"".OC_User::getUser(). "\"",
+	"oc_requesttoken" =>  "\"".$_['requesttoken']. "\"",
+	"datepickerFormatDate" => json_encode($l->l('jsdate', 'jsdate')),
+	"dayNames" =>  json_encode(array((string)$l->t('Sunday'), (string)$l->t('Monday'), (string)$l->t('Tuesday'), (string)$l->t('Wednesday'), (string)$l->t('Thursday'), (string)$l->t('Friday'), (string)$l->t('Saturday'))),
+	"monthNames" => json_encode(array((string)$l->t('January'), (string)$l->t('February'), (string)$l->t('March'), (string)$l->t('April'), (string)$l->t('May'), (string)$l->t('June'), (string)$l->t('July'), (string)$l->t('August'), (string)$l->t('September'), (string)$l->t('October'), (string)$l->t('November'), (string)$l->t('December'))),
+	"firstDay" => json_encode($l->l('firstday', 'firstday')) ,
+	);
+
+// Echo it
+foreach ($array as  $setting => $value) {
+	echo("var ". $setting ."=".$value.";\n");
+}
+?>
+requesttoken = '<?php echo $_['requesttoken']; ?>';
+OC.EventSource.requesttoken=requesttoken;
+$(document).bind('ajaxSend', function(elm, xhr, s) {
+	xhr.setRequestHeader('requesttoken', requesttoken);
+});
\ No newline at end of file
diff --git a/core/templates/layout.base.php b/core/templates/layout.base.php
index 47f4b423b3e92b80b16a02f9950643baa5612a77..47fb75612cf130ea8237a8ab4fa71f38fa49abca 100644
--- a/core/templates/layout.base.php
+++ b/core/templates/layout.base.php
@@ -7,12 +7,7 @@
 		<?php foreach ($_['cssfiles'] as $cssfile): ?>
 			<link rel="stylesheet" href="<?php echo $cssfile; ?>" type="text/css" media="screen" />
 		<?php endforeach; ?>
-		<script type="text/javascript">
-			var oc_debug = <?php echo (defined('DEBUG') && DEBUG) ? 'true' : 'false'; ?>;
-			var oc_webroot = '<?php echo OC::$WEBROOT; ?>';
-			var oc_appswebroots = <?php echo $_['apps_paths'] ?>;
-			var oc_requesttoken = '<?php echo $_['requesttoken']; ?>';
-		</script>
+		<script type="text/javascript" src="<?php echo OC_Helper::linkToRoute('js_config');?>"></script>
 		<?php foreach ($_['jsfiles'] as $jsfile): ?>
 			<script type="text/javascript" src="<?php echo $jsfile; ?>"></script>
 		<?php endforeach; ?>
diff --git a/core/templates/layout.guest.php b/core/templates/layout.guest.php
index 8395426e4e4d5917f367ba746374148dd3b60f51..499d49e445d3694f9d53ac69a68240e7e87dcf2b 100644
--- a/core/templates/layout.guest.php
+++ b/core/templates/layout.guest.php
@@ -7,16 +7,7 @@
 		<?php foreach($_['cssfiles'] as $cssfile): ?>
 			<link rel="stylesheet" href="<?php echo $cssfile; ?>" type="text/css" media="screen" />
 		<?php endforeach; ?>
-		<script type="text/javascript">
-			var oc_debug = <?php echo (defined('DEBUG') && DEBUG) ? 'true' : 'false'; ?>;
-			var oc_webroot = '<?php echo OC::$WEBROOT; ?>';
-			var oc_appswebroots = <?php echo $_['apps_paths'] ?>;
-			var oc_requesttoken = '<?php echo $_['requesttoken']; ?>';
-			var datepickerFormatDate = <?php echo json_encode($l->l('jsdate', 'jsdate')) ?>;
-			var dayNames = <?php echo json_encode(array((string)$l->t('Sunday'), (string)$l->t('Monday'), (string)$l->t('Tuesday'), (string)$l->t('Wednesday'), (string)$l->t('Thursday'), (string)$l->t('Friday'), (string)$l->t('Saturday'))) ?>;
-			var monthNames = <?php echo json_encode(array((string)$l->t('January'), (string)$l->t('February'), (string)$l->t('March'), (string)$l->t('April'), (string)$l->t('May'), (string)$l->t('June'), (string)$l->t('July'), (string)$l->t('August'), (string)$l->t('September'), (string)$l->t('October'), (string)$l->t('November'), (string)$l->t('December'))) ?>;
-			var firstDay = <?php echo json_encode($l->l('firstday', 'firstday')) ?>;
-		</script>
+		<script type="text/javascript" src="<?php echo OC_Helper::linkToRoute('js_config');?>"></script>
 		<?php foreach($_['jsfiles'] as $jsfile): ?>
 			<script type="text/javascript" src="<?php echo $jsfile; ?>"></script>
 		<?php endforeach; ?>
diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php
index a16d2c9e55d0f0807695427f99871c7676a3cad6..0e130c76d83747bf2539d15150457b8fccbb4bad 100644
--- a/core/templates/layout.user.php
+++ b/core/templates/layout.user.php
@@ -7,27 +7,10 @@
 		<?php foreach($_['cssfiles'] as $cssfile): ?>
 			<link rel="stylesheet" href="<?php echo $cssfile; ?>" type="text/css" media="screen" />
 		<?php endforeach; ?>
-		<script type="text/javascript">
-			var oc_debug = <?php echo (defined('DEBUG') && DEBUG) ? 'true' : 'false'; ?>;
-			var oc_webroot = '<?php echo OC::$WEBROOT; ?>';
-			var oc_appswebroots = <?php echo $_['apps_paths'] ?>;
-			var oc_current_user = '<?php echo OC_User::getUser() ?>';
-			var oc_requesttoken = '<?php echo $_['requesttoken']; ?>';
-			var datepickerFormatDate = <?php echo json_encode($l->l('jsdate', 'jsdate')) ?>;
-			var dayNames = <?php echo json_encode(array((string)$l->t('Sunday'), (string)$l->t('Monday'), (string)$l->t('Tuesday'), (string)$l->t('Wednesday'), (string)$l->t('Thursday'), (string)$l->t('Friday'), (string)$l->t('Saturday'))) ?>;
-			var monthNames = <?php echo json_encode(array((string)$l->t('January'), (string)$l->t('February'), (string)$l->t('March'), (string)$l->t('April'), (string)$l->t('May'), (string)$l->t('June'), (string)$l->t('July'), (string)$l->t('August'), (string)$l->t('September'), (string)$l->t('October'), (string)$l->t('November'), (string)$l->t('December'))) ?>;
-			var firstDay = <?php echo json_encode($l->l('firstday', 'firstday')) ?>;
-		</script>
+		<script type="text/javascript" src="<?php echo OC_Helper::linkToRoute('js_config');?>"></script>
 		<?php foreach($_['jsfiles'] as $jsfile): ?>
 			<script type="text/javascript" src="<?php echo $jsfile; ?>"></script>
 		<?php endforeach; ?>
-		<script type="text/javascript">
-			requesttoken = '<?php echo $_['requesttoken']; ?>';
-			OC.EventSource.requesttoken=requesttoken;
-			$(document).bind('ajaxSend', function(elm, xhr, s) {
-				xhr.setRequestHeader('requesttoken', requesttoken);
-			});
-		</script>
 		<?php foreach($_['headers'] as $header): ?>
 			<?php
 				echo '<'.$header['tag'].' ';