var JMserverURL ='';
var JMlang ='ru';
var JMserverFrame;
var JMserverDoc;
var JMserverStatus=0;
var JMtimeout1;
var JMtimeout2;
var JMcontrol;
var JMcontextmenu;
var JMcontext_id='';
var JMcontext_tree='';
var JMsavesrc;
var JMbuffer_id=0;
var JMbuffer_type='none';
var JMtext = new Array();
JMtext["ru"] = new Array("Удалить ", "Очистить ", "Открыть всю ветвь ", "Переместить ", "Переместить ветвь ", "Скопировать ", "Скопировать ветвь ", "Не заполнены поля!", "готов", "запрос...", "информация", "открыть ", "закрыть ", "Удалить все выбранные?", "Куда переместить выбранные сообщения?", "Ошибка!", "Скрыть все выбранные?" );
JMtext["en"] = new Array("Delete ",  "Pure ",     "Open Whole Branch ", "Move ",        "Move Branch ",       "Copy ",        "Copy Branch ",       "Not required!",      "ready", "busy...",   "show info",  "open ",    "close ",   "Delete all selected? ",  "Where to move selected messages?",      "Error!",  "Hide all selected?"    );
var imgMinusSrc ='/comm/images/16_1/action_minus.gif';
var imgPlusSrc  ='/comm/images/16_1/action_minus.gif';
var imgNullSrc  ='/comm/images/16_1/folder_null.gif';
var JPset=0;

function getServerDoc()
{
	if (!JMserverFrame && document.createElement)
	{
	   try {
	      var tempIFrame=document.createElement('iframe');
	      tempIFrame.setAttribute('id','serverIframe');
	      tempIFrame.setAttribute('name','serverIframe');
	      tempIFrame.style.border='0px';
	      tempIFrame.style.width='0px';
	      tempIFrame.style.height='0px';
	      JMserverFrame = document.body.appendChild(tempIFrame);

	      if (document.frames)
	        JMserverFrame = document.frames['serverIframe'];
	    }
	    catch(exception) {
	      iframeHTML = '<iframe id="serverIframe" name="serverIframe" style="border:0px; width:0px; height:0px;"></iframe>';
	      document.body.innerHTML+=iframeHTML;
	      JMserverFrame = new Object();
	      JMserverFrame.document = new Object();
	      JMserverFrame.document.location = new Object();
	      JMserverFrame.document.location.iframe = document.getElementById('serverIframe');
	      JMserverFrame.document.location.replace = function(location)
	      {
	        this.iframe.src = location;
	      }
	    }
	  }

	if (navigator.userAgent.indexOf('Gecko') !=-1)
		while(!JMserverFrame.contentDocument) { alert('wait...'); }

	if (JMserverFrame.contentDocument)
		JMserverDoc = JMserverFrame.contentDocument;
	else if (JMserverFrame.contentWindow)
		JMserverDoc = JMserverFrame.contentWindow.document;
	else if (JMserverFrame.document)
	  	JMserverDoc = JMserverFrame.document;
}

function serverRequest(URL)
{
	if(JMserverStatus == 1) { JMtimeout2 = setTimeout('serverRequest("'+URL+'")',500); return false; }
	clearTimeout(JMtimeout2);
	getServerDoc();
	if(JMserverDoc)
	{
		setServerStatus(1, JMtext[JMlang][9], JMserverURL + URL);
		JMserverDoc.location.replace(JMserverURL + URL);
		return true;
	}
	return false;
}

function responseHandler(doc,id,action)
{
	sidiv = doc.getElementById('infodiv');
	spform = doc.getElementById('postform');
	addmenu1 = doc.getElementById('addmenu');
	if(addmenu1)
	{
		addmenu2 = document.getElementById('addmenu');
		if(addmenu2){addmenu2.innerHTML = addmenu1.innerHTML;}
	}	 
		
	idiv = document.getElementById('infodiv');
	pform = document.getElementById('postform');
	fdiv = document.getElementById('formdiv');

	if(spform) {
		pform.innerHTML = spform.innerHTML;
		fdiv.style.visibility = 'visible';
		fdiv.style.display = 'block';
		document.onkeyup = null;
	}
	else {
		if(fdiv) {
			fdiv.style.visibility = 'hidden';
			fdiv.style.display = 'none';
			document.onkeyup = keyhandler;
		}
	}

	if(sidiv) {
		idiv.innerHTML = sidiv.innerHTML;
		idiv.style.visibility = 'visible';
		idiv.style.display = 'block';
	}
	else {
		if(idiv) {
			idiv.style.visibility = 'hidden';
			idiv.style.display = 'none';
		}
	}

	sourcediv0 = doc.getElementById('subdiv0');
	targetdiv0 = document.getElementById('subdiv0');
	if(sourcediv0 && targetdiv0)
	{
		targetdiv0.innerHTML = sourcediv0.innerHTML;
		targetdiv0.setAttribute('loaded','yes',0);
	}

	sourcediv0 = doc.getElementById('subdivtreefilter0');
	targetdiv0 = document.getElementById('subdivtreefilter0');
	if(sourcediv0 && targetdiv0)
	{
		targetdiv0.innerHTML = sourcediv0.innerHTML;
		targetdiv0.setAttribute('loaded','yes',0);
	}

	highlightFolder();

	switch(action)
	{
		case 'setfilter':
		case 'update':
		case 'updatelist':
		case 'top':
		case 'bot':
		case 'up':
		case 'down':
		case 'sort':
		case 'open':
		case 'openbranch':
		case 'openparents':
		case 'add':
		case 'switchreg':

			sourcediv = doc.getElementById('maindiv' + JMcontext_tree + id);
			targetdiv = document.getElementById('maindiv' + JMcontext_tree + id);
			if(sourcediv && targetdiv)
			{
				targetdiv.innerHTML = sourcediv.innerHTML;
				subdiv = document.getElementById('subdiv' + JMcontext_tree + id);
				if(subdiv) 
				{
					subdiv.setAttribute('loaded','yes','0');
					im = document.getElementById('img' + JMcontext_tree + id); 
					if(im) {
						im.src = (JMcontext_tree=='treefilter') ? imgNullSrc : imgMinusSrc;
						im.alt = JMtext[JMlang][12] + id; // close
						if(im.innerHTML) im.innerHTML = '&#151;';
						if(im.parentNode) im.parentNode.className="tree";
					}
				}	
			}
			highlightFolder();
		case 'goto':
		case 'del':
		case 'dellist':
		case 'movelist':
		case 'hidelist':
		case 'pure':
		case 'close':
		case 'closebranch':
		case 'move':
		case 'clone':
		case 'branch':
		case 'info':
		case 'edit':
		case 'editlist':
			add_all_params();
		break;
	}
	highlightCurID(JMcontext_tree);
	exchangeFolder(JMcontext_id,JMcontext_id,JMcontext_tree);
	setServerStatus(0, JMtext[JMlang][8], '');
}

function serverOpen(id)
{
	return serverRequest('&open=' + id);
}

function serverClose(id,tree)
{
	targetdiv = document.getElementById('subdiv' + tree + id);
	targetdiv.innerHTML='';
	targetdiv.setAttribute('loaded','false',0);
	return serverRequest('&close=' + id);
}

function toggle(id,tree)
{
	if(tree=='treefilter') return;
    div = document.getElementById('subdiv' + tree + id);
    im = document.getElementById('img' + tree + id);

	if(!im) return;
	if((im.src && im.src.indexOf(imgNullSrc) != -1) || (im.innerHTML=='&nbsp;')) return;

	if(tree!=JMcontext_tree)
		new_context(id,tree);

	if(div && div.getAttribute('loaded')=='yes' && im) {
		if (div.style.display == 'none') {
			if(im.innerHTML) im.innerHTML = '&#151;';
			if(im.parentNode) im.parentNode.className="tree";
			im.src = imgMinusSrc;
			im.alt = JMtext[JMlang][12] + id; // close
			div.style.display = 'block';
		}
		else {
			if(im.innerHTML) im.innerHTML = '+';
			im.src = imgPlusSrc;
			im.alt = JMtext[JMlang][11] + id; // open
			div.style.display = 'none';
			foldertd = document.getElementById('foldertd' + tree + id);
			if(foldertd)
				if(foldertd.background) foldertd.background = foldertd.background.replace('tr_back4','tr_back5');
			serverClose(id,tree);
		}
		return false;
	}
	return serverOpen(id);
}

function manager_openbranch()
{
	menu_hide();
	if(JPset || confirm(JMtext[JMlang][2] + JMcontext_id + "?"))
		return serverRequest('&openbranch=' + JMcontext_id);
}

function manager_openparents()
{
	menu_hide();
	return serverRequest('&openparents=' + JMcontext_id);
}

function manager_closebranch()
{
	menu_hide();
	toggle(JMcontext_id,JMcontext_tree);	
	return serverRequest('&closebranch=' + JMcontext_id + '&close=' + JMcontext_id);
}

function manager_up()
{
	menu_hide();
	return serverRequest('&action=up&cur_id=' + JMcontext_id);
}

function manager_down()
{
	menu_hide();
	return serverRequest('&action=down&cur_id=' + JMcontext_id);
}

function manager_top()
{
	menu_hide();
	return serverRequest('&action=top&cur_id=' + JMcontext_id);
}

function manager_bot()
{
	menu_hide();
	return serverRequest('&action=bot&cur_id=' + JMcontext_id);
}

function manager_edit()
{
    clearTimeout(JMtimeout1);
	menu_hide();
	return serverRequest('&action=edit&cur_id=' + JMcontext_id);
}


function manager_sort(order)
{
	menu_hide();
	return serverRequest('&action=sort&cur_id=' + JMcontext_id + '&order='+order);
}

function manager_goto()
{
	document.location.href='/?id=' + JMcontext_id;
}

function manager_info_real(id,tree)
{
	JMcontext_id=id;
	JMcontext_tree=tree;
	check = document.getElementById('textcheck');
	if(check && check.checked==false)
		serverRequest('&action=info&cur_id=' + JMcontext_id);
	else {
		idiv = document.getElementById('infodiv');
		fdiv = document.getElementById('formdiv');
		if(idiv) idiv.innerHTML = '';
		if(fdiv) {
			fdiv.style.visibility = 'hidden';
			fdiv.style.display = 'none';
		}
	}
	return false;
}

function manager_info(id,tree)
{
	new_context(id,tree);
	JMtimeout1=setTimeout("manager_info_real('" + id + "','" + tree + "')",300);
}

function manager_properties()
{
	return serverRequest('&action=info&cur_id=' + JMcontext_id);
}

function manager_addfilter(id)
{
	if(id) {
		t = document.getElementById('f_user');	if(t) user = t.value;
		t = document.getElementById('f_grou');	if(t) grou = t.value;
		t = document.getElementById('f_order');	if(t) order = t.value;
		t = document.getElementById('f_spar');	if(t) spar = t.value;
		t = document.getElementById('filter_list');
		var qsql = '';
		var limit = 0;
		if(t) {
			q = t.value;
			arr2 = Array();
			if(q) {
				arr = q.split(",");
				for(j=0;j<arr.length;j++) {
					if(arr[j] != Math.abs(id))
						arr2[arr2.length] = arr[j];
				}
			}
			if(id > 0)
				arr2[arr2.length] = id;
			qsql = arr2.join(",");
			limit = arr2.length > 0 ? arr2.length : '';
		}
		manager_setfilter('',qsql,user,grou,limit,order,spar);
	}
}
function manager_setfilter(text,qsql,user,grou,limit,order,spar)
{
	if(text || qsql || user || grou || limit || order) {
		t = document.getElementById('f_text');	if(t) t.value = text;
		t = document.getElementById('f_qsql');	if(t) t.value = qsql;
		t = document.getElementById('f_user');	if(t) t.value = user;
		t = document.getElementById('f_grou');	if(t) t.value = grou;
		t = document.getElementById('f_limit');	if(t) t.value = limit;
		t = document.getElementById('f_order');	if(t) t.value = order;
		t = document.getElementById('f_spar');	if(t) t.value = spar;
	}
	url = '&action=setfilter';
	t = document.getElementById('f_text');	if(t) url = url + '&f_text='  + t.value;
	t = document.getElementById('f_qsql');	if(t) url = url + '&f_qsql='  + t.value;
	t = document.getElementById('f_user');	if(t) url = url + '&f_user='  + t.value;
	t = document.getElementById('f_grou');	if(t) url = url + '&f_grou='  + t.value;
	t = document.getElementById('f_limit');	if(t) url = url + '&f_limit=' + t.value;
	t = document.getElementById('f_order');	if(t) url = url + '&f_order=' + t.value;
	t = document.getElementById('f_spar');	if(t) url = url + '&f_spar='  + t.value;
	new_context('','');

	var result = '';
	for(var i=0;i<url.length;i++)
		if(url.charAt(i)=='"')
			result += '\\"';
		else
			result += url.charAt(i);
	a=document.getElementById('treefiltera');
	if(a && a.parentNode.nextSibling.style.visibility!='visible') toggle_div(a);
	return serverRequest(result);
}

function manager_chtreewidth(delta,def)
{
	tw = document.getElementById('treewidth');
	if(tw) {
		if(delta==0 && def) {
			w = def;
			tw.width = def + '%';
		}
		else {
			w = parseInt(tw.width) + parseInt(delta);
			if(w > 10 && w <90) tw.width = String(w) + '%';
		}
		twi = document.getElementById('treewidthinfo');
		if(twi) twi.firstChild.data = w;
	}
}

function manager_switchreg()
{
	menu_hide();
	new_context('','');
	return serverRequest('&action=switchreg');
}


function manager_stats()
{
	alert('stats');
	return serverRequest('&action=stats&cur_id=' + JMcontext_id);
}

function manager_cut()
{
	menu_hide();
	restoreFolder(JMbuffer_id,JMcontext_tree);
	JMbuffer_type='cut';
	JMbuffer_id=JMcontext_id;
	highlightFolder();
}

function manager_copy()
{
	menu_hide();
	restoreFolder(JMbuffer_id,JMcontext_tree);
	JMbuffer_type='copy';
	JMbuffer_id=JMcontext_id;
	highlightFolder();
}

function manager_paste()
{
	if(JMbuffer_type=='cut') 
	{
		if(JPset || confirm(JMtext[JMlang][3] + JMbuffer_id + " => " + JMcontext_id + "?"))
		{
			menu_hide();
			return serverRequest('&action=paste&buffer_type=' + JMbuffer_type + '&to_id=' + JMcontext_id + '&buffer_id=' + JMbuffer_id);
		}
	}
	if(JMbuffer_type=='copy')
	{
		if(JPset || confirm(JMtext[JMlang][5] + JMbuffer_id + " => " + JMcontext_id + "?"))
		{
			hcheck = document.getElementById('hiddencheck');
			hidden = (hcheck && hcheck.checked==true) ? '1' : 0;
			menu_hide();
			return serverRequest('&action=paste&buffer_type=' + JMbuffer_type + '&to_id=' + JMcontext_id + '&buffer_id=' + JMbuffer_id + '&hidden='+hidden);
		}
	}
}

function manager_pastebranch()
{
	if(JMbuffer_type=='cut' && confirm(JMtext[JMlang][4] + JMbuffer_id + " => " + JMcontext_id + "?"))
	{
		menu_hide();
		return serverRequest('&action=pastebranch&buffer_type=' + JMbuffer_type + '&to_id=' + JMcontext_id + '&buffer_id=' + JMbuffer_id);
	}
	if(JMbuffer_type=='copy' && confirm(JMtext[JMlang][6] + JMbuffer_id + " => " + JMcontext_id + "?"))
	{
		menu_hide();
		return serverRequest('&action=pastebranch&buffer_type=' + JMbuffer_type + '&to_id=' + JMcontext_id + '&buffer_id=' + JMbuffer_id);
	}
}

function manager_clear()
{
	menu_hide();
	restoreFolder(JMbuffer_id,JMcontext_tree);
	JMbuffer_type='none';
	JMbuffer_id=0;
}

function manager_del()
{
	if(confirm(JMtext[JMlang][0] + JMcontext_id + "?"))
	{
		menu_hide();
		restoreFolder(JMbuffer_id,JMcontext_tree);
		JMbuffer_type='none';
		JMbuffer_id=0;
		cid = JMcontext_id;
		JMcontext_id='';
		JMcontext_tree='';
		return serverRequest('&action=del&del_id=' + cid);
	}
}

function manager_dellist()
{
	if(confirm(JMtext[JMlang][13]))
	{
		menu_hide();
		new_context('','');
		return serverRequest('&action=dellist');
	}
}

function manager_movelist()
{
	var to_id = prompt(JMtext[JMlang][14],"99"); 
	if(to_id) {
	 	if(allDigits(to_id)) {
			menu_hide();
			new_context('','');
			return serverRequest('&action=movelist&to_id=' + to_id);
		}
		else
			alert(JMtext[JMlang][15]);
	}
	return;
}

function manager_hidelist()
{
	if(confirm(JMtext[JMlang][16]))
	{
		menu_hide();
		new_context('','');
		return serverRequest('&action=hidelist');
	}
}

function manager_infolist()
{
	menu_hide();
	new_context('','');
	return serverRequest('&action=infolist');
}

function manager_editlist(modifypar)
{
    clearTimeout(JMtimeout1);
	menu_hide();
	new_context('','');
	return serverRequest('&action=editlist&modifypar=' + modifypar);
}

function manager_pure()
{
	if(confirm(JMtext[JMlang][1] + JMcontext_id + "?"))
	{
		menu_hide();
		restoreFolder(JMbuffer_id,JMcontext_tree);
		JMbuffer_type='none';
		JMbuffer_id=0;
		return serverRequest('&action=pure&pure_id=' + JMcontext_id);
	}
}

function manager_add(id,event)
{
	menu_hide();
	event.cancelBubble = true; 
	event.returnValue=false; 

	JMcontrol = document.getElementById('control' + JMcontext_id);

	ex_id = (id>0) ? id : JMcontrol.getAttribute('example');
	hcheck = document.getElementById('hiddencheck');
	hidden = (hcheck && hcheck.checked==true) ? '1' : 0;

	return serverRequest('&action=add&cur_id=' + JMcontext_id + '&ex_id=' + ex_id + '&hidden=' + hidden);
	return false;
}

function param_add()
{
	menu_hide();
	return serverRequest('&action=add&cur_id=' + JMcontext_id);
}

function menu_show(id,event,tree)
{
	new_context(id,tree);
	menu_hide();

	idiv = document.getElementById('infodiv');
	if(idiv) idiv.innerHTML='';

	JMcontext_id=id;
	JMcontext_tree=tree;

	JMcontextmenu = document.getElementById('mainmenu');
	JMcontrol = document.getElementById('control'+JMcontext_id);

	if(is_ie5up) {
		var rightedge=document.body.clientWidth-event.clientX
		var bottomedge=document.body.clientHeight-event.clientY

		if (bottomedge<JMcontextmenu.offsetHeight)
			JMcontextmenu.style.top=document.body.scrollTop+event.clientY-JMcontextmenu.offsetHeight
		else
			JMcontextmenu.style.top=document.body.scrollTop+event.clientY

		if (rightedge<JMcontextmenu.offsetWidth)
			JMcontextmenu.style.left=document.body.scrollLeft+event.clientX-JMcontextmenu.offsetWidth
		else
			JMcontextmenu.style.left=document.body.scrollLeft+event.clientX

	}
	else {
		JMcontextmenu.style.top = event.clientY;
		JMcontextmenu.style.left = event.clientX;
	}

	JMcontextmenu.style.visibility = 'visible';
	JMcontextmenu.style.display = 'block';

	divs = document.getElementsByTagName('div');

	for(i=0;i < divs.length; ++i)
	{
       	tdiv = divs[i];
       	if(tdiv.className=='menuitems' && tdiv.parentNode == JMcontextmenu)
       	{
       		if(JMcontrol.getAttribute(tdiv.id)=="yes" && !((tdiv.id=='paste' || tdiv.id=='pastebranch' || tdiv.id=='clear') && JMbuffer_id==0))
       		{
       			tdiv.style.display = 'block';
       			tdiv.style.visibility = 'visible';
       		}
       		else
       		{
       			tdiv.style.display = 'none';
       			tdiv.style.visibility = 'hidden';
       		}
       	}
    }

    exdiv = document.getElementById('add_' + JMcontrol.getAttribute('example'));
    if(exdiv && JMcontrol) {
    	exdiv.style.fontWeight = "bold";
	    exdivctrl = document.getElementById('addctrl_' + JMcontrol.getAttribute('example'));
	    if(exdivctrl) exdivctrl.innerHTML = "Insert";
	}
}

function menu_hide()
{
	if(JMcontextmenu && JMcontextmenu.style.visibility == 'visible')
	{
		JMcontextmenu.style.visibility = 'hidden';
		JMcontextmenu.style.display = 'none';

		divs = document.getElementsByTagName('div');
		for(i=0;i < divs.length; ++i)
		{
			tdiv = divs[i];
			if(tdiv.className=='menuitems')
			{
				tdiv.style.backgroundColor="";
				tdiv.style.color="black";
				tdiv.style.fontWeight = "normal";
			}
		}
	    exdivctrl = document.getElementById('addctrl_' + JMcontrol.getAttribute('example'));
    	if(exdivctrl) exdivctrl.innerHTML = "";
	}
}


function menu_high(div,event){
	var menuitem=is_ie5up? event.srcElement : event.target;
	if(menuitem.className=="menuitems" || (is_nav6up && menuitem.parentNode.className=="menuitems"))
	{
		if(is_nav6up && menuitem.parentNode.className == "menuitems") menuitem = menuitem.parentNode;

		brothers = menuitem.parentNode.childNodes;
		for(i=0;i < brothers.length; ++i)
		{
			brother = brothers[i];
			if(brother.className!='menuitems') continue;

			if(menuitem.id == brother.id)
			{
				brother.style.backgroundColor="highlight";
				brother.style.color="white";
				/*show submenus*/
				for(j=0;j<brother.childNodes.length;++j)
				{
					submenu = brother.childNodes[j];
					if(submenu.className!='contextmenu') continue;
	        		submenu.style.visibility = 'visible';
					submenu.style.display = 'block';
	        		w = brother.offsetWidth;
	        		submenu.style.left = w;
	        	}
			}
			else
			{
				brothers[i].style.backgroundColor="";
				brothers[i].style.color="black";
				/*hide submenus*/
				for(j=0;j<brother.childNodes.length;++j)
				{
					submenu = brother.childNodes[j];
					if(submenu.className!='contextmenu') continue;
	        		submenu.style.visibility = 'hidden';
	        		submenu.style.display = 'none';
	        	}
			}
		}
	}
	return false;
}


document.onclick = function ()
{
  menu_hide();
}


window.onscroll = function ()
{
	rsp = document.getElementById('rasp');
	if(rsp) {
		scheck = document.getElementById('scrollcheck');
		if(document.body.scrollTop>0 && scheck.checked==true)
			rsp.height=document.body.scrollTop -110;
		else
			rsp.height=0;
	}
}

document.onkeyup = keyhandler;
function keyhandler(e)
{
	 ctrl=0;
	 shift=0;
	 alt=0;
	 if(is_ie5up)
	 {
        e = window.event;
        k = e.keyCode;
        if(e.ctrlKey) ctrl=1;
        if(e.shiftKey) shift=1;
        if(e.altKey) alt=1;

     }
	 else if(is_nav6up)
	 {
		k = e.which;
	    ch = String.fromCharCode(k);
		if(e.modifiers == Event.CTRL_MASK) ctrl=1;
		if(e.modifiers == Event.SHIFT_MASK) shift=1;
		if(e.modifiers == Event.ALT_MASK) alt=1;
	 }
	ch = String.fromCharCode(k);
	if(JMcontext_id)
	{
		if(ctrl==1 && ch=='G')			// Ctrl-G
			manager_goto();
		if(ctrl==1 && ch=='C')			// Ctrl-C
			manager_copy();
		else if(ctrl==1 && ch=='X')		// Ctrl-X
			manager_cut();
		else if(ctrl==1 && ch=='V')		// Ctrl-V
			manager_paste();
		else if(ctrl==1 && ch=='T')		// Ctrl-T
			manager_pastebranch();

		else if(k==46)					// Delete
			manager_del();
		else if(alt==1 && k==38)		// Alt-Up
			manager_up();
		else if(alt==1 && k==40)		// Alt-Down
			manager_down();
		else if(alt==1 && k==33)		// Alt-PgUp
			manager_top();
		else if(alt==1 && k==34)		// Alt-PgDown
			manager_bot();

		else if(k==13)			 		// Enter
			manager_edit();
		else if(k==27)					// Esc
			manager_properties();

		else if(k==45)					// Ins
			if(JPset)
				param_add();
			else
				manager_add(0,event); 
		
		else if(shift==1 && k==37)		// Shift-Left
			manager_closebranch();
		else if(shift==1 && k==39)		// Shift-Right
			manager_openbranch();

		else if(k==37 || k==39) 		// Left Right
			toggle(JMcontext_id,JMcontext_tree);
	}
}

function setServerStatus(sstatus,stext,saction)
{
	JMserverStatus = sstatus;
	s = document.getElementById('serverStatus');
	if(s) {	
		s.firstChild.data = stext;
		if(saction) s.title = s.href = saction;
	}
}

function restoreFolder(id,tree)
{

	div = document.getElementById('maindiv' + tree + id);
	if(div)	div.className='tree';
	dp = document.getElementById('ctrlkeysPaste');
	if(dp) {
   		dp.style.display = 'none';
   		dp.style.visibility = 'hidden';
   	}
}

function highlightFolder()
{
	div = document.getElementById('maindiv' + JMcontext_tree + JMbuffer_id);
	if(div && JMbuffer_id!=0)
	{
		if(JMbuffer_type=='copy')
			div.className='tree mcopy';
		else if(JMbuffer_type=='cut')
			div.className='tree mcut';
		dp = document.getElementById('ctrlkeysPaste');
		if(dp) {
       		dp.style.display = 'block';
       		dp.style.visibility = 'visible';
       	}
	}
}

function new_context(id,tree)
{
	innerd=document.getElementById('innerdiv' + JMcontext_tree + JMcontext_id)
	if(innerd)	innerd.className='';

	restoreFolder(JMbuffer_id,JMcontext_tree);
	
	exchangeFolder(id,JMcontext_id,tree);
	JMcontext_id=id;

	JMcontext_tree=tree;
	highlightCurID(tree);

	highlightFolder();

	if(JMcontext_id && !tree) {
		a=document.getElementById('treea');
		if(a && a.parentNode.nextSibling.style.visibility!='visible') toggle_div(a);
	}
}

function highlightCurID(tree)
{
	innerd=document.getElementById('innerdiv' + tree + JMcontext_id)
	if(innerd) innerd.className='tree mcur';

	b = document.getElementById('currentID');	
	if(b) b.innerHTML = "<a class='tree' title='" + JMtext[JMlang][10] + "' onclick='manager_properties()'>" + JMcontext_id + "</a>";
	
	c = document.getElementById('ctrlkeys');	
	if(c) {
		if(JMcontext_id) {
			c.style.visibility = 'visible';
			c.style.display = 'block';
		}
		else {
			c.style.visibility = 'hidden';
			c.style.display = 'none';
		}
	}
}

function exchangeFolder(newid,oldid,newtree)
{
	if(JMsavesrc) {
		folder = document.getElementById('folder' + JMcontext_tree + oldid);
		if(folder && folder.lowsrc)
			folder.src = JMsavesrc;
	}
	folder = document.getElementById('folder' + newtree + newid);
	if(folder && folder.lowsrc) {
		JMsavesrc = folder.src;
		folder.src = folder.lowsrc;
	}
}

function add_all_params()
{
	newp = document.getElementById('newparams');
	if(newp)
	{
		newp.innerHTML = addpars.innerHTML;
		sts = document.getElementsByTagName('set');
		for(i=0;i<sts.length;++i)
		{
			newelem = document.getElementById('a_param_'+sts[i].getAttribute('param'));
			if(newelem)
			{
				newelem.style.visibility='hidden';
				newelem.style.display='none';
			}
		}
	}
}

function show_all_params()
{
	newp = document.getElementById('newparams');
	if(newp)
	{
		if(newp.style.visibility=='hidden')
		{
			newp.style.visibility='visible';
			newp.style.display='block';
		}
		else
		{
			newp.style.visibility='hidden';
			newp.style.display='none';
		}
	}
}

function add_param(id)
{
	n = document.getElementById('n_param_'+id);
	if(n)
	{
		cgroup = document.getElementById('c_paramgroup_'+n.getAttribute('forgroup'));
		cfset  = cgroup.parentNode;

		newparam = n.cloneNode(true);
		newparam.setAttribute('id','c_param_'+id,0);
		cgroup.appendChild(newparam);

		cfset.style.visibility = 'visible';
		cfset.style.display = 'block';

		a = document.getElementById('a_param_'+id);
		a.style.visibility = 'hidden';
		a.style.display = 'none';
	}
}

function del_param(id)
{
	c = document.getElementById('c_param_'+id);
	if(c)
	{
		cgroup = c.parentNode;
		cfset  = cgroup.parentNode;
		cgroup.removeChild(c);
		if(!cgroup.hasChildNodes())
		{
			cfset.style.visibility = 'hidden';
			cfset.style.display = 'none';
		}

		a = document.getElementById('a_param_'+id);
		a.style.visibility = 'visible';
		a.style.display = 'block';
	}
}

function toggle_div(a)
{
	obj = a.parentNode.nextSibling;
	if(obj)
	{
		if(obj.style.visibility=='visible')
		{
			obj.style.visibility='hidden';
			obj.style.display='none';
			a.setAttribute('title',JMtext[JMlang][11],0); // open
			a.firstChild.data +='...';
			savevalue = "h";
		}
		else
		{
			obj.style.visibility='visible';
			obj.style.display='block';
			a.setAttribute('title',JMtext[JMlang][12],0); // close
			a.firstChild.data = a.firstChild.data.substring(0, a.firstChild.data.length-3);
			savevalue = "v";
		}
		inp = document.getElementById('f_div_' + obj.id);
		if(inp)
			inp.value = savevalue;
	}
}


function check_form(f)
{
	if(JPset) {
		header1 = f.elements('description');
		header2 = f.elements('name');
		if((header1 && trim(header1.value)=='') || (header2 && trim(header2.value)=='')) {
			alert(JMtext[JMlang][7]);
			return false;
		}
		return true;
	}
	else {
		header = f.elements('mess_header');
		if(header && trim(header.value)=='') {alert(JMtext[JMlang][7]); return false;}
	}
	newp = document.getElementById('newparams');
	if(newp) {
		par = newp.parentNode;
		par.removeChild(newp);
	}
	return true;
}

function trim(inputString) {
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") {
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") {
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   return retValue; // Return the trimmed string back to the user
}

function CutMessContent()
{
	a = document.getElementById('MessContent');
	if(a) {
		window.clipboardData.setData('Text', a.innerText);
		a.innerText = '';
	}
}

function CopyMessContent()
{
	a = document.getElementById('MessContent');
	if(a) window.clipboardData.setData('Text', a.innerText);
}

function ClearMessContent()
{
	a = document.getElementById('MessContent');
	if(a) a.innerText = '';
}

function PasteMessContent()
{
	a = document.getElementById('MessContent');
	if(a) a.innerText = window.clipboardData.getData('Text');
}
