﻿if(!window.ComponentArt_Grid_Callback_Loaded) {
   window.ComponentArt_Grid.prototype.LoadTemplates = function(_1) {
      for(var i = 0; i < _1.length; i++) {
         var _3 = _1.item(i);
         var _4 = _3.firstChild.nodeValue;
         var _5 = _4.replace(/\$\$\$CART_CDATA_CLOSE\$\$\$/g,"]]>");
         var _6 = document.getElementById(this.Id + "_ServerTemplates");
         var _7 = document.createElement("div");
         _7.id = _3.nodeName;
         _6.appendChild(_7);
         this.LoadTemplateWithScripts(_5, _7);
         }
      };
   window.ComponentArt_Grid.prototype.LoadTemplateWithScripts = function(_8, _9) {
      var _a = [];
      var _b = [];
      var _c = "";
      var _d = _8.toLowerCase();
      while(true) {
         var _e = _d.indexOf("<script");
         if(_e < 0) {
            break;
            }
         else {
            var _f = _d.indexOf(">", _e) + 1;
            var _10 = _d.indexOf("</scr" + "ipt>", _e);
            if(_10 >= _f) {
               if(_10 == _f) {
                  var _11 = _d.indexOf("src=\"", _e);
                  if(_11 > 0) {
                     _11 += 5;
                     var _12 = _d.indexOf("\"", _11);
                     var _13 = _8.substring(_11, _12);
                     if(_13.length > 0) {
                        var _14 = document.getElementsByTagName("head").item(0);
                        if(_14) {
                           var _15 = _14.getElementsByTagName("script");
                           var _16 = false;
                           for(var j = 0; j < _15.length; j++) {
                              if(_15[j].src && _15[j].src == _13) {
                                 _16 = true;
                                 break;
                                 }
                              }
                           if(!_16) {
                              _a[_a.length] = _13;
                              }
                           }
                        }
                     }
                  }
               var _18 = _10 + 9;
               if(_10 > _f) {
                  var _19 = _8.substring(_f, _10);
                  _b[_b.length] = _19;
                  }
               _8 = _8.substring(0, _e) + _8.substring(_18);
               _d = _d.substring(0, _e) + _d.substring(_18);
               }
            }
         }
      _9.innerHTML = _8;
      if(this.CallbackReloadTemplateScripts) {
         var _1a = document.getElementsByTagName("head").item(0);
         for(var i = 0; i < _a.length; i++) {
            if(!this.IsScriptLoaded(_1a, _a[i])) {
               var _1c = document.createElement("script");
               _1c.setAttribute("type", "text/javascript");
               _1c.setAttribute("src", _a[i]);
               _1a.appendChild(_1c);
               }
            }
         for(var i = 0; i < _b.length; i++) {
            var _1c = document.createElement("script");
            _1c.setAttribute("type", "text/javascript");
            _1c.text = _b[i];
            document.body.appendChild(_1c);
            }
         }
      };
   window.ComponentArt_Grid.prototype.IsScriptLoaded = function(_1d, src) {
      var _1f = document.getElementsByTagName("SCRIPT");
      for(var i = 0; i < _1f.length; i++) {
         if(_1f[i].src.indexOf(src) >= 0) {
            return true;
            }
         }
      return false;
      };
   window.ComponentArt_Grid.prototype.LoadToCache = function(_21, _22) {
      var _23 = eval(_21[0].nodeValue);
      if(this.PageCache) {
         var _24 = _22;
         for(var i = 0; i < _23.length; i += this.PageSize) {
            var _26 = _23.slice(i, i + this.PageSize);
            this.PageCache[_24] = [new Date(), _26];
            _24++;
            }
         this.UnloadOldestFromCache();
         }
      };
   window.ComponentArt_Grid.prototype.LoadData = function(_27) {
      var _28 = eval(_27[0].nodeValue);
      if(this.PageCache && _28.length > this.PageSize) {
         var _29 = this.CurrentPageIndex + 1;
         for(var i = this.PageSize; i < _28.length; i += this.PageSize) {
            var _2b = _28.slice(i, i + this.PageSize);
            this.PageCache[_29] = [new Date(), _2b];
            _29++;
            }
         this.UnloadOldestFromCache();
         }
      return _28;
      };
   window.ComponentArt_Grid.prototype.SetParams = function(_2c) {
      for(var _2d = 0; _2d < _2c.length; _2d++) {
         var _2e = _2c.item(_2d);
         var _2f = _2e.nodeName;
         var _30 = _2e.firstChild ? _2e.firstChild.nodeValue : null;
         try {
            this[_2f] = eval(_30);
            }
         catch(ex) {
            this[_2f] = _30;
            }
         }
      };
   window.ComponentArt_Grid.prototype.Callback = function(_31, _32, _33, _34, _35) {
      var _36 = (_35 == 0 || _35);
      if(this.CallbackInProgress) {
         return;
         }
      else {
         this.CallbackInProgress = true;
         }
      var _37 = this.get_events().getHandler("beforeCallback");
      if(_37) {
         var _38 = new Sys.CancelEventArgs();
         _37(this, _38);
         if(_38.get_cancel()) {
            return false;
            }
         }
      if(this.ClientSideOnBeforeCallback) {
         this.ClientSideOnBeforeCallback();
         }
      if(this.PageCache &&!_34) {
         this.PageCache = [];
         }
      if(!_33) {
         _33 = this.GetEventList();
         }
      if(!_31) {
         _31 = 0;
         }
      var url = this.CallbackPrefix;
      var _3a = "";
      if(_32) {
         _3a += "&Cart_" + this.Id + "_Callback_Path=" + _32.JoinedPath;
         }
      _3a += "&Cart_" + this.Id + "_Callback_Level=" + _31;
      _3a += "&Cart_" + this.Id + "_Callback_Script=" + encodeURIComponent(_33);
      if(_36) {
         _3a += "&Cart_" + this.Id + "_Callback_OutOfBand=1";
         }
      //if(this.CallbackParameter){
      _3a += "&Cart_" + this.Id + "_CallbackParameter=" + encodeURIComponent(this.CallbackParameter);
      //}
      if(_32) {
         }
      else {
         if(this.LoadingPanelEnabled &&!_36) {
            if(!this.LoadingPanelFadeDuration) {
               this.Data.length = 0;
               }
            this.Render();
            }
         }
      if(this.CallbackReloadTemplates) {
         var _3b = document.getElementById(this.Id + "_ServerTemplates");
         if(_3b) {
            _3b.innerHTML = "";
            }
         }
      this.DoCallback(_31, _32, url, _3a, _35);
      };
   window.ComponentArt_Grid.prototype.DoCallback = function(_3c, _3d, url, _3f, _40) {
      var _41 = this;
      var _42 = false;
      var _43 = null;
      function Cleanup() {
         if(!_3d && _41.TemplateCache) {
            _41.TemplateCache = new Object();
            }
         _41.LoadGroups(_41.Groupings);
         if(_41.AddingRow) {
            _41.Table.Data.push([]);
            _41.EditingId = _41.Table.GetRow(_41.Table.Data.length - 1).ClientId;
            _41.RecordCount++;
            _41.PageCount = Math.ceil(_41.RecordCount / _41.PageSize);
            }
         if(!_41.EventListObj) {
            _41.EventListObj = document.getElementById(_41.Id + "_EventList");
            }
         if(_41.EventListObj) {
            var _44 = ["INSERT", "ADDROW", "UPDATE", "DELETE", "CHECK", "UNCHECK"];
            for(var i = 0; i < _44.length; i++) {
               _41.EventListObj.value = _41.RemoveEvents(_44[i]);
               }
            }
         _41.CallbackInProgress = false;
         if(_41.SelfReferencing && _3c <= _41.Levels.length + 1) {
            _41.Levels[_41.Levels.length] = _41.Levels[0];
            }
         _41.Render();
         var _46 = _41.get_events().getHandler("callbackComplete");
         if(_46) {
            _46(_41, Sys.EventArgs.Empty);
            }
         if(_41.ClientSideOnAfterCallback) {
            setTimeout(_41.Id + ".ClientSideOnAfterCallback()", 10);
            }
         if(_41.AfterCallbackEventHandler) {
            _41.AfterCallbackEventHandler(_41, _41.AfterCallbackEventArgs);
            _41.AfterCallbackEventHandler = null;
            _41.AfterCallbackEventArgs = null;
            }
         }
      function _q19F() {
         if(_43.readyState && _43.readyState != 4 && _43.readyState != "complete") {
            return;
            }
         var _47 = _43.responseText;
         if(_41.Debug) {
            if(_47) {
               alert("Received content:\n" + _47);
               }
            }
         if(_42) {
            _43 = _43.responseXML;
            }
         if(_43 && _43.documentElement) {
            if(_43.documentElement.childNodes.length == 3) {
               var _48 = _43.documentElement.childNodes[0].childNodes;
               var _49 = _43.documentElement.childNodes[1].childNodes;
               var _4a = _43.documentElement.childNodes[2].childNodes;
               _41.SetParams(_48);
               if(_49.length > 0) {
                  _41.LoadTemplates(_49);
                  }
               if(_3d) {
                  _3d.Data[_41.Levels[_3d.Level].Columns.length] = _41.LoadData(_4a);
                  }
               else {
                  if(_40 || _40 == 0) {
                     _41.LoadToCache(_4a, _40);
                     }
                  else {
                     _41.Data = _41.LoadData(_4a);
                     _41.Table = _41.LoadTable(_41.Data, 0, []);
                     }
                  }
               Cleanup();
               }
            else {
               Cleanup();
               var _4b = (_43 && _43.documentElement && _43.documentElement.firstChild && _43.documentElement.firstChild.firstChild) ? _43.documentElement.firstChild.firstChild.nodeValue : "Invalid response from server.";
               var _4c = _41.get_events().getHandler("callbackError");
               if(_4c || _41.ClientSideOnCallbackError) {
                  if(_4c) {
                     _4c(_41, new ComponentArt.Web.UI.GridCallbackErrorEventArgs(_4b));
                     }
                  if(_41.ClientSideOnCallbackError) {
                     _41.ClientSideOnCallbackError(_4b);
                     }
                  }
               else {
                  alert("Callback error:\n" + _4b);
                  }
               }
            }
         else {
            alert("The data could not be loaded.");
            Cleanup();
            }
         }
      if(this.Debug) {
         alert("Sending callback data:\n" + unescape(_3f).replace(/\&/g,"\n").replace(/\;/g,"\n"));
         }
      if(window.XMLHttpRequest) {
         _42 = true;
         var _43 = new XMLHttpRequest();
         _43.onreadystatechange = _q19F;
         _43.open("POST", url, true);
         _43.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         _43.send(_3f);
         }
      else {
         if(document.implementation && document.implementation.createDocument) {
            _43 = document.implementation.createDocument("", "", null);
            _43.onload = _q19F;
            }
         else {
            if(cart_browser_ie) {
               if(window.ActiveXObject) {
                  try {
                     _43 = new ActiveXObject("Microsoft.XMLHTTP");
                     _43.onreadystatechange = _q19F;
                     _43.open("POST", url, true);
                     _43.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                     _43.send(_3f);
                     _42 = true;
                     }
                  catch(ex) {
                     }
                  }
               if(_43 == null) {
                  var _4d = this.Id + "_island";
                  var _4e = document.getElementById(_4d);
                  if(!_4e) {
                     _4e = document.createElement("xml");
                     _4e.id = _4d;
                     document.body.appendChild(_4e);
                     }
                  if(_4e.XMLDocument) {
                     _43 = _4e.XMLDocument;
                     _43.onreadystatechange = _q19F;
                     }
                  else {
                     return false;
                     }
                  }
               }
            else {
               return false;
               }
            }
         }
      if(!_42) {
         _43.async = true;
         try {
            _43.load(url + _3f);
            }
         catch(ex) {
            Cleanup();
            alert("Data not loaded: " + (ex.message ? ex.message : ex));
            }
         }
      return true;
      };
   window.ComponentArt_Grid_Callback_Loaded = true;
   }
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();