var wins=0;
var oWin=new Array;

oWin.zIndex=10;
oWin.dragobj=-1;
oWin.resizeobj=-1;
oWin.zIndex=100;
oWin.oWindow;
oWin.bordercolor="#80a5bf";
oWin.bgcolor="#2a6187";
oWin.bgcoloron="#2a6187";
oWin.bgscroll="#669cc2";
oWin.headerFontColor="#f9faff";
oWin.windowFontColor="#ace1ff";
oWin.addlStyle = " ";
oWin.resizeable=false;
oWin.bottomh=10;
oWin.headh=15;
oWin.bordersize=1;
oWin.scrollw=13;
oWin.scrollimgh=12;
oWin.buttonsw=15;
oWin.resizeh=9;
oWin.resizew=13;
oWin.starty=5;
oWin.defwidth=200;
oWin.defheight=200;
oWin.between=15;
oWin.keepinside=0;
oWin.maxX=500;
oWin.maxY=500;
oWin.minX=50;
oWin.minY=50;
oWin.length = 0;





function lib_bwcheck()
{ //Browsercheck (needed)
	var userAgent = navigator.userAgent.toLowerCase();

	this.ver=navigator.appVersion;
	this.agent=navigator.userAgent;
	this.dom=document.getElementById?1:0;
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;
	this.ie7=(this.ver.indexOf("MSIE 7")>-1 && this.dom)?1:0;
	this.ie4=(document.all && !this.dom)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6;
	this.ie_ver=0;
	this.mac=this.agent.indexOf("Mac")>-1;
	this.opera5=this.agent.indexOf("Opera 5")>-1;
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0;

	this.is_opera  = (userAgent.indexOf('opera') != -1);
	this.is_saf    = ((userAgent.indexOf('safari') != -1) || (navigator.vendor == "Apple Computer, Inc."));
	this.is_webtv  = (userAgent.indexOf('webtv') != -1);
	this.is_ie = ((userAgent.indexOf('msie') != -1) && (!this.is_opera) && (!this.is_saf) && (!this.is_webtv));
	if(this.is_ie)
	{
		for(var i=10; i>=1; i--)
		{
			if(userAgent.indexOf("msie " + i + ".") != -1)
			{
				this.ie_ver = i;
				break;
			}
		}
	}


	this.bw=(this.ie7 || this.ie6 || this.ie5 || this.ie4 || (this.ie_ver>=5) || this.ns4 || this.ns6 || this.opera5 || this.is_opera || this.is_saf || this.is_webtv);

	return this;
}
var bw=new lib_bwcheck();



function lib_moveIt(x,y)
{
	this.x = x;
	this.y = y;
	this.css.left = x;
	this.css.top = y;
}


function lib_moveBy(x,y){
	this.moveIt(this.x+x,this.y+y);
}


function lib_showIt()
{
	this.css.visibility="visible";
}


function lib_hideIt()
{
	this.css.visibility="hidden";
}


function lib_bg(color)
{
	if(bw.opera5)
		this.css.background=color;
	else if(bw.dom || bw.ie4)
		this.css.backgroundColor=color;
	else if(bw.ns4)
		this.css.bgColor=color;
}


function lib_clipTo(t,r,b,l,setwidth)
{
	if(t<0)
		t=0;
	if(r<0)
		r=0;
	if(b<0)
		b=0;
	if(l<0)
		l=0;

	this.ct=t;
	this.cr=r;
	this.cb=b;
	this.cl=l;

	if(bw.ns4)
	{
		this.css.clip.top=t;
		this.css.clip.right=r;
		this.css.clip.bottom=b;
		this.css.clip.left=l;
	}
	else if(bw.opera5)
	{
		this.css.pixelWidth=r;
		this.css.pixelHeight=b;
		this.w=r;
		this.h=b;
	}
	else
	{
		this.css.clip="rect("+t+","+r+","+b+","+l+")";
		if(setwidth)
		{
			this.css.width=r;
			this.css.height=b;
			this.w=r;
			this.h=b;
		}
	}
}


function lib_writeIt(text,startHTML,endHTML)
{
	if(bw.ns4)
	{
		if(!startHTML)
		{
			startHTML="";
			endHTML="";
		}
		this.ref.open("text/html");
		this.ref.write(startHTML+text+endHTML);
		this.ref.close();
	}else
		this.evnt.innerHTML = text;
}


function lib_obj(obj,nest,dnest,ddnest,num)
{
	if(!bw.bw)
		return lib_message('Old browser');
	if(!bw.ns4)
		this.evnt = bw.dom && document.getElementById(obj) || bw.ie4 && document.all[obj];
	else
	{
		if(ddnest)
		{
			this.evnt = document[nest].document[dnest].document[ddnest].document[obj] ? document[nest].document[dnest].document[ddnest].document[obj] : 0;
		}
		else if(dnest)
		{
			this.evnt = document[nest].document[dnest].document[obj] ? document[nest].document[dnest].document[obj] : 0;
		}
		else if(nest)
		{
			this.evnt = document[nest].document[obj] ? document[nest].document[obj] : 0;
		}
		else
		{
			this.evnt = document.layers[obj] ? document.layers[obj] : 0;
		}
	}

	if(!this.evnt)
		return lib_message('The layer does not exist ('+obj+') - Exiting script\n\nIf you are using Netscape please check the nesting of your tags!');

	this.css = bw.dom || bw.ie4 ? this.evnt.style : this.evnt;
	this.ref = bw.dom || bw.ie4 ? document : this.css.document;
	this.moveIt = lib_moveIt;
	this.moveBy = lib_moveBy;
	this.showIt = lib_showIt;
	this.hideIt = lib_hideIt;
	this.bg = lib_bg;
	this.num = num;
	this.writeIt = lib_writeIt;
	this.clipTo = lib_clipTo;
	this.obj = obj + "Object";
	eval(this.obj + "=this");
	return this;
}


function create_window(i,x,y,w,h,bg,bga)
{
	if(!w)
		w=oWin.defwidth;
	if(!h)
		h=oWin.defheight;
	if(!bg)
		bg=oWin.bgcolor;
	if(!bga)
		bga=oWin.bgcoloron;

	oWin[i] = new lib_obj('divWin'+i,"","","",i);
	oWin[i].oWindow = new lib_obj('divWindow'+i,'divWin'+i);
	oWin[i].oWindow.moveIt(oWin.bordersize,oWin.headh);
	oWin[i].oText = new lib_obj('divWinText'+i,'divWin'+i,'divWindow'+i);
	oWin[i].oHead = new lib_obj('divWinHead'+i,'divWin'+i);
	oWin[i].oButtons = new lib_obj('divWinButtons'+i,'divWin'+i);
	oWin[i].oResize = new lib_obj('divWinResize'+i,'divWin'+i);
	oWin[i].oHead.evnt.onmouseover = new Function("w_mmover("+i+")");
	oWin[i].oHead.evnt.onmouseout = new Function("w_mmout()");

	if(!bw.ns4)
		oWin[i].oHead.evnt.ondblclick = new Function("mdblclick(0,"+i+")");
	if(oWin.resizeable)
	{
		oWin[i].oResize.evnt.onmouseover = new Function("w_mmover("+i+",1)");
		oWin[i].oResize.evnt.onmouseout = new Function("w_mmout()");
	}
	if(!bw.ns4)
	{
		oWin[i].oHead.css.cursor="move";
		oWin[i].oResize.css.cursor=((oWin.resizeable) ? "se-resize" : "default");
		oWin[i].oWindow.css.overflow="hidden";
		oWin[i].css.overflow="hidden";
		oWin[i].oText.css.overflow="hidden";
	}

	oWin[i].defbg = bg;
	oWin[i].defbga = bga;
	oWin[i].bg(oWin.bordercolor);
	oWin[i].oWindow.bg(oWin[i].defbg);
	oWin[i].oUp = new lib_obj('divWinUp'+i,'divWin'+i);
	oWin[i].oDown = new lib_obj('divWinDown'+i,'divWin'+i);
	oWin[i].oUp.bg(oWin.bgscroll);
	oWin[i].oDown.bg(oWin.bgscroll);
	oWin[i].lastx = x;
	oWin[i].lasty = y;
	oWin[i].origw = w;
	oWin[i].origh = h;
	oWin[i].resize = win_resize;
	oWin[i].close = win_close;
//	oWin[i].maximize = win_maximize;
//	oWin[i].minimize = win_minimize;
	oWin[i].regwin = win_regwin;
	oWin[i].checkscroll = win_checkscroll;
	oWin[i].up = win_up;
	oWin[i].down = win_down;
	oWin[i].addZ = win_addZ;
	oWin[i].state = "reg";
	oWin[i].moveIt(x,y);
	oWin[i].resize(w,h);
	oWin[i].checkscroll();

	if(bw.opera5)
		setTimeout("oWin["+i+"].resize("+w+","+h+"); oWin["+i+"].showIt()",10);
	else
		oWin[i].showIt();
}


function win_regwin()
{
	this.oResize.css.visibility="inherit";
	this.resize(this.origw,this.origh);
	this.moveIt(this.lastx,this.lasty);
	this.state="reg";
	this.addZ();
	this.checkscroll();
}


function win_close()
{
	this.hideIt();
	this.oUp.hideIt();
	this.oDown.hideIt();
}


function win_resize(w,h)
{
	this.oButtons.moveIt(w-oWin.buttonsw,0);
	this.oResize.moveIt(w-oWin.resizew,h-oWin.resizeh);
	this.oWindow.clipTo(0,w-oWin.bordersize*2,h-oWin.bottomh-oWin.headh,0,1);
	this.clipTo(0,w,h,0,1);
	this.oHead.clipTo(0,w,oWin.headh,0,1);
	this.oText.moveIt(2,3);
	this.oUp.hideIt();
	this.oDown.hideIt();
}


function win_checkscroll(w,h)
{
	this.oText.height = this.oText.evnt.offsetHeight || this.oText.css.pixelHeight || this.oText.ref.height || 0;
	w = this.cr;
	h = this.cb;
	if(this.oText.height > h-oWin.bottomh-oWin.headh && this.state!="min")
	{
		this.oWindow.clipTo(0,w-oWin.scrollw-oWin.bordersize*2,h-oWin.bottomh-oWin.headh,0,1);
		this.oUp.moveIt(w-oWin.scrollw,oWin.headh);
		this.oUp.clipTo(0,oWin.scrollw-oWin.bordersize,h-oWin.bottomh-oWin.scrollimgh-oWin.headh,0,1);
		this.oDown.moveIt(w-oWin.scrollw,h-oWin.bottomh-oWin.scrollimgh);
		this.oDown.clipTo(0,oWin.scrollw-oWin.bordersize,oWin.scrollimgh,0,1);
		this.oUp.showIt();
		this.oDown.showIt();
	}
	else
	{
		this.oUp.hideIt();
		this.oDown.hideIt();
	}
}


var sctim=100;
var winScroll;
function win_up()
{
	clearTimeout(sctim);
	if(this.oText.y >= this.oWindow.cb - this.oText.height - 10 && winScroll)
	{
		this.oText.moveBy(0,-8);
		setTimeout(this.obj+".up()",30);
	}
}


function win_down()
{
	clearTimeout(sctim);
	if(this.oText.y<=0 && winScroll)
	{
		this.oText.moveBy(0,8);
		setTimeout(this.obj+".down()",30);
	}
}


function noWinScroll()
{
	clearTimeout(sctim);
	winScroll=false;
}


function win_addZ()
{
	oWin.zIndex++;
	this.css.zIndex = oWin.zIndex;
}


function win_init()
{
	if(document.layers)
	{
		document.captureEvents(Event.MOUSEMOVE | Event.MOUSEDOWN | Event.MOUSEUP | Event.DBLCLICK);
		document.ondblclick=mdblclick;
	}
	document.onmousemove=mmove;
	document.onmousedown=mdown;
	document.onmouseup=mup;
}


function w_mmover(num,resize)
{
	if(!resize)
		oWin.dragover=num;
	else
		oWin.resizeover=num;
}


function w_mmout()
{
	oWin.dragover=-1;
	oWin.resizeover=-1;
}


function mup(e)
{ //Mouseup
	if( (oWin.dragobj!=-1 || oWin.resizeobj!=-1) && oWin.setposition)
		setPos();

	if(oWin.dragobj!=-1)
	{
		oWin[oWin.dragobj].lastx=oWin[oWin.dragobj].x;
		oWin[oWin.dragobj].lasty=oWin[oWin.dragobj].y;
	}

	oWin.dragobj=-1;

	if(oWin.resizeobj!=-1)
	{
		oWin[oWin.resizeobj].checkscroll();
		oWin[oWin.resizeobj].origw=oWin[oWin.resizeobj].cr;
		oWin[oWin.resizeobj].origh=oWin[oWin.resizeobj].cb;
	}
	else if(bw.ns4)
		routeEvent(e);

	oWin.resizeobj=-1;
}


function mdown(e)
{ //Mousedown
	var x=(bw.ns4 || bw.ns6) ? e.pageX : event.x; //|| event.clientX;
    var y=(bw.ns4 || bw.ns6) ? e.pageY : event.y; //|| event.clientY;
//	if(bw.ie5 || bw.ie6)
	if(bw.ie_ver >= 5)
		y+=document.body.scrollTop;

	id1 = oWin.dragover;
	id2 = oWin.resizeover;
	if(id1>-1 || id2>-1)
	{
		if(id2>-1)
		{
			id=id2;
			oWin.resizeobj=id;
		}
		else
		{
			id = id1;
			oWin.dragobj = id;
			oWin.clickedX = x-oWin[id].x;
			oWin.clickedY = y-oWin[id].y;
		}
		oWin[id].addZ();
		//Setting background-colors
		for(i=0; i<wins; i++){
			if(i!=id1 && i!=id2)
			{
				oWin[i].oWindow.bg(oWin[i].defbg);
			}
			else
				oWin[i].oWindow.bg(oWin[i].defbga);
		}
	}
	else if(bw.ns4)
		routeEvent(e);

	if(!bw.ns4)
		return false;
}


function mmove(e,y,rresize)
{ //Mousemove
	x=(bw.ns4 || bw.ns6) ? e.pageX : event.x; //|| event.clientX;
    y=(bw.ns4 || bw.ns6) ? e.pageY : event.y; //|| event.clientY;
//	if(bw.ie5 || bw.ie6)
	if(bw.ie_ver >= 5)
		y+=document.body.scrollTop;

	id1=oWin.dragobj;
	id2=oWin.resizeobj;

	if(id2>-1)
	{ //Resize
		nx=x;
		ny=y;
		oldw=oWin[id2].cr;
		oldh=oWin[id2].cb;
		cw= nx -oWin[id2].x;
		ch= ny - oWin[id2].y;
		if(cw<120)
			cw=120;
		if(ch<100)
			ch=100;

		oWin[id2].resize(cw,ch);
	}
	else if(id1>-1)
	{ //Move
		nx=x-oWin.clickedX;
		ny=y-oWin.clickedY;
		if(ny<oWin.starty)
			ny=oWin.starty;

		if(oWin.keepinside)
		{
			if(nx+oWin[id1].cr>eval(oWin.maxX))
				nx=eval(oWin.maxX)-oWin[id1].cr;
			else if(nx<eval(oWin.minX))
				nx=eval(oWin.minX);

			if(ny+oWin[id1].cb>eval(oWin.maxY))
				ny=eval(oWin.maxY)-oWin[id1].cb;
			else if(ny<eval(oWin.minY))
				ny=eval(oWin.minY);
		}
		oWin[id1].moveIt(nx,ny);
		if(oWin[id].state==0)
		{
			oWin[id].lastx=nx;
			oWin[id].lasty=ny;
		}
	}
	if(!bw.ns4)
		return false;
}


function mdblclick(e,num)
{
	if(num>-1)
		oWin[num].maximize();
	else if(oWin.dragover>-1)
		oWin[oWin.dragover].maximize();
}


var lastx,lasty,lastw,lasth;
function addWindow(heading,content,x,y,w,h,bg,bga,hdrcl,wincl)
{
	var num=oWin.length;
	wins=num+1;
	var str="";

	str+='<div id="divWin'+num+'" class="clWin">\n';
	str+='<div class="clLogo"><!--<img alt="" src="images/win/win_logo.gif" width="19" height="18" alt="" border="0" align="top">--></div>\n'
	+'<div id="divWinHead'+num+'" class="clWinHead" style="color:'+((hdrcl)?hdrcl:oWin.headerFontColor)+'">&nbsp;'+heading+'</div>\n'
	+'<div id="divWinButtons'+num+'" class="clWinButtons">\n'
		+'<map name="map'+num+'">\n'
			+'<area shape="rect" coords="2,2,12,12" href="#" alt=""  onclick="oWin['+num+'].close(); return false">\n'
		+'</map>\n'
		+'<img usemap="#map'+num+'" alt="" src="images/win/buttons_clb.gif" width="14" height="14" border="0">\n'
	+'</div>\n'
	+'<div id="divWinResize'+num+'" class="clWinResize" style="'+((oWin.resizeable)?'background-image:url(images/win/resize.gif)':' ')+'" >\n'
	+'</div>\n'
	+'<div id="divWindow'+num+'" class="clWindow">\n'
		+'<div id="divWinText'+num+'" class="clText" style="color:'+((wincl)?wincl:oWin.windowFontColor)+'; '+oWin.addlStyle+'">';

	if(content)
	{
		str+=content+'</div>\n'
		+'</div>\n'
		+'<div id="divWinUp'+num+'" class="clUp"><a href="#" onclick="return false" onmouseover="winScroll=1; oWin['+num+'].down();"  onmouseout="noWinScroll()"><img src="images/win/arrow_up.gif" width="11" height="12" alt="" border="0"></a></div>\n'
		+'<div id="divWinDown'+num+'" class="clDown"><a href="#" onclick="return false" onmouseover="winScroll=1; oWin['+num+'].up();" onmouseout="noWinScroll()"><img src="images/win/arrow_down.gif" width="11" height="12" alt="" border="0"></a></div>\n'
		+'</div>';
	}
	document.write(str)
	if(content)
		create_window(num,x,y,w,h,bg,bga);
}


function endWin()
{
	num=wins-1;
	str='\n</div>\n'
	+'</div>\n'
		+'<div id="divWinUp'+num+'" class="clUp"><a href="#" onclick="return false" onmouseover="winScroll=1; oWin['+num+'].down();"  onmouseout="noWinScroll()"><img src="images/win/arrow_up.gif" width="11" height="12" alt="" border="0"></a></div>\n'
		+'<div id="divWinDown'+num+'" class="clDown"><a href="#" onclick="return false" onmouseover="winScroll=1; oWin['+num+'].up();" onmouseout="noWinScroll()"><img src="images/win/arrow_down.gif" width="11" height="12" alt="" border="0"></a></div>\n'
	+'</div>';
	return str;
}


//Capturing mousemove
var px = bw.ns4||window.opera?"":"px";
var popleft = 0;
var poptop = 0;
function popmousemove(e,fromX, fromY)
{
	var descx = 0;
	var descy = 0;

	descx=bw.ns4||bw.ns6?e.pageX:event.x;
	descy=bw.ns4||bw.ns6?e.pageY:event.y;

	if(bw.ie5||bw.ie6){
		descy = descy+document.body.scrollTop;
	}

	popleft = (descx+fromX)+px;
	poptop = (descy+fromY)+px;

//	return (popleft, poptop)
}


function incWinCount()
{
	oWin.length++;
}






