function brwcheck() {
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")>-1
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie7=(this.ver.indexOf("MSIE 7")>-1 && this.dom && !this.opera5)?1:0;
	this.ie8=(this.ver.indexOf("MSIE 8")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6||this.ie7||this.ie8
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie8 || this.ie7 || this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}
var bw=new brwcheck()

numItems=10 //no of menuitems
circleXstart=-16 //the tri start and end, x position
YYY=115 //the tri start and end, y position
circlePXspeed=10 //pixels the circle moves per timeout
circleTspeed=15
circleStay=1

/***************************
Cross-browser object part...
***************************/
function makeObj(obj,nest,x,y){
	nest = (!nest)?"":'document.'+nest+'.'		
	this.css = bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0
	this.evnt = bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?this.css:0
	this.showIt = b_showIt
	this.moveIt = b_moveIt
	this.slide = b_slide
	this.slideIt = b_slideIt
	this.obj = obj+"Object"
	eval(this.obj+"=this")
	return this
}

// A unit of measure that will be added when setting the position of a layer.
var px = bw.ns4||window.opera?"":"px";

function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x+px; this.css.top=this.y+px;}
function b_showIt(){this.css.visibility="visible"}
function b_slideIt(endx,endy,inc,speed,fn,wh) {
	if (!this.slideactive) {
		var distx = endx - this.x
		var disty = endy - this.y
		var num = Math.sqrt(Math.pow(distx,2) + Math.pow(disty,2))/inc
		var dx = distx/num
		var dy = disty/num
		this.slideactive = 1
		this.slide(dx,dy,endx,endy,speed,fn,wh)
	}
}

function b_slide(dx,dy,endx,endy,speed,fn,wh) {
	if (!fn) fn = null
	if (!wh) wh = null
	if (this.slideactive && (Math.floor(Math.abs(dx))<Math.floor(Math.abs(endx-this.x)) || 	Math.floor(Math.abs(dy))<Math.floor(Math.abs(endy-this.y)))) {
		this.moveIt(this.x+dx,this.y+dy)
		eval(wh)
		slidTim = setTimeout(this.obj+".slide("+dx+","+dy+","+endx+","+endy+","+speed+",'"+fn+"','"+wh+"')",speed)
	}
	else{
		this.slideactive = 0
		this.moveIt(endx,endy)
		eval(fn)
	}
}


/*********************************************************************
The init function. This is where you set the placement of the Buttons.
*********************************************************************/
function slideball_init(){
	oBut=new Array()
	for(i=0;i<=numItems;i++){ oBut[i]=new makeObj('divButton'+i) }
	oCircle=new makeObj('divCircle')
	oBut[0].moveIt(37,YYY)
	oBut[1].moveIt(126,YYY)
	oBut[2].moveIt(216,YYY)
	oBut[3].moveIt(300,YYY)
	oBut[4].moveIt(386,YYY)
	oBut[5].moveIt(486,YYY)
	oBut[6].moveIt(594,YYY)
	oBut[7].moveIt(684,YYY)
	oBut[8].moveIt(762,YYY)
	oBut[9].moveIt(834,YYY)
	oBut[10].moveIt(880,YYY)
	oCircle.moveIt(circleXstart,YYY)
	for(i=0;i<=numItems;i++){ oBut[i].showIt() }
}

var slidTim=100;
var active=-1
function sbmover(num){
	clearTimeout(slidTim)
	oCircle.slideactive=false
	oCircle.slideIt(oBut[num].x,oBut[num].y,circlePXspeed,circleTspeed)
}
function sbmout(num){
	clearTimeout(slidTim)
	oCircle.slideactive=false
	if(active>-1 && circleStay)oCircle.slideIt(oBut[active].x,oBut[active].y,circlePXspeed,circleTspeed)
	else oCircle.slideIt(circleXstart,YYY,circlePXspeed,circleTspeed)
}
function changeListing(num){ active=num }

if(bw.bw) onload=slideball_init;
