var reFloat = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/
var digit = 6;

function rand ( n )
{
	return ( Math.floor ( Math.random ( ) * n + 1 ) );
}

function byte2Hex(n)
{
	var nybHexString = "0123456789ABCDEF";
	return String(nybHexString.substr((n >> 4) & 0x0F,1)) + nybHexString.substr(n & 0x0F,1);
}

function RGB2Color(r,g,b)
{
	return '#' + byte2Hex(r) + byte2Hex(g) + byte2Hex(b);
}

function deg2dms(deg, ds)
{
	var l = Math.abs(deg);
	var d = Math.floor(l);
	l = (l - d) * 60;
	var m = Math.floor(l);
	var s = parseInt((l - m) * 6000) / 100.0;
	return parseInt(d) + ds + ' ' + parseInt(m) + '\' ' + s + '"';
}

function lon2dms(lon, ds)
{
	return deg2dms(lon, ds) + ' ' + (lon < 0 ? 'W' : 'E');
}

function lat2dms(lat, ds)
{
	return deg2dms(lat, ds) + ' ' + (lat < 0 ? 'S' : 'N');
}

function new_td(s)
{
	var child = document.createElement('td');
	child.innerHTML = s;
	return child;
}

function new_input(name, value, type)
{
	if (arguments.length < 3) type = 'hidden';
	var child = document.createElement('input');
	child.setAttribute('name', name);
	child.setAttribute('type', type);
	child.value = value;
	return child;
}
