/* * More info at: http://phpjs.org * * This is version: 2.45 * php.js is copyright 2009 Kevin van Zonneveld. * * Portions copyright Brett Zamir (http://brettz9.blogspot.com), Kevin van * Zonneveld (http://kevin.vanzonneveld.net), Onno Marsman, Michael White * (http://getsprink.com), Waldo Malqui Silva, Paulo Ricardo F. Santos, Jack, * Jonas Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, * Legaev Andrey, Ates Goral (http://magnetiq.com), Martijn Wieringa, Nate, * Enrique Gonzalez, Philippe Baumann, Webtoolkit.info * (http://www.webtoolkit.info/), Jani Hartikainen, Carlos R. L. Rodrigues * (http://www.jsfromhell.com), Ash Searle (http://hexmen.com/blog/), Brett * Zamir, Johnny Mast (http://www.phpvrouwen.nl), GeekFG * (http://geekfg.blogspot.com), d3x, Alex, marrtins, Andrea Giammarchi * (http://webreflection.blogspot.com), Erkekjetter, mdsjack * (http://www.mdsjack.bo.it), Mirek Slugen, Marc Palau, Public Domain * (http://www.json.org/json2.js), David, Steven Levithan * (http://blog.stevenlevithan.com), Arpad Ray (mailto:arpad@php.net), * Pellentesque Malesuada, AJ, Aman Gupta, Tyler Akins (http://rumkin.com), * Sakimori, Alfonso Jimenez (http://www.alfonsojimenez.com), Steve Hilder, * Caio Ariede (http://caioariede.com), Thunder.m, Karol Kowalski, gorthaur, * Felix Geisendoerfer (http://www.debuggable.com/felix), kenneth, ger, 0m3r, * Hyam Singer (http://www.impact-computing.com/), Sanjoy Roy, nobbler, Paul, * marc andreu, T. Wild, madipta, noname, sankai, Marco, class_exists, J A R, * john (http://www.jd-tech.net), Douglas Crockford * (http://javascript.crockford.com), Steve Clay, David James, Francesco, * Subhasis Deb, Bayron Guevara, T0bsn, Peter-Paul Koch * (http://www.quirksmode.org/js/beat.html), MeEtc (http://yass.meetcweb.com), * Pyerre, Jon Hohle, Lincoln Ramsay, djmix, Linuxworld, Thiago Mata * (http://thiagomata.blog.com), Brad Touesnard, Tim Wiel, Gilbert, Der Simon * (http://innerdom.sourceforge.net/), LH, Marc Jansen, echo is bad, duncan, * Bryan Elliott, David Randall, Ozh, XoraX (http://www.xorax.info), Scott * Cariss, Nathan, Bobby Drake, Pul, Eric Nagel, rezna, Martin Pool, Kirk * Strobeck, Mick@el, Luke Godfrey, Blues (http://tech.bluesmoon.info/), YUI * Library: http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, * Blues at http://hacks.bluesmoon.info/strftime/strftime.js, Christian * Doebler, penutbutterjelly, Anton Ongson, Simon Willison * (http://simonwillison.net), Gabriel Paderni, Pierre-Luc Paour, Kristof * Coomans (SCK-CEN Belgian Nucleair Research Centre), hitwork, Norman "zEh" * Fuchs, sowberry, Yves Sucaet, Nick Callen, ejsanders, johnrembo, dptr1988, * Pedro Tainha (http://www.pedrotainha.com), uestla, Valentina De Rosa, Saulo * Vallory, T.Wild, metjay, DxGx, Alexander Ermolaev * (http://snippets.dzone.com/user/AlexanderErmolaev), ChaosNo1, Andreas, * Garagoth, Robin, Matt Bradley, taith, FremyCompany, Tod Gentille, Breaking * Par Consulting Inc * (http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), * Josh Fraser * (http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), * Manish, Cord, ReverseSyntax, Mateusz "loonquawl" Zalega, Arno, Slawomir * Kaniecki, Francois, Victor, stensi, Jalal Berrami, baris ozdil, FGFEmperor, * booeyOH, Cagri Ekin, Ben Bryan, Leslie Hoare, Andrej Pavlovic, Dino, * mk.keck, Luke Smith (http://lucassmith.name), Rival, jakes, Yannoo, gabriel * paderni, Atli Þór, Benjamin Lupton, Diogo Resende, Howard Yeend, Allan * Jensen (http://www.winternet.no) * * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ // Compression: minified function json_decode(str_json){var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;var j;var text=str_json;var walk=function(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v;}else{delete value[k];}}}} return reviver.call(holder,key,value);} cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+ ('0000'+a.charCodeAt(0).toString(16)).slice(-4);});} if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;} throw new SyntaxError('json_decode');} function json_encode(mixed_val){var indent;var value=mixed_val;var i;var quote=function(string){var escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;var meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';} var str=function(key,holder){var gap='';var indent=' ';var i=0;var k='';var v='';var length=0;var mind=gap;var partial=[];var value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);} switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';} gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i