// utilities 
// Created May 17, 2006, Shui Hung Kwok

function sexa2deg (angle)
{
	var ang = angle.replace ('h', ' ');
	ang = angle.replace ('d', ' ');
	ang = ang.replace ('m', ' ');
	ang = ang.replace ('s', ' ');
	ang = ang.replace (':', ' ') + ' 0 0 0 ';
	ang = ang.replace (/^ /, '');
	strs = ang.split (/\s+/);

	var dd = Number (strs[0]);
	var mm = Number (strs[1]);
	var ss = Number (strs[2]);
	var sign = 1.0;

	if (ang.charAt (0) == '-')
	{
		dd = -dd;
		sign = -1.0;
	}

	return sign * (dd + mm / 60.0 + ss / 3600.0);
} // sexa2deg

function deg2Sexagecimal (deg)
{
	var dd, mm, ss;
	var sign = ' ';
	if (deg < 0)
	{
		deg = -deg;
		sign = '-';
	}
	dd = Math.floor (deg);
	deg = (deg - dd) * 60.0; 
	mm = Math.floor (deg);
	ss = (deg - mm) * 60.0 + 0.000001;

	if (ss >= 60)
	{
		ss -= 60;
		mm += 1;
	}
	if (mm >= 60)
	{
		mm -= 60;
		dd += 1;
	}
	if (dd > 360)
	{
		dd -= 360;
	}

	if (dd < 10) dd = '0' + dd;
	else dd = '' + dd;
	if (mm < 10) mm = '0' + mm;
	else mm = '' + mm;
	if (ss < 10) ss = '0' + ss;

	ss = ss + '000000000';
	mm = mm.substr (0, 2);
	ss = ss.substr (0, 9);
	return sign + dd + ':' + mm + ':' + ss;
} // deg2Sexagecimal

function cutDigits (nr, ndigits)
{
	var factor = Math.pow (10, ndigits);
	return Math.round (nr * factor) / factor;
} // cutDigits

