(function(){var A={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},B={array:function(D){var F=["["],C,I,H,E=D.length,G;
for(H=0;
H<E;
H+=1){G=D[H];
I=B[typeof G];
if(I){G=I(G);
if(typeof G=="string"){if(C){F[F.length]=",";
}F[F.length]=G;
C=true;
}}}F[F.length]="]";
return F.join("");
},"boolean":function(C){return String(C);
},"null":function(C){return"null";
},number:function(C){return isFinite(C)?String(C):"null";
},object:function(D){if(D){if(D instanceof Array){return B.array(D);
}var E=["{"],C,H,G,F;
for(G in D){F=D[G];
H=B[typeof F];
if(H){F=H(F);
if(typeof F=="string"){if(C){E[E.length]=",";
}E.push(B.string(G),":",F);
C=true;
}}}E[E.length]="}";
return E.join("");
}return"null";
},string:function(C){if(/["\\\x00-\x1f]/.test(C)){C=C.replace(/([\x00-\x1f\\"])/g,function(E,D){var F=A[D];
if(F){return F;
}F=D.charCodeAt();
return"\\u00"+Math.floor(F/16).toString(16)+(F%16).toString(16);
});
}return'"'+C+'"';
}};
Object.prototype.toJSONString=function(){return B.object(this);
};
Array.prototype.toJSONString=function(){return B.array(this);
};
})();
String.prototype.parseJSON=function(){try{return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(this.replace(/"(\\.|[^"\\])*"/g,"")))&&eval("("+this+")");
}catch(e){return false;
}};

