@Echo off
SetLocal EnableExtensions EnableDelayedExpansion

Set AddonDir=%~1
Set Include=%AddonDir%\IncHtml
Set OemInfo=%Include%\OemInfo
Set Addons=Temp\AllFolders.txt

rem     OEM     .
If Not Exist "%Include%\%Configure%.nfo" (
	Set OemInfo=%Include%\%Configure%.nfo
)

rem    .
If Exist "Temp\htmltoc" Del /F /Q "Temp\htmltoc"
If Exist "Temp\htmltxt" Del /F /Q "Temp\htmltxt"
If Exist "Temp\hthanks" Del /F /Q "Temp\hthanks"

rem    Thanks     .
If Exist "Thanks" (
	>Temp\hthanks Type "Thanks"
) Else If Exist "%Include%\Thanks" (
	>Temp\hthanks Type "%Include%\Thanks"
)

Set Level=1
rem      .
If Exist "%OemInfo%" (
	call :Get_Parametrs "%OemInfo%" ""
	If Not "!ADDON_HIDE!"=="1" (
		>>Temp\htmltoc call :Type_Contents "OemInfo"
		>>Temp\htmltxt call :Type_Article "OemInfo"
		>>Temp\hthanks call :Type_Thanks "OemInfo"
	)
)
rem        .
For /F "UseBackQ Delims=" %%I In ("%Addons%") Do (
	Set ADDON_INFO_FILE=%%~I\Addon.nfo
	Set ADDON_TITLE=%%~nxI
	(Set ADDON_AUTHOR=)
	(Set ADDON_BUILD=)
	(Set ADDON_URL=)
	(Set ADDON_HIDE=)
	(Set NO_HYPERTEXT=)
	If Exist "%%~I\Html.nfo" (
		call :Get_Parametrs "%%~I\Html.nfo" "!ADDON_TITLE!"
		If "!PackRoot!"=="%%~I" (
			If Not "!ADDON_TITLE!"=="%%~nxI" Set PackType=!ADDON_TITLE!
			If Not "!ADDON_BUILD!"=="" Set PackBuild=!ADDON_BUILD!
		)
	) Else If Exist "%%~I\Addon.nfo" (
		Set NO_HYPERTEXT=1
	) Else (
		Set ADDON_HIDE=1
	)
	If Not "!ADDON_HIDE!"=="1" (
		>>Temp\htmltoc call :Type_Contents "%%~I"
		>>Temp\htmltxt call :Type_Article "%%~I"
		>>Temp\hthanks call :Type_Thanks "%%~I"
	) Else If "!Level!"=="1" (
		Set ADDON_TITLE=!PackType! !PackBuild!
		>>Temp\htmltoc call :Type_Contents ""
	)
	Set Level=2
)
rem      ADDONS.HTM  .
If Exist "%Distr%\ADDONS.HTM" Del /F /Q "%Distr%\ADDONS.HTM"
rem            .
If Exist "Temp\htmltxt" For /F %%I In ("Temp\htmltxt") Do If %%~zI GTR 0 ( 
	rem    .
	If Exist "Temp\hthanks" (
		Set Level=1
		call :Get_Parametrs "Temp\hthanks" ""
		If Not "!ADDON_HIDE!"=="1" (
			>>Temp\htmltoc call :Type_Contents "Thanks"
			>>Temp\htmltxt call :Type_Article "Thanks"
		)
	)
	rem    Microsoft Windows.
	if Exist "%AddonDir%\Logos\%DistPid:~0,-3%.gif" (
		>nul Copy /Y "%AddonDir%\Logos\%DistPid:~0,-3%.gif" "%I386%\WIN_LOGO.GIF"
	) Else If Exist "%AddonDir%\Logos\00000.gif" (
		>nul Copy /Y "%AddonDir%\Logos\00000.gif" "%I386%\WIN_LOGO.GIF"
	)
	rem     ADDONS.HTM.
	>"%Distr%\ADDONS.HTM" call :Type_Addons_Html "%DistType% c !PackType! !PackBuild!" "%DistBuild%"
)
(Set Level=)

EndLocal
Exit /B 0

rem :Type_Addons_Html "DefaultTitle" "DefaultBuild"
:Type_Addons_Html
	SetLocal DisableDelayedExpansion
	Echo.^<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"^>
	EndLocal

	rem     
	call :Get_Parametrs "%Include%\Introduction" "%~1" "%~2" || Set ADDON_HIDE=1

	Echo.^<html^>
	Echo.^<head^>
	Echo.  ^<title^>!ADDON_TITLE!^</title^>
	Echo.  ^<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"^>
	Echo.  ^<meta content="(c) asmol, 2007-2009, addon HTMLINFO, http://forum.oszone.net/thread-90061.html" name=GENERATOR^>
	If Exist "%Include%\Addons.css" Type "%Include%\Addons.css"
	Echo.^</head^>

	Echo.^<body^>
	If Exist "%Include%\LogoImage" Type "%Include%\LogoImage"

	rem   Introduction
	If Not "!ADDON_HIDE!"=="1" (
		Set Level=1
		call :Type_Article
	)

	rem   Contents
	Echo.  ^<div class="toc"^>
	Echo.    ^<a name="toc"^>^</a^>
	Echo.    ^<h1^>^</h1^>
	Echo.    ^<hr^>
	If Exist "Temp\htmltoc" Type "Temp\htmltoc"
	Echo.  ^</div^>

	rem   Articles
	If Exist "Temp\htmltxt" Type "Temp\htmltxt"

	Echo.  ^<p^>^&nbsp;^</p^>
	Echo.^</body^>
	Echo.^</html^>
Exit /B 0

rem :Get_Parametrs "LoadFile" "DefaultTitle" "DefaultBuild"
:Get_Parametrs
	Set ADDON_TITLE=%~2
	Set ADDON_BUILD=%~3
	(Set ADDON_AUTHOR=)
	(Set ADDON_URL=)
	(Set ADDON_HIDE=)
	(Set NO_HYPERTEXT=)
	If Not Exist "%~1" >&2 Echo %~nx0: file "%~1" not found & Exit /B 1
	Set ADDON_INFO_FILE=%~1
	call :Load_Parametrs "%AddonDir%\paramlst" "%~1"
Exit /B %ErrorLevel%

rem :Load_Parametrs "ParamsListFile" "LoadFile"
:Load_Parametrs
	If Not Exist "%~1" >&2 Echo %~nx0: file "%~1" not found & Exit /B 1
	For /F "EOL=; Tokens=* Delims=" %%I In ('FindStr /I /L /G:"%~1" "%~2"') Do (
		(Set X="%%I") & If Not "!X!" == "!X:-->=!" (Set X=) & Exit /B 0
		For /F "Delims==" %%J In ("%%I") Do (Set X="%%J")&(Set X=!X: =!)&(Set X=!X:	=!)
		For /F "Tokens=1,* Delims==	 " %%J In ("%%I") Do (
			If !X! == "%%J" call :SetParametr "%%J" "%%~K"
		) & (Set X=)
	)
Exit /B 0

rem :SetParametr "Parametr" "Value"
:SetParametr
	Set X="%~1"
	Set Y="%~2"
	Set !X:~1,-1!=!Y:~1,-1!
	(Set X=) & (Set Y=)
Exit /B 0

rem :Type_Contents "Link"
:Type_Contents
	Set X=^<a href="#%~nx1"^>!ADDON_TITLE!^</a^>
	If "%~1"=="" Set X=!ADDON_TITLE!
	Echo.    ^<p class="toc!Level!"^>!X!^</p^>
	(Set X=)
Exit /B 0

rem :Type_Title "Link"
:Type_Title
	If Not "%~1"=="" Echo.^<a name="%~nx1"^>^</a^>
	                 Echo.^<table class="heading" cellPadding=0 cellSpacing=0 width="100%%"^>
	                 Echo.  ^<tr vAlign=bottom^>
	                 Echo.    ^<td width="100%%"^>^<h!Level!^>!ADDON_TITLE!^</h!Level!^>^</td^>
	If Not "%~1"=="" Echo.    ^<td align=right^>^<a class="finePrint" href="#toc"^>^</a^>^</td^>
	                 Echo.  ^</tr^>
	                 Echo.^</table^>
	                 Echo.^<hr^>
Exit /B 0

rem :Type_Banner
:Type_Banner
	If "!ADDON_AUTHOR!-!ADDON_BUILD!-!ADDON_URL!"=="--" Exit /B 0
	                            Echo.^<div class="banner"^>
	If Not "!ADDON_AUTHOR!"=="" Echo.  ^<p^>: ^<strong^>!ADDON_AUTHOR!^</strong^>^</p^>
	If Not "!ADDON_BUILD!"==""  Echo.  ^<p^>: ^<strong^>!ADDON_BUILD!^</strong^>^</p^>
	If Not "!ADDON_URL!"==""    Echo.  ^<p^>^<a href="!ADDON_URL!" target="_blank"^> ^</a^>^</p^>
	                            Echo.^</div^>
Exit /B 0

rem :Type_Article "Link"
:Type_Article
	call :Type_Title "%~1"
	call :Type_Banner "%~1"
	If "!NO_HYPERTEXT!"=="1" Echo.^<pre^>
	                         Type "!ADDON_INFO_FILE!"
	If "!NO_HYPERTEXT!"=="1" Echo.^</pre^>
Exit /B 0

rem :Type_Thanks "Link"
:Type_Thanks
	If "!ADDON_TITLE!"=="" Exit /B 0
	If "!ADDON_AUTHOR!"=="" Exit /B 0
	Set X=^<p^>
	Set X=!X!^&copy;^&nbsp;^<strong^>!ADDON_AUTHOR!^</strong^> ^&#8212;
	If Not "!Level!"=="1" Set X=!X! 
	If Not "!ADDON_URL!"=="" (
		Set X=!X! ^<a href="!ADDON_URL!"^>!ADDON_TITLE!^</a^>
	) Else (
		Set X=!X! !ADDON_TITLE!
	)
	If Not "!ADDON_BUILD!"=="" Set X=!X!  !ADDON_BUILD!
	Set X=!X!^</p^>
	Echo !X!
	(Set X=)
Exit /B 0
