function u_wait(obj,str,inplace,wID) {
	
	var fict = document.createElement('div');
	var aw = document.createElement('div');
	
	$(aw).attr('class','u_wait').html(str).prependTo($(fict));
	$(fict).attr('class','fict').attr('id',wID && wID != '' ? wID : 'eprst');
	
	switch(inplace) {
	
		case 'before':
			$(fict).insertBefore($(obj));
		break;
		
		case 'after':
			$(fict).insertAfter($(obj));
		break;
		
		case 'append':
			$(fict).appendTo($(obj));
		break;
		
		case 'prepend':
			$(fict).prependTo($(obj));
		break;
		
		default:
			$(fict).insertBefore($(obj));
	}
	
	return $(fict);
}

function message_pane(obj,html,pID,inplace) {

	if(pID && pID != '')
		var eID = pID;
	else
		var eID = 'warn_message';
	$('#'+eID).remove();
	var fict = document.createElement('div');
	var aw = document.createElement('div');
	
	$(aw).attr('class','su_mess');
	
	$(fict).attr('class','fict').attr('id',eID);
	
	switch(inplace) {
	
		case 'before':
			$(fict).insertBefore($(obj));
		break;
		
		case 'after':
			$(fict).insertAfter($(obj));
		break;
		
		case 'append':
			$(fict).appendTo($(obj));
		break;
		
		case 'prepend':
			$(fict).prependTo($(obj));
		break;
		
		default:
			$(fict).insertBefore($(obj));
	}
	
	$(aw)
		.html(html)
		.prependTo($(fict));
	
	var clb = $(document.createElement('span'));
	clb.attr('class','close').attr('title','Закрыть').html('&nbsp;').prependTo($(aw)).click(function() {
		
			$(fict).remove();
		});
	
	var aWidth = $(aw).css('width');
	var leftOff = /*-parseInt(aWidth)/2 + */'0px';
	
	$(aw).css('width','0px');
	
	$(aw)
		.animate({width:aWidth},{queue:false,duration:700})
		.animate({top:'20px'},{queue:false,duration:700})
		.animate({left:leftOff},{queue:false,duration:700});
		
	
	return $(fict);
}


function uS(elm) {
	var cn = elm.childNodes;
	/*if(elm.className != 'uplevel')
		adClas(elm,'selected');*/
	for(var i=0;i<cn.length;i++) {
		if(cn[i].tagName=='UL' || cn[i].tagName=='ul') {
			cn[i].style.display = 'block';
			/*var ofH = parseInt($(cn[i]).innerHeight()+20)+'px';
			$(cn[i]).css('top','-'+ofH);*/
			return;
		}
	}
}

function uH(elm) {
	var cn = elm.childNodes;
	/*if(elm.className != 'uplevel')
		reClas(elm,'selected');*/
	for(var i=0;i<cn.length;i++) {
		if(cn[i].tagName=='UL' || cn[i].tagName=='ul') {
			cn[i].style.display = 'none';
			return;
		}
	}
}

function setC(elm) {
	var prnt = elm.parentNode;
	if(prnt) {
		var chld = fa(prnt.childNodes);
		if(chld) {
			if(chld.tagName == 'A' || chld.tagName == 'a') {
				var str = chld.className;
				if(!str.match(/current/)) {
					chld.className = 'current generic';
				}
			}
		}
	}
}

function unsetC(elm) {
	var prnt = elm.parentNode;
	if(prnt) {
		var chld = fa(prnt.childNodes);
		if(chld) {
			if(chld.tagName == 'A' || chld.tagName == 'a') {
				var str = chld.className;
				if(str.match(/generic/)) {
					chld.className = '-';
				}
			}
		}
	}
}

function adClas(elm,clName) {
	var elmClName = elm.className;
	var x = new RegExp(clName, "g");
	if(!x.test(elmClName)) {
		elm.className = elmClName+' '+clName;
	}
}

function reClas(elm,clName) {
	var elmClName = elm.className;
	var x = new RegExp(' '+clName, "g");
	if(x.test(elmClName)) {
		elm.className = elmClName.replace(x,'');
	}
}

function fa(ndes) {
	var res = null;
	if(ndes.length>0) {
		for(var i=0;i<ndes.length;i++) {
			if(ndes[i].tagName == 'A' || ndes[i].tagName == 'a')
				return ndes[i];
		}
	}
	
	return res;
}

