var req;
img_line		= new Image(); 	img_line.src 		= "/js/images/line.gif";
img_minus		= new Image(); 	img_minus.src		= "/js/images/minus.gif";
img_minustop    = new Image(); 	img_minustop.src	= "/js/images/minustop.gif";
img_minusbottom	= new Image(); 	img_minusbottom.src	= "/js/images/minusbottom.gif";
img_plus		= new Image(); 	img_plus.src		= "/js/images/plus.gif";
img_plustop		= new Image(); 	img_plustop.src		= "/js/images/plustop.gif";
img_plusbottom	= new Image(); 	img_plusbottom.src	= "/js/images/plusbottom.gif";
img_join		= new Image(); 	img_join.src		= "/js/images/join.gif";
img_joinbottom	= new Image(); 	img_joinbottom.src	= "/js/images/joinbottom.gif";
recycle_empty	= new Image();	recycle_empty.src 	= "/js/images/recycle_empty.gif";
recycle_full	= new Image();	recycle_full.src 	= "/js/images/recycle_full.gif";
img_page_o 		= new Image();	img_page_o.src		= "/js/images/folderopen.gif";
img_page_p 		= new Image();	img_page_p.src		= "/js/images/page.gif";
img_page_f 		= new Image();	img_page_f.src		= "/js/images/folder.gif";
x		 		= new Image();	x.src				= "/js/images/x.gif";
img_page_o_h 	= new Image();	img_page_o_h.src	= "/js/images/folderopen_h.gif";
img_page_p_h 	= new Image();	img_page_p_h.src	= "/js/images/page_h.gif";
img_page_f_h 	= new Image();	img_page_f_h.src	= "/js/images/folder_h.gif";
bar             = new Image();  bar.src             ="/js/images/bar.gif";
bar_empty       = new Image();  bar_empty.src       ="/js/images/bar_empty.gif";
img_edit        = new Image();  img_edit.src        ="/js/images/ic_edit.gif";
img_del         = new Image();  img_del.src         ="/js/images/ic_del.gif";

var treeData=new Array();
var dbTable=null;
var dbDatatypes=null;
var command = "printElement";
var url="/lib/dynamic_tree.php";
var mode="TwoPanels";
var mode=null;
var left_id;
var second_id;
var statusleft_id;
var statusright_id;
var statusall_id;
var PerPageCount;
var SavedSecond=null;
var filter_id;
var data_id;
var page_id;
var UserID=null;

function OneCFind(obj)
{
    var data=document.getElementById("ifind").value;
    if(data!="")
    {
    
        var arr=new Array(); 
        var tmp=new Array(); tmp['u_id']=UserID; 
		if(obj!=null)
		{
			tmp['pageid']=obj.pageid;
		}
		else
		{
			tmp['pageid']=0;
		}

		tmp["ppcount"]=PerPageCount;
        arr.push(tmp);
        requestdata("get_filtred_data", data,"","",arr); ProcessCommandQueue();
    }
}

function RestoreInterface()
{
    delButtons();
    document.getElementById(filter_id).style.display='inline';
    document.getElementById(statusleft_id).style.display='inline';
    document.getElementById(statusright_id).style.display='inline';
}

function delButtons()
{
    if(document.getElementById("delbut2")!=null)
    {
        document.getElementById("delbut2").parentNode.removeChild(document.getElementById("delbut2"));
        document.getElementById("delbut1").parentNode.removeChild(document.getElementById("delbut1"));
    }
    if(document.getElementById(filter_id)!=null) document.getElementById(filter_id).style.display='inline';
    if(document.getElementById(statusleft_id)!=null) document.getElementById(statusleft_id).style.display='inline';
    if(document.getElementById(statusright_id)!=null) document.getElementById(statusright_id).style.display='inline';
    
}

function ResponseProcess(data)
{
    
    switch(data['cmd'])
    {
        case "move_node_to_sub":
        case "move_node_to_doc":
        case "insert_node_before":
        case "insert_node_after":
            RestoreInterface()
            CommandQueue.pop(CommandQueue);
            ProcessUpData(data);
            printTree(left_id, data['req_type_id']);
            treeData[data["req_target_id"]]['expanded']=0;
            ChangeExpState(document.getElementById('line_'+data["req_target_id"]));
            updateLines(1);
            break;
        case "get_tree_level":
            if(data['error']=='null')
            {
                RestoreInterface();
                ProcessUpData(data);
                CommandQueue.pop(CommandQueue);
                printTree(left_id, data['req_id']);
                printSecond(data["req_id"],data['data']);
            }
            else
            {
                alert("В настоящее время электронный прием заказов временно невозможен.");
                CommandQueue.pop(CommandQueue);
            }
            break;
            
        case "insert_new_node":
        case "remove_node":
        case "rename_node":
        case "showhide_node":
            RestoreInterface()
            ProcessUpData(data);
            CommandQueue.pop(CommandQueue);
            break;
        case "get_tree_filtered_data":
            if(data['error']=='null')
            {
                CommandQueue.pop(CommandQueue);
                RestoreInterface()
                printFilters(data['filters']);
                printSecond(data["req_id"], data["data"], data["cmd"]);
            }
            else
            {
                alert("В настоящее время электронный прием заказов временно невозможен.");
                CommandQueue.pop(CommandQueue);
            }
			break;
        case "get_tree_data":
        case "get_tree_data_adm":
            if(data['error']=='null')
            {
                CommandQueue.pop(CommandQueue);
                RestoreInterface()
                printFilters(data['filters']);
                printSecond(data["req_id"], data['data'], data['cmd']);
            }
            else
            {
                alert("В настоящее время электронный прием заказов временно невозможен.");
                CommandQueue.pop(CommandQueue);
            }
            
            break;
        case "get_full_data":
            RestoreInterface()
            printFullData(data["req_id"], data['data']);
            CommandQueue.pop(CommandQueue);
            break;            
        case "edit_data":
            RestoreInterface()
            printFullForm(data["req_id"], data["req_target_id"], data['data']);
            CommandQueue.pop(CommandQueue);
            break;
        case "bad_mail":
              CommandQueue.pop(CommandQueue);
              alert("Уже существует пользователь с таким E-Mail!");
              break; 
        case "sendorder":
            if((typeof(x_win)!='undefined')&&(x_win!=null))
            {
                x_win.close();
                x_win=null;
            }
            if(data['error']=='null')
            {
                Basket.splice(0, Basket.length);
                alert("Ваш заказ принят к исполнению. Номер заказа - "+data['procdata']+". После проверки заказа счет будет выслан  по E-Mail или по факсу.");
                CommandQueue.pop(CommandQueue);
            }
            else
            {
                alert("В настоящее время электронный прием заказов временно невозможен.");
                CommandQueue.pop(CommandQueue);
            }
            break;            
    }
    ProcessCommandQueue();
    var LeftPanel = document.getElementById('xmlTree');
    LeftPanel.style.cursor = "default";
    initIEFilter();
}

function initIEFilter()
{
    var bd=document.body.innerHTML;
    var re= /procIeFltr\(.*\)/
    var s=bd.search(re);
    if(s!=-1)
    {
        var bd1=bd.substring(s, bd.length);
        var ref=/\)/
        var e= bd1.search(ref);
        var cmd=bd1.substring(0, e)+");";
        eval(cmd);
     }
}

function printTree(parent, newid)
{
    if(newid=="")
    {
        for(var dd in treeData)
        {
            newid=dd;
            var TreeParent=document.getElementById(parent);
            treeData["9999999999999999"]={"parent_id":"-1","order_id":"null","children_id":"2","item_name":"Каталог","hidden":"null","node_type":"null"}
            treeData["9999999999999999"]["children_id"]=newid;
            var id="9999999999999999";
            CreateTextRow(TreeParent, id);
            break;
        }
    }
    else
    {
        var TreeParent=document.getElementById('id_'+newid);
        var id=newid;
    }
    /*
    if(newid==-1)
    {
        var id=1;
        var TreeParent=document.getElementById(parent);
        CreateTextRow(TreeParent,"-1");
    }
    else
    {
        var TreeParent=document.getElementById('id_'+newid);
        var id=newid;
    }
    
    */
    var DivElem=document.createElement("DIV");
    DivElem.id="iid_"+id;
    DivElem.style.display='none';
    TreeParent.appendChild(DivElem);
    if(treeData[id]['children_id']!="null")
    {
        var ord_id=treeData[id]['children_id'];
        while(ord_id!="null")
        {
            if(mode!=null)
            {
                CreateTextRow(DivElem, ord_id);
            }
            else
            {
                if(treeData[ord_id]['hidden']=='null')
                {
                    CreateTextRow(DivElem, ord_id);
                }
            }
            ord_id=treeData[ord_id]['order_id'];
        }
    }
    if(newid!=-1)
    {
        ChangeExpState(document.getElementById("line_"+id));
    }
}

function checkRecursion(draggedId, id_to)
{
    var id=id_to;
    while(id!=1)
    {
        id=treeData[id]['parent_id'];
        if(id==draggedId) return false;
    }
    return true;
}

function GetFilterParam(arr)
{
    var arr=new Array();
    var fform=document.getElementById('filter_form');
    ExtractFormParam(fform, arr, "nouse");
    var tmp=new Array(); tmp['u_id']=UserID;
    arr.push(tmp);
    var tmp=new Array(); tmp['id']=data_id;
    arr.push(tmp);
    var tmp=new Array(); tmp['page_id']=page_id;
    arr.push(tmp);
    var tmp=new Array(); tmp['cmd']=mode;
    arr.push(tmp);
    var tmp=new Array(); tmp['ppcount']=PerPageCount;
    arr.push(tmp);
    return arr;
}

function ClearTreeDataA(id)
{
    if(typeof(treeData[id])=='undefined') return;
    do
    {
        if(treeData[id]['children_id']!='null') ClearTreeDataA(treeData[id]['children_id']);
        var tmp_id=treeData[id]['order_id'];
        delete treeData[id];  
        if(tmp_id=='null')
        {
            id='null';
        }
        else
        {
            id=tmp_id;
        }
        var id=tmp_id;
    }while(id!='null');
}

function ClearTreeDataArr(id)
{
    ClearTreeDataA(treeData[id]['children_id']);
}

function CreateTextRow(parent, id)
{
    if(treeData[id]['hidden']!="null")
    {
        if(mode!='admin') return;
        if(UserID!="null") return;
    }
    var DivElem=document.createElement("DIV");
    DivElem.id="id_"+id;
    DivElem.className='divstr';
    parent.appendChild(DivElem);
    var Nobr=document.createElement("NOBR");
    DivElem.appendChild(Nobr);
    var ln=new Array();
    var level = GetEncloseLevel(id, ln);
    for(var i=0; i<level; i++)
    {
        var newElem=document.createElement("img");
        if(ln.pop()==1)
        {
            newElem.src=img_line.src;
        }
        else
        {
            newElem.src=x.src;
            newElem.className="imgem";
        }
        Nobr.appendChild(newElem);   
    }
    
    var newElemIm=document.createElement("img");
    newElemIm.id="line_"+id;
    if(treeData[id]['expanded']==undefined) treeData[id]['expanded']=0;

    newElemIm.onclick=function(){ChangeExpState(this);};
    Nobr.appendChild(newElemIm);
    var newElem=document.createElement("img");
    if(treeData[id]['children_id']!="null")
    {
        if(treeData[id]['hidden']!="null")
        {
           if(treeData[id]['expanded']==0)
           {
                newElem.src=img_page_f_h.src;
           }
           else
           {
                newElem.src=img_page_o_h.src;
           }
        }
        else
        {
           if(treeData[id]['expanded']==0)
           {
                newElem.src=img_page_f.src;
           }
           else
           {
                newElem.src=img_page_f_o.src;
           }
        }
    }
    else
    {
        if(treeData[id]['hidden']!="null")
        {
            newElem.src=img_page_p_h.src;
        }
        else
        {
            newElem.src=img_page_p.src;    
        }
    }
    newElem.id="treeel_"+id;
    newElem.pageid=0;
    newElem.pid=id;
    
    newElem.onclick=function(){getData(this);};
    Nobr.appendChild(newElem);
    
    var addText=document.createTextNode(treeData[id]['item_name']);
    var DivTxt=document.createElement("P");
    DivTxt.className='divtxt';
    DivTxt.id="txt_"+id;
    DivTxt.style.display="inline";
    DivTxt.appendChild(addText);
    DivTxt.pageid=0;
    DivTxt.pid=id;
    DivTxt.onclick=function(){ChangeExpState(document.getElementById(newElemIm.id));};;
    newElemIm.id
    Nobr.appendChild(DivTxt);
    SetExpanded(id, newElemIm);
    if((BrowserDetect.browser=="Explorer") && (mode=='admin')&&(UserID=="null"))
    {
        newElem=document.createElement("img");
        newElem.id="edt_"+id;
        newElem.src=img_edit.src
        newElem.onclick=function(event){return showmenu(event, this);};
        Nobr.appendChild(newElem);
        newElem=document.createElement("img");
        newElem.id="del_"+id;
        newElem.src=img_del.src;
        newElem.onclick=function(){if (confirm('Элемент будет удален. Продолжить?')) { removeNode(this); }};
        Nobr.appendChild(newElem);
    }
}


function getData(elem, isNew)
{
    if(document.body.style.cursor != "default") return;
    var el_id=elem.pid;
    document.getElementById(second_id).innerHTML = "";
    SavedSecond=null;
    document.getElementById('secondCaption').innerHTML = makeCaptionRow(el_id);
    data_id=elem.pid;
    var el_pid=elem.pageid;
    page_id=el_pid;
    var arr=new Array();
    var fform=document.getElementById('filter_form');
    if(fform!=null)
    {
        if(isNew!=null)
        {
            ExtractFormParam(fform, arr, "nouse");
            var tmp=new Array(); tmp['usefilter']="1";
            arr.push(tmp);
        }
    }
    var tmp=new Array(); tmp['id']=data_id;
    arr.push(tmp);
    var tmp=new Array(); tmp['u_id']=UserID;
    arr.push(tmp);
    document.getElementById(filter_id).innerHTML = "";
    
    if(mode=="admin")
    {
        requestdata("get_tree_data_adm", el_id, el_pid, PerPageCount, arr); ProcessCommandQueue();
    }
    else
    {
        requestdata("get_tree_data", el_id, el_pid, PerPageCount, arr); ProcessCommandQueue(); 
    }
}

function removeNode(elem)
{
    var id=elem.id.substr(4,elem.id.length);
    requestdata("remove_node", id); ProcessCommandQueue();
}

function SetExpanded(id, newElem)
{
      if(id=="1")
        {
            if(treeData[id]['expanded']==0)
            {
                newElem.src=img_plustop.src;
                SetFolderClosedImage(id);
            }
            else
            {
                newElem.src=img_minustop.src;
                SetFolderOpenImage(id);
            }
        }
        else
        {
            if(treeData[id]['children_id']=='null')
            {
                if(treeData[id]['order_id']=='null')
                {
                    newElem.src=img_joinbottom.src;
                }
                else
                {
                    newElem.src=img_join.src;
                }
                if(treeData[id]['hidden']=='null')
                {
                    newElem.nextSibling.src=img_page_p.src;
                }
                else
                {
                    newElem.nextSibling.src=img_page_p_h.src;
                }
            }
            else
            {
                if(treeData[id]['order_id']=='null')
                {
                    if(treeData[id]['expanded']==0)
                    {
                        newElem.src=img_plusbottom.src;
                        SetFolderClosedImage(id);
                    }
                    else
                    {
                        newElem.src=img_minusbottom.src;
                        SetFolderOpenImage(id);
                    }
                }
                else
                {
                    if(treeData[id]['expanded']==0)
                    {
                        newElem.src=img_plus.src;
                        SetFolderClosedImage(id);
                    }
                    else
                    {
                        newElem.src=img_minus.src;
                        SetFolderOpenImage(id);
                    }
                }    
            }
        }
}

function SetFolderOpenImage(id)
{
    if(treeData[id]['hidden']=='null')
    {
        document.getElementById("treeel_"+id).src=img_page_o.src;
    }
    else
    {
        document.getElementById("treeel_"+id).src=img_page_o_h.src;
    }
}

function SetFolderClosedImage(id)
{
    if(treeData[id]['hidden']=='null')
    {
        document.getElementById("treeel_"+id).src=img_page_f.src;
    }
    else
    {
        document.getElementById("treeel_"+id).src=img_page_f_h.src;
    }
}

function makeCaptionRow(id)
{
    SecondBack();
    var str="";
    var arr= new Array();
    while(id!='-1')
    {
        arr.push(treeData[id]['item_name']);
        id=treeData[id]['parent_id'];
    }
    while(arr.length!=0)
    {
        str+=arr.pop()+" / ";
    }
    return str;
}

function ChangeExpState(elem)
{
    //if(document.body.style.cursor != "default") return;
    var sid=elem.id;
    var id=sid.substr(5, sid.length);
    document.getElementById('secondCaption').innerHTML = makeCaptionRow(id);
    treeData[id]['expanded']=treeData[id]['expanded']^1;
    if((treeData[id]['expanded']==0)&&(treeData[id]['children_id']!='null'))
    {
        if(document.getElementById('iid_'+id)!=null)
        {
            document.getElementById('iid_'+id).style.display='none';
            if(BrowserDetect.browser=="Opera") 
            {
                document.body.style += '';
            }
            SetExpanded(id, elem);
            document.getElementById(filter_id).innerHTML="";
            document.getElementById(statusleft_id).style.display="none";
            document.getElementById(statusright_id).style.display="none";
         }
    }
    else
    {
        if((treeData[id]['children_id']!='null')&&(typeof(treeData[treeData[id]['children_id']]))=='undefined')
        {
            treeData[id]['expanded']=0;
	        var arr=new Array();
	        var tmp=new Array();
	        tmp['page_id']=0;
	        arr.push(tmp);
            var tmp=new Array();
	        tmp['ppcount']=PerPageCount;
        	arr.push(tmp);
            
            requestdata("get_tree_level", id, UserID, mode, arr);
            ProcessCommandQueue();
        }
        else
        {
            if(document.getElementById('iid_'+id)!=null) document.getElementById('iid_'+id).style.display='block';
            document.getElementById(second_id).innerHTML="";
            SetExpanded(id, elem);
            getData(elem.nextSibling);
        }
    }    
}

function GetEncloseLevel(id, ln)
{
    var cnt=0;
    var prnt_id=treeData[id]['parent_id'];
    
    while(prnt_id!=-1)
    {
        if(prnt_id!=-1)
        {
            if((treeData[prnt_id]['order_id']!='null')&&(treeData[prnt_id]['children_id']!='null'))
            {
                ln.push(1);
            }
            else
            {
                ln.push(0);
            }
        }
        else
        {
            ln.push(0);
        }
        cnt++;
        prnt_id=treeData[prnt_id]['parent_id'];
    }
    return cnt;
}

function ProcessUpData(data)
{
    var UpdArr= new Array();
    if(data['procdata']!="") 
    {
        eval(data['procdata']);
        for(dta in procData['delete'])
        {
            if(treeData[procData['delete'][dta]])
            {
                if(document.getElementById('id_'+procData['delete'][dta])!=null)
                {
                    document.getElementById('id_'+procData['delete'][dta]).parentNode.removeChild(document.getElementById('id_'+procData['delete'][dta]));
                }
                delete treeData[procData['delete'][dta]];
            }
        }
        for(dta in procData['insert'])
        {
            if(treeData[dta]==undefined)
            {
                treeData[dta]=procData['insert'][dta];
            }
        }
        for(dta in procData['update'])
        {
            if(treeData[procData['update'][dta]]!=undefined)
            {
                var exp=treeData[procData['update'][dta]]['expanded'];
                treeData[procData['update'][dta]]=upData[procData['update'][dta]];
                treeData[procData['update'][dta]]['expanded']=exp;
                updateLines(treeData["1"]['children_id']);
             }
        }
        
        for(dta in procData['update'])
        {
            if(treeData[procData['update'][dta]]==undefined)
             {
                treeData[procData['update'][dta]]=upData[procData['update'][dta]];
                var newParent=treeData[procData['update'][dta]]['parent_id'];
                if(treeData[treeData[newParent]['children_id']]==undefined)
                {
                    treeData[newParent]['expanded']=0;
                    	var arr=new Array();
                    	var tmp=new Array();
	                    tmp['page_id']=0;
	                    arr.push(tmp);
                        var tmp=new Array();
	                    tmp['ppcount']=PerPageCount;
	                    arr.push(tmp);

                    requestdata("get_tree_level", newParent, UserID, mode, arr);
                }
                else
                {
                    var parentEl=document.getElementById("iid_"+newParent);
                    if(parentEl==null)
                    {
                            parentEl=document.getElementById("id_"+newParent);
                            var DivElem=document.createElement("DIV");
                            DivElem.id="iid_"+newParent;
                            treeData[newParent]['expanded']=0;
                            DivElem.style.display='none';
                            parentEl.appendChild(DivElem);
                            parentEl=DivElem;
                            CreateTextRow(parentEl, procData['update'][dta]);
                            ChangeExpState(document.getElementById("line_"+newParent));
                    }
                    else
                    {
                        CreateTextRow(parentEl, procData['update'][dta]);
                        var BeforeId=GetBeforeElement(data['procdata'], procData['update'][dta]);
                        UpdArr.push(BeforeId);
                    }
                }
             }
        }
        if(UpdArr.length!=0) UpdateElementShow(UpdArr, data['procdata']);
    }
}

function UpdateElementShow(UpdArr, data)
{
    for(dta in UpdArr)
    {
        SetExpanded(UpdArr[dta], document.getElementById("treeel_"+UpdArr[dta]).previousSibling);
    }
    if(treeData["1"]!=undefined) updateLines(treeData["1"]['children_id']);
}

function updateLines(_id)
{
    if(typeof(treeData[_id])=="undefined")
    {   
        return;
    }
    else if (typeof(treeData[_id]['expanded'])=="undefined")
    {
        return;
    }
    do
    {
        if(document.getElementById('id_'+_id)==null) return;
        var elem=document.getElementById('id_'+_id).firstChild.firstChild;
        var ln=new Array();
        var level = GetEncloseLevel(_id, ln);
        for(var i=0; i<level; i++)
        {
            if(ln.pop()==1)
            {
                elem.src=img_line.src;
            }
            else
            {
                elem.src=x.src;
            }
            var elem=elem.nextSibling;
        }
        SetExpanded(_id, elem);
        if(treeData[_id]['children_id']!='null')
        {
           updateLines(treeData[_id]['children_id']);
        }
        _id=treeData[_id]['order_id'];
    }while(_id!='null');
}

function getFullData(type, id)
{
    requestdata("get_full_data", type, id, mode); ProcessCommandQueue();
}

function editData(type, id)
{
    requestdata("edit_data", data_id, id); ProcessCommandQueue();
}

function printSecond(id, dta, cmd)
{
    if(dta!="")
    {
        document.getElementById(second_id).innerHTML=dta['data'];
        var status=document.getElementById(statusleft_id);
        if(status.childNodes.length!=0)
        {
           while(status.childNodes.length!=0)
           {
                status.removeChild(status.firstChild);
           }
        }
        
        if(dta['count']!=0)
        {
            var addText=document.createTextNode("Страница ");
            var BElem=document.createElement("B");
            var addText1=document.createTextNode(parseInt(dta['current'],10)+1);
            var addText2=document.createTextNode(" из ");
            var addText3=document.createTextNode(Math.ceil(parseInt(dta['count'], 10)/PerPageCount));
            var BElem1=document.createElement("B");
            status.appendChild(addText); BElem.appendChild(addText1); status.appendChild(BElem); status.appendChild(addText2); BElem1.appendChild(addText3); status.appendChild(BElem1)
        }

        var status=document.getElementById(statusright_id);
        if(status.childNodes.length!=0)
        {
           while(status.childNodes.length!=0)
           {
                status.removeChild(status.firstChild);
           }
        }
        if(dta['count']!=0)
        {
             var addText=document.createTextNode("Страницы ");
             status.appendChild(addText);
             var addText=document.createTextNode(" ");
             status.appendChild(addText);
             for(var i=0; i<Math.ceil(parseInt(dta['count'], 10)/PerPageCount); i++)
             {
                var DivElem=document.createElement("DIV");
                var BElem=document.createElement("B");
                var addText=document.createTextNode((i+1)+' ');
                BElem.appendChild(addText);
                DivElem.appendChild(BElem);
                DivElem.pageid=i;
                DivElem.pid=id;
				if(cmd=="get_tree_filtered_data")
				{
					DivElem.onclick=function(){OneCFind(this);};
				}
				else
				{
					DivElem.onclick=function(){getData(this, "new");};
				}
                DivElem.style.display='inline';
                DivElem.style.float='left';
                DivElem.style.cursor='pointer';
                status.appendChild(DivElem);
             }
        }
    }
    
}

function printFullForm(type, id, dta)
{
    SavedSecond=document.getElementById(second_id).innerHTML;
    SavedStatus=document.getElementById(statusall_id).innerHTML;

    document.getElementById(filter_id).style.display='none';
    document.getElementById(second_id).innerHTML=dta;

    var buttNew=document.createElement("button");
    buttNew.id="delbut1";
    buttNew.onclick=function(){SecondBack();};
    var buttNewText=document.createTextNode("Назад");
    buttNew.appendChild(buttNewText);
    buttNew.style.marginRight=20;
    document.getElementById(statusleft_id).style.display="none";
    document.getElementById(statusright_id).style.display="none";
    document.getElementById(statusall_id).appendChild(buttNew);

    var buttNew1=document.createElement("button");
    buttNew1.id="delbut2";
    buttNew1.onclick=function(){FormSave(id, type);};
    var buttNewText1=document.createTextNode("Сохранить");
    buttNew1.appendChild(buttNewText1);
    document.getElementById(statusall_id).appendChild(buttNew1);
    
    var tmp1=dta.split('<script type="text/javascript">');
    if(tmp1[1]!=null)
    {
        var tmp2=tmp1[1].split('</script>');
        eval(tmp2[0]);
    }
}


function printFilters(filter)
{
    document.getElementById(filter_id).innerHTML=filter;
}

function clearFilter()
{
    var fform=document.getElementById('filter_form');
    clearFormParam(fform);
    filter_submit();
}

function clearFormParam(elem)
{
    if(elem!=null)
    {
        for(var i=0; i<elem.length; i++)
        {
            if((typeof(elem[i].name)!='undefined')&&(CheckType2(elem[i].name)==1))
            {
                switch(elem[i].name.substr(0,5))
                {
                    case "ctrl_":
                    case "cctrl":
                        elem[i].selectedIndex=0;
                        break;
                    case "chck_":
                        elem[i].checked=null;
                        break;
                    case "imag_":
                    case "text_":
                    case "btxt_":
                    case "ftxt_":
                    case "flot_":
                    case "intg_":
                        elem[i].value="";
                        break;
                }
            }
            if(elem[i].childNodes.length!=0)
            {
                clearFormParam(elem[i]);   
            }
        }
    }
}

function filter_submit()
{
    var fform=document.getElementById('filter_form');
    var arr=new Array();
    ExtractFormParam(fform, arr, "nouse");
    var tmp=new Array(); tmp['usefilter']="1";
    arr.push(tmp);
    var tmp=new Array(); tmp['id']=data_id;
    arr.push(tmp);
    var tmp=new Array(); tmp['u_id']=UserID;
    arr.push(tmp);

    if(mode=="admin")
    {    
        requestdata("get_tree_data_adm", data_id, 0, PerPageCount, arr); ProcessCommandQueue();
    }
    else
    {
        requestdata("get_tree_data", data_id, 0, PerPageCount, arr); ProcessCommandQueue();
    }
    
}

function printFullData(id, dta)
{
    SavedSecond=document.getElementById(second_id).innerHTML;
    SavedStatus=document.getElementById(statusall_id).innerHTML;
    document.getElementById(filter_id).style.display='none';
    document.getElementById(second_id).innerHTML=dta;
    var buttNew=document.createElement("button");
    buttNew.onclick=function(){SecondBack();};
    var buttNewText=document.createTextNode("Назад");
    buttNew.appendChild(buttNewText);
    document.getElementById(statusleft_id).style.display="none";
    document.getElementById(statusright_id).style.display="none";
    document.getElementById(statusall_id).appendChild(buttNew);
}

function SecondBack()
{
    if(SavedSecond==null)
    {
        document.getElementById(second_id).innerHTML="";
    }
    else
    {
        document.getElementById(second_id).innerHTML=SavedSecond;
    }
    imCount=0;
    document.getElementById(statusleft_id).style.display="inline";
    document.getElementById(statusright_id).style.display="inline";
    document.getElementById(filter_id).style.display='inline';
    while(document.getElementById(statusall_id).childNodes.length!=2)
    {
        document.getElementById(statusall_id).removeChild(document.getElementById(statusall_id).lastChild);
    }
}

function newDoc()
{
    if(typeof(data_id)!='undefined')
    {
        if(treeData[data_id]['node_type']=='null')
        {
            alert('Для ветки не установлен тип данных!');
        }
        else
        {
            requestdata("edit_data", data_id, 'null'); ProcessCommandQueue();
        }
    }
    else
    {
        alert('Для размещения нового елемента нужно выбрать раздел!');
    }
}

function procIeFltr(a)
{
    var elem=document.getElementById(a[0]);
    document.getElementById(a[1]).name=a[elem.selectedIndex+1];
    if(elem.selectedIndex==0) document.getElementById(a[1]).value="";
    var cap=a[1].split("_");
}

function blockKey(event)
{
    if (!event) event=window.event;
    if(document.body.style.cursor == "default")
    {
        return true;
    }
    else
    {
        return false;
    }
}

function blockMouse(event)
{
    if (!event) event=window.event;
    
}

function init1c(table, datatypes, ev, isadm, leftid, secondid, statusleft, statusright, statusall, filter, ppcount, uId)
{
    //if(isadm=='admin') document.getElementById('bNew').style.display='inline';
    UserID=uId;
    //mode=isadm;
    left_id=leftid;
    second_id=secondid;
    statusleft_id=statusleft;
    statusright_id=statusright;
    statusall_id=statusall;
    filter_id=filter;
    PerPageCount=ppcount;
    BrowserDetect.init();
    
    if((BrowserDetect.browser=="Explorer") && (mode=='admin'))
    {
        dragHelper=document.createElement("IMG");
        dragHelper.id="drghlpid";
        dragHelper.style.display='none';
        dragHelper.style.position='absolute';
        document.body.appendChild(dragHelper);
    }

    document.body.onselectstart = function(){return(false);};
    dbTable=table;
    dbDatatypes=datatypes;
	var arr=new Array();
	var tmp=new Array();
	tmp['page_id']=0;
	arr.push(tmp);
    var tmp=new Array();
	tmp['ppcount']=PerPageCount;
	arr.push(tmp);

    requestdata("get_tree_level", -1, UserID, mode, arr);
    ProcessCommandQueue();
}

function highlight(event) 
{
	if (!event) event=window.event;
	if(event.target==undefined)
	{
	    var srcElement=event.srcElement;
	}
	else
	{
	    var srcElement=event.target;
	}

	if (srcElement.className == "menuitems") 
	{
		srcElement.style.backgroundColor = "#CEE4F2";
	}
	return false;
}

function lowlight(event) 
{
    if (!event) event=window.event;
	if(event.target==undefined)
	{
	    var srcElement=event.srcElement;
	}
	else
	{
	    var srcElement=event.target;
	}

	if (srcElement.className == "menuitems") {
		srcElement.style.backgroundColor = "";
		window.status = "";
	}
}

function showHideNode(id, event)
{
    hidemenu(event, true);
    requestdata("showhide_node", id, treeData[id]['hidden']^1); ProcessCommandQueue();
}

var BrowserDetect = {
	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: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			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"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

