/*-------------------------------------function for list of objects ----------------------------------------------*/
//Выбор всех выбранных объектов
function selectAllSelectedObj(obj) {
	var elements = document.getElementsByTagName("input");
	selectedIdArray = new Array();
	selectedTitleArray = new Array();
	exceptionIdArray = new Array();
	selectAllSelected = (obj!=null && obj.checked) ? "true" : "false";
	var pframe=(self.parent && self.parent.frames["param"]) ? self.parent.frames["param"] :null;
	if (pframe!=null && pframe.document.forms["saveSelectedObj"] !=null){
		pframe.document.forms["saveSelectedObj"].elements["selectAllSelected"].value=selectAllSelected;
		pframe.document.forms["saveSelectedObj"].elements["selectAllSelected"].removeAttribute("dropIt");
	}

//	var flag=false;
	for (var i = 0; i < elements.length; i++) {
		var el = elements[i];
//		if ((mode = el.getAttribute("mode")) != null && (mode == "selectable" || mode == "selectAll")) {
		if ((mode = el.getAttribute("mode")) != null && mode == "selectAll") {
			if (obj.checked) {
				el.checked=true
//				el.checked = false;
//				el.disabled = true;
			} else {
					el.checked = false;
//					flag=true;
//					el.removeAttribute("disabled");
			}
			selectAll(self,el);
		}
	}
/*	if (flag) {
		var pframe=(self.parent && self.parent.frames["param"]) ? self.parent.frames["param"] :null;
		if (pframe!=null && pframe.document.forms["saveSelectedObj"] !=null){
			pframe.document.forms["saveSelectedObj"].elements["selectAllSelected"].value=selectAllSelected;
		}
	}*/
	
	if(getSelectMode()!=OBJECT_MODE) setSelectMode(OBJECT_MODE);
	prepareSelect(obj, OBJECT_MODE);
	setSelectMode(OBJECT_MODE);
	setButtonState();
}

//Выбор всех чекбоксов в списке объектов
function selectAll(win, obj) {
    var elements = document.getElementsByTagName("input");
	doSetAll=(obj!=null && obj.checked) ? true: false;

    for (var i = 0; i < elements.length; i++) {
        var el = elements[i];
        if ((mode = el.getAttribute("mode")) != null && mode == "selectable") {
            if (!obj || ((obj.checked && !el.checked) || (!obj.checked && el.checked))) {
				if (doWithAll!=null && doWithAll==0) doWithAll=1;
                el.click();
            }
        }
    }

	if (selectAllSelected=="false") showChoosenObjNumber(); // do not display choosen objects hint if selectAllSelected=true
	if (doWithAll!=null) doWithAll=0;
}

function sendArrays(a) {
	str="";
	if(!a) return str;
    for (var i = 0; i < a.length; i++) {
		str+=a[i];
		if(i!=(a.length-1)) str+="|";
	}
	return str;
}

function  getAllreadySelected() {
	if(selectedIdArray==null || selectedTitleArray==null) return;
	var p=getSavedParams();
	if(p==null) return;
//	alert("get it= p0: "+p[0]+"\np1: "+p[1]+"\np2: "+p[2]);
	if(p[0]!=null) selectedIdArray=p[0];
	if(p[1]!=null) selectedTitleArray=p[1];
	selectAllSelected=p[2];
	if (p[3]!=null) selectedObjClass=p[3];
	if (p[4]!=null) exceptionIdArray=p[4];
}

function getSavedParams() {
	var pframe = getFrame(top,"param");
	if (pframe==null) return null;
	var f=pframe.document.forms["saveSelectedObj"];
	var sf=self.document.forms["saveSelectedObj"];
	if (f==null || sf==null) return null;
	var curMadFolder=pframe.document.getElementById("currentMadFolder");
	if (!curMadFolder && (typeof(saveListOfChoosenObj)=="undefined" || !saveListOfChoosenObj) && (f.elements["pageWithCheckers"]==null || (f.elements["pageWithCheckers"] && f.elements["pageWithCheckers"].value != sf.elements["pageWithCheckers"].value))) return null;
	var p=new Array();
	if (f.elements["selectedObjIDs"] && f.elements["selectedObjIDs"].value!="" && f.elements["selectedObjTitles"] ) {
	  p[0]= f.elements["selectedObjIDs"].value.split("|");
	  p[1]= f.elements["selectedObjTitles"].value.split("|");
	}
	else {p[0]=null; p[1]=null;}

	p[2]= f.elements["selectAllSelected"].value;
	p[3]= (f.elements["selectedObjClass"] && f.elements["selectedObjClass"].value!="")?f.elements["selectedObjClass"].value:null;
	if (f.elements["exceptionObjIDs"] && f.elements["exceptionObjIDs"].value!="") {
	  p[4]= f.elements["exceptionObjIDs"].value.split("|");
	}
	else {p[4]=null;}

	//alert("save= p0: "+p[0]+"\np1: "+p[1]+"\np2: "+p[2]);
    return p;
}

function saveSelectedObjects() {
	var pframe = getFrame(top,"param");
	if (pframe==null) return;
	var f=document.forms["saveSelectedObj"];
	var frForm=pframe.document.forms["saveSelectedObj"];
	var doDrop_selectAllSelected=false;
	if (frForm && frForm.elements["selectAllSelected"]) {
		doDrop_selectAllSelected=(!frForm.elements["selectAllSelected"].getAttribute("dropIt"))?false:true;
	}
//	alert(selectedIdArray+"\n"+selectedTitleArray+"\n\n"+selectAllSelected+"\n\n"+selectedObjClass+"\n\n"+exceptionIdArray);
	if (selectedIdArray !=null && selectedTitleArray!=null ) {
		if (f.elements["selectedObjIDs"]) f.elements["selectedObjIDs"].value=sendArrays(selectedIdArray);
		if (f.elements["selectedObjTitles"]) f.elements["selectedObjTitles"].value=sendArrays(selectedTitleArray);
		if (f.elements["selectAllSelected"]) f.elements["selectAllSelected"].value=(doDrop_selectAllSelected)?false:selectAllSelected;
		if (f.elements["selectedObjClass"]) f.elements["selectedObjClass"].value=selectedObjClass;
		if (f.elements["exceptionObjIDs"]) f.elements["exceptionObjIDs"].value=sendArrays(exceptionIdArray);
	}
	else {
		var p=getSavedParams();
		if(p!=null) {
				 if (f.elements["selectedObjIDs"]) f.elements["selectedObjIDs"].value=(p[0]!=null) ? p[0].join("|") : "";
				 if (f.elements["selectedObjTitles"]) f.elements["selectedObjTitles"].value=(p[1]!=null) ? p[1].join("|") : "";
				 if (f.elements["selectAllSelected"]) f.elements["selectAllSelected"].value=(doDrop_selectAllSelected)?false:selectAllSelected;
				 if (f.elements["selectedObjClass"]) f.elements["selectedObjClass"].value=(p[3]!=null) ? p[3] : "";
				 if (f.elements["exceptionObjIDs"]) f.elements["exceptionObjIDs"].value=(p[4]!=null) ? p[4].join("|") : "";
		}
		else {
		     if (f.elements["selectedObjIDs"]) f.elements["selectedObjIDs"].value="";
			 if (f.elements["selectedObjTitles"]) f.elements["selectedObjTitles"].value="";
			 if (f.elements["selectAllSelected"]) f.elements["selectAllSelected"].value="false";
			 if (f.elements["selectedObjClass"]) f.elements["selectedObjClass"].value="";
		     if (f.elements["exceptionObjIDs"]) f.elements["exceptionObjIDs"].value="";
		}
	}
	var html=document.getElementById("saveSelectedContainer").innerHTML;
	var curMadFolder=pframe.document.getElementById("currentMadFolder");

	if (curMadFolder!=null) {
		html += "<input type='"+curMadFolder.type+"' name='"+curMadFolder.getAttribute("id")+"' id='"+curMadFolder.getAttribute("id")+"' value='"+curMadFolder.value+"'>";
	}
	pframe.document.body.innerHTML=html;
	if (self.addEventListener) {
		if (frForm) {
			if (frForm.elements["selectedObjIDs"]) frForm.elements["selectedObjIDs"].value= (f.elements["selectedObjIDs"])? f.elements["selectedObjIDs"].value:"";
			if (frForm.elements["selectedObjTitles"]) frForm.elements["selectedObjTitles"].value=(f.elements["selectedObjTitles"])? f.elements["selectedObjTitles"].value:"";
			if (frForm.elements["selectAllSelected"]) frForm.elements["selectAllSelected"].value=(f.elements["selectAllSelected"]) ? f.elements["selectAllSelected"].value:"false";
			if (frForm.elements["selectedObjClass"]) frForm.elements["selectedObjClass"].value=(f.elements["selectedObjClass"])? f.elements["selectedObjClass"].value:"";
			if (frForm.elements["exceptionObjIDs"]) frForm.elements["exceptionObjIDs"].value= (f.elements["exceptionObjIDs"])? f.elements["exceptionObjIDs"].value:"";
		}
	}
}

function  cleanParamFrame() {
	var pframe = getFrame(top,"param");
	if (pframe!=null) pframe.document.body.innerHTML="";
}

function clearSelectedInList(inpName) {
	var elems=document.getElementsByName(inpName);
	if (elems.length > 0) clearSelected(elems[0], window);
	else {clearSelected();}
	var checker=document.getElementById("selAll_onPage");
	if (checker) {checker.checked=false;}
	var f=document.forms["saveSelectedObj"];
	if (f!=null) {
		if (f.elements["selectedObjIDs"]) f.elements["selectedObjIDs"].value="";
		if (f.elements["selectedObjTitles"]) f.elements["selectedObjTitles"].value="";
		if (f.elements["selectAllSelected"]) f.elements["selectAllSelected"].value="false";
		if (f.elements["selectedObjClass"]) f.elements["selectedObjClass"].value="";
		if (f.elements["exceptionObjIDs"]) f.elements["exceptionObjIDs"].value="";
		var pframe = getFrame(top,"param");
		if (pframe!=null) pframe.document.body.innerHTML=document.getElementById("saveSelectedContainer").innerHTML;
	}
	showChoosenObjNumber();
}

function showChoosenObjNumber(all,allready,now) {
	if (typeof(saveListOfChoosenObj)=="undefined" || !saveListOfChoosenObj) return;
	all=(all==null)?((typeof(selectedIdArray)!="undefined" && selectedIdArray!=null)?selectedIdArray.length:0):all;
	if (now==null) {
		now=0;
		if (typeof(selectCheckersName)=="undefined" || selectCheckersName=="") selectCheckersName="selId(0)";
		var elems=document.getElementsByName(selectCheckersName);
		if (elems.length>0) {
			for(z=0;z<elems.length;z++) {
				if (elems[z].checked) now++;
			}
		}
	}
	if (allready==null) {allready=all-now;}
	var bar=$("selectedObjectsBar");
	var viewbut=$("sendListBut");
	if (all>0) {
		if (bar) bar.style.display="";
		if (viewbut) viewbut.style.display="";
	}
	else {
		if (bar) bar.style.display="none";
		if (viewbut) viewbut.style.display="none";
	}

//	alert(all+" -- "+allready+" --- "+now+"\n"+"selectedIdArray="+selectedIdArray.length);
	var tag1=$("allChoosenObjects");
	if(tag1) tag1.innerHTML=all;
	var tag2=$("allreadyChoosenObjects");
	if(tag2) tag2.innerHTML=allready;
	var tag3=$("nowChoosenObjects");
	if(tag3) tag3.innerHTML=now;
}

function sendSelectedObjIdList(form) {
	if (form==null) return;
	if (selectedIdArray !=null && selectedIdArray.length>0) {
		var sf=document.forms["searchForm"];
		if (sf) {
			var el1=sf.elements["showSF"];
			if (el1!=null) makeInput(form, "hidden", "showSF", el1.value);
			var el2=sf.elements["notVisibleSF"];
			if (el2!=null) makeInput(form, "hidden", "notVisibleSF", el2.value);
			var el3=sf.elements["urlParams"];
			if (el3 && self.location.href.indexOf("?")==-1) form.setAttribute("action",self.location.href+"?"+sf.elements["urlParams"].value);
		}
		var hid = form.elements["objIdList"];
		var hidCls = form.elements["cls"];
		if (hid && hidCls) {
			hid.value=selectedIdArray.join(",");
			hidCls.value=selectedObjClass;
			form.submit();
		}
	}
}

function checkSelected(inpName) {
	if(inpName==null || inpName=="") return;
	var sp=getSavedParams();
	//alert("ARRAY:\n"+sp);
	if(sp==null) return;
	var all=(sp[0]!=null)?sp[0].length:0;
	var elems=document.getElementsByName(inpName);
	if (elems.length ==0 && (typeof(saveListOfChoosenObj)=="undefined" || !saveListOfChoosenObj)) {
		if (selectAllSelected=="false") showChoosenObjNumber(all,all,0); 
		return;
	}
	var cb_selall=document.getElementById("cb_selall");

	if(getSelectMode()!=OBJECT_MODE) setSelectMode(OBJECT_MODE);
    if (elems.length>0) prepareSelect(elems[0], OBJECT_MODE);
	setSelectMode(OBJECT_MODE);
    selectedIdArray = new Array();
    selectedTitleArray = new Array();
    selectAllSelected = sp[2];
	if (sp[3]!=null) { 
	//	alert(sp[3]+" =="+selectedObjClass);
		if (sp[3]!= selectedObjClass) {
			clearSelectedInList();
			return;
		}
	}
	var exception=0;
    if (cb_selall) {
          if (sp[2] == "true") {
			  cb_selall.checked=true;
			  selectAllSelectedObj(cb_selall);
			  	if (sp[4]!=null && elems.length>0){
					for(z=0;z<elems.length;z++) {
					    if (contains(sp[4],elems[z].value)) {elems[z].checked=false; exception++;}
					}
				}

            // cb_selall.click();
          }
    }
	if (self.getAllreadySelected) getAllreadySelected();

	var now=0;
	if (sp[0]!=null && sp[1]!=null && elems.length>0){
		for(z=0;z<elems.length;z++) {
		    if (contains(sp[0],elems[z].value) && contains(sp[1],elems[z].title)) {elems[z].checked=true; now++;}
		}
	}
//	now=now-exception;
	if (selectAllSelected=="false") showChoosenObjNumber(all,(all-now),now);
}


var savedForm = null;

function saveSearchForm(form, target, id, promptTitle, selName, isDeleteMode) {
    if (isDeleteMode || (promptTitle && promptTitle.length > 0)) {
        if (!isDeleteMode) {
            savedForm = form[selName];
        } else {
            savedForm = null;
        }
        var prevAction = form.action;
        var prevTarget = form.target;
        form.action = "saveSearchForm.sx";
        form.target = target;
        addInput(form, "objId", id);
        if (promptTitle)
            addInput(form, "title", promptTitle);
        if (isDeleteMode) {
            addInput(form, "cmd", "delete");
        }
        form.submit();
        var node = form["cmd"];
        if (node)
            form.removeChild(node);

        node = form["title"];
        if (node && promptTitle) {
            form.removeChild(node);
        }

        node = form["objId"];
        if (node)
            form.removeChild(node);

        form.action = prevAction;
        form.target = prevTarget;
    }
}

function deleteSearchForm(form, target, id) {
    var Sel = form[id];
    if (!id || !Sel.value || Sel.value == "")
        return;
    saveSearchForm(form, target, Sel.value, null, null, true);
    i = 0;
    while (i < Sel.length)
    {
        if (Sel.options[i].selected)
        {
            Sel.remove(i);
        }
        else ++i;
    }
}

function addSavedForm(txt, val) {
    var Sel = savedForm;
    if (!Sel)
        return;
    var newop = document.createElement("OPTION");
    newop.value = txt;
    newop.text = val;
    if (isIE) {
        Sel.add(newop);
    } else {
        Sel.add(newop, null);
    }
    newop.selected = true;
}

/*-------------------------------------------/---------end of function for list of objects ----------------------------------------------------------*/



/* ------------------------------------------------------handle functions for selected objects and folders ------------------------------------*/

function setObjectState(rowName, attrName, className, disableClassName) {
    var idArray = getSelObjects()[0];
    var rowArray = document.getElementsByName(rowName);
    for (var i = 0; i < rowArray.length; i++) {
        if (contains(idArray, rowArray[i].getAttribute(attrName))) {
            rowArray[i].className = disableClassName;
        } else {
            rowArray[i].className = className;
        }
    }
}

function doObjCmd(cmd, arg, flag) {
    if (arg == null || (arg != null && trim(arg) == "")) return getFalse();
    switch (cmd) {
        case 0: if (isSelected()) {
            eval("objCopy('cmdFrame', 'CopyForm'," + arg + ")");
        } break;
        case 1: if (isSelected()) {
            eval("objCut('cmdFrame', 'CopyForm'," + arg + ")");
        } break;
        case 2: if (!flag) {
            eval("objPaste('cmdFrame', 'PasteForm', " + arg + ")");
        } break;
        case 3: if (!flag) {
            eval("objPasteToUp('cmdFrame', 'PasteForm', " + arg + ")");
        }break;
        case 4:// if (isSelected() && confirm('Вы уверены ?')) {
			if (isSelected()) {
	            eval("objDelete('cmdFrame', 'DeleteForm', " + arg + ")");
        } break;
        case 5: if (!flag) {
            eval("objMakeLink('cmdFrame', 'MakeLinkForm', " + arg + ")");
        } break;
        case 6: if (isSelected() && canDelLink() && confirm('Вы уверены ?')) {
            eval("deleteLink('cmdFrame', 'DeleteLinkForm', " + arg + ")");
        } break;
        case 7:
            eval("objDataPrint(" + arg + ")");
        break;
    }
    return getFalse();
}

function prepareToCopy(form, folderId, objId, linkAttr, ds, objClass) {
    addInput(form, "dsName", ds);
    addInput(form, "className", objClass);
    addInput(form, "folderId", folderId);
    addInput(form, "objId", objId);
    addInput(form, "sessionParams", getSelectAllSelected());
    addInput(form, "paramsHashCode", getParamsHashCode());
    sendExceptionObjIds(form);
    addInput(form, "linkAttrName", linkAttr);
}
function prepareToPaste(form, objId, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass) {
    addInput(form, "objId", objId);
    addInput(form, "sessionParams", getSelectAllSelected());
    sendExceptionObjIds(form);
    addInput(form, "paramsHashCode", getParamsHashCode());
    addInput(form, "dsName", objDs);
    addInput(form, "className", objClass);
    addInput(form, "linkAttrName", linkAttr);
    addInput(form, "folderDsName", folderDs);
    addInput(form, "folderClassName", folderClass);
    addInput(form, "folderLinkAttrName", folderLinkAttr);
}
function addPasteToUp(form) {
    if (!form) return;
    addInput(form, "to", "up");
}
function prepareToDelete(form, objId, linkAttr) {
    var idArray = getSelObjects()[0];
    var titleArray = getSelObjects()[1];
    var inputTag = null;
    var id = null;
    var title = null;
    if (titleArray && titleArray.length > 0) {
        for (i = 0; i < titleArray.length; i++) {
            id = idArray[i];
            title = titleArray[i];
            addInput(form, "data[" + i + "]", id);
            addInput(form, "objTitle[" + i + "]", title);
        }
    }
    addInput(form, "objId", objId);
    addInput(form, "sessionParams", getSelectAllSelected());
    addInput(form, "paramsHashCode", getParamsHashCode());
    sendExceptionObjIds(form);
    addInput(form, "linkAttrName", linkAttr);
}

function objDataPrint(id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass, mode) {
    var idArray = getSelObjects()[0];
    if (!mode) mode = OBJECT_MODE;                    
    if (mode == OBJECT_MODE) {
      url('obj/ObjDataPrint.sx?sxId=' + id + '&objId=' + idArray + "&sessionParams=" + getSelectAllSelected() + "&paramsHashCode=" + getParamsHashCode() + "&sxClass=" + objClass);
    } else {
      url('obj/ObjDataPrint.sx?sxId=' + id + '&objId=' + idArray + "&sessionParams=" + getSelectAllSelected() + "&paramsHashCode=" + getParamsHashCode() + "&sxClass=" + folderClass);
    }
}
function objCopy(frameName, formName, id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass, mode) {
  if (!mode) mode = OBJECT_MODE;
  var frame = getListFrame(frameName);
  var form = self.document.forms[formName];
  form.innerHTML = "";

  if (getSelectedObjectType() == OBJECT_MODE) {
    var idArray = getSelObjects()[0];
    var objId = id;
    if (idArray && idArray.length > 0) {
      objId = idArray.join();
    }
    prepareToCopy(form, id, objId, linkAttr, objDs, objClass);
    addInput(form, "objType", OBJECT_MODE);
  } else {
    prepareToCopy(form, id, id, folderLinkAttr, folderDs, folderClass);
    addInput(form, "objType", FOLDER_MODE);
  }
  addInput(form, "mode", mode);
  form.innerHTML += " ";
  form.submit();
}

function objCut(frameName, formName, id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass) {
    objCopy(frameName, formName, id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass, 1);
}
function objPaste(frameName, formName, id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass) {
    var frame = getListFrame(frameName);
    var form = self.document.forms[formName];
    form.innerHTML = "";
    prepareToPaste(form, id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass);
    form.innerHTML += " ";
    form.submit();
}
/* Paste up */
function objPasteToUp(frameName, formName, id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass) {
    var form = self.document.forms[formName];
    form.innerHTML = "";
    prepareToPaste(form, id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass);
    addPasteToUp(form);
    form.innerHTML += " ";
    form.submit();
}

function objMakeLink(frameName, formName, id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass, mode) {
    objPaste(frameName, formName, id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass, mode);
}
function deleteLink(frameName, formName, id, folderLinkAttr, linkAttr) {
    var frame = getListFrame(frameName);
    var form = self.document.forms[formName];
    form.innerHTML = "";
    if (getSelectedObjectType() == OBJECT_MODE) {
        prepareToDelete(form, id, linkAttr);
    } else {
        prepareToDelete(form, id, folderLinkAttr);
    }
    form.innerHTML += " ";
    form.submit();
}
function objDelete(frameName, formName, foldClassTitle, objClassTitle) {
	var warning="Вы собираетесь удалить";
	if (getSelectedObjectType() == FOLDER_MODE) {
		warning +=" папки "+((foldClassTitle!=null && foldClassTitle!="")?'класса "'+foldClassTitle+'"':"");
	}
	else {
		warning +=" объекты "+((objClassTitle!=null && objClassTitle!="")?'класса "'+objClassTitle+'"':"");
	}
	warning +=" !\nВы уверены?";
  // Предупреждение о том, что если выделено много объектов, то они будут удаляться не мгновенно
  var manyObjWarning = "\n\nПожалуйста, обратите внимание, если количество удаляемых объектов превышает 1000, операция может занять некоторое время. Если в течение некоторого времени после удаления объекты в списке все еще присутствуют, возможно, это связано с тем, что операция удаления еще не завершена. \nКоличество объектов, находящихся в базе, можно увидеть вверху страницы (строчка \"Найдено записей\").";
  if (getSelectAllSelected() == "true") {
    // Если стоит признак "Выбрать все"
    warning += manyObjWarning;
  } else {
    var idArray = getSelObjects()[0];
    if (idArray && idArray.length > 1000) {
      // Если выделено больше 1000 объектов
      warning += manyObjWarning;
    }
  }
  if (!confirm(warning)) return false;

  if (getSelectedObjectType() == FOLDER_MODE) {
    /* update folder tree */
    var form = self.document.forms[formName];
    var target = form.target;
    if (target) {
      //            var win = getListFrame(target);
      var win = getListFrame();
      if (win) {
        var ar = getSelObjects();
        if (ar && ar.length > 0 && ar[0].length > 0)
          if (top.nav) top.nav.addUpdateParentTree(win, 'top.nav', 'plus' + ar[0][0], 'navigator', 'folder', 'plus', 'childs', 'container', self);
      }
    }
  }
  sendSelObjects(frameName, formName);
}
function sendSelObjects(frameName, formName) {
  var frame = getListFrame(frameName);
  var form = self.document.forms[formName];        
  if (getSelectAllSelected() == "true") {
    form.sessionParams.value = "true";
    sendExceptionObjIds(form);
    if (form.selType) {
      form.selType.value = getSelectedObjectType();
    }
  } else {
    var idArray = getSelObjects()[0];
    if (idArray && idArray.length > 0) {
      form.sessionParams.value = "";
      form.objId.value = idArray.join();
      if (form.selType) {
        form.selType.value = getSelectedObjectType();
      }
    }
  }
  form.innerHTML += " ";
  form.submit();
}

function prepareObjs(defVal) {
	var objects = null;
	objects = getSelObjects()[0];
	if (objects && objects.length > 0) {
		objects = objects.join(',');
	} else {
		objects = defVal;
		if (objects.indexOf("SXUser") == -1) return null;
	}
	$('__createPersCards_ids').value = objects;
	$('createPersCards').submit();
	return null;
}
/*-----------------------------------------end of handle functions for selected objects and folders-------------------------------------------*/

/* --------------------- Context Menu Object operations --------------------*/

function CobjCopy(frameName, formName, ObjTitle, ObjType, id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass, mode)
{
    if (id == null || id == "") return;
    if (ObjType != FOLDER_MODE && ObjType != OBJECT_MODE) return;
    if (!mode) mode = OBJECT_MODE;
    var frame = getListFrame(frameName);
    var form = self.document.forms[formName];
    form.innerHTML = "";
    if (ObjTitle != null && ObjTitle != "") {
        addInput(form, "data[0]", id);
        addInput(form, "objTitle[0]", ObjTitle);
    }

    if (ObjType == OBJECT_MODE) {
        addInput(form, "dsName", objDs);
        addInput(form, "className", objClass);
        addInput(form, "objId", id);
        addInput(form, "linkAttrName", linkAttr);
        addInput(form, "objType", OBJECT_MODE);
    } else {
        addInput(form, "dsName", folderDs);
        addInput(form, "className", folderClass);
        addInput(form, "objId", id);
        addInput(form, "linkAttrName", folderLinkAttr);
        addInput(form, "objType", FOLDER_MODE);
    }
    addInput(form, "mode", mode);
    form.innerHTML += " ";
    form.submit();
}

function CobjCut(frameName, formName, ObjTitle, ObjType, id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass) {
    CobjCopy(frameName, formName, ObjTitle, ObjType, id, folderLinkAttr, linkAttr, folderDs, folderClass, objDs, objClass, 1);
}

function CobjDelete(formName, handleObj, ObjType)
{
    if (handleObj == null || handleObj == "") return;
    if (ObjType != FOLDER_MODE && ObjType != OBJECT_MODE) return;
    var form = self.document.forms[formName];
    if (ObjType == FOLDER_MODE) {
        var target = form.target;
        if (target) {
            var win = getListFrame(target);
            if (win) {
                if(top.nav) top.nav.addUpdateParentTree(win, 'top.nav', 'plus' + handleObj, 'navigator', 'folder', 'plus', 'childs', 'container',self);
            }
        }

    }
    form.objId.value = handleObj;
    if (form.selType) {
        form.selType.value = ObjType;
    }
    form.innerHTML += " ";
    form.submit();
}


/*--------------------------------------/ end of context functions ---------------------------------------------*/


/* -------------------------------------------------------- toolbar functions ----------------------------------------------- */
function objSearch(id, src, frame) {
    if (!frame)frame = window;
	var o=frame.document.getElementById(id);
	var SF=frame.document.getElementById("showSF");
    if (!o || SF) {
		var param="showSF=true";
		var loc=frame.document.location+"";

		if(loc.indexOf("?")<0) return;

		if (loc.lastIndexOf("showSF") < 0) { 
			
			loc = loc+((loc.indexOf("?")>0) ? "&":"?")+param;
		}
		else {
			var ind1=loc.lastIndexOf("showSF");
			var ind2=ind1+param.length;
			loc= loc.substring(0,ind1-1)+loc.substring(ind2,loc.length);
		}
		frame.location.replace(loc);
		return;
	}
    if (o.tagName=="DIV") {
		if (o.style.display=="none") {var sff=frame.document.getElementById("searchFormFrame");
													   sff.src=baseUrl + "admin/objsearch.htm";}
		else o.style.display="none";
	}
	else o.style.display= (o.style.display == "none") ? "" : "none";
}

function showToolbar(className) {
	var flag=false;
    try {
		var spt=getFrame(self.parent,"toolbar");
        if (spt!=null && self.parent != self) {
		//	var spt=self.parent.toolbar;
            spt.document.getElementById("body").innerHTML = document.getElementById("toolbar").innerHTML;
            spt.setEventsToButtons(className);
            spt.setButtonState();
			if (spt.toolbarZones && self.toolbarZones) {
				var cmp=compareZones(spt.toolbarZones,self.toolbarZones);
		//		alert("do compare "+cmp);
				if (!cmp) {
					spt.toolbarZones=self.toolbarZones;
				}
				flag=true;
			}
        } else {
            document.getElementById("toolbar").style.display = "block";
            self.setEventsToButtons(className);
            self.setButtonState();
        }
    } catch (ex) {
        setTimeout("showToolbar('" + className + "')", 200);
    }
	
	if (flag) spt.checkToolBarZones();
}
function compareZones(a1,a2) {
	if (a1==null && a2==null) return true;
	if ((a1==null && a2!=null) || (a1!=null && a2==null)) return false;
	var result =(a1.length != a2.length)?false:true;
	for (var key in a2) {
		if (typeof(a2[key]) == "undefined" ) continue;
		var e2=a2[key];
		for (var k in a1) {
			if (typeof(a1[k]) == "undefined" ) continue;
			var e1=a1[k];
		//	alert(key+" - "+k+") "+e1.id+"->"+e1.img+"->"+e1.display+"\n"+e2.id+"->"+e2.img+"->"+e2.display);
			if (e1.id == e2.id) {
				if (e1.display != e2.display) {
					setDisplay(e2,e1.display);
					result =false;
				}
			}
			else result =false;
		}
	}
	return result;
}
function checkToolBarZones() {
	if (typeof(toolbarZones)=="undefined" || toolbarZones==null) return;
	for (var key in toolbarZones){
		if (typeof(toolbarZones[key])=="undefined" || toolbarZones[key]==null) continue;
		var item=toolbarZones[key];
	//	alert("in check="+key+") id= "+item.id+" mode="+item.display);
		if (!item.display) {
			collapsToolBar(item.img,item.id);
		}
	}
}


function setButtonState() {
    /* Get toolbar frame */
    var tmpWin = null;
    var win = (self.parent) ? self.parent : self;
    if (win.frames && win.frames.length > 0) {
        for (var i = 0; i < win.frames.length; i++) {
            tmpWin = win.frames[i];
            if (tmpWin.document.toolbarForm) {
                win = tmpWin;
                break;
            }
        }
    }
    if (!win || !win.document.toolbarForm) {
        /* alert("Can't find toolbar frame [<form name='toolbarFrame'>]"); */
        return;
    }
    /* set button state "copy/cut/delete" */
    var copy_button = win.document.getElementById(id_copyImg);
    var cut_button = win.document.getElementById(id_cutImg);
    var delete_button = win.document.getElementById(id_deleteImg);
    var delete_link_button = win.document.getElementById(id_deleteLinkImg);

    if (isSelected()) {
        /* has selected items */
        if (copy_button)
            copy_button.src = menu_copy.src;
        if (cut_button)
            cut_button.src = menu_cut.src;
        if (delete_button)
            delete_button.src = menu_delete.src;
        if (delete_link_button) {
            if (canDelLink()) {
                delete_link_button.src = menu_delete_link.src;
            } else {
                delete_link_button.src = menu_delete_link_dis.src;
            }
        }
    } else {
        /* disablim all buttons */
        if (copy_button)
            copy_button.src = menu_copy_dis.src;
        if (cut_button)
            cut_button.src = menu_cut_dis.src;
        if (delete_button)
            delete_button.src = menu_delete_dis.src;
        if (delete_link_button)
            delete_link_button.src = menu_delete_link_dis.src;
    }
}

function canDelLink() {
    var win = (self.parent) ? self.parent : self;
    try {
        return (getSelectedObjectType() == OBJECT_MODE && win.canObjLinkOperations) ||
               (getSelectedObjectType() == FOLDER_MODE && win.canFolderLinkOperations);
    } catch (e) {
      //  alert(e);
    }
}

/*------------------------/-----------------toolbar func end -----------------------------------------------------*/
