/**
 * This script will capture .js errors and send them back to the server via ajax
 */
   var traceArray = new Array();
   function addTrace(trace) {
      traceArray[traceArray.length] = trace;
   }
   function getTrace() {
      var trace = "";
      for ( i=0; i < traceArray.length; i++ )
         trace += traceArray[i] + "\n";
      return trace;
   }

   function createRequestObjectErr() {
      var ro;
      var browser = navigator.appName;
      if(browser == "Microsoft Internet Explorer"){
         ro = new ActiveXObject("Microsoft.XMLHTTP");
      } else {
         ro = new XMLHttpRequest();
      }
      return ro;
   }
   var httpLog = createRequestObjectErr();
   function sendLogReq(msg,url,ln) {
      var date = new Date();
      var p = "&errMsg=" + escape(msg);
      p += "&errLine=" + ln;
      p += "&queryString=" + escape(location.search);
      p += "&Url=" + escape(location.pathname);
      p += "&HTTPRef=" + escape(document.referrer);
      p += "&userAgent=" + escape(navigator.userAgent);
      p += "&navigator.vendor=" + escape(navigator.vendor);
      p += "&navigator.platform=" + escape(navigator.platform);
      p += "&navigator.appVersion=" + escape(navigator.appVersion);
      var qstr = 'action=ACTION_AJAX1_X0009' + p + '&GMT=' + escape(date.toGMTString());
      //alert('len=' + qstr.length + " " + qstr);
      httpLog.open("POST", "/ajax1.jsp");
      httpLog.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
      httpLog.send(qstr);
   }
   try {
      window.onerror = sendLogReq;
   } catch(er) {}

   var ErrorBrowserDetect = {
      init: function () {
         this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
         this.version = this.searchVersion(navigator.userAgent)
            || this.searchVersion(navigator.appVersion)
            || "an unknown version";
         this.OS = this.searchString(this.dataOS) || "an unknown OS";
      },
      searchString: function (data) {
         for (var i=0;i<data.length;i++)	{
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
               if (dataString.indexOf(data[i].subString) != -1)
                  return data[i].identity;
            }
            else if (dataProp)
               return data[i].identity;
         }
      },
      searchVersion: function (dataString) {
         var index = dataString.indexOf(this.versionSearchString);
         if (index == -1) return;
         return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
      },
      dataBrowser: [
         {string: navigator.userAgent, subString: "Chrome",    identity: "Chrome"},
         {string: navigator.userAgent, subString: "OmniWeb",   identity: "OmniWeb", versionSearch: "OmniWeb/"},
         {string: navigator.vendor,    subString: "Apple",     identity: "Safari",  versionSearch: "Version"},
         {prop: window.opera,                                  identity: "Opera"},
         {string: navigator.vendor,    subString: "iCab",      identity: "iCab"},
         {string: navigator.vendor,    subString: "KDE",       identity: "Konqueror"},
         {string: navigator.userAgent, subString: "Firefox",   identity: "Firefox"},
         {string: navigator.vendor,    subString: "Camino",    identity: "Camino"},
         {string: navigator.userAgent, subString: "Netscape",  identity: "Netscape"},		// for newer Netscapes (6+)
         {string: navigator.userAgent, subString: "MSIE",      identity: "Explorer",versionSearch: "MSIE"},
         {string: navigator.userAgent, subString: "Gecko",     identity: "Mozilla", versionSearch: "rv"},
         {string: navigator.userAgent, subString: "Mozilla",   identity: "Netscape",versionSearch: "Mozilla"}  		// for older Netscapes (4-)
      ],
      dataOS : [
         {string: navigator.platform,  subString: "Win",       identity: "Windows"},
         {string: navigator.platform,  subString: "Mac",       identity: "Mac"},
         {string: navigator.userAgent, subString: "iPhone",    identity: "iPhone/iPod"},
         {string: navigator.platform,  subString: "Linux",     identity: "Linux"}
      ]
   };
   ErrorBrowserDetect.init();


