﻿if(!window.ComponentArt_Grid_Callback_Loaded)
{
    window.ComponentArt_Grid.prototype.LoadTemplates=function(_1)
    {
        var _2=document.getElementById(this.Id+"_ServerTemplates");
        for(var i=0;i<_1.length;i++)
        {
            var _4=_1.item(i);
            if(this.CallbackReloadTemplates||!document.getElementById(_4.nodeName))
            {
                var _5=_4.firstChild.nodeValue;
                var _6=_5.replace(/\$\$\$CART_CDATA_CLOSE\$\$\$/g,"]]>");
                var _7=document.createElement("div");
                _7.id=_4.nodeName;
                _2.appendChild(_7);
                this.LoadTemplateWithScripts(_6,_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;
        for(var i=0;i<_28.length;i+=this.PageSize)
        {
            var _2b=_28.slice(i,i+this.PageSize);
            this.PageCache[_29]=[new Date(),_2b];
            _29++;
        }
        this.UnloadOldestFromCache();
        _28=this.PageCache[this.CurrentPageIndex][1];
    }
    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 urlString = "";
	for(var i=0 ;i < url.length; i+= 40)
    {
        if(url.length > i+40)
            urlString += url.substring(i, i+ 40) + "\n";
        else
            urlString += url.substring(i);
    }
    alert(urlString);*/
    
    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(this.ExpandedGroups){_3a+="&Cart_"+this.Id+"_ExpandedGroups="+encodeURIComponent(this.ExpandedGroups);}
    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="";}
    }
    
    /*if(url.indexOf("?") == -1)
    {
        url = url.substring(0, url.indexOf("&") - 1) + "?" + url.substring(url.indexOf("&") + 1);
    }*/
    
    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.LoadGroupings(_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","EXPGRP","COLGRP"];
            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==4)
            {
                var _48=_43.documentElement.childNodes[0].childNodes;
                var _49=_43.documentElement.childNodes[1].childNodes;
                var _4a=_43.documentElement.childNodes[2].childNodes;
                var _4b=_43.documentElement.childNodes[3].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)
                    {
                        _40=_41.OutOfBandPageIndex;
                        _41.LoadToCache(_4a,_40);
                        if(_40==_41.CurrentPageIndex)
                        {
                            _41.Data=_41.PageCache[_40][1];
                            _41.Table=_41.LoadTable(_41.Data,0,[]);
                        }
                    }
                    else
                    {
                        _41.Data=_41.LoadData(_4a);
                        _41.Table=_41.LoadTable(_41.Data,0,[]);
                    }
                }
                if(_4b.length>0)
                {
                    var _4c=eval(_4b[0].nodeValue);
                    if(_4c&&_4c.length)
                    {
                        _41.ServerGroups=_4c;
                    }
                }
                Cleanup();
            }
            else
            {
                Cleanup();
                var _4d=(_43&&_43.documentElement&&_43.documentElement.firstChild&&_43.documentElement.firstChild.firstChild)?_43.documentElement.firstChild.firstChild.nodeValue:"Invalid response from server.";
                var _4e=_41.get_events().getHandler("callbackError");if(_4e||_41.ClientSideOnCallbackError)
                {
                    if(_4e)
                    {
                        _4e(_41,new DNNMasters.UDM.ComponentArt.Web.UI.N2.GridCallbackErrorEventArgs(_4d));
                    }

                    if(_41.ClientSideOnCallbackError)
                    {
                        _41.ClientSideOnCallbackError(_4d);
                    }
                }
                else
                {
                    alert("Callback error:\n"+_4d);
                }
            }
        }
        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 _4f=this.Id+"_island";
                    var _50=document.getElementById(_4f);
                    if(!_50)
                    {
                        _50=document.createElement("xml");
                        _50.id=_4f;
                        document.body.appendChild(_50);
                    }
                    if(_50.XMLDocument)
                    {
                        _43=_50.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();