function CPage(library)
{
  var thisPtr = this;

  this.library = library;

  this.createThumbTable = function(node, data, styles, idx, pageId, category)
  {
    var oTable;
    var rowCount;
    var oRow;
    var oCol;

    oTable = document.createElement("Table");
    oTable.border = "0";
    oTable.cellSpacing = "0";
    oTable.cellPadding = "0";
    oTable.className = styles.Thumb;

    rowCount = oTable.rows.length;
    oRow = oTable.insertRow(rowCount);

    oCol = oRow.insertCell(0);
    oCol.vAlign = "top";
    oCol.align = "left";
    oCol.style.margin = "0px";
    oCol.style.padding = "0px";
    oCol.className = styles.Thumb11;
    thisPtr.createThumb(oCol, data, styles, idx, false, false, pageId, category);

    oCol = oRow.insertCell(1);
    oCol.vAlign = "top";
    oCol.align = "left";
    oCol.style.margin = "0px";
    oCol.style.padding = "0px";
    oCol.className = styles.Thumb12;

    rowCount = oTable.rows.length;
    oRow = oTable.insertRow(rowCount);

    oCol = oRow.insertCell(0);
    oCol.colSpan = "2";
    oCol.vAlign = "top";
    oCol.align = "left";
    oCol.style.margin = "0px";
    oCol.style.padding = "0px";
    oCol.className = styles.Thumb21;

    rowCount = oTable.rows.length;
    oRow = oTable.insertRow(rowCount);

    oCol = oRow.insertCell(0);
    oCol.colSpan = "2";
    oCol.vAlign = "top";
    oCol.align = "left";
    oCol.style.margin = "0px";
    oCol.style.padding = "0px";
    oCol.className = styles.Thumb31;

    node.appendChild(oTable);
  }

  this.createThumb = function(node, data, styles, idx, isPicture, isSelected, pageId, category)
  {
    var oDiv;
    var oLink;
    var oImage;
    var params;
    var str;

    oDiv    = thisPtr.library.createElementEx("div");
    oImage  = thisPtr.library.createElementEx("img");

    oImage.className = styles.ThumbImage;
    str = thisPtr.library.formatString(data.Title[thisPtr.library.getLanguage()]);
    oImage.alt = str;

    if (isPicture)
    {
      oImage.src = DEF_PATH_PICTURE + data.Source.Picture[idx];

      oDiv.className = styles.ThumbBorder;
      oDiv.appendChild(oImage);
    }
    else
    {
      oImage.src = DEF_PATH_THUMBNAIL + data.Source.Thumbnail[idx];
      oLink   = thisPtr.library.createElementEx("a");
      str = thisPtr.library.formatString(data.Title[thisPtr.library.getLanguage()]);
      oLink.title = str;
      params = thisPtr.library.createParams(data.Idx, "" + idx, category);
      oLink.href = thisPtr.library.createURL(pageId, params, null);
      oLink.onfocus = function() { this.blur(); };

      if (isSelected)
      {
        oDiv.className = styles.ThumbBorderSelected;
        oDiv.appendChild(oImage);
      }
      else
      {
        oDiv.className = styles.ThumbBorderLink;
        oLink.appendChild(oImage);
        oDiv.appendChild(oLink);
      }
    }

    node.appendChild(oDiv);
  }


  this.createThumb2 = function(node, data, styles, idx)
  {
    var oDiv;
    var oImage;
    var str;

    oDiv    = thisPtr.library.createElementEx("div");
    oImage  = thisPtr.library.createElementEx("img");

    oImage.className = styles.ThumbImage;
    str = thisPtr.library.formatString(data.Title[thisPtr.library.getLanguage()]);
    oImage.alt = str;

    oImage.src = DEF_PATH_THUMBNAIL + data.Source.Thumbnail[idx];

    oDiv.className = styles.ThumbBorder;
    oDiv.appendChild(oImage);

    node.appendChild(oDiv);        
  }
}
