var timerlen = 5;
var slideAniLen = 500;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

var mode = 'on';
var thetimer;





function doFlash(){
	if(mode=='on'){
		document.title = '*** New Instant Message ***';
		mode = 'off';
		}
		
	else{
		document.title = 'TeacherStudio';
		mode = 'on';
		}
}



function flashTitle(mode){
	thetimer = setInterval("doFlash(mode)",1000);
}



function appendUser(recbox,sendername,senderid,myname,myid){
	for(var i=1;i<recbox.length;i++){
		if(recbox.options[i].value == senderid) return;
	}
	recbox.options[recbox.length] = new Option(sendername, senderid);
}
	

function slidedown(objname,message,myid, myname){
	var splitMsg = message.split('[aid]');
	var senderid = splitMsg[1];
	var sendername = splitMsg[2];
	var innerDiv = document.getElementById('mydiv2');

	if(moving[objname]) return;
	if(senderid != myid) {
		flashTitle();
		appendUser(document.getElementById('rec'),sendername,senderid,myname,myid);
	}
		

	if(document.getElementById(objname).style.display != "none"){//if currently visible, add messg then return
		if(message){
			innerDiv.innerHTML += message;
			document.getElementById("mydiv2").scrollTop= 500;
		}
		return;
	}
	
	moving[objname] = true;
	dir[objname] = "down";
	startslide(objname,message);
}



function slideup(objname){

if(moving[objname]) return;

if(document.getElementById(objname).style.display == "none") return; // cannot slide up something that is already hidden

moving[objname] = true;
dir[objname] = "up";
startslide(objname);
}



function startslide(objname,message){

var innerDiv = document.getElementById('mydiv2');

obj[objname] = document.getElementById(objname);
endHeight[objname] = parseInt(obj[objname].style.height);
startTime[objname] = (new Date()).getTime();

if(dir[objname] == "down"){
	obj[objname].style.height = "1px";
	}

obj[objname].style.display = "block";

if(message) {
	innerDiv.innerHTML = message;
	}

innerDiv.style.height = "1px";//NEW
timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}




function slidetick(objname){

var elapsed = (new Date()).getTime() - startTime[objname];

if (elapsed > slideAniLen) endSlide(objname);

else {
    var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
	
	if(dir[objname] == "up") d = endHeight[objname] - d;
	obj[objname].style.height = d + "px";
	}

return;
}





function endSlide(objname){

var innerDiv = document.getElementById('mydiv2');

clearInterval(timerID[objname]);

if(dir[objname] == "up") obj[objname].style.display = "none";

obj[objname].style.height = endHeight[objname] + "px";

delete(moving[objname]);
delete(timerID[objname]);
delete(startTime[objname]);
delete(endHeight[objname]);
delete(obj[objname]);
delete(dir[objname]);

innerDiv.style.height = "130px";//NEW

return;
}

