/* Non-minified version: default.js */
"use strict";if(!Array.prototype.indexOf){Array.prototype.indexOf=function(b){var a=this.length,c=Number(arguments[1])||0;
c=(c<0)?Math.ceil(c):Math.floor(c);if(c<0){c+=a;}for(;c<a;c++){if(c in this&&this[c]===b){return c;}}return -1;};}VIS={data:{input:"jsonInput",output:"jsonOutput",size:"jsonSize",inStrict:"jsonStrict",inEval:"jsonEval",outHTML:"json2HTML",outJSON:"json2JSON",preserve:"jsonSpace",dates:"jsonDate",dataTables:"jsonData",trunc:"jsonTrunc",location:"jsonLocation",options:"jsonOptionSet",outputSet:"jsonOutputSet"},paths:[],init:function(){var a,b;
for(a in this.data){if(this.data.hasOwnProperty(a)){this.data[a]=$(this.data[a]);}}if(this.data.input.spellcheck===true){this.data.input.spellcheck=false;}Event.addListener(this.data.output,"click",this.doClick,this,true);
Event.addListener(this.data.outputSet,"click",this.update_option_visibility,this,true);b=COOKIE.get("json");b=(b)?b:"101111";b=b.split("");this.data.inStrict.checked=(b[0]==="1");
this.data.inEval.checked=(b[0]==="0");this.data.preserve.checked=(b[1]==="1");this.data.dates.checked=(b[2]==="1");this.data.dataTables.checked=(b[3]==="1");this.data.trunc.checked=(b[4]==="1");
this.data.outHTML.checked=(b[5]==="1");this.data.outJSON.checked=(b[5]==="0");this.update_option_visibility();},update_option_visibility:function(){var a=this.data.outHTML.checked?"HTML":"PRETTY";
this.data.options.className=a;},doClick:function(c){var b=Event.getTarget(c),a;function d(e){return(e.id!=="");}if(b.id===""){b=Dom.getAncestorBy(b,d);}a=b.id;if(a===this.data.output.id){a="";
}a=this.findPath(a);this.data.location.innerHTML=a;},pathRE:/^px?(\d+)$/,findPath:function(a){if(this.pathRE.test(a)===false){return"";}a=Number(this.pathRE.exec(a)[1]);
return(a>this.paths.length)?"":this.paths[a];},dateRE:/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)Z$/,clear:function(){this.data.input.value="";this.data.output.innerHTML="";
this.data.size.innerHTML="";this.data.location.innerHTML="";this.data.input.focus();},parse:function(){var input=this.data.input.value,result;try{result=this.data.inStrict.checked?Lang.JSON.parse(input):eval("("+input+")");
}catch(ex){result=ex;}return result;},doEncode:function(){var a=this.parse();if(a instanceof Error){this.doRender();return;}a=Lang.JSON.stringify(a);this.data.output.innerHTML="<pre>"+this.html(a)+"</pre>";
},doRender:function(){var a=this.parse(),c=this.data.input.value.length,d=(this.data.outHTML.checked)?HTML:PRETTY,b=[(this.data.inStrict.checked)?"1":"0",(this.data.preserve.checked)?"1":"0",(this.data.dates.checked)?"1":"0",(this.data.dataTables.checked)?"1":"0",(this.data.trunc.checked)?"1":"0",(this.data.outHTML.checked)?"1":"0"].join("");
this.paths=["root"];this.data.location.innerHTML="";this.data.output.className=(this.data.outHTML.checked)?"HTML":"PRETTY";this.data.output.innerHTML=d.display(a,0);
c=this.formatSize(c);c=this.html(c);this.data.size.innerHTML=c;if(COOKIE.get("json")!==b){COOKIE.set("json",b);}},removeCRLF:function(){var a=this.data.input;a.value=a.value.replace(/^\s\s*/,"").replace(/\s\s*$/,"").replace(/\n/g,"");
},decodeURI:function(){var a=this.data.input;a.value=decodeURIComponent(a.value);},trimToJSON:function(){var i=this.data.input,j=i.value,e=null,h=null,k=null,d=0,b=[],a,f,g;
j=j.replace(/^\s\s*/,"").replace(/\s\s*$/,"");for(g=0;g<j.length;g++){f=j.charCodeAt(g);switch(f){case 34:case 39:if(h===null){break;}if(e){if(f===e&&j.charCodeAt(g-1)!==92){e=null;
}}else{e=f;}break;case 123:case 91:if(e){break;}if(h===null){h=f;k=h+2;d++;a=g;}else{if(f===h){d++;}}break;case 125:case 93:if(e){break;}if(f===k){d--;if(d===0){b.push(j.substring(a,g+1));
h=null;}}}}switch(b.length){case 0:alert("No braces found.");return;case 1:this.data.input.value=b[0];return;default:if(window.confirm("Multiple potential objects found.\nWrap all objects in an array?")){this.data.input.value="["+b.join(",")+"]";
}return;}},formatSize:function(c){if(isNaN(c)||c.length===0){return"";}var b=c.toString(),a=b.length-3;while(a>=1){b=b.substring(0,a)+","+b.substring(a,b.length);
a-=3;}return b+" characters";},html:function(a){return a.toString().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");},variableRE:/^[a-z_$][\w$]*$/i,reserved:["abstract","boolean","break","byte","case","catch","char","class","const","continue","debugger","default","delete","do","double","else","enum","export","extends","false","final","finally","float","for","function","goto","if","implements","import","in","instanceof","int","interface","long","native","new","null","package","private","protected","public","return","short","static","super","switch","synchronized","this","throw","throws","transient","true","try","typeof","var","void","volatile","while","with"],variable:function(a){if(this.variableRE.test(a)===true&&this.reserved.indexOf(a)===-1){return"."+a;
}return'[<span class="STRING">'+this.html(Lang.JSON.stringify(a))+"</span>]";}};PRETTY={indent:0,newLine:function(){var a,b="<br />";for(a=0;a<this.indent;a++){b+="\u00A0\u00A0\u00A0\u00A0";
}return b;},display:function(b,a){if(Lang.isArray(b)){return this.array(b,a);}else{if(Lang.isBoolean(b)){return this.bool(b,a);}else{if(Lang.isFunction(b)){return this.func(b,a);
}else{if(Lang.isNull(b)){return'<span id="p'+a+'" title="null" class="NULL">null</span>';}else{if(Lang.isNumber(b)){return'<span id="p'+a+'" title="Number" class="NUMBER">'+b.toString()+"</span>";
}else{if(Lang.isString(b)){return this.string(b,a);}else{if(Lang.isUndefined(b)){return'<span id="p'+a+'" title="undefined" class="UNDEF">undefined</span>';}else{if(b instanceof Error){return this.err(b,a);
}else{if(b instanceof Date){return this.date(b,a);}else{if(b instanceof RegExp){return HTML.regExp(b,a);}else{if(Lang.isObject(b)){return this.obj(b,a);}else{if(isNaN(b)){return'<span id="p'+a+'" title="NaN" class="ERR">NaN</span>';
}else{if(b===Infinity){return'<span id="p'+a+'" title="Infinity" class="ERR">Infinity</span>';}}}}}}}}}}}}}return'<span id="p'+a+'" class="IDK">[Unknown Data Type]</span>';
},array:function(c,e){var b,d=[];this.indent++;for(b=0;b<c.length;b++){VIS.paths.push(VIS.paths[e]+'[<span class="NUMBER">'+b+"</span>]");d[b]=this.display(c[b],VIS.paths.length-1);
}d=this.newLine()+d.join(","+this.newLine());this.indent--;return(c.length)?'<span id="p'+e+'" class="ARRAY">['+d+this.newLine()+"]</span>":'<span id="p'+e+'" class="ARRAY">[\u00A0]</span>';
},bool:function(a,c){return(a)?'<span id="p'+c+'" title="Boolean" class="BOOL">true</span>':'<span id="p'+c+'" title="Boolean" class="BOOL">false</span>';},func:function(c,d){var a,b=c.toString();
if(VIS.data.trunc.checked){a=b.indexOf("{")+50;if(a<b.length){b=VIS.html(b.substring(0,a))+"\u2026\n}";b=b.replace(/\n/g,this.newLine());return'<code id="p'+d+'" title="Function (truncated)" class="FUNC">'+b+"</code>";
}}b=VIS.html(b).replace(/\n/g,this.newLine());return'<code id="p'+d+'" title="Function" class="FUNC">'+b+"</code>";},string:function(a,b){if(VIS.data.dates.checked&&VIS.dateRE.test(a)){return this.date(a,b);
}a=Lang.JSON.stringify(a);if(VIS.data.trunc.checked&&a.length>68){a=a.substring(1,a.length-1);a=a.substring(0,67)+"\u2026";a='"'+a+'"';}return'<span id="p'+b+'" title="String" class="STRING">'+VIS.html(a)+"</span>";
},err:function(b,a){if(b.message==="parseJSON"){return'<span id="p'+a+'" title="Error" class="ERR">Invalid JSON</span>';}VIS.paths.push(VIS.paths[a]+".message");
return'<span id="p'+a+'" title="Error" class="ERR">new Error('+this.string(b.message,VIS.paths.length-1)+")</span>";},date:function(b,a){return'<span id="p'+a+'" title="Date" class="DATE">'+Lang.JSON.stringify(b)+"</span>";
},obj:function(d,c){var b,a=[];this.indent++;for(b in d){if(d.hasOwnProperty(b)){VIS.paths.push(VIS.paths[c]+VIS.variable(b));a.push('<span id="px'+(VIS.paths.length-1)+'">'+Lang.JSON.stringify(b)+": "+this.display(d[b],VIS.paths.length-1)+"</span>");
}}if(a.length){a=this.newLine()+a.join(","+this.newLine());}this.indent--;return(a.length)?'<span id="p'+c+'" class="OBJ">{'+a+this.newLine()+"}</span>":'<span id="p'+c+'" class="OBJ">{\u00A0}</span>';
}};HTML={display:function(b,a){if(Lang.isArray(b)){if(VIS.data.dataTables.checked){return this.structure(b,a);}else{return this.array(b,a);}}else{if(Lang.isBoolean(b)){return this.bool(b,a);
}else{if(Lang.isFunction(b)){return this.func(b,a);}else{if(Lang.isNull(b)){return'<span id="p'+a+'" title="null" class="NULL">null</span>';}else{if(Lang.isNumber(b)){return'<span id="p'+a+'" title="Number" class="NUMBER">'+b.toString()+"</span>";
}else{if(Lang.isString(b)){return this.string(b,a);}else{if(Lang.isUndefined(b)){return'<span id="p'+a+'" title="undefined" class="UNDEF">undefined</span>';}else{if(b instanceof Error){return this.err(b,a);
}else{if(b instanceof Date){return this.date(b,a);}else{if(b instanceof RegExp){return this.regExp(b,a);}else{if(Lang.isObject(b)){if(VIS.data.dataTables.checked){return this.structure(b,a);
}else{return this.obj(b,a);}}else{if(isNaN(b)){return'<span id="p'+a+'" title="NaN" class="ERR">NaN</span>';}else{if(b===Infinity){return'<span id="p'+a+'" title="Infinity" class="ERR">Infinity</span>';
}}}}}}}}}}}}}return'<span id="p'+a+'" class="IDK">[Unknown Data Type]</span>';},array:function(d,e){var c,b="";for(c=0;c<d.length;c++){VIS.paths.push(VIS.paths[e]+'[<span class="NUMBER">'+c+"</span>]");
b+='<tr id="p'+(VIS.paths.length-1)+'"><th>'+c+"</th><td>"+this.display(d[c],VIS.paths.length-1)+"</td></tr>";}if(b.length){return'<table id="p'+e+'" class="ARRAY"><caption>Array</caption>'+b+"</table>";
}return'<span id="p'+e+'" title="Array" class="ARRAY">[Empty Array]</span>';},bool:function(a,c){return(a)?'<span id="p'+c+'" title="Boolean" class="BOOL">true</span>':'<span id="p'+c+'" title="Boolean" class="BOOL">false</span>';
},string:function(b,c){if(b.length===0){return'<span id="p'+c+'" title="String" class="EMPTY">[zero-length string]</span>';}if(VIS.data.dates.checked&&VIS.dateRE.test(b)){return this.date(Lang.JSON.stringToDate(b),c);
}var a=VIS.data.preserve.checked?"pre":"span";if(VIS.data.trunc.checked&&b.length>70){b=b.substring(0,70)+"\u2026";}return"<"+a+' id="p'+c+'" title="String" class="STRING">'+VIS.html(b)+"</"+a+">";
},regExp:function(b,c){var a="/"+VIS.html(b.source)+"/";if(b.global){a+="g";}if(b.ignoreCase){a+="i";}if(b.multiline){a+="m";}return'<span id="p'+c+'" title="RegEx" class="REGEXP">'+a+"</span>";
},obj:function(d,c){var b,a="";for(b in d){if(d.hasOwnProperty(b)){VIS.paths.push(VIS.paths[c]+VIS.variable(b));a+='<tr id="px'+(VIS.paths.length-1)+'"><th>'+VIS.html(b)+"</th><td>"+this.display(d[b],VIS.paths.length-1)+"</td></tr>";
}}if(a.length){return'<table id="p'+c+'" class="OBJ"><caption>Object</caption>'+a+"</table>";}return'<span id="p'+c+'" title="Object" class="OBJ">{Empty Object}</span>';
},date:function(h,g){if(isNaN(h)){return'<span id="p'+g+'" title="Date" class="ERR">Invalid Date</span>';}function f(d){var i=d.toString();return(d<10)?"0"+i:i;}function e(o,m,d,k,n,j){var i=(k===0)?12:(k>12)?k-12:k,l=(k>11)?"PM":"AM";
return(o+"-"+f(m)+"-"+f(d)+" "+f(i)+":"+f(n)+":"+f(j)+" "+l);}var b=e(h.getFullYear(),h.getMonth()+1,h.getDate(),h.getHours(),h.getMinutes(),h.getSeconds()),c=e(h.getUTCFullYear(),h.getUTCMonth()+1,h.getUTCDate(),h.getUTCHours(),h.getUTCMinutes(),h.getUTCSeconds()),a=c+" UTC ("+b+" Local)";
return'<span id="p'+g+'" title="Date" class="DATE">'+a+"</span>";},err:function(b,a){if(b.message==="parseJSON"){return'<span id="p'+a+'" title="Error" class="ERR">Invalid JSON</span>';
}return'<span id="p'+a+'" title="Error" class="ERR">'+VIS.html(b.message)+"</span>";},func:function(c,d){var a,b=c.toString();if(VIS.data.trunc.checked){a=b.indexOf("{")+50;
if(a<b.length){b=VIS.html(b.substring(0,a))+"\u2026<br />}";return'<code id="p'+d+'" title="Function (truncated)" class="FUNC">'+b+"</code>";}}return'<code id="p'+d+'" title="Function" class="FUNC">'+VIS.html(b)+"</code>";
},structure:function(c,b){var a=new STRUCTURE(c);if(a.isValid(2/3)===false){return(Lang.isArray(c))?this.array(c,b):this.obj(c,b);}return a.render(c,b);}};STRUCTURE=function(a){this.footPrints=[];
this.length=0;this.footPrint=this.scanObject(a);};STRUCTURE.Footprint=function(a){this.keys=a.slice();this.count=1;};STRUCTURE.Footprint.prototype={equals:function(b){var a;
if(this.keys.length===b.length){for(a=0;a<b.length;a++){if(this.keys[a]!==b[a]){return false;}}}else{return false;}return true;},render:function(f,e){var d=this.keys,a=0,c=d.length,b=[];
if(f){for(;a<c;a++){VIS.paths.push(VIS.paths[e]+VIS.variable(d[a]));b[a]='<td id="px'+(VIS.paths.length-1)+'">'+HTML.display(f[d[a]],VIS.paths.length-1)+"</td>";
}}else{for(;a<c;a++){b[a]="<th>"+VIS.html(d[a])+"</th>";}}return b.join("");}};STRUCTURE.isObject=function(a){return(Lang.isObject(a)===true&&Lang.isArray(a)===false&&Lang.isFunction(a)===false&&a instanceof Error===false&&a instanceof Date===false&&a instanceof RegExp===false);
};STRUCTURE.numericSort=function(d,c){return d-c;};STRUCTURE.getKeys=function(c){var b=[],d;for(d in c){if(c.hasOwnProperty(d)){b[b.length]=d;}}if(Lang.isArray(c)){b.sort(STRUCTURE.numericSort);
}else{b.sort();}return b;};STRUCTURE.prototype={scanObject:function(d){var a,c,b=0;for(a in d){if(d.hasOwnProperty(a)){b++;if(STRUCTURE.isObject(d[a])){c=STRUCTURE.getKeys(d[a]);
if(c.length>0){this.addFootPrint(c);}}}}this.length+=b;return this.getMode();},addFootPrint:function(b){var a,c=this.footPrints;for(a=0;a<c.length;a++){if(c[a].equals(b)){c[a].count++;
return true;}}c[c.length]=new STRUCTURE.Footprint(b);return true;},getMode:function(){var b,c=0,a=null,d=this.footPrints;for(b=0;b<d.length;b++){if(d[b].count>c){a=d[b];
c=a.count;}}return a;},isValid:function(a){return(this.length>1&&this.footPrint!==null&&this.footPrint.count>=(this.length*a));},render:function(d,l){var h,j,k,e=VIS.html,g=STRUCTURE.getKeys(d),i=this.footPrint.keys.length,c=[],a=0,b,f=Lang.isArray(d);
c[a++]='<table id="p'+l+'" class="ARRAY"><caption>';c[a++]=(f)?"Array":"Object";c[a++]=" (data structure)</caption><thead><tr><th>[key]</th>";c[a++]=this.footPrint.render();
c[a++]="</tr></thead><tbody>";l=VIS.paths[l];for(h=0;h<g.length;h++){k=d[g[h]];j=STRUCTURE.getKeys(k);b=(f&&!isNaN(parseInt(g[h],10)))?'[<span class="NUMBER">'+g[h]+"</span>]":VIS.variable(g[h]);
VIS.paths.push(l+b);if(this.footPrint.equals(j)){c[a++]='<tr id="p'+(VIS.paths.length-1)+'"><th';c[a++]=(f)?' class="NUMBER">':">";c[a++]=e(g[h]);c[a++]="</th>";
c[a++]=this.footPrint.render(k,VIS.paths.length-1);c[a++]="</tr>";}else{c[a++]='<tr id="p'+(VIS.paths.length-1)+'"><th><em';c[a++]=(f)?' class="NUMBER">':">";c[a++]=e(g[h]);
c[a++]='</em></th><td colspan="'+i+'">';c[a++]=HTML.display(k,VIS.paths.length-1);c[a++]="</td></tr>";}}c[a++]="</tbody></table>";return c.join("");}};COOKIE={set:function(b,d){var a=new Date(),c=encodeURIComponent(b)+"="+encodeURIComponent(d);
a.setFullYear(a.getFullYear()+1);a=a.toGMTString();c+="; expires="+a+"; path=/";document.cookie=c;return c;},get:function(b){var d=document.cookie.split(/;\s*/),c,a=d.length;
while(a--){c=d[a];if(c.indexOf(b)===0){return c.substring(b.length+1);}}return null;},del:function(b){var a=new Date(),c=encodeURIComponent(b)+"=";a.setDate(a.getDate()-1);
a=a.toGMTString();c+="; expires="+a+"; path=/";document.cookie=c;return c;}};Event.onDOMReady(VIS.init,VIS,true);