char *ext[]={
"..",   17,
"<DIR>",16,
"txt", 1, "doc", 1, "rtf", 1, "odt", 1, "log", 1, "docx",1,
"htm", 2, "html",2, "mht", 2,
"ini", 3, "js",  3, "conf",3, "inf", 3,
"xlt", 4, "xls", 4, "ods", 4, "xlsx",4,
"cmd", 5, "bat", 5, "py",  5, "sh",  5, "ksh", 5, "com", 5,
"kex", 6, "lua", 6,
"exe", 7, "msi", 7,
"sys", 8, "ocx", 8, "drv", 8, "so",  8,
"inc", 9,
"chr", 10, "mt",  10, "ttf", 10, "fon", 10,
"asm", 11,
"mp3", 12, "wav", 12, "mid", 12, "midi",12, "ogg", 12, "wma", 12, "flac",12,
"skn", 13,
"avi", 14, "flv", 14, "mpg", 14, "wmv", 14, "mov", 14, "mkv", 14, "mp4", 14, "vob", 14, "webm", 14,
"djvu",15, "pdf", 15, "fb2", 15,
"nes", 18, "smc", 18,
"gif", 19, "bmp", 19, "tga", 19, "pcx", 19, "png", 19, "pnm", 19, "jpg", 19, "xcf", 19, "ai",  19,
"jpeg",19, "raw", 19, "psd", 19, "wbmp",19, "tiff",19, "tif", 19, 
"3ds", 20, "ico", 20, "cur", 20, "ani", 20, "vox", 20,
"img", 21, "ima", 21,
"dll", 22, "obj", 22, "dict",22,
"rar", 23, "zip", 23, "cab", 23, "tar", 23, "ajr", 23, "jar", 23, "7z",  23, "gz",  23,
"iso", 24, "cue", 24, "nrg", 24, "mdf", 24,
"grf", 25,
0,0};


#include "imgs\icons.txt"


void Put_icon(dword extension, yy, fairing_color)
{ 
	int icon_n=0, i;
	for (i=0; ext[i]!=0; i+=2;)	if (!strcmp(extension, ext[i]))	{ icon_n = ext[i+1]; break;	}

	PutPaletteImage(icon_n*16*15+#ficons,16,15,files.x+3,yy,8,#ficons_pal);
	if (icon_n<>17) && (strlen(extension)<9) WriteText(-strlen(extension)*3+Form.cwidth-120,yy+4,0x80,0,extension);
	if (fairing_color<>0xFFFfff) IconFairing(icon_n, yy, fairing_color); //����������� ������
}


void IconFairing(dword filenum, y, color)
{
	switch(filenum)
	{
		case 0...1: //������
			DrawBar(195,y,2,15,color);
			RIGHT_PAINT:
			DrawBar(209,y,2,15,color);
			DrawBar(205,y,4,1,color);
			DrawBar(206,y+1,3,1,color);
			DrawBar(207,y+2,2,1,color);
			PutPixel(208,y+3,color);
			return;
		case 2: //html
			DrawBar(195,y,1,7,color);
			DrawBar(196,y,1,6,color);
			DrawBar(195,y+10,1,5,color);
			DrawBar(196,y+11,1,4,color);
			GOTO RIGHT_PAINT;
		case 3: //���������
			DrawBar(195,y,2,7,color);
			DrawBar(195,y+7,1,2,color);
			DrawBar(195,y+12,1,3,color);
			PutPixel(196,y+14,color);
			GOTO RIGHT_PAINT;
		case 9: //inc
			DrawBar(195,y,1,12,color);
			DrawBar(196,y,1,11,color);
			DrawBar(197,y,1,10,color);
			DrawBar(198,y,1,5,color);
			DrawBar(199,y,1,4,color);
			DrawBar(200,y,1,3,color);
			DrawBar(201,y,1,2,color);
			DrawBar(202,y,1,3,color);
			DrawBar(203,y,1,2,color);
			PutPixel(204,y,color);
			PutPixel(205,y+4,color);
			PutPixel(206,y+3,color);
			PutPixel(207,y,color);
			PutPixel(207,y+2,color);
			DrawBar(208,y,1,3,color);
			DrawBar(209,y,2,4,color);
			DrawBar(210,y,1,15,color);
			PutPixel(198,y+14,color);
			DrawBar(199,y+13,1,2,color);
			DrawBar(200,y+12,10,3,color);
			PutPixel(205,y+11,color);
			DrawBar(206,y+10,1,2,color);
			DrawBar(207,y+9,1,3,color);
			PutPixel(207,y+7,color);
			DrawBar(208,y+6,2,7,color);
			PutPixel(209,y+5,color);
			return;
		case 10: //font
			DrawRectangle3D(195,y,15,14,color,color);
			DrawBar(196,y+1,1,13,color);
			DrawBar(197,y+1,1,11,color);
			DrawBar(198,y+1,1,10,color);
			DrawBar(199,y+1,1,9,color);
			DrawBar(200,y+1,1,7,color);
			DrawBar(201,y+1,1,5,color);
			DrawBar(202,y+1,1,4,color);
			DrawBar(203,y+1,1,2,color);
			DrawBar(209,y+1,1,13,color);
			DrawBar(208,y+1,1,11,color);
			PutPixel(204,y+6,color);
			DrawBar(203,y+10,2,1,color);
			DrawBar(202,y+11,2,3,color);
			return;
		case 11: //asm
			DrawBar(195,y,1,15,color);
			return;
		case 12: //audio
			DrawBar(195,y,16,1,color);
			DrawBar(195,y,1,15,color);
			DrawBar(196,y+1,4,8,color);
			DrawBar(196,y+9,1,2,color);
			PutPixel(197,y+9,color);
			PutPixel(196,y+14,color);
			DrawBar(210,y+1,1,14,color);
			DrawBar(202,y+4,6,4,color);
			DrawBar(202,y+8,4,1,color);
			DrawBar(202,y+9,3,1,color);
			DrawBar(202,y+10,2,3,color);
			DrawBar(201,y+13,4,1,color);
			DrawBar(200,y+14,14,1,color);
			DrawBar(209,y+12,1,2,color);
			PutPixel(208,y+13,color);
			return;
		case 13: //skin
			PutPixel(210,y,color); 
			return;
		case 14...15: //video, book
			DrawBar(195,y,1,15,color);
			DrawBar(210,y,1,15,color);
			return;
		case 16...17: //�����
			DrawBar(195,y,1,15,color);
			DrawBar(203,y,8,2,color);
			IF (filenum==17) PutPixel(206,y+1,0x1A7B17); //������ ����� �������
			DrawBar(196,y+13,15,2,color);
			PutPixel(196,y,color); //.�����
			PutPixel(202,y,color);
			PutPixel(210,y+2,color);
			PutPixel(196,y+12,color);
			PutPixel(210,y+12,color);
			return;
		case 18: //��������
			DrawBar(195,y,16,2,color);
			DrawBar(195,y+11,1,2,color);
			DrawBar(210,y+11,1,2,color);
			DrawBar(195,y+13,16,2,color);
			return;
		case 19: //�����������
		case 20: //�����������
			DrawBar(195,y+14,16,1,color);
			return;
		case 21: //�������
			PutPixel(195,y,color);
			PutPixel(210,y,color);
			return;
		case 22: //����������
			DrawBar(195,y,16,1,color); //������ �����
			DrawBar(195,y+1,3,1,color);
			DrawBar(195,y+2,2,1,color);
			PutPixel(195,y+3,color);
			PutPixel(210,y+11,color); //������ ������
			DrawBar(209,y+12,2,1,color); 
			DrawBar(208,y+13,3,1,color);
			DrawBar(207,y+14,4,1,color);
			return;
		case 23: //�����
			PutPixel(195,y+3,color);
			PutPixel(195,y+11,color);
			PutPixel(210,y+3,color);
			PutPixel(210,y+11,color);

			DrawBar(195,y,7,1,color);
			DrawBar(204,y,7,1,color);
			DrawBar(195,y+14,7,1,color);
			DrawBar(204,y+14,7,1,color);

			DrawBar(195,y+1,5,1,color);
			DrawBar(206,y+1,5,1,color);
			DrawBar(195,y+13,5,1,color);
			DrawBar(206,y+13,5,1,color);

			DrawBar(195,y+2,3,1,color);
			DrawBar(208,y+2,3,1,color);
			DrawBar(195,y+12,3,1,color);
			DrawBar(208,y+12,3,1,color);
			return;
		case 24: //�����
			DrawBar(195,y,6,1,color);
			DrawBar(195,y+1,4,1,color);
			DrawBar(195,y+2,3,1,color);
			DrawBar(195,y+3,2,2,color);
			
			DrawBar(195,y+5,1,5,color);
			
			DrawBar(195,y+10,2,2,color);
			DrawBar(195,y+12,3,1,color);
			DrawBar(195,y+13,4,1,color);
			DrawBar(195,y+14,6,1,color);			

			DrawBar(195+11,y,5,1,color);
			DrawBar(195+13,y+1,3,1,color);
			DrawBar(195+14,y+2,2,1,color);
			DrawBar(195+15,y+3,1,2,color);
			
			DrawBar(195+15,y+10,1,2,color);
			DrawBar(195+14,y+12,2,1,color);
			DrawBar(195+13,y+13,3,1,color);
			DrawBar(195+11,y+14,5,1,color);
	}
}