bname=navigator.appName;
bversion=parseInt(navigator.appVersion)
var textanim;
if ((bname=="Netscape" && bversion>=4) || (bname=="Microsoft Internet Explorer" && bversion>=4))
	window.onload=start
else
	stop();
	
var browserinfos=navigator.userAgent 
var ie5=document.all&&document.getElementById&&!browserinfos.match(/Opera/)
var ns6=document.getElementById&&!document.all
var opera=browserinfos.match(/Opera/)  
var browserok=ie5||ns6||opera
	
window.onunload=stop
/*if (bname=="Netscape"){
	brows=false//true
	dt=2
}
else{*/
	brows=false
	dt=2
//}

var ColourIncrement = 7;
var VerticalTravel=170; // Must be less than ForeGroundColourBand to have any effect!
var ForeGroundColourBand=130;
if (ns6) {
	//alert("20");
	dt=40;
	ForeGroundColourBand=120
}

var z=0;
var msg=0;
var rgb=0;
var link=false;
var status=true;
var BG_to_FG=false;
var message= new Array();
var value=0;
var h=window.innerHeight;
var w=window.innerWidth;
var timer1;
var timer2;
var timer3;
var convert = new Array()
var hexbase= new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");

var bgcolor="#FFFFFF";  //Color of background
var color="#000099";  //Color of the Letters

message[0]='"always demonstrated a <!U><B>flexible</B> and<BR><B>pragmatic</B><!/U> approach to new tools and tasks."'
message[1]='"developing applications<BR>with the <!U>emphasis on <B>ease of use</B><!/U>"'
message[2]='"devotes a great deal of effort to ensure<BR>that his <B>applications are robust</B>, ..."'
message[3]='"...and has earned the respect of his<BR>colleagues for his <B>dedication</B> to this."'
message[4]='"comfortable in both <!U>Unix<!/U> and<BR><!U>Windows<!/U> development environments"'
message[5]='"His ability to acquire a <!B>detailed understanding<!/B><BR>of new products and his <B>attention to quality</B>,..."'
message[6]='"...together with his ability to work in a team<BR>and manage development projects<BR>have been <B>major assets to my company</B>."'
message[7]='"I have the <B>highest regard</B> for his<BR><!U>technical skills<!/U> and his <B>integrity</B>..."'
message[8]='"...and would have <!U>no hesitation<BR>in recommending<!/U> Richard<BR>to any future employer."'
message[9]='"a <B>very capable</B> Smallworld<!/U> developer,..."'
message[10]='"...with <!U>good design and development skills<!/U>"'
message[11]='"He is a <B>very conscientious</B> worker<BR>and has <B>excellent attention for detail.</B>"'
message[12]='"I have <!U>confidence in recommending<!/U><BR>him to any future employer."'
message[13]='"Richard' + "'" + 's <B>professional conduct</B><BR>is <B>exemplary</B>."'
message[14]='"He conducts himself in a <B>serious<BR>and professional</B> manner,..."'
message[15]='"...and approaches his work in a<BR><B>conscientious and thorough</B> way."'
message[16]='"He has provided complete reports of his<BR>activities and the quality of both his written<BR>and technical work is very good."'
message[17]='"fitted very well into the team and has made<BR><B>very positive contributions</B> to<BR>the <B>success of the project</B>"'
message[18]='"He is the only technical software person<BR>currently retained on our site giving a<BR>measure of the <!U>confidence we feel in his ability<!/U>."'
message[19]='"He suffers continuous harrasment from staff<BR>at all levels as day to day problems crop up,..."'
message[20]='"... and copes with these in an<BR><!U>organised and good humoured manner<!/U>."'
message[21]='"Viewed from my own non IT background,<BR>I find him to be <!U>unusually well<BR>organised and focused<!/U> for an IT specialist."'
message[22]='"he turned out to be a <B>sound programmer</B>,<BR>who puts <B>exceptional care,' + "'" + 'defensiveness' + "'" + '<BR>and readability</B> in his code and comments"'
message[23]='"his most remarkable strength is his <B>strong<BR>visual sense</B>: the icons and bitmaps<BR>he designs <B>touch the domain of art</B>."'
message[24]='"not only to be a <!U>win for the product<!/U>, but also<BR>for the team itself, by his continuing efforts..."'
message[25]='"... to integrate, participate,<BR>communicate and help"'
message[26]='"It proved to be a <!U>very wise<BR>decision<!/U> to have Richard on the team,..."';
message[27]='"...since his contribution made it possible<BR>to deliver the required project<BR>in time and within the budget"';
message[28] = '"a <b>highly capable, analytical,<br/>intelligent and effective</b> problem solver..."';
message[29] = '"...who is <b>not fearful of new challenges</b>. "';
message[30] = '"As a team member, he is <b>very dependable</b><br/>and always mixes good humour with<br/><b>focused and productive work</b>."';

// Set up an array for Hex/Decimal conversion
for (x=0; x<16; x++){
	for (y=0; y<16; y++){
		convert[value]= hexbase[x] + hexbase[y];
		value++;
	}
}

redx=color.substring(1,3);
greenx=color.substring(3,5);
bluex=color.substring(5,7);
hred=eval(parseInt(redx,16));
hgreen=eval(parseInt(greenx,16));
hblue=eval(parseInt(bluex,16));
eredx=bgcolor.substring(1,3);
egreenx=bgcolor.substring(3,5);
ebluex=bgcolor.substring(5,7);
ered=eval(parseInt(eredx,16));
egreen=eval(parseInt(egreenx,16));
eblue=eval(parseInt(ebluex,16));
red=ered;
green=egreen;
blue=eblue;

function start(){
	textanim=document.getElementById('textanim');

	if ((bname=="Netscape" && bversion>=4) || (bname=="Microsoft Internet Explorer" && bversion>=4)){
		link=false;
		updwn=true;
		if (brows)
			//res=document.layers['textanim'].top
			//res=document.getElementById('textanim').top
			res = textanim.top;
		else{
			//textanim.style.width=document.body.offsetWidth-20;
			textanim.innerHTML='<span Class="textanim" Align="Center">'+message[msg]+'</span>'
			res=textanim.style.top
			/*for (x=0; x<document.all.length; x++)
				if(document.all[x].id=="textanimlink")
					link=true;*/
		}
		up()
	}
}

function stop(){
	clearTimeout(timer1);
	clearTimeout(timer2);
	clearTimeout(timer3);
}

function resz(){
	h=window.innerHeight;
	w=window.innerWidth;
	if (updwn)
		timer1=setTimeout('up()',2000)
	else
		timer2=setTimeout('down()',2000)
}

function breakf(){
	if (status){
		clearTimeout(timer1);
		clearTimeout(timer2);
		status=false
		return;
	}
	else{
		status=true;
		if (updwn)
			timer1=setTimeout('up()',dt)
		else
			timer2=setTimeout('down()',dt)
	}
}


function up(){
	if (red<hred){
		if ((red+7)<hred)
			red+=7;
		else
			red=hred
		redx = convert[red]
	}else{
		if ((red-7)>hred)
			red-=7;
		else
			red=hred
		redx = convert[red]
	}
	
	if (green<hgreen){
		if ((green+7)<hgreen)
			green+=7;
		else
			green=hgreen
		greenx = convert[green]
	}else{
		if ((green-7)>hgreen)
			green-=7;
		else
			green=hgreen
		greenx = convert[green]
	}
	
	if (blue<hblue){
		if ((blue+7)<hblue)
			blue+=7;
		else
			blue=hblue
		bluex = convert[blue]
	}else{
		if ((blue-7)>hblue)
			blue-=7;
		else
			blue=hblue
		bluex = convert[blue]
	}

	//ta=document.getElementById('textanim')
	rgb = "#"+redx+greenx+bluex;
	textanim.style.color=rgb;
	if (brows){
		// FIREFOX
		
		//document.layers['textanim'].document.linkColor=rgb;
		//document.layers['textanim'].document.vlinkColor=rgb;
		//ta.style.color=rgb;
		//ta.document.vlinkColor=rgb;
		if (window.innerHeight!=h || window.innerWidth!=w){
			clearTimeout(timer1);
			resz()
			return;
		}else{
//	document.getElementById("debug").innerHTML= rgb;
			textanim.innerHTML = '<span Class="textanim" Align="Center">'+message[msg]+'</span>'
			//ta.document.close();
	/*		document.layers['textanim'].document.write('<Pre><P Class="main" Align="Center"><font color="'+rgb+'">'+message[msg]+'</font></P></Pre>')
			document.layers['textanim'].document.close();
	*/
		}
	}else{
		//textanim.style.color=rgb;
		//if(link)
			//textanimlink.style.color=rgb;
	}
	if (z<ForeGroundColourBand){
		/*if (brows)
			textanim.top--;
		else
			textanim.style.posTop--;*/
			
		textanim.style.top = textanim.style.top.replace("px","")-1;
	//document.getElementById("debug").innerHTML= textanim.posTop;
			//textanim.top--;
		//textanim.posTop--;
		z++;
		timer1=setTimeout('up()',dt)
	}else{
		updwn=false;
		down()
	}
}


function down(){
	if (red<ered){
		if ((red+7)<ered)
			red+=7;
		else
			red=ered
		redx = convert[red]
	}else{
		if ((red-7)>ered)
			red-=7;
		else
			red=ered
		redx = convert[red]
	}
	
	if (green<egreen){
		if ((green+7)<egreen)
			green+=7;
		else
			green=egreen
		greenx = convert[green]
	}else{
		if ((green-7)>egreen)
			green-=7;
		else
			green=egreen
		greenx = convert[green]
	}
	
	if (blue<eblue){
		if ((blue+7)<eblue)
			blue+=7;
		else
			blue=eblue
		bluex = convert[blue]
	}else{
		if ((blue-7)>eblue)
			blue-=7;
		else
			blue=eblue
		bluex = convert[blue]
	}

	rgb = "#"+redx+greenx+bluex;
	if (brows){
		/*document.layers['textanim'].document.linkColor=rgb;
		document.layers['textanim'].document.vlinkColor=rgb;*/
		textanim.style.color=rgb;
		//document.layers['textanim'].document.vlinkColor=rgb;
		if (window.innerHeight!=h || window.innerWidth!=w){
			clearTimeout(timer2);
			resz()
			return;
		}
else{
			textanim.innerHTML = '<span Class="textanim" Align="Center">'+message[msg]+'</span>'

//document.layers['textanim'].document.write('<Pre><P Class="main" Align="Center"><font color="'+rgb+'">'+message[msg]+'</font></P></Pre>')
//document.layers['textanim'].document.close();
}
}
else{
textanim.style.color=rgb;
if(link)
textanimlink.style.color=rgb;
}

if (z<VerticalTravel){
if (brows)
//document.layers['textanim'].top--
textanim.top--;
else
textanim.style.posTop--
z++
timer2=setTimeout('down()',dt)
}
else
{
if (brows){
//document.layers['textanim'].document.write('')
//document.layers['textanim'].document.close();
}
else
textanim.innerHTML='';
window.clearInterval(timer2);
if(msg<message.length-1){
msg++;
z=0;
if (brows){
//document.layers['textanim'].top=res;
textanim.top=res;
}
else
textanim.style.top=res;
timer3=setTimeout('start()',100);
}
else
{
msg=0;
z=0;
if (brows)
//document.layers['textanim'].top=res;
textanim.top=res;
else
textanim.style.top=res;
timer3=setTimeout('start()',2000);
}
}
}
