home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 July & August / PCWorld_2004-07-08_cd.bin / Software / topware / zoner / zme6_trial_cz.exe / digifoto.ZHT / main.js < prev    next >
Encoding:
Text File  |  2004-04-21  |  13.7 KB  |  382 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.   tPageCSS.SetReplace("${BGCOLOR}", HEXColor(iBgColor));
  77.   tPageCSS.SetReplace("${HEAD_FONT_SIZE}", iHeaderFontSize);
  78.   tPageCSS.SetReplace("${HEAD_FONT_COLOR}", HEXColor(iHeaderFontColor));
  79.   tPageCSS.SetReplace("${THN_TABLE_WIDTH}", iThnTableWidth);
  80.   tPageCSS.SetReplace("${DESC_FONT_SIZE}", iDescFontSize);
  81.   tPageCSS.SetReplace("${DESC_FONT_COLOR}", HEXColor(iDescFontColor));
  82.   tPageCSS.SetReplace("${DESC_BGCOLOR}", HEXColor(iDescBgColor));
  83.   tPageCSS.SetReplace("${DESC_LINK_COLOR}", HEXColor(iDescLinkColor));
  84.   tPageCSS.SetReplace("${DESC_TD_WIDTH}", iDescTDWidth);
  85.   tPageCSS.SetReplace("${THN_TD_WIDTH}", iThnTDWidth);
  86.   tPageCSS.SetReplace("${THN_TD_HEIGHT}", iThnTDHeight);
  87.   tPageCSS.SetReplace("${ORG_TD_WIDTH}", iOrgTDWidth);
  88.   tPageCSS.SetReplace("${THN_BGCOLOR}", HEXColor(iThnBgColor));
  89.   tPageCSS.SetReplace("${ORG_FONT_SIZE}", iOrgFontSize);
  90.   tPageCSS.SetReplace("${ORG_FONT_COLOR}", HEXColor(iOrgFontColor));
  91.   tPageCSS.SetReplace("${ORG_BGCOLOR}", HEXColor(iOrgBgColor));
  92.   tPageCSS.SetReplace("${ORG_LINK_COLOR}", HEXColor(iOrgLinkColor));
  93.   tPageCSS.SetReplace("${FOOT_FONT_SIZE}", iFooterFontSize);
  94.   tPageCSS.SetReplace("${FOOT_FONT_COLOR}", HEXColor(iFooterFontColor));
  95.   tPageCSS.SetReplace("${NAV_FONT_SIZE}", iNavFontSize);
  96.   tPageCSS.SetReplace("${NAV_FONT_COLOR}", HEXColor(iNavFontColor));
  97.   tPageCSS.SetReplace("${NAV_BGCOLOR}", HEXColor(iNavBgColor));
  98.   tPageCSS.SetReplace("${NAV_TEXT_BGCOLOR}", HEXColor(iNavTextBgColor));
  99.   tPageCSS.SetReplace("${NAV_LINK_COLOR}", HEXColor(iNavLinkColor));
  100.  
  101.   SaveString(cDestPath + "page.css", tPageCSS.Replace(), 0);
  102.  
  103.  
  104.  
  105.   var tImg = new CTemplate();
  106.   tImg.Load(cSourcePath + "page.tpl", 0);
  107.   tImg.SetReplace("${CSS_FILENAME}", "img.css");
  108.  
  109.   tImg.SetReplace("${TITLE}", cImgTitle);
  110.  
  111.   var tImgCSS = new CTemplate();
  112.   tImgCSS.Load(cSourcePath + "css.tpl", 0);
  113.  
  114.   var iImgDescTDWidth = iImgWidth+4;
  115.   var iImgTDWidth = iImgWidth+12;
  116.   var iImgTDHeight = iImgHeight+12;
  117.   var iImgOrgTDWidth = iImgWidth+4;
  118.  
  119.   var iImgTableWidth = iImgTDWidth + 2; // 2 ... 2 x cellspacing="1"
  120.  
  121.   tImgCSS.SetReplace("${BGCOLOR}", HEXColor(iImgBgColor));
  122.   tImgCSS.SetReplace("${HEAD_FONT_SIZE}", iImgHeaderFontSize);
  123.   tImgCSS.SetReplace("${HEAD_FONT_COLOR}", HEXColor(iImgHeaderFontColor));
  124.   tImgCSS.SetReplace("${THN_TABLE_WIDTH}", iImgTableWidth);
  125.   tImgCSS.SetReplace("${DESC_FONT_SIZE}", iImgDescFontSize);
  126.   tImgCSS.SetReplace("${DESC_FONT_COLOR}", HEXColor(iImgDescFontColor));
  127.   tImgCSS.SetReplace("${DESC_BGCOLOR}", HEXColor(iImgDescBgColor));
  128.   tImgCSS.SetReplace("${DESC_LINK_COLOR}", HEXColor(iImgDescLinkColor));
  129.   tImgCSS.SetReplace("${DESC_TD_WIDTH}", iImgDescTDWidth);
  130.   tImgCSS.SetReplace("${THN_TD_WIDTH}", iImgTDWidth);
  131.   tImgCSS.SetReplace("${THN_TD_HEIGHT}", iImgTDHeight);
  132.   tImgCSS.SetReplace("${ORG_TD_WIDTH}", iImgOrgTDWidth);
  133.   tImgCSS.SetReplace("${THN_BGCOLOR}", HEXColor(iImgImgBgColor));
  134.   tImgCSS.SetReplace("${ORG_FONT_SIZE}", iImgOrgFontSize);
  135.   tImgCSS.SetReplace("${ORG_FONT_COLOR}", HEXColor(iImgOrgFontColor));
  136.   tImgCSS.SetReplace("${ORG_BGCOLOR}", HEXColor(iImgOrgBgColor));
  137.   tImgCSS.SetReplace("${ORG_LINK_COLOR}", HEXColor(iImgOrgLinkColor));
  138.   tImgCSS.SetReplace("${FOOT_FONT_SIZE}", iImgFooterFontSize);
  139.   tImgCSS.SetReplace("${FOOT_FONT_COLOR}", HEXColor(iImgFooterFontColor));
  140.   tImgCSS.SetReplace("${NAV_FONT_SIZE}", iImgNavFontSize);
  141.   tImgCSS.SetReplace("${NAV_FONT_COLOR}", HEXColor(iImgNavFontColor));
  142.   tImgCSS.SetReplace("${NAV_BGCOLOR}", HEXColor(iImgNavBgColor));
  143.   tImgCSS.SetReplace("${NAV_TEXT_BGCOLOR}", HEXColor(iImgNavTextBgColor));
  144.   tImgCSS.SetReplace("${NAV_LINK_COLOR}", HEXColor(iImgNavLinkColor));
  145.  
  146.   SaveString(cDestPath + "img.css", tImgCSS.Replace(), 0);
  147.  
  148.   var tNav = new CTemplate();
  149.   if (iNavStyle == 1) {
  150.     tNav.Load(cSourcePath + "nav_1.tpl", 0);
  151.   }
  152.   if (iNavStyle == 2) {
  153.     tNav.Load(cSourcePath + "nav_2.tpl", 0);
  154.   }
  155.  
  156.   var tImgNav = new CTemplate();
  157.   if (iImgNavStyle == 1) {
  158.     tImgNav.Load(cSourcePath + "img_nav_1.tpl", 0);
  159.   }
  160.   if (iImgNavStyle == 2) {
  161.     tImgNav.Load(cSourcePath + "img_nav_2.tpl", 0);
  162.   }
  163.  
  164.   var tRow = new CTemplate();
  165.   tRow.Load(cSourcePath + "row.tpl", 0);
  166.  
  167.   var tImgRow = new CTemplate();
  168.   tImgRow.Load(cSourcePath + "row.tpl", 0);
  169.  
  170.   var tDescCol = new CTemplate();
  171.   tDescCol.Load(cSourcePath + "desc_col.tpl", 0);
  172.  
  173.   var tImgDescCol = new CTemplate();
  174.   tImgDescCol.Load(cSourcePath + "desc_col.tpl", 0);
  175.  
  176.   var tThnCol = new CTemplate();
  177.   tThnCol.Load(cSourcePath + "img_col.tpl", 0);
  178.  
  179.   var tImgCol = new CTemplate();
  180.   tImgCol.Load(cSourcePath + "img_col.tpl", 0);
  181.  
  182.   var tOrgCol = new CTemplate();
  183.   tOrgCol.Load(cSourcePath + "org_col.tpl", 0);
  184.  
  185.   var tImgOrgCol = new CTemplate();
  186.   tImgOrgCol.Load(cSourcePath + "org_col.tpl", 0);
  187.  
  188.   var pMagImg0 = new CImage();
  189.   pMagImg0.Load(cSourcePath + "magnify-.png", 0);
  190.  
  191.   var pMagImg1 = new CImage();
  192.   pMagImg1.Load(cSourcePath + "magnify+.png", 0);
  193.  
  194.   var cRows = "";
  195.   var cDescCols = "";
  196.   var cImgCols = "";
  197.   var cOrgCols = "";
  198.  
  199.   var iCol = 0;
  200.   var iRow = 0;
  201.   var iPage = 1;
  202.  
  203.   var iImgFrom = 1;
  204.   var iImgTo = 1;
  205.  
  206. //  for (var iFile = 1; ((iFile <= iFilesCount) || (iCol != 0) || (iRow != 0)); iFile++) {
  207.   for (var iFile = 1; ((iFile <= iFilesCount) || (iCol != 0)); iFile++) {
  208.     if (iFile <= iFilesCount) {
  209.  
  210. // FILE 
  211.       iImgTo = iFile;
  212.       cFileName = lSelectedFiles.GetAt(iFile-1);
  213.       cThnFileName = "thn" + IntToStr(iFile, 5) + ".jpg";
  214.       cImgFileName = "img" + IntToStr(iFile, 5) + ".jpg";
  215.       cOrgFileName = "org" + IntToStr(iFile, 5) + ".jpg";
  216.  
  217. // LOAD FILE
  218.       var pImg = new CImage();
  219.       pImg.Load(cFileName, 0);
  220.  
  221. // MAKE IMAGE
  222.       pImg.Resize(iImgWidth, iImgHeight, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  223.       var rcMag = pMagImg0.GetRect();
  224.       if (bImgMag) {
  225.         pMagImg0.Draw(pImg, rcMag, pImg.GetWidth()-rcMag.Width()-1, pImg.GetHeight()-rcMag.Height()-1, 192, GFX_KEEP_ALPHA);
  226.       }
  227.       pImg.SaveAs(cDestPath + cImgFileName, JPGformat, iImgJPEG, 0);
  228.  
  229. // IMAGE HEADER
  230.       tImg.SetReplace("${HEADER}", ReplaceExifStrings(cImgHeader, cFileName, cDestPath + cImgFileName)); 
  231.  
  232. // IMAGE NAVIGATION
  233.       if (iFile > 1) {
  234.         tImgNav.SetReplace("${NAV_FIRST}", "<a href=\""+GetImgPageFN(1)+"\">|<</a>");
  235.         tImgNav.SetReplace("${NAV_PREV}", "<a href=\""+GetImgPageFN(iFile-1)+"\"><<</a>");
  236.       } else {
  237.         tImgNav.SetReplace("${NAV_FIRST}", "|<");
  238.         tImgNav.SetReplace("${NAV_PREV}", "<<");
  239.       }
  240.       if (iFile < iFilesCount) {
  241.         tImgNav.SetReplace("${NAV_NEXT}", "<a href=\""+GetImgPageFN(iFile+1)+"\">>></a>");
  242.         tImgNav.SetReplace("${NAV_LAST}", "<a href=\""+GetImgPageFN(iFilesCount)+"\">>|</a>");
  243.       } else {
  244.         tImgNav.SetReplace("${NAV_NEXT}", ">>");
  245.         tImgNav.SetReplace("${NAV_LAST}", ">|");
  246.       }
  247.       if (iImgNavStyle == 1) {
  248.         tImgNav.SetReplace("${NAV_IMG}", iFile);
  249.         tImgNav.SetReplace("${NAV_IMGS}", iFilesCount);
  250.       } else {
  251.         tImgNav.SetReplace("${NAV_NAV}", GetImgPagesNavigation(iFilesCount, iFile));
  252.       }
  253.       tImg.SetReplace("${NAV}", tImgNav.Replace());
  254.  
  255. // IMAGE TABLE
  256.       tImgDescCol.SetReplace("${IMG_DESC}", ReplaceExifStrings(cImgDesc, cFileName, cDestPath + cImgFileName));
  257.       tImgRow.SetReplace("${DESC_COLS}", tImgDescCol.Replace());
  258.  
  259.       tImgCol.SetReplace("${IMG_PAGE_FILENAME}", GetPageFN(iPage));
  260.       tImgCol.SetReplace("${IMG_FILENAME}", cImgFileName); 
  261.       tImgCol.SetReplace("${IMG_WIDTH}", pImg.GetWidth()); 
  262.       tImgCol.SetReplace("${IMG_HEIGHT}", pImg.GetHeight()); 
  263.       tImgRow.SetReplace("${IMG_COLS}", tImgCol.Replace());
  264.  
  265.       if (bImgOriginal) {
  266.         tImgOrgCol.SetReplace("${ORG_FILENAME}", cOrgFileName);
  267.         tImgOrgCol.SetReplace("${ORG_DESC}", ReplaceExifStrings(cImgOrgDesc, cFileName, "")); 
  268.         CopyFile(cFileName, cDestPath + cOrgFileName, FIL_OM_OVERWRITE);
  269.         tImgRow.SetReplace("${ORG_COLS}", tImgOrgCol.Replace());
  270.       } else {
  271.         tImgRow.SetReplace("${ORG_COLS}", "");
  272.       }
  273.       tImg.SetReplace("${ROWS}", tImgRow.Replace());
  274.  
  275. // IMAGE FOOTER
  276.       tImg.SetReplace("${FOOTER}", ReplaceExifStrings(cImgFooter, cFileName, cDestPath + cImgFileName)); 
  277.  
  278. // IMAGE SAVE
  279.       SaveString(cDestPath + GetImgPageFN(iFile), tImg.Replace(), 0);
  280.  
  281.  
  282. // MAKE THUMB
  283.       pImg.Resize(iThnWidth, iThnHeight, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  284. //BOOL CJSImage::Draw(CJSImage* pDstImage, CJSRect* pSrcRect, int iPosX, int iPosY, int iAlpha, int iFlags)
  285.       var rcMag = pMagImg1.GetRect();
  286.       if (bThnMag) {
  287.         pMagImg1.Draw(pImg, rcMag, pImg.GetWidth()-rcMag.Width()-1, pImg.GetHeight()-rcMag.Height()-1, 192, GFX_KEEP_ALPHA);
  288.       }
  289.       pImg.SaveAs(cDestPath + cThnFileName, JPGformat, iTNJPEG, 0);
  290.  
  291. // THUMB TABLE
  292.       tDescCol.SetReplace("${IMG_DESC}", ReplaceExifStrings(cDesc, cFileName, cDestPath + cImgFileName)); 
  293.       cDescCols += tDescCol.Replace();
  294.  
  295.       tThnCol.SetReplace("${IMG_PAGE_FILENAME}", GetImgPageFN(iFile));
  296.       tThnCol.SetReplace("${IMG_FILENAME}", cThnFileName);
  297.       tThnCol.SetReplace("${IMG_WIDTH}", pImg.GetWidth());
  298.       tThnCol.SetReplace("${IMG_HEIGHT}", pImg.GetHeight());
  299.       cImgCols += tThnCol.Replace();
  300.  
  301.  
  302.       if (bOriginal) {
  303.         tOrgCol.SetReplace("${ORG_FILENAME}", cOrgFileName);
  304.         tOrgCol.SetReplace("${ORG_DESC}", ReplaceExifStrings(cOrgDesc, cFileName, cFileName)); 
  305.         if (!bImgOriginal) { // if not copied in IMAGE processing
  306.           CopyFile(cFileName, cDestPath + cOrgFileName, FIL_OM_OVERWRITE);
  307.         }
  308.         cOrgCols += tOrgCol.Replace();
  309.       }
  310.  
  311.       pImg.Close();
  312.  
  313.     } else { // no other files to process, make table complete
  314.       cDescCols += "  <td class=\"img_desc_td_empty\"></td>\r\n";
  315.       cImgCols += "  <td class=\"img_td_empty\"></td>\r\n";
  316.       if (bOriginal) {
  317.         cOrgCols += "  <td class=\"img_org_td_empty\"></td>\r\n";
  318.       }
  319.     }
  320.  
  321.     iCol++;
  322.  
  323.     if (iCol >= iCols) {
  324.       tRow.SetReplace("${DESC_COLS}", cDescCols);
  325.       tRow.SetReplace("${IMG_COLS}", cImgCols);
  326.       tRow.SetReplace("${ORG_COLS}", cOrgCols);
  327.       cRows += tRow.Replace();
  328.  
  329.       cDescCols = "";
  330.       cImgCols = "";
  331.       cOrgCols = "";
  332.       iCol = 0;
  333.  
  334.       iRow++;
  335.     }
  336.  
  337.     if ((iRow >= iRows) || ((iFile >= iFilesCount) && (iCol == 0))) {
  338.  
  339.       if (iPage > 1) {
  340.         tNav.SetReplace("${NAV_FIRST}", "<a href=\""+GetPageFN(1)+"\">|<</a>");
  341.         tNav.SetReplace("${NAV_PREV}", "<a href=\""+GetPageFN(iPage-1)+"\"><<</a>");
  342.       } else {
  343.         tNav.SetReplace("${NAV_FIRST}", "|<");
  344.         tNav.SetReplace("${NAV_PREV}", "<<");
  345.       }
  346.       if (iPage < iPagesCount) {
  347.         tNav.SetReplace("${NAV_NEXT}", "<a href=\""+GetPageFN(iPage+1)+"\">>></a>");
  348.         tNav.SetReplace("${NAV_LAST}", "<a href=\""+GetPageFN(iPagesCount)+"\">>|</a>");
  349.       } else {
  350.         tNav.SetReplace("${NAV_NEXT}", ">>");
  351.         tNav.SetReplace("${NAV_LAST}", ">|");
  352.       }
  353.       if (iNavStyle == 1) {
  354.         tNav.SetReplace("${NAV_PAGE}", iPage);
  355.         tNav.SetReplace("${NAV_PAGES}", iPagesCount);
  356.         tNav.SetReplace("${NAV_IMGFROM}", iImgFrom);
  357.         tNav.SetReplace("${NAV_IMGTO}", iImgTo);
  358.         tNav.SetReplace("${NAV_IMGS}", iFilesCount);
  359.       } else {
  360.         tNav.SetReplace("${NAV_NAV}", GetPagesNavigation(iPagesCount, iPage));
  361.       }
  362.       tPage.SetReplace("${NAV}", tNav.Replace());
  363.       tPage.SetReplace("${ROWS}", cRows);
  364.  
  365.       SaveString(cDestPath + GetPageFN(iPage), tPage.Replace(), 0);
  366.  
  367.       cRows = "";
  368.       iRow = 0;
  369.  
  370.       iImgFrom = iFile + 1;
  371.  
  372.       iPage++;
  373.     }
  374.  
  375.   }
  376.  
  377.   return cDestPath + GetPageFN(1);
  378.   
  379. }
  380.  
  381. INIT_OK;
  382.