View | Details | Raw Unified | Return to bug 10858
Collapse All | Expand All

(-)a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc (-2 lines)
Lines 79-86 Link Here
79
<script type="text/javascript" src="[% interface %]/[% theme %]/lib/jquery/jquery-ui.js"></script>
79
<script type="text/javascript" src="[% interface %]/[% theme %]/lib/jquery/jquery-ui.js"></script>
80
<script type="text/javascript" src="[% interface %]/[% theme %]/lib/bootstrap/js/bootstrap.min.js"></script>
80
<script type="text/javascript" src="[% interface %]/[% theme %]/lib/bootstrap/js/bootstrap.min.js"></script>
81
<script type="text/javascript" src="[% interface %]/[% theme %]/js/global.js"></script>
81
<script type="text/javascript" src="[% interface %]/[% theme %]/js/global.js"></script>
82
<script type="text/javascript" src="[% interface %]/[% theme %]/lib/jquery/jquery.js"></script>
83
<script type="text/javascript" src="[% interface %]/[% theme %]/lib/jquery/plugins/jquery.json.js"></script>
84
<script type="text/javascript" src="[% interface %]/[% theme %]/lib/jquery/plugins/jquery.cookie.min.js"></script>
82
<script type="text/javascript" src="[% interface %]/[% theme %]/lib/jquery/plugins/jquery.cookie.min.js"></script>
85
<script type="text/javascript" src="[% interface %]/[% theme %]/js/commons.js"></script>
83
<script type="text/javascript" src="[% interface %]/[% theme %]/js/commons.js"></script>
86
<script type="text/javascript">
84
<script type="text/javascript">
(-)a/koha-tmpl/opac-tmpl/bootstrap/lib/jquery/plugins/jquery.json.js (-199 lines)
Lines 1-199 Link Here
1
/**
2
 * jQuery JSON plugin 2.4-alpha
3
 *
4
 * @author Brantley Harris, 2009-2011
5
 * @author Timo Tijhof, 2011-2012
6
 * @source This plugin is heavily influenced by MochiKit's serializeJSON, which is
7
 *         copyrighted 2005 by Bob Ippolito.
8
 * @source Brantley Harris wrote this plugin. It is based somewhat on the JSON.org
9
 *         website's http://www.json.org/json2.js, which proclaims:
10
 *         "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
11
 *         I uphold.
12
 * @license MIT License <http://www.opensource.org/licenses/mit-license.php>
13
 */
14
(function ($) {
15
	'use strict';
16
17
	var escape = /["\\\x00-\x1f\x7f-\x9f]/g,
18
		meta = {
19
			'\b': '\\b',
20
			'\t': '\\t',
21
			'\n': '\\n',
22
			'\f': '\\f',
23
			'\r': '\\r',
24
			'"' : '\\"',
25
			'\\': '\\\\'
26
		},
27
		hasOwn = Object.prototype.hasOwnProperty;
28
29
	/**
30
	 * jQuery.toJSON
31
	 * Converts the given argument into a JSON representation.
32
	 *
33
	 * @param o {Mixed} The json-serializable *thing* to be converted
34
	 *
35
	 * If an object has a toJSON prototype, that will be used to get the representation.
36
	 * Non-integer/string keys are skipped in the object, as are keys that point to a
37
	 * function.
38
	 *
39
	 */
40
	$.toJSON = typeof JSON === 'object' && JSON.stringify ? JSON.stringify : function (o) {
41
		if (o === null) {
42
			return 'null';
43
		}
44
45
		var pairs, k, name, val,
46
			type = $.type(o);
47
48
		if (type === 'undefined') {
49
			return undefined;
50
		}
51
52
		// Also covers instantiated Number and Boolean objects,
53
		// which are typeof 'object' but thanks to $.type, we
54
		// catch them here. I don't know whether it is right
55
		// or wrong that instantiated primitives are not
56
		// exported to JSON as an {"object":..}.
57
		// We choose this path because that's what the browsers did.
58
		if (type === 'number' || type === 'boolean') {
59
			return String(o);
60
		}
61
		if (type === 'string') {
62
			return $.quoteString(o);
63
		}
64
		if (typeof o.toJSON === 'function') {
65
			return $.toJSON(o.toJSON());
66
		}
67
		if (type === 'date') {
68
			var month = o.getUTCMonth() + 1,
69
				day = o.getUTCDate(),
70
				year = o.getUTCFullYear(),
71
				hours = o.getUTCHours(),
72
				minutes = o.getUTCMinutes(),
73
				seconds = o.getUTCSeconds(),
74
				milli = o.getUTCMilliseconds();
75
76
			if (month < 10) {
77
				month = '0' + month;
78
			}
79
			if (day < 10) {
80
				day = '0' + day;
81
			}
82
			if (hours < 10) {
83
				hours = '0' + hours;
84
			}
85
			if (minutes < 10) {
86
				minutes = '0' + minutes;
87
			}
88
			if (seconds < 10) {
89
				seconds = '0' + seconds;
90
			}
91
			if (milli < 100) {
92
				milli = '0' + milli;
93
			}
94
			if (milli < 10) {
95
				milli = '0' + milli;
96
			}
97
			return '"' + year + '-' + month + '-' + day + 'T' +
98
				hours + ':' + minutes + ':' + seconds +
99
				'.' + milli + 'Z"';
100
		}
101
102
		pairs = [];
103
104
		if ($.isArray(o)) {
105
			for (k = 0; k < o.length; k++) {
106
				pairs.push($.toJSON(o[k]) || 'null');
107
			}
108
			return '[' + pairs.join(',') + ']';
109
		}
110
111
		// Any other object (plain object, RegExp, ..)
112
		// Need to do typeof instead of $.type, because we also
113
		// want to catch non-plain objects.
114
		if (typeof o === 'object') {
115
			for (k in o) {
116
				// Only include own properties,
117
				// Filter out inherited prototypes
118
				if (hasOwn.call(o, k)) {
119
					// Keys must be numerical or string. Skip others
120
					type = typeof k;
121
					if (type === 'number') {
122
						name = '"' + k + '"';
123
					} else if (type === 'string') {
124
						name = $.quoteString(k);
125
					} else {
126
						continue;
127
					}
128
					type = typeof o[k];
129
130
					// Invalid values like these return undefined
131
					// from toJSON, however those object members
132
					// shouldn't be included in the JSON string at all.
133
					if (type !== 'function' && type !== 'undefined') {
134
						val = $.toJSON(o[k]);
135
						pairs.push(name + ':' + val);
136
					}
137
				}
138
			}
139
			return '{' + pairs.join(',') + '}';
140
		}
141
	};
142
143
	/**
144
	 * jQuery.evalJSON
145
	 * Evaluates a given json string.
146
	 *
147
	 * @param str {String}
148
	 */
149
	$.evalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
150
		/*jshint evil: true */
151
		return eval('(' + str + ')');
152
	};
153
154
	/**
155
	 * jQuery.secureEvalJSON
156
	 * Evals JSON in a way that is *more* secure.
157
	 *
158
	 * @param str {String}
159
	 */
160
	$.secureEvalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
161
		var filtered =
162
			str
163
			.replace(/\\["\\\/bfnrtu]/g, '@')
164
			.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
165
			.replace(/(?:^|:|,)(?:\s*\[)+/g, '');
166
167
		if (/^[\],:{}\s]*$/.test(filtered)) {
168
			/*jshint evil: true */
169
			return eval('(' + str + ')');
170
		}
171
		throw new SyntaxError('Error parsing JSON, source is not valid.');
172
	};
173
174
	/**
175
	 * jQuery.quoteString
176
	 * Returns a string-repr of a string, escaping quotes intelligently.
177
	 * Mostly a support function for toJSON.
178
	 * Examples:
179
	 * >>> jQuery.quoteString('apple')
180
	 * "apple"
181
	 *
182
	 * >>> jQuery.quoteString('"Where are we going?", she asked.')
183
	 * "\"Where are we going?\", she asked."
184
	 */
185
	$.quoteString = function (str) {
186
		if (str.match(escape)) {
187
			return '"' + str.replace(escape, function (a) {
188
				var c = meta[a];
189
				if (typeof c === 'string') {
190
					return c;
191
				}
192
				c = a.charCodeAt();
193
				return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
194
			}) + '"';
195
		}
196
		return '"' + str + '"';
197
	};
198
199
}(jQuery));
(-)a/koha-tmpl/opac-tmpl/ccsr/en/includes/doc-head-close.inc (-1 lines)
Lines 39-45 Link Here
39
<script type="text/javascript" src="[% yuipath %]/menu/menu-min.js"></script>
39
<script type="text/javascript" src="[% yuipath %]/menu/menu-min.js"></script>
40
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
40
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
41
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery-ui.js"></script>
41
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery-ui.js"></script>
42
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.json.js"></script>
43
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.cookie.min.js"></script>
42
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.cookie.min.js"></script>
44
<script type="text/javascript" src="[% themelang %]/js/commons.js"></script>
43
<script type="text/javascript" src="[% themelang %]/js/commons.js"></script>
45
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.hoverIntent.minified.js"></script>
44
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.hoverIntent.minified.js"></script>
(-)a/koha-tmpl/opac-tmpl/ccsr/en/lib/jquery/plugins/jquery.json.js (-199 lines)
Lines 1-199 Link Here
1
/**
2
 * jQuery JSON plugin 2.4-alpha
3
 *
4
 * @author Brantley Harris, 2009-2011
5
 * @author Timo Tijhof, 2011-2012
6
 * @source This plugin is heavily influenced by MochiKit's serializeJSON, which is
7
 *         copyrighted 2005 by Bob Ippolito.
8
 * @source Brantley Harris wrote this plugin. It is based somewhat on the JSON.org
9
 *         website's http://www.json.org/json2.js, which proclaims:
10
 *         "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
11
 *         I uphold.
12
 * @license MIT License <http://www.opensource.org/licenses/mit-license.php>
13
 */
14
(function ($) {
15
    'use strict';
16
17
    var escape = /["\\\x00-\x1f\x7f-\x9f]/g,
18
        meta = {
19
            '\b': '\\b',
20
            '\t': '\\t',
21
            '\n': '\\n',
22
            '\f': '\\f',
23
            '\r': '\\r',
24
            '"' : '\\"',
25
            '\\': '\\\\'
26
        },
27
        hasOwn = Object.prototype.hasOwnProperty;
28
29
    /**
30
     * jQuery.toJSON
31
     * Converts the given argument into a JSON representation.
32
     *
33
     * @param o {Mixed} The json-serializable *thing* to be converted
34
     *
35
     * If an object has a toJSON prototype, that will be used to get the representation.
36
     * Non-integer/string keys are skipped in the object, as are keys that point to a
37
     * function.
38
     *
39
     */
40
    $.toJSON = typeof JSON === 'object' && JSON.stringify ? JSON.stringify : function (o) {
41
        if (o === null) {
42
            return 'null';
43
        }
44
45
        var pairs, k, name, val,
46
            type = $.type(o);
47
48
        if (type === 'undefined') {
49
            return undefined;
50
        }
51
52
        // Also covers instantiated Number and Boolean objects,
53
        // which are typeof 'object' but thanks to $.type, we
54
        // catch them here. I don't know whether it is right
55
        // or wrong that instantiated primitives are not
56
        // exported to JSON as an {"object":..}.
57
        // We choose this path because that's what the browsers did.
58
        if (type === 'number' || type === 'boolean') {
59
            return String(o);
60
        }
61
        if (type === 'string') {
62
            return $.quoteString(o);
63
        }
64
        if (typeof o.toJSON === 'function') {
65
            return $.toJSON(o.toJSON());
66
        }
67
        if (type === 'date') {
68
            var month = o.getUTCMonth() + 1,
69
                day = o.getUTCDate(),
70
                year = o.getUTCFullYear(),
71
                hours = o.getUTCHours(),
72
                minutes = o.getUTCMinutes(),
73
                seconds = o.getUTCSeconds(),
74
                milli = o.getUTCMilliseconds();
75
76
            if (month < 10) {
77
                month = '0' + month;
78
            }
79
            if (day < 10) {
80
                day = '0' + day;
81
            }
82
            if (hours < 10) {
83
                hours = '0' + hours;
84
            }
85
            if (minutes < 10) {
86
                minutes = '0' + minutes;
87
            }
88
            if (seconds < 10) {
89
                seconds = '0' + seconds;
90
            }
91
            if (milli < 100) {
92
                milli = '0' + milli;
93
            }
94
            if (milli < 10) {
95
                milli = '0' + milli;
96
            }
97
            return '"' + year + '-' + month + '-' + day + 'T' +
98
                hours + ':' + minutes + ':' + seconds +
99
                '.' + milli + 'Z"';
100
        }
101
102
        pairs = [];
103
104
        if ($.isArray(o)) {
105
            for (k = 0; k < o.length; k++) {
106
                pairs.push($.toJSON(o[k]) || 'null');
107
            }
108
            return '[' + pairs.join(',') + ']';
109
        }
110
111
        // Any other object (plain object, RegExp, ..)
112
        // Need to do typeof instead of $.type, because we also
113
        // want to catch non-plain objects.
114
        if (typeof o === 'object') {
115
            for (k in o) {
116
                // Only include own properties,
117
                // Filter out inherited prototypes
118
                if (hasOwn.call(o, k)) {
119
                    // Keys must be numerical or string. Skip others
120
                    type = typeof k;
121
                    if (type === 'number') {
122
                        name = '"' + k + '"';
123
                    } else if (type === 'string') {
124
                        name = $.quoteString(k);
125
                    } else {
126
                        continue;
127
                    }
128
                    type = typeof o[k];
129
130
                    // Invalid values like these return undefined
131
                    // from toJSON, however those object members
132
                    // shouldn't be included in the JSON string at all.
133
                    if (type !== 'function' && type !== 'undefined') {
134
                        val = $.toJSON(o[k]);
135
                        pairs.push(name + ':' + val);
136
                    }
137
                }
138
            }
139
            return '{' + pairs.join(',') + '}';
140
        }
141
    };
142
143
    /**
144
     * jQuery.evalJSON
145
     * Evaluates a given json string.
146
     *
147
     * @param str {String}
148
     */
149
    $.evalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
150
        /*jshint evil: true */
151
        return eval('(' + str + ')');
152
    };
153
154
    /**
155
     * jQuery.secureEvalJSON
156
     * Evals JSON in a way that is *more* secure.
157
     *
158
     * @param str {String}
159
     */
160
    $.secureEvalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
161
        var filtered =
162
            str
163
            .replace(/\\["\\\/bfnrtu]/g, '@')
164
            .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
165
            .replace(/(?:^|:|,)(?:\s*\[)+/g, '');
166
167
        if (/^[\],:{}\s]*$/.test(filtered)) {
168
            /*jshint evil: true */
169
            return eval('(' + str + ')');
170
        }
171
        throw new SyntaxError('Error parsing JSON, source is not valid.');
172
    };
173
174
    /**
175
     * jQuery.quoteString
176
     * Returns a string-repr of a string, escaping quotes intelligently.
177
     * Mostly a support function for toJSON.
178
     * Examples:
179
     * >>> jQuery.quoteString('apple')
180
     * "apple"
181
     *
182
     * >>> jQuery.quoteString('"Where are we going?", she asked.')
183
     * "\"Where are we going?\", she asked."
184
     */
185
    $.quoteString = function (str) {
186
        if (str.match(escape)) {
187
            return '"' + str.replace(escape, function (a) {
188
                var c = meta[a];
189
                if (typeof c === 'string') {
190
                    return c;
191
                }
192
                c = a.charCodeAt();
193
                return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
194
            }) + '"';
195
        }
196
        return '"' + str + '"';
197
    };
198
199
}(jQuery));
(-)a/koha-tmpl/opac-tmpl/prog/en/includes/doc-head-close.inc (-1 lines)
Lines 35-41 Link Here
35
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
35
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
36
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery-ui.js"></script>
36
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery-ui.js"></script>
37
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.hoverIntent.minified.js"></script>
37
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.hoverIntent.minified.js"></script>
38
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.json.js"></script>
39
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.cookie.min.js"></script>
38
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.cookie.min.js"></script>
40
<script type="text/javascript" src="[% themelang %]/js/commons.js"></script>
39
<script type="text/javascript" src="[% themelang %]/js/commons.js"></script>
41
<script type="text/javascript" src="[% themelang %]/js/script.js"></script>
40
<script type="text/javascript" src="[% themelang %]/js/script.js"></script>
(-)a/koha-tmpl/opac-tmpl/prog/en/lib/jquery/plugins/jquery.json.js (-200 lines)
Lines 1-199 Link Here
1
/**
2
 * jQuery JSON plugin 2.4.0
3
 *
4
 * @author Brantley Harris, 2009-2011
5
 * @author Timo Tijhof, 2011-2012
6
 * @source This plugin is heavily influenced by MochiKit's serializeJSON, which is
7
 *         copyrighted 2005 by Bob Ippolito.
8
 * @source Brantley Harris wrote this plugin. It is based somewhat on the JSON.org
9
 *         website's http://www.json.org/json2.js, which proclaims:
10
 *         "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
11
 *         I uphold.
12
 * @license MIT License <http://www.opensource.org/licenses/mit-license.php>
13
 */
14
(function ($) {
15
    'use strict';
16
17
    var escape = /["\\\x00-\x1f\x7f-\x9f]/g,
18
        meta = {
19
            '\b': '\\b',
20
            '\t': '\\t',
21
            '\n': '\\n',
22
            '\f': '\\f',
23
            '\r': '\\r',
24
            '"' : '\\"',
25
            '\\': '\\\\'
26
        },
27
        hasOwn = Object.prototype.hasOwnProperty;
28
29
    /**
30
     * jQuery.toJSON
31
     * Converts the given argument into a JSON representation.
32
     *
33
     * @param o {Mixed} The json-serializable *thing* to be converted
34
     *
35
     * If an object has a toJSON prototype, that will be used to get the representation.
36
     * Non-integer/string keys are skipped in the object, as are keys that point to a
37
     * function.
38
     *
39
     */
40
    $.toJSON = typeof JSON === 'object' && JSON.stringify ? JSON.stringify : function (o) {
41
        if (o === null) {
42
            return 'null';
43
        }
44
45
        var pairs, k, name, val,
46
            type = $.type(o);
47
48
        if (type === 'undefined') {
49
            return undefined;
50
        }
51
52
        // Also covers instantiated Number and Boolean objects,
53
        // which are typeof 'object' but thanks to $.type, we
54
        // catch them here. I don't know whether it is right
55
        // or wrong that instantiated primitives are not
56
        // exported to JSON as an {"object":..}.
57
        // We choose this path because that's what the browsers did.
58
        if (type === 'number' || type === 'boolean') {
59
            return String(o);
60
        }
61
        if (type === 'string') {
62
            return $.quoteString(o);
63
        }
64
        if (typeof o.toJSON === 'function') {
65
            return $.toJSON(o.toJSON());
66
        }
67
        if (type === 'date') {
68
            var month = o.getUTCMonth() + 1,
69
                day = o.getUTCDate(),
70
                year = o.getUTCFullYear(),
71
                hours = o.getUTCHours(),
72
                minutes = o.getUTCMinutes(),
73
                seconds = o.getUTCSeconds(),
74
                milli = o.getUTCMilliseconds();
75
76
            if (month < 10) {
77
                month = '0' + month;
78
            }
79
            if (day < 10) {
80
                day = '0' + day;
81
            }
82
            if (hours < 10) {
83
                hours = '0' + hours;
84
            }
85
            if (minutes < 10) {
86
                minutes = '0' + minutes;
87
            }
88
            if (seconds < 10) {
89
                seconds = '0' + seconds;
90
            }
91
            if (milli < 100) {
92
                milli = '0' + milli;
93
            }
94
            if (milli < 10) {
95
                milli = '0' + milli;
96
            }
97
            return '"' + year + '-' + month + '-' + day + 'T' +
98
                hours + ':' + minutes + ':' + seconds +
99
                '.' + milli + 'Z"';
100
        }
101
102
        pairs = [];
103
104
        if ($.isArray(o)) {
105
            for (k = 0; k < o.length; k++) {
106
                pairs.push($.toJSON(o[k]) || 'null');
107
            }
108
            return '[' + pairs.join(',') + ']';
109
        }
110
111
        // Any other object (plain object, RegExp, ..)
112
        // Need to do typeof instead of $.type, because we also
113
        // want to catch non-plain objects.
114
        if (typeof o === 'object') {
115
            for (k in o) {
116
                // Only include own properties,
117
                // Filter out inherited prototypes
118
                if (hasOwn.call(o, k)) {
119
                    // Keys must be numerical or string. Skip others
120
                    type = typeof k;
121
                    if (type === 'number') {
122
                        name = '"' + k + '"';
123
                    } else if (type === 'string') {
124
                        name = $.quoteString(k);
125
                    } else {
126
                        continue;
127
                    }
128
                    type = typeof o[k];
129
130
                    // Invalid values like these return undefined
131
                    // from toJSON, however those object members
132
                    // shouldn't be included in the JSON string at all.
133
                    if (type !== 'function' && type !== 'undefined') {
134
                        val = $.toJSON(o[k]);
135
                        pairs.push(name + ':' + val);
136
                    }
137
                }
138
            }
139
            return '{' + pairs.join(',') + '}';
140
        }
141
    };
142
143
    /**
144
     * jQuery.evalJSON
145
     * Evaluates a given json string.
146
     *
147
     * @param str {String}
148
     */
149
    $.evalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
150
        /*jshint evil: true */
151
        return eval('(' + str + ')');
152
    };
153
154
    /**
155
     * jQuery.secureEvalJSON
156
     * Evals JSON in a way that is *more* secure.
157
     *
158
     * @param str {String}
159
     */
160
    $.secureEvalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
161
        var filtered =
162
            str
163
            .replace(/\\["\\\/bfnrtu]/g, '@')
164
            .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
165
            .replace(/(?:^|:|,)(?:\s*\[)+/g, '');
166
167
        if (/^[\],:{}\s]*$/.test(filtered)) {
168
            /*jshint evil: true */
169
            return eval('(' + str + ')');
170
        }
171
        throw new SyntaxError('Error parsing JSON, source is not valid.');
172
    };
173
174
    /**
175
     * jQuery.quoteString
176
     * Returns a string-repr of a string, escaping quotes intelligently.
177
     * Mostly a support function for toJSON.
178
     * Examples:
179
     * >>> jQuery.quoteString('apple')
180
     * "apple"
181
     *
182
     * >>> jQuery.quoteString('"Where are we going?", she asked.')
183
     * "\"Where are we going?\", she asked."
184
     */
185
    $.quoteString = function (str) {
186
        if (str.match(escape)) {
187
            return '"' + str.replace(escape, function (a) {
188
                var c = meta[a];
189
                if (typeof c === 'string') {
190
                    return c;
191
                }
192
                c = a.charCodeAt();
193
                return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
194
            }) + '"';
195
        }
196
        return '"' + str + '"';
197
    };
198
199
}(jQuery));
200
- 

Return to bug 10858