function decToHex(d, len) {
	var lu = "0123456789ABCDEF";
	var h = "";
	do
	{
		h = lu.substr(d & 0xF,1) + h;
		d = d >> 4;
		len--;
	}
	while(d > 0 || len > 0)
	return h;
}

function precalcSin(amplitude, elements, eamp, radians, startradian) {
	if (eamp == undefined) eamp = 0;
	if (radians == undefined) radians = 6.3;
	if (startradian == undefined) startradian = 0;
	var si = new Array(elements);
	for(i = 0; i < elements; i++) {
		si[i] = parseInt(eamp) + parseInt(Math.sin(startradian+(radians / elements) * (i+1)) * amplitude);
	}
	return si;
}

function precalcCos(amplitude, elements, eamp, radians, startradian) {
	if (eamp == undefined) eamp = 0;
	if (radians == undefined) radians = 6.3;
	if (startradian == undefined) startradian = 0;
	var co = new Array(elements);
	for(i = 0; i < elements; i++) {
		co[i] = parseInt(eamp) + parseInt(Math.cos(startradian+(radians / elements) * (i+1)) * amplitude);
	}
	return co;
}
