	/* helper functions */
	function findPosX(obj) {
		var curleft = 0;
		if (obj.offsetParent) {
			while (obj) { 
				curleft += obj.offsetLeft; 
				obj = obj.offsetParent; 
			} 
		}
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	}
	
	function findPosY(obj) {
		var curtop = 0;
		if (obj.offsetParent){
			curtop += obj.offsetTop
			while (obj.offsetParent){
				obj = obj.offsetParent;
				curtop += obj.offsetTop
			}
		}
		else if (obj.y)
			curtop += obj.y;
		return curtop;
	}
	
	function correctPNGBackground( divId, imgURL ) // correctly handle PNG transparency in Win IE 5.5 , 6 & 7.
	{
		var arVersion = navigator.appVersion.split("MSIE")
		var version = parseFloat(arVersion[1])
		if ((version >= 5.5) && (version < 7) && (document.body.filters)) 
		{
			var div = document.getElementById( divId );
			div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+imgURL+"', sizingMethod='image')";
			div.style.background = '';
		}    
	}

	function showResult( div, telephone, feedback, time, polite, quality, tidy ) {
		// get the x and y of the current div and add a bit to move it to the correct place
		var newXPos = findPosX( div ) + 110;
		var newYPos = findPosY( div ) + 20;
		// set the telephone number
		document.getElementById( 'resultTelephone' ).innerHTML = telephone;
		// feedback
		document.getElementById( 'result_feedback' ).innerHTML = getStars( feedback );
		// timekeeping
		document.getElementById( 'result_time' ).innerHTML = getStars( time );
		// politeness
		document.getElementById( 'result_polite' ).innerHTML = getStars( polite );
		// quality of work
		document.getElementById( 'result_quality' ).innerHTML = getStars( quality );
		// tidyness
		document.getElementById( 'result_tidy' ).innerHTML = getStars( tidy );
		// move the panel into place
		var resultPanel = document.getElementById( 'result' );
		resultPanel.style.left = newXPos + "px";
		resultPanel.style.top = newYPos + "px";
		// show it
		resultPanel.style.display = '';
	}
	
	function hideResult( ) {
		document.getElementById( 'result' ).style.display = 'none';
	}
	
	function getStars( number ) {
		// few quick checks
		if( number > 10 ) {
			number = 10;
		}
		if( number == 'undefined' ) {
			number = 0;
		}
		var starsHTML = '';
		// add a star for each point
		for( i=0;i<number;i++ ) {
			starsHTML += '<img src="images/gold-star.gif" alt="Gold Star">';
		}
		// now loop up to 10 to complete the set
		while( i < 10 ) {
			starsHTML += '<img src="images/grey-star.gif" alt="Grey Star">';
			// increment loop
			i++;
		}
		return starsHTML;
	}
