//
// Global bugSweetWindow management -- BSW (Bugimus Sweet Window)
// extends BDD
//
// it allows content inside a draggable window
// window is resizable
// window content is dynamically set
//

var temptext = "<html><body>"
			+"Content Window #"
			+this.objnum +" "
			+"<font color=red>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</font> " 
			+"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n\nDuis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\n\nUt wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi."
			+"</body></html>";

bugBase.prototype.attachBSW = function() {
	this.BSWnum = 0
	this.BSWobj = new Array()
	
	// flags
	this.BSWresizing = false
	this.BSWtexting = false
	this.BSWtextmousedown = false

	// win dimension thingies
	this.BSWborderSize = 2
	this.BSWbuttonSize = 2
	this.BSWpaddingSize = 1
	this.BSWdragBarHeight = 18
	this.BSWallSpaceSize = 2*this.BSWborderSize + 2*this.BSWpaddingSize
	this.BSWscrollBarSize = 13  // measured on IE6 WinXP
	this.BSWbuttonWidth = 14
	this.BSWbuttonHeight = 12

	// skin stuff
	this.BSWfocusColor = "099"
	this.BSWblurColor = "#cc6"
/*
	// events
	if(this.NN4) {
		document.captureEvents( Event.MOUSEUP )
		document.onmouseup = this.handlemouseup
	}
	if(this.IE5) {
		document.onmouseup = this.handlemouseup
	}
	if(this.NN6) document.addEventListener("mouseup", this.handlemouseup, true)
*/

}

/*
bugBase.prototype.handlemouseup = function (e){
//	alert("mouseup")
	if(bugimus.BSWobj[0]) bugimus.BSWresizing = false
	if(bugimus.BDDobj[0]) bugimus.BDDobj[bugimus.BDDselected].dragging = false
	if(bugimus.BDCobj[0]) bugimus.BDCobj[bugimus.BDCselected].dragging = false
}
*/

window.bugimus.attachBSW()



//
// Local bugSweetWindow functionality
//

// ----------------------------------------------
// Define main object

function sweetWin(x,y,w,h,bgcolor) {
	this.objname = "window.bugimus.BSWobj[" + window.bugimus.BSWnum + "]"
	this.objnum = window.bugimus.BSWnum
	window.bugimus.BSWobj[window.bugimus.BSWnum++] = this

	// ----------------------------------------------
	// BDDOBJ OVERRIDE - create the draggable object
	// this sweetWin is based upon
	this.bddobj = new dragMe(x,y,w,h,bgcolor)
	this.bddobj.isBSW = true

	// Add max/minimized flags and temp vars
	bugimus.BDDobj[this.bddobj.objnum].maximized = false
	bugimus.BDDobj[this.bddobj.objnum].minimized = false
	bugimus.BDDobj[this.bddobj.objnum].tx = 0
	bugimus.BDDobj[this.bddobj.objnum].ty = 0
	bugimus.BDDobj[this.bddobj.objnum].tw = 0
	bugimus.BDDobj[this.bddobj.objnum].th = 0

	// Improve drag window border style
	with(this.bddobj.obj) {
		style.backgroundColor = "#ccc"
		style.border = "outset "+bugimus.BSWborderSize+"px #fff"
		style.padding = bugimus.BSWpaddingSize+"px"
		style.overflow = "hidden"
		clip(0, getw()+bugimus.BSWallSpaceSize, geth()+bugimus.BSWallSpaceSize, 0)
	}

	// ----------------------------------------------
	// BDDOBJ OVERRIDE - you must redo mousedown to 
	// handle special drag conditions

	this.bddobj.obj.onmousedown = function(e) {
		if(bugimus.BSWtextmousedown) {
			bugimus.BSWtextmousedown=false
		} else {
			bugimus.BSWtexting=false
		}
		var x = window.event.clientX + bugimus.BMIscrollX()
		var y = window.event.clientY + bugimus.BMIscrollY()
		var dx = this.getx()
		var dy = this.gety()
		var dw = this.getw() + 2*bugimus.BSWallSpaceSize
		var dh = this.geth() + 2*bugimus.BSWallSpaceSize
		//alert(this.dragObject.objname+" = "+cx+" "+cy+" "+dx+" "+dy+" "+dw+" "+dh+" ")
		if (x >= dx && x <= dx+dw && y >= dy && y <= dy+dh) {
			this.dragObject.dragOffsetX = x-dx
			this.dragObject.dragOffsetY = y-dy
			if(bugimus.BDDobj[bugimus.BDDselected].isBSW) {
				bugimus.BDDobj[bugimus.BDDselected].obj.childNodes[0].style.backgroundColor = bugimus.BSWblurColor // deactivate color of blurred dragbar
			}
			bugimus.BDDselected = this.dragObject.objnum
			this.childNodes[0].style.backgroundColor = bugimus.BSWfocusColor // activate color of focused dragbar
			bugimus.BDDreStackZ()
			if( !bugimus.BDDobj[bugimus.BDDselected].maximized && !bugimus.BDDobj[bugimus.BDDselected].minimized) {
				this.dragObject.dragging = true
			}
			return false
		}
		else return true
	}

	// ----------------------------------------------
	// DRAGBAR - create bar at top to drag window 
	this.bddobj.obj.appendChild(this.dragbarObject=document.createElement("DIV"))
	this.dragbarObject.appendChild(document.createTextNode("Sweet Window #"+(this.objnum+1)))

	with(this.dragbarObject.style) {
		position="relative"
//		width = w - 3*this.borderSize - 20
		height = bugimus.BSWdragBarHeight
		fontSize="12px"
		fontFamily="sans-serif"
		fontWeight="bold"
		border="0px"
		paddingLeft="3px"
		color="#fff"
		backgroundColor=bugimus.BSWblurColor
//		clip="rect(0,"+width+","+height+",0)"
//		overflow="hidden"
	}	

	// ----------------------------------------------
	// REPORT - debugging stuff
/*
	this.bddobj.obj.appendChild(this.reportObject=document.createElement("INPUT"))
	this.bddobj.reportObject = this.reportObject
	this.bddobj.obj.appendChild(this.reportObject2=document.createElement("INPUT"))
	this.bddobj.reportObject2 = this.reportObject2
	this.bddobj.obj.appendChild(this.reportObject3=document.createElement("INPUT"))
	this.bddobj.reportObject3 = this.reportObject3
*/
	// ----------------------------------------------
	// TEXT - create text container

	textType = "inner"   // text, iframe, innerHTML frag

	if(textType == "iframe") {
		this.bddobj.obj.appendChild(this.textObject=document.createElement("IFRAME"))
		this.textObject.src = "http://www.google.com/"
	}

	if(textType == "text" || textType == "inner") {
		this.bddobj.obj.appendChild(this.textObject=document.createElement("DIV"))
	}

	this.bddobj.textObject = this.textObject
	with(this.textObject.style) {
		position="relative"
		width = this.bddobj.obj.getw() - 2*bugimus.BSWbuttonSize
		height = this.bddobj.obj.geth() - bugimus.BSWdragBarHeight - 2*bugimus.BSWbuttonSize
		fontSize="10pt"
		border="inset "+bugimus.BSWbuttonSize+"px #fff"
		backgroundColor="#fff"
		if(textType == "text" || textType == "inner") overflow="scroll"
	}	
	this.textObject.getw = getoWidth
	this.textObject.geth = getoHeight
	this.textObject.setw = setoWidth
	this.textObject.seth = setoHeight

	if(textType == "text") {

		this.textObject.appendChild( document.createTextNode (
			"<html><body>"
			+"Content Window #"
			+this.objnum +" "
			+"<font color=red>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</font> " 
			+"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n\nDuis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\n\nUt wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi."
			+"</body></html>"
		) )

	}

//	if(textType == "inner" ) {
//		this.textObject.innerHTML = temptext
//	}

	this.textObject.onmouseover = function(e) {
		if(bugimus.BDDobj[bugimus.BDDselected].dragging == false) {
//			alert("textover: dragging["+bugimus.BDDselected+"] = "+bugimus.BDDobj[bugimus.BDDselected].dragging )
			bugimus.BSWtexting=true
			bugimus.BSWresizing=false
			bugimus.BDDobj[bugimus.BDDselected].dragging = false
		}
	}

	this.textObject.onmousedown = function(e) {
//		alert("textdown: dragging["+bugimus.BDDselected+"] = "+bugimus.BDDobj[bugimus.BDDselected].dragging )
		bugimus.BSWtextmousedown = true	
	}

	this.textObject.onmouseout = function(e) {
//		alert("textout: dragging["+bugimus.BDDselected+"] = "+bugimus.BDDobj[bugimus.BDDselected].dragging )
		if(bugimus.BDDobj[bugimus.BDDselected].dragging == false) {
			bugimus.BSWtexting=false
			bugimus.BDDobj[bugimus.BDDselected].dragging = false
		}
	}

	// ----------------------------------------------
	// RESIZER - event handling for drag to resize

	this.bddobj.obj.appendChild(this.resizeObject=document.createElement("DIV"))
	this.bddobj.resizeObject = this.resizeObject
	this.resizeObject.getx = getoX
	this.resizeObject.gety = getoY
	this.resizeObject.setx = setoX
	this.resizeObject.sety = setoY
	this.resizeObject.show = showoDiv
	this.resizeObject.hide = hideoDiv

	rw=12 + bugimus.BSWpaddingSize
	rh=12 + bugimus.BSWpaddingSize

	with(this.resizeObject.style) {
		position="absolute"
		width=rw 
		height=rh 
		left = this.bddobj.obj.getw() + bugimus.BSWpaddingSize - bugimus.BSWbuttonSize - bugimus.BSWscrollBarSize
		top =  this.bddobj.obj.geth() + bugimus.BSWpaddingSize - bugimus.BSWbuttonSize - bugimus.BSWscrollBarSize
//		fontSize="1px"
		border="outset "+bugimus.BSWbuttonSize+"px #fff"
		fontSize="9px"
		fontFamily="sans-serif"
		fontWeight="bold"
		backgroundColor="#ccc"
		textAlign="center"
	}

	this.resizeObject.onmousedown = function() {
		bugimus.BSWresizing=true
	}

	this.bddobj.handleresize = function() {
		var minsize = 200
		// get current mouse location
		var mx = bugimus.BMImousex + bugimus.BMIscrollX()
		var my = bugimus.BMImousey + bugimus.BMIscrollY()
		// get ???
		var ow = mx + rw/2 - this.obj.getx() 
		var oh = my + rh/2 - this.obj.gety() 

		if(oh >= minsize) {- rh/2
			this.resizeObject.sety( oh - bugimus.BSWbuttonSize - bugimus.BSWborderSize - bugimus.BSWpaddingSize - bugimus.BSWscrollBarSize )
			this.obj.seth(oh - bugimus.BSWborderSize - 2*bugimus.BSWpaddingSize)
		}

		if(ow >= minsize) {- rw/2
			this.resizeObject.setx( ow - bugimus.BSWbuttonSize - bugimus.BSWborderSize - bugimus.BSWpaddingSize - bugimus.BSWscrollBarSize )
			this.obj.setw(ow - bugimus.BSWborderSize - 2*bugimus.BSWpaddingSize)

			this.killObject.setx( ow - bugimus.BSWpaddingSize - bugimus.BSWborderSize - bugimus.BSWbuttonWidth - 2*bugimus.BSWbuttonSize - 1 )
			this.maxObject.setx( ow - bugimus.BSWpaddingSize - bugimus.BSWborderSize - 2*bugimus.BSWbuttonWidth - 4*bugimus.BSWbuttonSize - 1 )
			this.minObject.setx( ow - bugimus.BSWpaddingSize - bugimus.BSWborderSize - 3*bugimus.BSWbuttonWidth - 6*bugimus.BSWbuttonSize - 1 )
		}
		www = this.obj.getw() + bugimus.BSWallSpaceSize 
		hhh = this.obj.geth() + bugimus.BSWallSpaceSize 
		this.obj.clip(0,www,hhh,0)

		this.textObject.setw(this.obj.getw() - 2*bugimus.BSWbuttonSize)
		this.textObject.seth(this.obj.geth() - bugimus.BSWdragBarHeight - 2*bugimus.BSWbuttonSize)

		return false
	}
	this.bddobj.handlemousemove = this.resizeObject.handlemousemove

	this.resizeObject.onmouseup = function() {
		bugimus.BSWresizing=false
	}

	// ----------------------------------------------
	// KILLER - for this window

	this.bddobj.obj.appendChild(this.killObject=document.createElement("DIV"))
	this.killObject.appendChild(document.createTextNode("X"))
	this.bddobj.killObject = this.killObject
	with(this.killObject.style) {
		position="absolute"
		width=bugimus.BSWbuttonWidth
		height=bugimus.BSWbuttonHeight
		left = this.bddobj.obj.getw() + bugimus.BSWpaddingSize - bugimus.BSWbuttonWidth - 2*bugimus.BSWbuttonSize - 1
		top = bugimus.BSWpaddingSize + 1
		fontSize="9px"
		fontFamily="sans-serif"
		fontWeight="bold"
		border="outset "+bugimus.BSWbuttonSize+"px #fff"
		backgroundColor="#ccc"
		textAlign="center"
	}
	this.killObject.setx = setoX

	this.killObject.onclick = function() {
		alert("kill")
	}

	// ----------------------------------------------
	// MAXIMIZER - for this window

	this.bddobj.obj.appendChild(this.maxObject=document.createElement("DIV"))
	this.maxObject.appendChild(document.createTextNode("^"))
	this.bddobj.maxObject = this.maxObject
	with(this.maxObject.style) {
		position="absolute"
		width=bugimus.BSWbuttonWidth
		height=bugimus.BSWbuttonHeight
		left = this.bddobj.obj.getw() + bugimus.BSWpaddingSize - 2*bugimus.BSWbuttonWidth - 4*bugimus.BSWbuttonSize - 1
		top = bugimus.BSWpaddingSize + 1
		fontSize="9px"
		fontFamily="sans-serif"
		fontWeight="bold"
		border="outset "+bugimus.BSWbuttonSize+"px #fff"
		backgroundColor="#ccc"
		textAlign="center"
	}
	this.maxObject.setx = setoX

	this.maxObject.onclick = function() {
		if(!bugimus.BDDobj[bugimus.BDDselected].minimized) {
			if(!bugimus.BDDobj[bugimus.BDDselected].maximized) {
				mx = 0
				my = 0
				mw = bugimus.BSNwinWidth
				mh = bugimus.BSNwinHeight
				with(bugimus.BDDobj[bugimus.BDDselected]) {
					tx = obj.getx()
					ty = obj.gety()
					tw = obj.getw() + bugimus.BSWallSpaceSize
					th = obj.geth() + bugimus.BSWallSpaceSize
					resizeObject.hide()
					maximized = true
				}
				this.childNodes[0].nodeValue="O"
			} else {
				with(bugimus.BDDobj[bugimus.BDDselected]) {
					mx = tx
					my = ty
					mw = tw
					mh = th
					resizeObject.show()
					maximized = false
				}
				this.childNodes[0].nodeValue="^"
			}
			with(bugimus.BDDobj[bugimus.BDDselected]) {
				obj.setx(mx)
				obj.sety(my)
				obj.setw(mw - bugimus.BSWallSpaceSize)
				obj.seth(mh - bugimus.BSWallSpaceSize)
				obj.clip(0,mw,mh,0)
				textObject.setw(obj.getw() - 2*bugimus.BSWbuttonSize)
				textObject.seth(obj.geth() - bugimus.BSWdragBarHeight - 2*bugimus.BSWbuttonSize)
				killObject.setx( obj.getw() + bugimus.BSWpaddingSize - bugimus.BSWbuttonWidth - 2*bugimus.BSWbuttonSize - 1 )
				maxObject.setx( obj.getw() + bugimus.BSWpaddingSize - 2*bugimus.BSWbuttonWidth - 4*bugimus.BSWbuttonSize - 1 )
				minObject.setx( obj.getw() + bugimus.BSWpaddingSize - 3*bugimus.BSWbuttonWidth - 6*bugimus.BSWbuttonSize - 1 )
			}
		}
	}

	// ----------------------------------------------
	// MINIMIZER - for this window

	this.bddobj.obj.appendChild(this.minObject=document.createElement("DIV"))
	this.minObject.appendChild(document.createTextNode("V"))
	this.bddobj.minObject = this.minObject
	with(this.minObject.style) {
		position="absolute"
		width=bugimus.BSWbuttonWidth 
		height=bugimus.BSWbuttonHeight
		left = this.bddobj.obj.getw() + bugimus.BSWpaddingSize - 3*bugimus.BSWbuttonWidth - 6*bugimus.BSWbuttonSize - 1
		top = bugimus.BSWpaddingSize + 1
		fontSize="9px"
		fontFamily="sans-serif"
		fontWeight="bold"
		border="outset "+bugimus.BSWbuttonSize+"px #fff"
		backgroundColor="#ccc"
		textAlign="center"
	}
	this.minObject.setx = setoX

	this.minObject.onclick = function() {
		if(!bugimus.BDDobj[bugimus.BDDselected].maximized) {
			if(!bugimus.BDDobj[bugimus.BDDselected].minimized) {
				mx = 0
				my = 0
				mw = 200
				mh = bugimus.BSWdragBarHeight + bugimus.BSWallSpaceSize
				with(bugimus.BDDobj[bugimus.BDDselected]) {
					tx = obj.getx()
					ty = obj.gety()
					tw = obj.getw() + bugimus.BSWallSpaceSize
					th = obj.geth() + bugimus.BSWallSpaceSize
					resizeObject.hide()
					minimized = true
				}
				this.childNodes[0].nodeValue="O"
			} else {
				with(bugimus.BDDobj[bugimus.BDDselected]) {
					mx = tx
					my = ty
					mw = tw
					mh = th
					resizeObject.show()
					minimized = false
				}
				this.childNodes[0].nodeValue="V"
			}
			with(bugimus.BDDobj[bugimus.BDDselected]) {
				obj.setx(mx)
				obj.sety(my)
				obj.setw(mw - bugimus.BSWallSpaceSize)
				obj.seth(mh - bugimus.BSWallSpaceSize)
				obj.clip(0,mw,mh,0)
	//			textObject.setw(obj.getw() - 2*bugimus.BSWbuttonSize)
	//			textObject.seth(obj.geth() - bugimus.BSWdragBarHeight - 2*bugimus.BSWbuttonSize)
				killObject.setx( obj.getw() + bugimus.BSWpaddingSize - bugimus.BSWbuttonWidth - 2*bugimus.BSWbuttonSize - 1 )
				maxObject.setx( obj.getw() + bugimus.BSWpaddingSize - 2*bugimus.BSWbuttonWidth - 4*bugimus.BSWbuttonSize - 1 )
				minObject.setx( obj.getw() + bugimus.BSWpaddingSize - 3*bugimus.BSWbuttonWidth - 6*bugimus.BSWbuttonSize - 1 )
			}
		}
	}
}

sweetWin.prototype.setTextColor = function (color) {
	this.textObject.style.color = color
}

sweetWin.prototype.setTextBackgroundColor = function (color) {
	this.textObject.style.backgroundColor = color
}

sweetWin.prototype.setInnerHTML = function (htmlString) {
	this.textObject.innerHTML = htmlString
}

sweetWin.prototype.setClonedHTML = function (cloneRef) {
	this.textObject.appendChild( cloneRef )
}

// You have to redefine the global mousemove handler from BSW
bugBase.prototype.handlemousemove = function (e){
	if(bugimus.IE5) { 
		bugimus.BMImousex = event.clientX
		bugimus.BMImousey = event.clientY
	} else if(bugimus.NN4) {
		bugimus.BMImousex = e.pageX+2
		bugimus.BMImousey = e.pageY+2
	} else if(bugimus.NN6) {
		bugimus.BMImousex = e.pageX
		bugimus.BMImousey = e.pageY
	}

//if(bugimus.BDDobj[bugimus.BDDselected].reportObject)  bugimus.BDDobj[bugimus.BDDselected].reportObject.value = "texting="+bugimus.BSWtexting
//if(bugimus.BDDobj[bugimus.BDDselected].reportObject2) bugimus.BDDobj[bugimus.BDDselected].reportObject2.value = "dragging="+bugimus.BDDobj[bugimus.BDDselected].dragging
//if(bugimus.BDDobj[bugimus.BDDselected].reportObject3) bugimus.BDDobj[bugimus.BDDselected].reportObject3.value = "resizing="+bugimus.BSWresizing

	if(false) {
		// no op
	} else if(bugimus.BSWtexting && bugimus.BDDobj[bugimus.BDDselected].isBSW) {
		// IN TEXT - must add this for operating in text div
		return true
	} else if(bugimus.BSWresizing) {
		// RESIZING - must add this one for drag to resize handler
		bugimus.BDDobj[bugimus.BDDselected].handleresize()
	} else  if(bugimus.BDDobj[bugimus.BDDselected].dragging) {
		bugimus.BSWtexting = false
		bugimus.BDDobj[bugimus.BDDselected].obj.handlemousemove()
	} else {
		bugimus.BDDobj[bugimus.BDDselected].obj.handlemousemove()
	}
	return false
}
window.bugimus.attachBMI()

