//
// Detect browser type 
//        browser version
//        browser capabilities
//
// written by Bugimus
//
BSN_DEBUGFLAG=false
//
// Global sniffer management -- BSN (Bugimus SNiffer)
//

bugBase.prototype.attachBSN = function() {
	this.IE5=false
	this.NN4=false
	this.NN6=false
	this.OPA=false
	if(navigator.userAgent.toLowerCase().indexOf("opera")+1)this.OPA=true
	else if(document.all)this.IE5=true
	else if(document.getElementById)this.NN6=true
	else if(document.layers)this.NN4=true

	// resize event
	if(this.IE5) window.onresize = this.handleresize
	if(this.NN6) window.addEventListener("resize", this.handleresize, true)
	
	if(!this.OPA) this.handleresize()

	// mouseup event
	if(this.NN4) {
		document.captureEvents( Event.MOUSEUP )
		document.onmouseup = this.handlemouseup
	}
	if(this.IE5) {
		document.onmouseup = this.handlemouseup
	}
	if(this.NN6 || this.OPA) document.addEventListener("mouseup", this.handlemouseup, true)
}

bugBase.prototype.handlemouseup = function (){
//alert("bugSniffer::handlemouseup: BDDnum = "+bugimus.BDDnum+"  BDCnum = "+bugimus.BDCnum+"\n  BSBnum = "+bugimus.BSBnum)
	if(bugimus.BSWobj) bugimus.BSWresizing = false

	if(bugimus.BDDobj && bugimus.BDDnum) bugimus.BDDobj[bugimus.BDDselected].dragging = false
	if(bugimus.BDCobj && bugimus.BDCnum) bugimus.BDCobj[bugimus.BDCselected].dragging = false

	if(bugimus.BSBobj && bugimus.BSBnum) bugimus.BSBclearScrolling()  // clears all BSB scrolling flags
}

bugBase.prototype.handleresize = function() {
	if(BSN_DEBUGFLAG) {
		alert(
		" IE5 = " + bugimus.IE5
		+ " OPA = " + bugimus.OPA
		+ " NN4 = " + bugimus.NN4
		+ " NN6 = " + bugimus.NN6
		)
	}
	// Get the width and height of the browser window
	if( bugimus.IE5 ) {
		if (document.documentElement.clientHeight) {
			bugimus.BSNwinWidth=document.documentElement.clientWidth
			bugimus.BSNwinHeight=document.documentElement.clientHeight
		} else {
			bugimus.BSNwinWidth=document.body.clientWidth
			bugimus.BSNwinHeight=document.body.clientHeight
		}
	} else if( bugimus.NN4 ) {
		bugimus.BSNwinWidth=window.innerWidth
		bugimus.BSNwinHeight=window.innerHeight
	} else if( bugimus.NN6 || bugimus.OPA ) {
		bugimus.BSNwinWidth=document.documentElement.clientWidth
		bugimus.BSNwinHeight=document.documentElement.clientHeight
	} else {
		alert("BSN: Don't know how to set win dimensions.")
	}
	if(BSN_DEBUGFLAG) {
		alert(
		"bugimus.BSNwinWidth = " + bugimus.BSNwinWidth 
		+ " bugimus.BSNwinHeight = " + bugimus.BSNwinHeight
		)
	}
}

window.bugimus.attachBSN()

// invoke resize to make sure initial values of 
// width and height are set
window.bugimus.handleresize()

