var radius=40;
var basex = 300;
var basey = 300;
var hidemenu = false;
var alreadyredrawn = false;

function eatmenu() {
	hidemenu = document.all.circleArea.innerHTML = "";
	alreadyredrawn = false;
}

function showmenu (srcele, mylinks, mylabels, startangle, endangle, radius) {
	
	if(hidemenu) hidemenu = false;
	document.all.circleArea.innerHTML ="";
	//alert(document.body.scrollTop);
	str = document.body.createTextRange();
	str.moveToElementText(srcele); 
	//alert(srcele);
	basex = str.offsetLeft + (str.boundingWidth /2);
	//alert(basex);
	basey = str.offsetTop + document.body.scrollTop ;
	//alert(basex + ' ' + basey);
	links = mylinks.split("|");
	labels = mylabels.split("|");
	numeles = labels.length - 1;
	if(!radius)	radius = 20 + numeles*8;
	mydiv = "";
	angleIncrement = 360/(numeles+1) ;
	angle=0;
	redraw = false;

	//alert(numeles);
	for(i=0;i<=numeles;i++) {
		trans = Math.PI / 180;
		if(startangle != 0 && i == 0){
			angle = startangle;
			angleIncrement = angleIncrement * .75;
		}
		if(endangle != 360 && i == 0){
			angle = startangle;
			angleIncrement = angleIncrement * .75;
		}
		
		x = radius * Math.cos(trans * angle);
		y = radius * Math.sin(trans * angle);
		//alert(angle + " " + x + "," + y)
		mydiv = '<div id="d' + i + '" style="background-color: cccccc; filter: alpha(opacity=90);z-index:99;position:absolute;width:auto;left:';
		newx = basex + x;
		newy = basey - y;
		//alert(links);labels[i-1]
		mydiv += newx + ';top:' + newy + ';"';
		
		mydiv += '><A HREF="' +  links[i] + '">'  + labels[i] + angle +  '</a></div>';
		//alert(mydiv);
		document.all.circleArea.innerHTML = document.all.circleArea.innerHTML + mydiv;
		//adjust alignment
		mydiv = eval("document.all.d" + i);
		tr = document.body.createTextRange();
		tr.moveToElementText(mydiv);
		//alert(tr.boundingWidth);
		
		
		if((angle > 250 && angle < 310) || (angle > 75 && angle < 120))
	 	{
			//alert('adjusting' + i);
			mydiv.style.left = parseInt(mydiv.style.left) - (parseInt(tr.boundingWidth)/2);
		} else {
			if(x<0 && parseInt(tr.boundingWidth)) {
				//alert('adjusting');
				newx =  parseInt(mydiv.style.left) - parseInt(tr.boundingWidth);
				mydiv.style.left = newx;
			}
		}
		//alert('adjusting');
		if(mydiv.style.top >= basey) {
			newy = parseInt(mydiv.style.top) - parseInt(tr.boundingHeight);
			mydiv.style.top = newy;
		}
		if(newy < 0 || newy > document.body.clientHeight  || newx < 0 || newx > document.body.clientWidth) {
			if(angle > 0 && angle < 90) {
				startangle = 90;
				radius = radius + radius/4;
				redraw = true;
				}
			if(angle > 90 && angle < 180) {
				startangle = 180;
				endangle = 90;
				radius = radius + radius/4;
				redraw = true;
			}
			if(angle > 180 && angle < 270) {
				endangle = 180;
				startangle = 270;
				radius = radius + radius/4;
				redraw = true;
			}
			if(angle > 270 && angle < 360) {
				startangle = 360
				endangle = 270;
				radius = radius + radius/4;
				redraw = true;
			}
			
		}
		// pagewidth = document.body.clientWidth;
	    //pageheight = document.body.clientHeight;
		angle += angleIncrement;
	}
	if(redraw && !alreadyredrawn) {
		showmenu(srcele, mylinks, mylabels, startangle, endangle, radius)
		alreadyredrawn = srcele;
	} else {
	hidemenu = window.setTimeout("eatmenu()",8000);
	}
}



