diff --git a/bt5/erp5_jquery_plugin_json/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/json.xml b/bt5/erp5_jquery_plugin_json/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/json.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0dee5fd32d9d18c284208f9a77bb059a16487566
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/json.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Folder" module="OFS.Folder"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>json</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_jquery_plugin_json/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/json/jquery.json.js.xml b/bt5/erp5_jquery_plugin_json/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/json/jquery.json.js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1b56ad60e437abe3e5206573e633f6da5a7e6624
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/json/jquery.json.js.xml
@@ -0,0 +1,247 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="File" module="OFS.Image"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Cacheable__manager_id</string> </key>
+            <value> <string>http_cache</string> </value>
+        </item>
+        <item>
+            <key> <string>_EtagSupport__etag</string> </key>
+            <value> <string>ts58170054.11</string> </value>
+        </item>
+        <item>
+            <key> <string>__name__</string> </key>
+            <value> <string>jquery.json.js</string> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>application/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>data</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+/**\n
+ * jQuery JSON plugin 2.4.0\n
+ *\n
+ * @author Brantley Harris, 2009-2011\n
+ * @author Timo Tijhof, 2011-2012\n
+ * @source This plugin is heavily influenced by MochiKit\'s serializeJSON, which is\n
+ *         copyrighted 2005 by Bob Ippolito.\n
+ * @source Brantley Harris wrote this plugin. It is based somewhat on the JSON.org\n
+ *         website\'s http://www.json.org/json2.js, which proclaims:\n
+ *         "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that\n
+ *         I uphold.\n
+ * @license MIT License <http://www.opensource.org/licenses/mit-license.php>\n
+ */\n
+(function ($) {\n
+\t\'use strict\';\n
+\n
+\tvar escape = /["\\\\\\x00-\\x1f\\x7f-\\x9f]/g,\n
+\t\tmeta = {\n
+\t\t\t\'\\b\': \'\\\\b\',\n
+\t\t\t\'\\t\': \'\\\\t\',\n
+\t\t\t\'\\n\': \'\\\\n\',\n
+\t\t\t\'\\f\': \'\\\\f\',\n
+\t\t\t\'\\r\': \'\\\\r\',\n
+\t\t\t\'"\' : \'\\\\"\',\n
+\t\t\t\'\\\\\': \'\\\\\\\\\'\n
+\t\t},\n
+\t\thasOwn = Object.prototype.hasOwnProperty;\n
+\n
+\t/**\n
+\t * jQuery.toJSON\n
+\t * Converts the given argument into a JSON representation.\n
+\t *\n
+\t * @param o {Mixed} The json-serializable *thing* to be converted\n
+\t *\n
+\t * If an object has a toJSON prototype, that will be used to get the representation.\n
+\t * Non-integer/string keys are skipped in the object, as are keys that point to a\n
+\t * function.\n
+\t *\n
+\t */\n
+\t$.toJSON = typeof JSON === \'object\' && JSON.stringify ? JSON.stringify : function (o) {\n
+\t\tif (o === null) {\n
+\t\t\treturn \'null\';\n
+\t\t}\n
+\n
+\t\tvar pairs, k, name, val,\n
+\t\t\ttype = $.type(o);\n
+\n
+\t\tif (type === \'undefined\') {\n
+\t\t\treturn undefined;\n
+\t\t}\n
+\n
+\t\t// Also covers instantiated Number and Boolean objects,\n
+\t\t// which are typeof \'object\' but thanks to $.type, we\n
+\t\t// catch them here. I don\'t know whether it is right\n
+\t\t// or wrong that instantiated primitives are not\n
+\t\t// exported to JSON as an {"object":..}.\n
+\t\t// We choose this path because that\'s what the browsers did.\n
+\t\tif (type === \'number\' || type === \'boolean\') {\n
+\t\t\treturn String(o);\n
+\t\t}\n
+\t\tif (type === \'string\') {\n
+\t\t\treturn $.quoteString(o);\n
+\t\t}\n
+\t\tif (typeof o.toJSON === \'function\') {\n
+\t\t\treturn $.toJSON(o.toJSON());\n
+\t\t}\n
+\t\tif (type === \'date\') {\n
+\t\t\tvar month = o.getUTCMonth() + 1,\n
+\t\t\t\tday = o.getUTCDate(),\n
+\t\t\t\tyear = o.getUTCFullYear(),\n
+\t\t\t\thours = o.getUTCHours(),\n
+\t\t\t\tminutes = o.getUTCMinutes(),\n
+\t\t\t\tseconds = o.getUTCSeconds(),\n
+\t\t\t\tmilli = o.getUTCMilliseconds();\n
+\n
+\t\t\tif (month < 10) {\n
+\t\t\t\tmonth = \'0\' + month;\n
+\t\t\t}\n
+\t\t\tif (day < 10) {\n
+\t\t\t\tday = \'0\' + day;\n
+\t\t\t}\n
+\t\t\tif (hours < 10) {\n
+\t\t\t\thours = \'0\' + hours;\n
+\t\t\t}\n
+\t\t\tif (minutes < 10) {\n
+\t\t\t\tminutes = \'0\' + minutes;\n
+\t\t\t}\n
+\t\t\tif (seconds < 10) {\n
+\t\t\t\tseconds = \'0\' + seconds;\n
+\t\t\t}\n
+\t\t\tif (milli < 100) {\n
+\t\t\t\tmilli = \'0\' + milli;\n
+\t\t\t}\n
+\t\t\tif (milli < 10) {\n
+\t\t\t\tmilli = \'0\' + milli;\n
+\t\t\t}\n
+\t\t\treturn \'"\' + year + \'-\' + month + \'-\' + day + \'T\' +\n
+\t\t\t\thours + \':\' + minutes + \':\' + seconds +\n
+\t\t\t\t\'.\' + milli + \'Z"\';\n
+\t\t}\n
+\n
+\t\tpairs = [];\n
+\n
+\t\tif ($.isArray(o)) {\n
+\t\t\tfor (k = 0; k < o.length; k++) {\n
+\t\t\t\tpairs.push($.toJSON(o[k]) || \'null\');\n
+\t\t\t}\n
+\t\t\treturn \'[\' + pairs.join(\',\') + \']\';\n
+\t\t}\n
+\n
+\t\t// Any other object (plain object, RegExp, ..)\n
+\t\t// Need to do typeof instead of $.type, because we also\n
+\t\t// want to catch non-plain objects.\n
+\t\tif (typeof o === \'object\') {\n
+\t\t\tfor (k in o) {\n
+\t\t\t\t// Only include own properties,\n
+\t\t\t\t// Filter out inherited prototypes\n
+\t\t\t\tif (hasOwn.call(o, k)) {\n
+\t\t\t\t\t// Keys must be numerical or string. Skip others\n
+\t\t\t\t\ttype = typeof k;\n
+\t\t\t\t\tif (type === \'number\') {\n
+\t\t\t\t\t\tname = \'"\' + k + \'"\';\n
+\t\t\t\t\t} else if (type === \'string\') {\n
+\t\t\t\t\t\tname = $.quoteString(k);\n
+\t\t\t\t\t} else {\n
+\t\t\t\t\t\tcontinue;\n
+\t\t\t\t\t}\n
+\t\t\t\t\ttype = typeof o[k];\n
+\n
+\t\t\t\t\t// Invalid values like these return undefined\n
+\t\t\t\t\t// from toJSON, however those object members\n
+\t\t\t\t\t// shouldn\'t be included in the JSON string at all.\n
+\t\t\t\t\tif (type !== \'function\' && type !== \'undefined\') {\n
+\t\t\t\t\t\tval = $.toJSON(o[k]);\n
+\t\t\t\t\t\tpairs.push(name + \':\' + val);\n
+\t\t\t\t\t}\n
+\t\t\t\t}\n
+\t\t\t}\n
+\t\t\treturn \'{\' + pairs.join(\',\') + \'}\';\n
+\t\t}\n
+\t};\n
+\n
+\t/**\n
+\t * jQuery.evalJSON\n
+\t * Evaluates a given json string.\n
+\t *\n
+\t * @param str {String}\n
+\t */\n
+\t$.evalJSON = typeof JSON === \'object\' && JSON.parse ? JSON.parse : function (str) {\n
+\t\t/*jshint evil: true */\n
+\t\treturn eval(\'(\' + str + \')\');\n
+\t};\n
+\n
+\t/**\n
+\t * jQuery.secureEvalJSON\n
+\t * Evals JSON in a way that is *more* secure.\n
+\t *\n
+\t * @param str {String}\n
+\t */\n
+\t$.secureEvalJSON = typeof JSON === \'object\' && JSON.parse ? JSON.parse : function (str) {\n
+\t\tvar filtered =\n
+\t\t\tstr\n
+\t\t\t.replace(/\\\\["\\\\\\/bfnrtu]/g, \'@\')\n
+\t\t\t.replace(/"[^"\\\\\\n\\r]*"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, \']\')\n
+\t\t\t.replace(/(?:^|:|,)(?:\\s*\\[)+/g, \'\');\n
+\n
+\t\tif (/^[\\],:{}\\s]*$/.test(filtered)) {\n
+\t\t\t/*jshint evil: true */\n
+\t\t\treturn eval(\'(\' + str + \')\');\n
+\t\t}\n
+\t\tthrow new SyntaxError(\'Error parsing JSON, source is not valid.\');\n
+\t};\n
+\n
+\t/**\n
+\t * jQuery.quoteString\n
+\t * Returns a string-repr of a string, escaping quotes intelligently.\n
+\t * Mostly a support function for toJSON.\n
+\t * Examples:\n
+\t * >>> jQuery.quoteString(\'apple\')\n
+\t * "apple"\n
+\t *\n
+\t * >>> jQuery.quoteString(\'"Where are we going?", she asked.\')\n
+\t * "\\"Where are we going?\\", she asked."\n
+\t */\n
+\t$.quoteString = function (str) {\n
+\t\tif (str.match(escape)) {\n
+\t\t\treturn \'"\' + str.replace(escape, function (a) {\n
+\t\t\t\tvar c = meta[a];\n
+\t\t\t\tif (typeof c === \'string\') {\n
+\t\t\t\t\treturn c;\n
+\t\t\t\t}\n
+\t\t\t\tc = a.charCodeAt();\n
+\t\t\t\treturn \'\\\\u00\' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);\n
+\t\t\t}) + \'"\';\n
+\t\t}\n
+\t\treturn \'"\' + str + \'"\';\n
+\t};\n
+\n
+}(jQuery));\n
+
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>precondition</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>size</string> </key>
+            <value> <int>5230</int> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_jquery_plugin_json/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/json/jquery.json.min.js.xml b/bt5/erp5_jquery_plugin_json/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/json/jquery.json.min.js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..485c5dc186e22ec076ae76a47882d9ce50fae43c
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/json/jquery.json.min.js.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="File" module="OFS.Image"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Cacheable__manager_id</string> </key>
+            <value> <string>http_cache</string> </value>
+        </item>
+        <item>
+            <key> <string>_EtagSupport__etag</string> </key>
+            <value> <string>ts58170082.7</string> </value>
+        </item>
+        <item>
+            <key> <string>__name__</string> </key>
+            <value> <string>jquery.json.min.js</string> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>application/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>data</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+/*! jQuery JSON plugin 2.4.0 | code.google.com/p/jquery-json */\n
+(function($){\'use strict\';var escape=/["\\\\\\x00-\\x1f\\x7f-\\x9f]/g,meta={\'\\b\':\'\\\\b\',\'\\t\':\'\\\\t\',\'\\n\':\'\\\\n\',\'\\f\':\'\\\\f\',\'\\r\':\'\\\\r\',\'"\':\'\\\\"\',\'\\\\\':\'\\\\\\\\\'},hasOwn=Object.prototype.hasOwnProperty;$.toJSON=typeof JSON===\'object\'&&JSON.stringify?JSON.stringify:function(o){if(o===null){return\'null\';}\n
+var pairs,k,name,val,type=$.type(o);if(type===\'undefined\'){return undefined;}\n
+if(type===\'number\'||type===\'boolean\'){return String(o);}\n
+if(type===\'string\'){return $.quoteString(o);}\n
+if(typeof o.toJSON===\'function\'){return $.toJSON(o.toJSON());}\n
+if(type===\'date\'){var month=o.getUTCMonth()+1,day=o.getUTCDate(),year=o.getUTCFullYear(),hours=o.getUTCHours(),minutes=o.getUTCMinutes(),seconds=o.getUTCSeconds(),milli=o.getUTCMilliseconds();if(month<10){month=\'0\'+month;}\n
+if(day<10){day=\'0\'+day;}\n
+if(hours<10){hours=\'0\'+hours;}\n
+if(minutes<10){minutes=\'0\'+minutes;}\n
+if(seconds<10){seconds=\'0\'+seconds;}\n
+if(milli<100){milli=\'0\'+milli;}\n
+if(milli<10){milli=\'0\'+milli;}\n
+return\'"\'+year+\'-\'+month+\'-\'+day+\'T\'+\n
+hours+\':\'+minutes+\':\'+seconds+\'.\'+milli+\'Z"\';}\n
+pairs=[];if($.isArray(o)){for(k=0;k<o.length;k++){pairs.push($.toJSON(o[k])||\'null\');}\n
+return\'[\'+pairs.join(\',\')+\']\';}\n
+if(typeof o===\'object\'){for(k in o){if(hasOwn.call(o,k)){type=typeof k;if(type===\'number\'){name=\'"\'+k+\'"\';}else if(type===\'string\'){name=$.quoteString(k);}else{continue;}\n
+type=typeof o[k];if(type!==\'function\'&&type!==\'undefined\'){val=$.toJSON(o[k]);pairs.push(name+\':\'+val);}}}\n
+return\'{\'+pairs.join(\',\')+\'}\';}};$.evalJSON=typeof JSON===\'object\'&&JSON.parse?JSON.parse:function(str){return eval(\'(\'+str+\')\');};$.secureEvalJSON=typeof JSON===\'object\'&&JSON.parse?JSON.parse:function(str){var filtered=str.replace(/\\\\["\\\\\\/bfnrtu]/g,\'@\').replace(/"[^"\\\\\\n\\r]*"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,\']\').replace(/(?:^|:|,)(?:\\s*\\[)+/g,\'\');if(/^[\\],:{}\\s]*$/.test(filtered)){return eval(\'(\'+str+\')\');}\n
+throw new SyntaxError(\'Error parsing JSON, source is not valid.\');};$.quoteString=function(str){if(str.match(escape)){return\'"\'+str.replace(escape,function(a){var c=meta[a];if(typeof c===\'string\'){return c;}\n
+c=a.charCodeAt();return\'\\\\u00\'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+\'"\';}\n
+return\'"\'+str+\'"\';};}(jQuery));
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>precondition</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>size</string> </key>
+            <value> <int>2259</int> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_jquery_plugin_json/bt/change_log b/bt5/erp5_jquery_plugin_json/bt/change_log
new file mode 100644
index 0000000000000000000000000000000000000000..d294f760abaf2916b987592a99601d7491b8eccf
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/bt/change_log
@@ -0,0 +1,2 @@
+2013-01-14 Kazuhiko
+* initial commit
\ No newline at end of file
diff --git a/bt5/erp5_jquery_plugin_json/bt/copyright_list b/bt5/erp5_jquery_plugin_json/bt/copyright_list
new file mode 100644
index 0000000000000000000000000000000000000000..bdf92d4e6ddd570cb93b51f800b971fc5bbc953d
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/bt/copyright_list
@@ -0,0 +1 @@
+2013 漏 Nexedi SA
\ No newline at end of file
diff --git a/bt5/erp5_jquery_plugin_json/bt/dependency_list b/bt5/erp5_jquery_plugin_json/bt/dependency_list
new file mode 100644
index 0000000000000000000000000000000000000000..a3d3a39331b4f672bbc4a7c088691cfaab593b1c
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/bt/dependency_list
@@ -0,0 +1 @@
+erp5_jquery
\ No newline at end of file
diff --git a/bt5/erp5_jquery_plugin_json/bt/description b/bt5/erp5_jquery_plugin_json/bt/description
new file mode 100644
index 0000000000000000000000000000000000000000..bcbb93e6e96e245ab9a162f082e92916718763ed
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/bt/description
@@ -0,0 +1,2 @@
+This Business Template contains only static files of jquery-json Plugin 2.4.
+* https://code.google.com/p/jquery-json/
\ No newline at end of file
diff --git a/bt5/erp5_jquery_plugin_json/bt/license b/bt5/erp5_jquery_plugin_json/bt/license
new file mode 100644
index 0000000000000000000000000000000000000000..8ab70c0254878ca8a5a15e98c7d32b4f7c5710c9
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/bt/license
@@ -0,0 +1 @@
+MIT
\ No newline at end of file
diff --git a/bt5/erp5_jquery_plugin_json/bt/maintainer_list b/bt5/erp5_jquery_plugin_json/bt/maintainer_list
new file mode 100644
index 0000000000000000000000000000000000000000..91fac13497f89ca1de121ab52e2be6d076c5c252
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/bt/maintainer_list
@@ -0,0 +1 @@
+kazuhiko
\ No newline at end of file
diff --git a/bt5/erp5_jquery_plugin_json/bt/revision b/bt5/erp5_jquery_plugin_json/bt/revision
new file mode 100644
index 0000000000000000000000000000000000000000..56a6051ca2b02b04ef92d5150c9ef600403cb1de
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/bt/revision
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git a/bt5/erp5_jquery_plugin_json/bt/template_format_version b/bt5/erp5_jquery_plugin_json/bt/template_format_version
new file mode 100644
index 0000000000000000000000000000000000000000..56a6051ca2b02b04ef92d5150c9ef600403cb1de
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/bt/template_format_version
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git a/bt5/erp5_jquery_plugin_json/bt/template_path_list b/bt5/erp5_jquery_plugin_json/bt/template_path_list
new file mode 100644
index 0000000000000000000000000000000000000000..416d85724d554d1d17b0386dc3a98834b5fa8d1b
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/bt/template_path_list
@@ -0,0 +1,2 @@
+portal_skins/erp5_jquery/jquery/plugin/json
+portal_skins/erp5_jquery/jquery/plugin/json/**
\ No newline at end of file
diff --git a/bt5/erp5_jquery_plugin_json/bt/title b/bt5/erp5_jquery_plugin_json/bt/title
new file mode 100644
index 0000000000000000000000000000000000000000..7cc9980d53823303544e213250e725ebeac79b2f
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/bt/title
@@ -0,0 +1 @@
+erp5_jquery_plugin_json
\ No newline at end of file
diff --git a/bt5/erp5_jquery_plugin_json/bt/version b/bt5/erp5_jquery_plugin_json/bt/version
new file mode 100644
index 0000000000000000000000000000000000000000..48360de846a2e022a0b981d250895f20d3480d34
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_json/bt/version
@@ -0,0 +1 @@
+5.4.7
\ No newline at end of file