function number_picker (numberStart, numberEnd, selectDiv, numberField, styleTop, styleLeft) {
	// if visible then hide
	if (document.getElementById) {
		if (document.getElementById(selectDiv).style.visibility == 'visible') {
			document.getElementById(selectDiv).style.visibility = 'hidden';
			// needed to save memory + and below ?    document.getElementById(selectDiv).innerHTML = "";
			return;	
		}
	} else if (document.all) {
		if (document.all.selectDiv.style.visibility == 'visible') {
			document.all.selectDiv.style.visibility = 'hidden';
			return;	
		}

	}

	// write out the holding frame
	if (document.getElementById || document.all){
		
		var number_picker_title = document.getElementById(numberField).name;
		var newHTML = '<Div class="number_picker_title">' + number_picker_title + '</Div>';
		newHTML = newHTML + '<Div style="color: red; float: right; position: relative; left: -0.2cm; top: -0.5cm;">';
		newHTML = newHTML + '<A onclick="javascript: document.getElementById(' + "'" + selectDiv + "'" + ').style.visibility = ' + "'hidden'" + ' ;">X</A></Div>';
		newHTML = newHTML + '<Div class="number_picker_table"><TABLE Border = 0 CellPadding = 1 CellSpacing = 2>';
		for( i= numberStart; i<= numberEnd; i++) {
			if ( Math.round(i/10) == i/10 ) {
				newHTML = newHTML + "<tr>";
			}
			newHTML = newHTML +   '<td><A onclick="javascript: number_chosen(' ;
			newHTML = newHTML +   i ;
			newHTML = newHTML + ",'" + numberField + "', " + "'" + selectDiv + "'" + ');">' + i + '</A>';
			newHTML = newHTML +   '</td>';
		}
		newHTML = newHTML + "</tr>";
		newHTML = newHTML + "</table></div>";

		// offsetTop does not work properly in IE6
		if (!$defined(styleTop)) {
			styleTop = '0.5cm';
		} else {
			styleTop = styleTop  + 'cm';
		}
		if (!$defined(styleLeft)) {
			styleLeft = '0.5cm';
		} else {
			styleLeft = styleLeft + 'cm';
		}

		// alert(document.getElementById(numberField).getCoordinates().top);   // getCoordinates() is in time picker package

		if (document.getElementById) {
			document.getElementById(selectDiv).style.top = styleTop;
			document.getElementById(selectDiv).style.left = styleLeft;
			document.getElementById(selectDiv).innerHTML = newHTML;
		} else if (document.all) {
			document.all.selectDiv.style.top = styleTop;
			document.all.selectDiv.style.left = styleLeft;
			document.all.selectDiv.innerHTML = newHTML;
		}
		numberSelection(selectDiv,'visible');
	}
}

function number_chosen (numberChosen, numberField, selectDiv) {
	document.getElementById(numberField).value = numberChosen;
	numberSelection(selectDiv, 'hidden' );
	item_selected();
}

function numberSelection(selectDiv, hideAction) {
	if (document.getElementById) {
		document.getElementById(selectDiv).style.visibility = hideAction;
	} else if (document.all) {
		document.all.selectDiv.style.visibility = hideAction;
	}
}