var xdis = 18;
var ydis = 24;
var rate = 10;
var fadeObj = null;
var isIE = false;
var fadeDo = true;

function init(){
	var elm = document.getElementById("balloon");
	elm.style.display = "none";
	if(elm.style.opacity==undefined){
		isIE = true;
		fadeDo = false;
	}
}

function balloonIn(i){
	var elm = document.getElementById("balloon");
	elm.src = "images/balloon"+i+".png";
	if(fadeDo){
		if(!elm.style.display || elm.style.display=="none"){
			elm.style.opacity = 0;
			elm.style.display = "block";
		}
		fadeEase("balloon",5,100);
	}else{
		elm.style.display = "block";	
	}
	if(!isIE){
		addListener(window,"mousemove",balloonChase,false);
		balloonChase();
	}else{
		addListener(document,"mousemove",balloonChaseIE,false);
		balloonChaseIE();
	}
}
function balloonOut(){
	if(fadeDo) fadeEase("balloon",5,0,balloonClear);
	else       balloonClear();
}
function balloonClear(){
	var elm = document.getElementById("balloon");
	elm.style.display = "none";
	if(!isIE) removeListener(window,"mousemove",balloonChase,false);
	else      removeListener(document,"mousemove",balloonChaseIE,false);
}
function balloonChase(evt){
	var balloon = document.getElementById("balloon");
	balloon.style.left = xdis + evt.clientX + window.pageXOffset + "px";
	balloon.style.top  = ydis + evt.clientY + window.pageYOffset + "px";
}
function balloonChaseIE(){
	if(document.compatMode=="BackCompat"){
		var scrL = document.body.scrollLeft;
		var scrT = document.body.scrollTop;
	}else{
		var scrL = document.documentElement.scrollLeft;
		var scrT = document.documentElement.scrollTop;
	}
	var balloon = document.getElementById("balloon");
	balloon.style.left = xdis + window.event.clientX + scrL + "px";
	balloon.style.top  = ydis + window.event.clientY + scrT + "px";
	if(!balloon.style.display || balloon.style.display=="none"){
		removeListener(document,"mousemove",balloonChaseIE,false);
	}
}

function fadeEase(id,spd,tgt,func,args){
	if(this.fadeObj) clearTimeout(fadeObj);
	var elm = document.getElementById(id);
	var al = elm.style.opacity * 100;
	fadeEaseDo(id,spd,al,tgt,func,args);
}
function fadeEaseDo(id,spd,al,tgt,func,args){
	var elm = document.getElementById(id);	
	al += (tgt-al)/spd;
	elm.style.opacity = al/100;
	if(Math.abs(tgt-al)<1){
		clearTimeout(fadeObj);
		elm.style.opacity = tgt/100;
		if(func){
			if(args) func(args);
			else     func();
		}
		return;
	}
	fadeObj = setTimeout("fadeEaseDo('"+id+"',"+spd+","+al+","+tgt+","+func+","+args+")", rate);
}

function addListener(obj,event,func,useCapture){
	if(window.addEventListener) obj.addEventListener(event, func, useCapture);
    else if(window.attachEvent) obj.attachEvent("on"+event,func);
    else                        obj["on"+event] = func;
}
function removeListener(obj,event,func,useCapture){
	if(window.addEventListener) obj.removeEventListener(event, func, useCapture);
    else if(window.attachEvent) obj.detachEvent("on"+event,func);
    else                        obj["on"+event] = null;
}
addListener(window,"load",init,false);









