
window.nx=3;
window.dialogs=new Array();
window.Bas=new Object();

window.Lib.LayCreator=function(){
	return new clsLayCreator();
	function clsLayCreator(){
		with(window.Lib){
			var dv; 
			var mouseFlag=false;
			this.errCode=0;
			this.userControls=new Array();
			this.drag=null;
			this.multiUse=false;
			this.isPopup=false;
			this.hasDrag=false;
			this.myDragID='';
			this.zIndex=0;
			this.isHidden=false;
			this.isControl=false;
			this.skipHandler=false;
			this.colorON='bon-bl';
			this.colorOFF='bof-bl';
			
			this.create=function(col,alias,top,left){
				if(!this.multiUse){
					try{if(window.Bas.hasFormInDialogs(alias)){
						this.errCode=1;return;}
					}catch(e){
						this.errCode=1;
						return;
					}
				};
				this.elemCollection=col;
				this.id=blankNodeID();
				if(alias==''){alias=this.id;};
				this.alias=alias;
				dv=Division(this.id,'absolute',top,left);
				writetolayer(this.id,col.html);
				hidelayer(this.id);
				this.attachControls();
				delete this.create;
				window.dialogs[alias]=this;
				
				for(var i in window.dialogs){
					if(window.Lib.skip(i)){
						if(window.dialogs[alias].id==this.id){
							this.zIndex=window.nx++;
							dv.style.zIndex=this.zIndex;
						}if(!this.isControl){
							window.Bas.changeBarColor(dv,col.controls);
						}
					}
				}
				return dv;
			};
			this.Show=function(){;};
			this.show=function(){
				showlayer(this.id);
				this.isHidden=false;
				if(this.hasDrag){
					this.myDragID=this.id;
					window.dragID=this.id;
					if(!mouseFlag){
						dv.onmouseover=function(){
							window.over=true;
						};
						dv.onmouseout=function(){
							window.over=false;
						};
						this.drag.style.cursor='move';
						mouseFlag=true;
					}
				}
				this.Show();
			};
			this.hide=function(){
				try{
					this.isHidden=true;
					hidelayer(this.id);
					window.dragID='';
			}catch(e){;};
		};
		this.Remove=function(){;};
		this.remove=function(parForm,flag){
			try{
				this.Remove();
				if(parForm){ 
					parForm.isPopup=flag;
				};

				var ret=document.getElementsByTagName('body')[0].removeChild(dv);
				this.removeDialogsElement(this.alias);
				window.dragID='';
				window.Bas.highlightLastBar(this);
			}catch(e){;}
		};
		this.appendUserControls=function(){
			for(var i=0; i<arguments.length; i++){
				window.Bas.appendCollection(this,arguments[i]);
				this.userControls[i]=arguments[i];
			}
		};
		this.attachControls=function(){
			var ctr=this.elemCollection.controls;
			for (key in ctr){
				if( skip(key.toString())){
					if(document.all){
						this[ctr[key].alias]=document.all[(ctr[key].id)];
					}else{
						this[ctr[key].alias]=document.getElementById(ctr[key].id);
					};
					if(ctr[key].alias=='drag'){
						this.hasDrag=true;
						this.drag=getcontrol(ctr[key].id);
						window.handleID=this.drag.id;
					}
				}
			}
		};
		this.removeDialogsElement=function(alias){
			var n=0;index=0;
			var ar=new Array();
			for(i in window.dialogs){
				if(window.Lib.skip(i)){
					ar[n]=window.dialogs[i];
					if(i==alias){index=n;}
					n++;
				}
			}delArrayElement(ar,index);
			dialogs=new Array();
			for (i=0; i<ar.length; i++){
				if(window.Lib.skip(i)){ 
					window.dialogs[ar[i].alias]=ar[i];
				}
			}
		}
	};
	this.HandleEvent=function(){;};
	this.handleEvent=function(id){	
		if(!this.skipHandler){
			this.HandleEvent();if(this.isControl){
				return;
			}
			var col=this.elemCollection.controls;
			var lib=window.Lib;var flag=false;
			for(var i in this.elemCollection.controls){
				if(window.Lib.skip(i)){
					if(i==id){flag=true; break;}
				}
			};
			if(flag){
				this.zIndex=window.nx++;
				dv.style.zIndex=this.zIndex;
				window.Bas.changeBarColor(dv,col);
			};if(this.hasDrag){
				if(id!=''){
					if(window.Lib.getAlias(id,col)=='drag'){
						window.dragID=this.myDragID;
						window.handleID=id;
					}
				}
			};
			flag=false;
			if(this.isPopup){
				for(i in col){
					if(window.Lib.skip(i)){
						if(i==id){
							flag=true;
							break;
					}
				}
			};
			if(!flag){
				if(this.isControl){return;}
					
					this.handleUserControls('remove');
					this.remove();
				}
			}
		};
		this.skipHandler=false;
	};
	this.handleUserControls=function(ev){
		if(ev=='remove'){
			for(var i=0; i<this.userControls.length; i++){
				this.userControls[i].handleEvent('');
			}
		}
	}
}
};

//--------------------------------------------------------------------------------------------

	window.N = (document.all) ? 0 : 1;
	window.dragID='';
	window.handleID='';
	window.tmrValue='';
	window.over=false;

	var isNav=(navigator.appName.indexOf("Netscape") !=-1);
	
	if(isNav){
		document.captureEvents(Event.Click);
		document.onclick = captureEvent;
	}else{
		document.onclick = handleEvent;
	};
	
	function handleEvent(){;};
	function captureEvent(e){;};
	function handleMDEvent(){
		var id=window.event.srcElement.id;
		for(name in window.dialogs){
			if(window.Lib.skip(name.toString())){
				try{window.dialogs[name].handleEvent(id);}catch(e){;}
			}
		}
	};

	
	if(document.addEventListener){
		isIE=false;
		document.addEventListener("mousedown", pageMousedown1, true);
	}else{
		isIE=true;
		document.onmousedown = pageMousedown1;
	}

	function pageMousedown1(event){	
		wini_mouseDown(event);
		if(isIE){
			var el = window.event.srcElement;
		}else{ 
			var el = (event.target.tagName ? event.target : event.target.parentNode);
		}
	}
	
function captureMDEvent(e){
	for(name in window.dialogs){
		if(window.Lib.skip(name.toString())){
			try{
				window.dialogs[name].handleEvent(e.target.id);
			}catch(e){;}
		}
	}
	
};

function wini_mouseDown(e){
	if(isNav){
		captureMDEvent(e);
		if(e.target.id != window.handleID){ return; }
	}else{
		handleMDEvent();
		if(window.event.srcElement.id != window.handleID){ 
			return; 
		}
	}
	try{
		window.ob=document.getElementById(window.dragID);
		if(window.over){
			if(window.N){
				X=e.layerX;
				Y=e.layerY;
				return false;
			}else {
				window.ob=window.ob.style;
				X=event.offsetX;
				Y=event.offsetY;
			}
		}
	}catch(c){mouseDown(e);}
};

document.onmousemove=function mouseMove(e){
	if(window.dragID==''){return;};
	if(isNav){
		if(e.target.id != window.handleID){return;}
	}else{
		if(window.event.srcElement.id!=window.handleID){return;}
	};
	if(window.ob){
		if(window.N){
			window.ob.style.top=e.pageY-Y;window.ob.style.left=e.pageX-X;
		}else{
			window.ob.pixelLeft=event.clientX-X + document.body.scrollLeft;
			window.ob.pixelTop=event.clientY-Y + document.body.scrollTop;
			return false;
		}
	}
};
document.onmouseup=function mouseUp(){window.ob=null;};
if(window.N){document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);};

Object.prototype.Extends=function(oSuper){
	for(sProperty in oSuper){
		this[sProperty] = oSuper[sProperty];
	}
};

window.Bas.addProperty=function(name,val){
	this[name]=val;
	var fncName=name.charAt(0).toUpperCase() + name.substring(1, name.length);
	this['get'+ fncName]=function(){
		return this[name];
	};
	this['set'+ fncName]=function(value){
		this[name]=value;
	}
};
window.Bas.hasFormInDialogs=function(alias){
	for(i in window.dialogs){
		if(window.Lib.skip(i)){
			if(i==alias){return true;}
		}
	}
	return false;
};
window.Bas.appendCollection=function(me,kid){
	for(i in kid.elemCollection.controls){
		if(window.Lib.skip(i)){
			me.elemCollection.controls[i]=kid.elemCollection.controls[i];
		}
	}
};

window.Lib.colHTML=function(){
	return new clsColHTML();
	function clsColHTML(){
		function udt(alias){
			var n=window.nx++;
			this.alias=alias;
			this.id='ui-'+ n;
		};
		this.controls=new Array();
		this.setid=function(alias){
			if(!arguments[0]){alias='';}
			if(!arguments[1]){flag=false;};
			var ctr=new udt(alias);
			this.controls[ctr.id]=ctr;
			return ' id='+ ctr.id +' ';
		};
		this.addtocol=function(Me,alias){
			var ctr=new udt(alias);
			Me.elemCollection.controls[ctr.id]=ctr;
			return ' id='+ ctr.id +' ';}
		}
	};
	window.Lib.getIDFromContolsCol=function(alias,col){
		var controls=col;
		for(var i in controls){
			if(controls[i].alias==alias){return i;break;}
		}
	};
	window.Lib.getAlias=function(id,col){
		for (var i in col){if(col[i].id==id){
			return col[i].alias;break;
		}
	}
};

window.Lib.getIdentity=function(alias,col){
	var controls=col['controls'];
	for (var i in controls){
		if(controls[i].alias==alias){
			return i;break;
		}
	}
};
window.Lib.blankNodeID=function(){
	return 'un-'+ window.nx++;
};

window.Bas.highlightLastBar=function(me){
	try{
		if(me.isControl){ return; };
		var n=0;
		var ar=new Array(); 
		var br=new Array();
		function getZMax(z,controls,colorON){
			this.z=z;this.controls=controls;
			this.colorON=colorON;
		}
		for (var i in window.dialogs){
			if(window.Lib.skip(i)){
				if(!window.dialogs[i].isControl){
					if(!window.dialogs[i].isHidden){
						var z=window.dialogs[i].zIndex;
						var d=window.dialogs[i].elemCollection.controls;
						var m=window.dialogs[i].colorON;
						ar[n]=new getZMax(z,d,m); 
						br[n]=z;n++;
					}
				}
			}
		}
		br=br.sort();
		var val=br[br.length-1];
		for(var i=0; i<ar.length; i++){
			if(ar[i].z==val){ 
				var zmax=ar[i];
			}
		};
		window.Bas.doChangeBarColor(zmax.controls,zmax.colorON)
	}catch(e){;}
};

window.Bas.changeBarColor=function(selDiv,col){
	try{
		for (var i in window.dialogs){
			if(window.Lib.skip(i)){
				var me=window.dialogs[i];
				var cl=me.elemCollection.controls;
				if(window.dialogs[i].id==selDiv.id){
					window.Bas.doChangeBarColor(col,me.colorON);
				}else{
					window.Bas.doChangeBarColor(cl,me.colorOFF);
				}
			}
		}
	}catch(e){;}
};

window.Bas.doChangeBarColor=function(col,cls){
	var lib=window.Lib;
	var ar=new Array('drag','dragleft','dragright');
	for (var i=0; i<ar.length; i++){
		var dl=lib.getcontrol(lib.getIDFromContolsCol(ar[i],col));
		dl.className=cls;
	}
};


