﻿var JSONstring={compactOutput:false,includeProtos:false,includeFunctions:false,detectCirculars:true,restoreCirculars:true,make:function(A,B){this.restore=B;this.mem=[];this.pathMem=[];return this.toJsonStringArray(A).join("");},toJsonStringArray:function(H,C){if(!C){this.path=[];}C=C||[];var G;switch(typeof H){case"object":this.lastObj=H;if(this.detectCirculars){var B=this.mem;var A=this.pathMem;for(var D=0;D<B.length;D++){if(H===B[D]){C.push('"JSONcircRef:'+A[D]+'"');return C;}}B.push(H);A.push(this.path.join("."));}if(H){if(H.constructor==Array){C.push("[");for(var D=0;D<H.length;++D){this.path.push(D);if(D>0){C.push(",\n");}this.toJsonStringArray(H[D],C);this.path.pop();}C.push("]");return C;}else{if(typeof H.toString!="undefined"){C.push("{");var E=true;for(var D in H){if(!this.includeProtos&&H[D]===H.constructor.prototype[D]){continue;}this.path.push(D);var I=C.length;if(!E){C.push(this.compactOutput?",":",\n");}this.toJsonStringArray(D,C);C.push(":");this.toJsonStringArray(H[D],C);if(C[C.length-1]==G){C.splice(I,C.length-I);}else{E=false;}this.path.pop();}C.push("}");return C;}}return C;}C.push("null");return C;case"unknown":case"undefined":case"function":C.push(G);return C;case"string":if(this.restore&&H.indexOf("JSONcircRef:")==0){this.restoreCode.push("this.myObj."+this.path.join(".")+"="+H.split("JSONcircRef:").join("this.myObj."));}C.push('"');var F=["\n","\\n","\r","\\r",'"','\\"'];H+="";for(var D=0;D<6;D+=2){H=H.split(F[D]).join(F[D+1]);}C.push(H);C.push('"');return C;default:C.push(String(H));return C;}}};
function GetXMLHttpRequestFactory()
{try{return(new ActiveXObject("Msxml2.XMLHTTP2"));}
catch(e){}
try{return(new ActiveXObject("Microsoft.XMLHTTP"));}
catch(e){}
try{return(new XMLHttpRequest());}
catch(e){}
alert(" Your browser does not have XML Http Capability. Get IE, Firefox , Opera.");return(null);}
function logToServer(errorParams)
{var xhttpRequest=GetXMLHttpRequestFactory();if(xhttpRequest!=null){var queryStr=JSONstring.make({'method':'log_error','data':{'error':errorParams,'browser':{'appName':window.navigator.appName,'appVersion':window.navigator.appVersion,'product':window.navigator.product,'platform':window.navigator.platform}}});xhttpRequest.open("POST",base_server+"/miscajax/ajax/ajax",true);xhttpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');xhttpRequest.send('json='+escape(queryStr));}}
function logError(strErr,strURL,strLineNumber)
{try{logToServer({'function':'logError','URL':strURL,lineNum:strLineNumber,msg:strErr});}catch(e){console.error("something barfed %o",e);}
return true;}
function logTryCatch(id,e)
{logToServer({'function':'logTryCatch',exception:e,'type':typeof e,'URL':window.location.href,lineNum:id});}
function logBadResponse(strMessage)
{logToServer({'function':'logBadResponse',message:strMessage,'URL':window.location.href,lineNum:id});}
function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){if(oldonload){oldonload();}
func();};}}
