home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 January / PCWorld_2005-01_cd.bin / software / komercni / zoner / zps7_cz_trial.exe / digifoto.ZHT / main.js < prev    next >
Encoding:
Text File  |  2004-09-21  |  14.4 KB  |  408 lines

  1. function GeneratePreview(cSourcePath, cDestPath, cID)
  2. {
  3.   //MessageBox("cSourcePath = " + cSourcePath + "\ncDestPath = " + cDestPath + "\ncID = " + cID, "Preview", MB_OK);
  4. }
  5.  
  6. function GetPageFN(iPage) {
  7.   if (iPage == 1) {
  8.     return "index.htm";
  9.   }
  10.  
  11.   return "page" + IntToStr(iPage, 5) + ".htm";
  12. }
  13.  
  14. function GetImgPageFN(iFile) {
  15.   return "ipage" + IntToStr(iFile, 5) + ".htm";
  16. }
  17.  
  18. function GetPagesNavigation(iPagesCount, iCurPage) {
  19.   cNavigation = "";
  20.   for (iPage=1; iPage <= iPagesCount; iPage++) {
  21.     if (iPage == iCurPage) {
  22.       cNavigation += "<B>"+IntToStr(iPage, 0)+"</B>\n";
  23.     } else {
  24.       cNavigation += "<A HREF=\""+GetPageFN(iPage)+"\">"+IntToStr(iPage, 0)+"</A>\n";
  25.     }
  26.   }
  27.   return cNavigation;
  28. }
  29.  
  30. function GetImgPagesNavigation(iFilesCount, iCurFile) {
  31.   cNavigation = "";
  32.   for (iFile=1; iFile <= iFilesCount; iFile++) {
  33.     if (iFile == iCurFile) {
  34.       cNavigation += "<B>"+IntToStr(iFile, 0)+"</B>\n";
  35.     } else {
  36.       cNavigation += "<A HREF=\""+GetImgPageFN(iFile)+"\">"+IntToStr(iFile, 0)+"</A>\n";
  37.     }
  38.   }
  39.   return cNavigation;
  40. }
  41.  
  42. function GenerateAlbum(cSourcePath, cDestPath)
  43. {
  44.   if (bGlobalTitle)
  45.   {
  46.     cTitle    = cGlobalTitle;
  47.     cHeader    = cGlobalTitle;
  48.     cImgHeader  = cGlobalTitle;
  49.     cImgTitle    = cGlobalTitle;
  50.   }
  51.   var iFilesCount = lSelectedFiles.GetCount();
  52.  
  53.   var iPagesCount = Math.ceil(iFilesCount / (iCols*iRows));
  54.  
  55.   var iNavStyle = parseInt(cNavStyle);
  56.   var iImgNavStyle = parseInt(cImgNavStyle);
  57.  
  58.   var tPage = new CTemplate();
  59.   tPage.Load(cSourcePath + "page.tpl", 0);
  60.   tPage.SetReplace("${CSS_FILENAME}", "page.css");
  61.  
  62.   tPage.SetReplace("${TITLE}", cTitle);
  63.   tPage.SetReplace("${HEADER}", ReplaceExifStrings(cHeader, "", ""));
  64.   tPage.SetReplace("${FOOTER}", ReplaceExifStrings(cFooter, "", ""));
  65.  
  66.   var tPageCSS = new CTemplate();
  67.   tPageCSS.Load(cSourcePath + "css.tpl", 0);
  68.  
  69.   var iDescTDWidth = iThnWidth+4;
  70.   var iThnTDWidth = iThnWidth+12;
  71.   var iThnTDHeight = iThnHeight+12;
  72.   var iOrgTDWidth = iThnWidth+4;
  73.  
  74.   var iThnTableWidth = (iCols)*(iThnTDWidth) + (iCols+1)*(1); // (1) ... cellspacing="1"
  75.  
  76.   if (bBackImage)
  77.     tPageCSS.SetReplace("${BACKGROUND}", HEXColor(iBgColor) + " url(" + cBackImageURL + ")");
  78.   else
  79.     tPageCSS.SetReplace("${BACKGROUND}", HEXColor(iBgColor));
  80.  
  81.   tPageCSS.SetReplace("${HEAD_FONT_SIZE}", iHeaderFontSize);
  82.   tPageCSS.SetReplace("${HEAD_FONT_COLOR}", HEXColor(iHeaderFontColor));
  83.   tPageCSS.SetReplace("${THN_TABLE_WIDTH}", iThnTableWidth);
  84.   tPageCSS.SetReplace("${DESC_FONT_SIZE}", iDescFontSize);
  85.   tPageCSS.SetReplace("${DESC_FONT_COLOR}", HEXColor(iDescFontColor));
  86.   tPageCSS.SetReplace("${DESC_BGCOLOR}", HEXColor(iDescBgColor));
  87.   tPageCSS.SetReplace("${DESC_LINK_COLOR}", HEXColor(iDescLinkColor));
  88.   tPageCSS.SetReplace("${DESC_TD_WIDTH}", iDescTDWidth);
  89.   tPageCSS.SetReplace("${THN_TD_WIDTH}", iThnTDWidth);
  90.   tPageCSS.SetReplace("${THN_TD_HEIGHT}", iThnTDHeight);
  91.   tPageCSS.SetReplace("${ORG_TD_WIDTH}", iOrgTDWidth);
  92.   tPageCSS.SetReplace("${THN_BGCOLOR}", HEXColor(iThnBgColor));
  93.   tPageCSS.SetReplace("${ORG_FONT_SIZE}", iOrgFontSize);
  94.   tPageCSS.SetReplace("${ORG_FONT_COLOR}", HEXColor(iOrgFontColor));
  95.   tPageCSS.SetReplace("${ORG_BGCOLOR}", HEXColor(iOrgBgColor));
  96.   tPageCSS.SetReplace("${ORG_LINK_COLOR}", HEXColor(iOrgLinkColor));
  97.   tPageCSS.SetReplace("${FOOT_FONT_SIZE}", iFooterFontSize);
  98.   tPageCSS.SetReplace("${FOOT_FONT_COLOR}", HEXColor(iFooterFontColor));
  99.   tPageCSS.SetReplace("${NAV_FONT_SIZE}", iNavFontSize);
  100.   tPageCSS.SetReplace("${NAV_FONT_COLOR}", HEXColor(iNavFontColor));
  101.   tPageCSS.SetReplace("${NAV_BGCOLOR}", HEXColor(iNavBgColor));
  102.   tPageCSS.SetReplace("${NAV_TEXT_BGCOLOR}", HEXColor(iNavTextBgColor));
  103.   tPageCSS.SetReplace("${NAV_LINK_COLOR}", HEXColor(iNavLinkColor));
  104.  
  105.   SaveString(cDestPath + "page.css", tPageCSS.Replace(), 0);
  106.  
  107.  
  108.  
  109.   var tImg = new CTemplate();
  110.   tImg.Load(cSourcePath + "page.tpl", 0);
  111.   tImg.SetReplace("${CSS_FILENAME}", "img.css");
  112.  
  113.   tImg.SetReplace("${TITLE}", cImgTitle);
  114.  
  115.   var tImgCSS = new CTemplate();
  116.   tImgCSS.Load(cSourcePath + "css.tpl", 0);
  117.  
  118.   var iImgDescTDWidth = iImgWidth+4;
  119.   var iImgTDWidth = iImgWidth+12;
  120.   var iImgTDHeight = iImgHeight+12;
  121.   var iImgOrgTDWidth = iImgWidth+4;
  122.  
  123.   var iImgTableWidth = iImgTDWidth + 2; // 2 ... 2 x cellspacing="1"
  124.  
  125.   if (bBackImage)
  126.     tImgCSS.SetReplace("${BACKGROUND}", HEXColor(iImgBgColor) + " url(" + cBackImageURL + ")");
  127.   else
  128.     tImgCSS.SetReplace("${BACKGROUND}", HEXColor(iImgBgColor));
  129.  
  130.   tImgCSS.SetReplace("${HEAD_FONT_SIZE}", iImgHeaderFontSize);
  131.   tImgCSS.SetReplace("${HEAD_FONT_COLOR}", HEXColor(iImgHeaderFontColor));
  132.   tImgCSS.SetReplace("${THN_TABLE_WIDTH}", iImgTableWidth);
  133.   tImgCSS.SetReplace("${DESC_FONT_SIZE}", iImgDescFontSize);
  134.   tImgCSS.SetReplace("${DESC_FONT_COLOR}", HEXColor(iImgDescFontColor));
  135.   tImgCSS.SetReplace("${DESC_BGCOLOR}", HEXColor(iImgDescBgColor));
  136.   tImgCSS.SetReplace("${DESC_LINK_COLOR}", HEXColor(iImgDescLinkColor));
  137.   tImgCSS.SetReplace("${DESC_TD_WIDTH}", iImgDescTDWidth);
  138.   tImgCSS.SetReplace("${THN_TD_WIDTH}", iImgTDWidth);
  139.   tImgCSS.SetReplace("${THN_TD_HEIGHT}", iImgTDHeight);
  140.   tImgCSS.SetReplace("${ORG_TD_WIDTH}", iImgOrgTDWidth);
  141.   tImgCSS.SetReplace("${THN_BGCOLOR}", HEXColor(iImgImgBgColor));
  142.   tImgCSS.SetReplace("${ORG_FONT_SIZE}", iImgOrgFontSize);
  143.   tImgCSS.SetReplace("${ORG_FONT_COLOR}", HEXColor(iImgOrgFontColor));
  144.   tImgCSS.SetReplace("${ORG_BGCOLOR}", HEXColor(iImgOrgBgColor));
  145.   tImgCSS.SetReplace("${ORG_LINK_COLOR}", HEXColor(iImgOrgLinkColor));
  146.   tImgCSS.SetReplace("${FOOT_FONT_SIZE}", iImgFooterFontSize);
  147.   tImgCSS.SetReplace("${FOOT_FONT_COLOR}", HEXColor(iImgFooterFontColor));
  148.   tImgCSS.SetReplace("${NAV_FONT_SIZE}", iImgNavFontSize);
  149.   tImgCSS.SetReplace("${NAV_FONT_COLOR}", HEXColor(iImgNavFontColor));
  150.   tImgCSS.SetReplace("${NAV_BGCOLOR}", HEXColor(iImgNavBgColor));
  151.   tImgCSS.SetReplace("${NAV_TEXT_BGCOLOR}", HEXColor(iImgNavTextBgColor));
  152.   tImgCSS.SetReplace("${NAV_LINK_COLOR}", HEXColor(iImgNavLinkColor));
  153.  
  154.   SaveString(cDestPath + "img.css", tImgCSS.Replace(), 0);
  155.  
  156.   var tNav = new CTemplate();
  157.   if (iNavStyle == 1) {
  158.     tNav.Load(cSourcePath + "nav_1.tpl", 0);
  159.   }
  160.   if (iNavStyle == 2) {
  161.     tNav.Load(cSourcePath + "nav_2.tpl", 0);
  162.   }
  163.  
  164.   var tImgNav = new CTemplate();
  165.   if (iImgNavStyle == 1) {
  166.     tImgNav.Load(cSourcePath + "img_nav_1.tpl", 0);
  167.   }
  168.   if (iImgNavStyle == 2) {
  169.     tImgNav.Load(cSourcePath + "img_nav_2.tpl", 0);
  170.   }
  171.  
  172.   var tRow = new CTemplate();
  173.   tRow.Load(cSourcePath + "row.tpl", 0);
  174.  
  175.   var tImgRow = new CTemplate();
  176.   tImgRow.Load(cSourcePath + "row.tpl", 0);
  177.  
  178.   var tDescCol = new CTemplate();
  179.   tDescCol.Load(cSourcePath + "desc_col.tpl", 0);
  180.  
  181.   var tImgDescCol = new CTemplate();
  182.   tImgDescCol.Load(cSourcePath + "desc_col.tpl", 0);
  183.  
  184.   var tThnCol = new CTemplate();
  185.   tThnCol.Load(cSourcePath + "img_col.tpl", 0);
  186.  
  187.   var tImgCol = new CTemplate();
  188.   tImgCol.Load(cSourcePath + "img_col.tpl", 0);
  189.  
  190.   var tOrgCol = new CTemplate();
  191.   tOrgCol.Load(cSourcePath + "org_col.tpl", 0);
  192.  
  193.   var tImgOrgCol = new CTemplate();
  194.   tImgOrgCol.Load(cSourcePath + "org_col.tpl", 0);
  195.  
  196.   var pMagImg0 = new CImage();
  197.   pMagImg0.Load(cSourcePath + "magnify-.png", 0);
  198.  
  199.   var pMagImg1 = new CImage();
  200.   pMagImg1.Load(cSourcePath + "magnify+.png", 0);
  201.  
  202.   var cRows = "";
  203.   var cDescCols = "";
  204.   var cImgCols = "";
  205.   var cOrgCols = "";
  206.  
  207.   var iCol = 0;
  208.   var iRow = 0;
  209.   var iPage = 1;
  210.  
  211.   var iImgFrom = 1;
  212.   var iImgTo = 1;
  213.  
  214. //  for (var iFile = 1; ((iFile <= iFilesCount) || (iCol != 0) || (iRow != 0)); iFile++) {
  215.   for (var iFile = 1; ((iFile <= iFilesCount) || (iCol != 0)); iFile++) {
  216.     if (iFile <= iFilesCount) {
  217.  
  218. // FILE 
  219.       iImgTo = iFile;
  220.  
  221.       cFileName = lSelectedFiles.GetAt(iFile-1);
  222.       if (bUseOriginalFileNames)
  223.       {
  224.         cGetFileName = GetFileName(cFileName);
  225.  
  226.         cThnFileName = "thn_" + cGetFileName + ".jpg";
  227.         cImgFileName = cGetFileName + ".jpg";
  228.         cOrgFileName = cGetFileName + "." + GetFileExt(cFileName);
  229.  
  230.         if (bOriginal || bImgOriginal)
  231.         {
  232.           cImgFileName = "img_" + cImgFileName;
  233.         }
  234.       }
  235.       else
  236.       {
  237.         cNumFileName = IntToStr(iFile, 5);
  238.         cThnFileName = "thn" + cNumFileName + ".jpg";
  239.         cImgFileName = "img" + cNumFileName + ".jpg";
  240.         cOrgFileName = "org" + cNumFileName + "." + GetFileExt(cFileName).toLowerCase();
  241.       }
  242.  
  243. // LOAD FILE
  244.       var pImg = new CImage();
  245.       pImg.Load(cFileName, 0);
  246.  
  247. // MAKE IMAGE
  248.       pImg.Resize(iImgWidth, iImgHeight, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  249.       var rcMag = pMagImg0.GetRect();
  250.       if (bImgMag) {
  251.         pMagImg0.Draw(pImg, rcMag, pImg.GetWidth()-rcMag.Width()-1, pImg.GetHeight()-rcMag.Height()-1, 192, GFX_KEEP_ALPHA);
  252.       }
  253.       pImg.SaveAs(cDestPath + cImgFileName, JPGformat, iImgJPEG, 0);
  254.  
  255. // IMAGE HEADER
  256.       tImg.SetReplace("${HEADER}", ReplaceExifStrings(cImgHeader, cFileName, cDestPath + cImgFileName)); 
  257.  
  258. // IMAGE NAVIGATION
  259.       if (iFile > 1) {
  260.         tImgNav.SetReplace("${NAV_FIRST}", "<a href=\""+GetImgPageFN(1)+"\">|<</a>");
  261.         tImgNav.SetReplace("${NAV_PREV}", "<a href=\""+GetImgPageFN(iFile-1)+"\"><<</a>");
  262.       } else {
  263.         tImgNav.SetReplace("${NAV_FIRST}", "|<");
  264.         tImgNav.SetReplace("${NAV_PREV}", "<<");
  265.       }
  266.       if (iFile < iFilesCount) {
  267.         tImgNav.SetReplace("${NAV_NEXT}", "<a href=\""+GetImgPageFN(iFile+1)+"\">>></a>");
  268.         tImgNav.SetReplace("${NAV_LAST}", "<a href=\""+GetImgPageFN(iFilesCount)+"\">>|</a>");
  269.       } else {
  270.         tImgNav.SetReplace("${NAV_NEXT}", ">>");
  271.         tImgNav.SetReplace("${NAV_LAST}", ">|");
  272.       }
  273.       if (iImgNavStyle == 1) {
  274.         tImgNav.SetReplace("${NAV_IMG}", iFile);
  275.         tImgNav.SetReplace("${NAV_IMGS}", iFilesCount);
  276.       } else {
  277.         tImgNav.SetReplace("${NAV_NAV}", GetImgPagesNavigation(iFilesCount, iFile));
  278.       }
  279.       tImg.SetReplace("${NAV}", tImgNav.Replace());
  280.  
  281. // IMAGE TABLE
  282.       tImgDescCol.SetReplace("${IMG_DESC}", ReplaceExifStrings(cImgDesc, cFileName, cDestPath + cImgFileName));
  283.       tImgRow.SetReplace("${DESC_COLS}", tImgDescCol.Replace());
  284.  
  285.       tImgCol.SetReplace("${IMG_PAGE_FILENAME}", GetPageFN(iPage));
  286.       tImgCol.SetReplace("${IMG_FILENAME}", cImgFileName); 
  287.       tImgCol.SetReplace("${IMG_WIDTH}", pImg.GetWidth()); 
  288.       tImgCol.SetReplace("${IMG_HEIGHT}", pImg.GetHeight()); 
  289.       tImgRow.SetReplace("${IMG_COLS}", tImgCol.Replace());
  290.  
  291.       if (bImgOriginal) {
  292.         tImgOrgCol.SetReplace("${ORG_FILENAME}", cOrgFileName);
  293.         tImgOrgCol.SetReplace("${ORG_DESC}", ReplaceExifStrings(cImgOrgDesc, cFileName, "")); 
  294.         CopyFile(cFileName, cDestPath + cOrgFileName, FIL_OM_OVERWRITE);
  295.         tImgRow.SetReplace("${ORG_COLS}", tImgOrgCol.Replace());
  296.       } else {
  297.         tImgRow.SetReplace("${ORG_COLS}", "");
  298.       }
  299.       tImg.SetReplace("${ROWS}", tImgRow.Replace());
  300.  
  301. // IMAGE FOOTER
  302.       tImg.SetReplace("${FOOTER}", ReplaceExifStrings(cImgFooter, cFileName, cDestPath + cImgFileName)); 
  303.  
  304. // IMAGE SAVE
  305.       SaveString(cDestPath + GetImgPageFN(iFile), tImg.Replace(), 0);
  306.  
  307.  
  308. // MAKE THUMB
  309.       pImg.Resize(iThnWidth, iThnHeight, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  310. //BOOL CJSImage::Draw(CJSImage* pDstImage, CJSRect* pSrcRect, int iPosX, int iPosY, int iAlpha, int iFlags)
  311.       var rcMag = pMagImg1.GetRect();
  312.       if (bThnMag) {
  313.         pMagImg1.Draw(pImg, rcMag, pImg.GetWidth()-rcMag.Width()-1, pImg.GetHeight()-rcMag.Height()-1, 192, GFX_KEEP_ALPHA);
  314.       }
  315.       pImg.SaveAs(cDestPath + cThnFileName, JPGformat, iTNJPEG, 0);
  316.  
  317. // THUMB TABLE
  318.       tDescCol.SetReplace("${IMG_DESC}", ReplaceExifStrings(cDesc, cFileName, cDestPath + cImgFileName)); 
  319.       cDescCols += tDescCol.Replace();
  320.  
  321.       tThnCol.SetReplace("${IMG_PAGE_FILENAME}", GetImgPageFN(iFile));
  322.       tThnCol.SetReplace("${IMG_FILENAME}", cThnFileName);
  323.       tThnCol.SetReplace("${IMG_WIDTH}", pImg.GetWidth());
  324.       tThnCol.SetReplace("${IMG_HEIGHT}", pImg.GetHeight());
  325.       cImgCols += tThnCol.Replace();
  326.  
  327.  
  328.       if (bOriginal) {
  329.         tOrgCol.SetReplace("${ORG_FILENAME}", cOrgFileName);
  330.         tOrgCol.SetReplace("${ORG_DESC}", ReplaceExifStrings(cOrgDesc, cFileName, cFileName)); 
  331.         if (!bImgOriginal) { // if not copied in IMAGE processing
  332.           CopyFile(cFileName, cDestPath + cOrgFileName, FIL_OM_OVERWRITE);
  333.         }
  334.         cOrgCols += tOrgCol.Replace();
  335.       }
  336.  
  337.       pImg.Close();
  338.  
  339.     } else { // no other files to process, make table complete
  340.       cDescCols += "  <td class=\"img_desc_td_empty\"></td>\r\n";
  341.       cImgCols += "  <td class=\"img_td_empty\"></td>\r\n";
  342.       if (bOriginal) {
  343.         cOrgCols += "  <td class=\"img_org_td_empty\"></td>\r\n";
  344.       }
  345.     }
  346.  
  347.     iCol++;
  348.  
  349.     if (iCol >= iCols) {
  350.       tRow.SetReplace("${DESC_COLS}", cDescCols);
  351.       tRow.SetReplace("${IMG_COLS}", cImgCols);
  352.       tRow.SetReplace("${ORG_COLS}", cOrgCols);
  353.       cRows += tRow.Replace();
  354.  
  355.       cDescCols = "";
  356.       cImgCols = "";
  357.       cOrgCols = "";
  358.       iCol = 0;
  359.  
  360.       iRow++;
  361.     }
  362.  
  363.     if ((iRow >= iRows) || ((iFile >= iFilesCount) && (iCol == 0))) {
  364.  
  365.       if (iPage > 1) {
  366.         tNav.SetReplace("${NAV_FIRST}", "<a href=\""+GetPageFN(1)+"\">|<</a>");
  367.         tNav.SetReplace("${NAV_PREV}", "<a href=\""+GetPageFN(iPage-1)+"\"><<</a>");
  368.       } else {
  369.         tNav.SetReplace("${NAV_FIRST}", "|<");
  370.         tNav.SetReplace("${NAV_PREV}", "<<");
  371.       }
  372.       if (iPage < iPagesCount) {
  373.         tNav.SetReplace("${NAV_NEXT}", "<a href=\""+GetPageFN(iPage+1)+"\">>></a>");
  374.         tNav.SetReplace("${NAV_LAST}", "<a href=\""+GetPageFN(iPagesCount)+"\">>|</a>");
  375.       } else {
  376.         tNav.SetReplace("${NAV_NEXT}", ">>");
  377.         tNav.SetReplace("${NAV_LAST}", ">|");
  378.       }
  379.       if (iNavStyle == 1) {
  380.         tNav.SetReplace("${NAV_PAGE}", iPage);
  381.         tNav.SetReplace("${NAV_PAGES}", iPagesCount);
  382.         tNav.SetReplace("${NAV_IMGFROM}", iImgFrom);
  383.         tNav.SetReplace("${NAV_IMGTO}", iImgTo);
  384.         tNav.SetReplace("${NAV_IMGS}", iFilesCount);
  385.       } else {
  386.         tNav.SetReplace("${NAV_NAV}", GetPagesNavigation(iPagesCount, iPage));
  387.       }
  388.       tPage.SetReplace("${NAV}", tNav.Replace());
  389.       tPage.SetReplace("${ROWS}", cRows);
  390.  
  391.       SaveString(cDestPath + GetPageFN(iPage), tPage.Replace(), 0);
  392.  
  393.       cRows = "";
  394.       iRow = 0;
  395.  
  396.       iImgFrom = iFile + 1;
  397.  
  398.       iPage++;
  399.     }
  400.  
  401.   }
  402.  
  403.   return cDestPath + GetPageFN(1);
  404.   
  405. }
  406.  
  407. INIT_OK;
  408.