var fadeSpeed = 20;
var nextEvent = 50;
var moves = 10;


var eventType = 0;
	var evt_fadeIn = 0;
	var evt_fadeOut = 1;
	var evt_pause = 2;

var boo = document.getElementById("divBoo");
var debug = document.getElementById('divDebug');

function randDelay(){
	var rndDelay = 0;
	while( rndDelay < 10 ){
		rndDelay = Math.random() * 50;
	}
	nextEvent = rndDelay;
}

function randFadeSpeed(){
	var rndFadeSpeed = 0;
	while( rndFadeSpeed < 5 ){
		rndFadeSpeed = Math.random() * 100;
	}
	fadeSpeed = rndFadeSpeed;
}

function setOpacity(obj, opacity) {
  opacity = (opacity == 100)?99.999:opacity;
  
  // IE/Win
  obj.style.filter = "alpha(opacity:"+opacity+")";
  
  // Safari<1.2, Konqueror
  obj.style.KHTMLOpacity = opacity/100;
  
  // Older Mozilla and Firefox
  obj.style.MozOpacity = opacity/100;
  
  // Safari 1.2, newer Firefox and Mozilla, CSS3
  obj.style.opacity = opacity/100;
}



function fadeIn(objId,opacity) {
	if (document.getElementById) {
		obj = document.getElementById(objId);
		if (opacity <= 40) {
			setOpacity(obj, opacity);
			opacity += 1;
			window.setTimeout("fadeIn('"+objId+"',"+opacity+")", fadeSpeed);
			
		}else{
			randDelay();
			eventType = evt_fadeOut;
		}
	}
	
}

function fadeOut(objId,opacity) {
	if (document.getElementById) {
		obj = document.getElementById(objId);
		if (opacity >= 0) {
			setOpacity(obj, opacity);
			opacity -= 1;
			window.setTimeout("fadeOut('"+objId+"',"+opacity+")", fadeSpeed);
		}else{
			randDelay();
			eventType = evt_fadeIn;
		}
	}
}





function randomBoo(){
	
	//alert("calling fade in");
	
	while (true) {
		var left = Math.random() * 850;
		var top = Math.random() * 500;
		// avoid flash area
		if (top<23 || top>329 || left<32) {
			break;
		}
	}
	boo.style.left = left + "px";
	boo.style.top = top + "px";
	
	fadeIn( "divBoo", 0 );

	return;
}

function randomHide(){
	
	fadeOut( "divBoo", 40 );
	
	return;
}







function countDown(){

	if( nextEvent <= 0 ){
	
		switch( eventType ){
			case evt_fadeIn:
/*				moves--;
				if (moves<0){
					clearInterval();
					document.getElementById("divBoo").style.visibility = 'hidden';
					return;
				}
*/
				eventType = -1;
				randomBoo();
				break;
			case evt_fadeOut:
				eventType = -1;
				randomHide();
				break;
			case evt_pause:
				eventType = -1;
				
				break;
		}
	
	
	
	}else if( nextEvent > 0 ){
		nextEvent--;
	}

}

function start_ghost() {
	boo.style.display='';
	setInterval( "countDown()", 1 );
}

setOpacity( divBoo, 0 );

// check whether to show ghost
var msie = /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
if (!msie) {
	start_ghost();
} else {
//	alert(document.getElementById("cms_main_content_left"));
	if (document.getElementById("cms_main_content_left")!=null) {
		var maindiv = document.getElementById("cms_main_content_left");
//		alert("scrollheight:"+maindiv.scrollHeight+" clientheight:"+maindiv.clientHeight);
		if (maindiv.scrollHeight <= maindiv.clientHeight) {
			start_ghost();
		}
	} else {
		start_ghost();
	}
}

/*

// Simple follow the mouse script

var moveTarget = 0;
var divName = 'divMove'; // div that is to follow the mouse
                       // (must be position:absolute)
var offX = 15;          // X offset from mouse position
var offY = 15;          // Y offset from mouse position

var followBlock = 1;

setTimeout( 'followBlock=0;', 100 );

function mouseX(evt) {
	if (!evt) evt = window.event; 
	if (evt.pageX) return evt.pageX; 
	else if (evt.clientX) return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return 0;
}
function mouseY(evt) {if (!evt) evt = window.event; if (evt.pageY) return evt.pageY; else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return 0;}

function follow(evt) {
	if (document.getElementById) {
		
		var tmpName = divName;
		switch( moveTarget ){
			case 0:
				tmpName += 'A';
				moveTarget++;
				break;
			case 1:
				tmpName += 'B';
				moveTarget++;
				break;
			case 2:
				tmpName += 'C';
				moveTarget=0;
				break;
		}
		
		if( 1 ){
			if( ! followBlock ){
				var obj = document.getElementById(tmpName).style; 
				obj.visibility = 'visible';
				obj.left = (parseInt(mouseX(evt))+offX) + 'px';
				obj.top = (parseInt(mouseY(evt))+offY) + 'px';
				followBlock = 1;
				setTimeout( 'followBlock=0;', 100 );
			}
		}
	}
}
document.onmousemove = follow;
*/