function uiLayerClass(){
	var c1=jml.obj,c2=jml.xml.node,c3=jml.events;
	var ifrm,layer,host,anchor;
	function createL( id, s, b ){
		var b=b||false;
		if(isset(layer)) deleteL();
		var o2=getObj(id);
		if(!isset(o2)) return;
		
		var s=s||'layerClass';o1=c2.create('DIV',document.body);
		if(!isset(o1)) return;
		c1.set(o1,'className',s);
		c1.set(o1,'cursor','default');
		c1.set(o1,'visibility','hidden');
		var x1=c2.byPosition(0,o2);
		var o3=c2.clone(x1);
		c2.add(o3,o1);
		if(b){
			anchor=o2;
			c2.remove(x1);
		}
		if(isset(host.onCreate)) host.onCreate(o1);
		c1.set(o1,'visibility','visible');
		if(!isset(ifrm)&&isset(lower(navigator.userAgent).match('msie 6'))){
			ifrm=c2.create('DIV',document.body);
			c1.set(ifrm,'innerHTML','<iframe></iframe>');
			c1.set(ifrm,'className','ie6UnderFloatBugForm');
			c1.set(ifrm,'width',(c1.get(o1,'offsetWidth')+10)+'px');
			c1.set(ifrm,'height',(c1.get(o1,'offsetHeight')+20)+'px');
			c1.set(ifrm,'left',(c1.get(o1,'offsetLeft')-8)+'px');
			c1.set(ifrm,'top',(c1.get(o1,'offsetTop')-13)+'px');
			c1.set(ifrm,'visibility','visible');
		}
		layer=o1;
	}
	function deleteL(){
		if(isset(anchor)){
			var x1=c2.byPosition(0,layer);
			c2.add(x1,anchor);
			anchor=null;
		}
		c2.remove(layer);
		c2.remove(ifrm);
		layer=ifrm=null;
	}
	return {
		$:function(){
			host=this;
			return this;
		},
		create:createL,
		remove:deleteL,
		onCreate:null
	}.$();
}