


/* функция извлечения значения Red из цвета формата HEX */
function HexToR(h) {return parseInt((cutHex(h)).substring(0,2),16)}

/* функция извлечения значения Green из цвета формата HEX */
function HexToG(h) {return parseInt((cutHex(h)).substring(2,4),16)}

/* функция извлечения значения Blue из цвета формата HEX */
function HexToB(h) {return parseInt((cutHex(h)).substring(4,6),16)}

/* функция удаления начальной решётки из цвета HEX */
function cutHex(h) {return (h.charAt(0)=='#') ? h.substring(1,7):h}

/* функция конвертации RGB в HEX */
function RGBtoHex(R,G,B) {return toHex(R)+toHex(G)+toHex(B)}

/* функция конвертации R,G или B в HEX */
function toHex(N)
{
	if (N==null) return '00';
	N=parseInt(N); if (N==0 || isNaN(N)) return '00';
	N=Math.max(0,N); N=Math.min(N,255); N=Math.round(N);
	return '0123456789ABCDEF'.charAt((N-N%16)/16) + '0123456789ABCDEF'.charAt(N%16);
}

/* функция для определения, какого цвета делать текст на заданном фоне */
function get_invert_text_colors(hex)
{
	if (hex=='')
	{
		hex='FFFFFF';
		hex_return='000000';
	}
	else
	{
		if (hex=='transparent')
		{
			hex='transparent';
			hex_return='000000';
		}
		else
		{
			R = HexToR(hex);
			G = HexToG(hex);
			B = HexToB(hex);

			var min_val=150;
			var hex_return=hex;
			if (R<min_val && G<min_val && B<min_val)hex_return='FFFFFF';
			else hex_return='000000';
		}
	}
	return hex_return;
}


