
var g_vRows = Array();
var g_nRowSize = 0;
var g_nTableSize = 10;
var g_nCurrentPage = 0;
var g_strTableDiv;
var g_strSortBy = 'Priority';
var g_strTableName = 'table0';
var g_strImagePath = '';
var g_strOpenInNewWinCheck = '';
var g_nTitleSortOrder = 1;
var g_nPrioritySortOrder = 1;
var g_nStatusSortOrder = 1;
var g_nActionSortOrder = 1;
var g_nQOutRowSize = 0;
var g_nPaint = 0;
var g_nCurrentHeader = -2;
var g_nModified = 0;
var g_nToggleAll = 0;

// Colors
var g_strHeaderTextColor       = "white";
var g_strHeaderSortedTextColor = "#FFBA00";
var g_strHeaderRowColor        = "#4F7489";
var g_strTableOddRowColor      = '#FAFAFA';
var g_strTableEvenRowColor     = '#FFFFFF';

// Images
var g_imgOffImage = new Array();
var g_imgOnImage  = new Array();


function SetTableName( strTableName )
{
   g_strTableName = strTableName;
}

// Freaking keyboard handler, otherwise Netscape crash when we press the "Enter" key...
function KeyboardHandler( e )
{
}
function KeyboardHandlers( e )
{
   if( !e )
      var e = window.event;

   var cCharCode;
   var objTarget;


   // Standards guys!!! Could you talk to each other sometimes... It makes me crazy!
        if(e.which)
      cCharCode = e.which;
        else if(e.keyCode)
      cCharCode = e.keyCode;

   if(e.target)
      objTarget = e.target;
        else if(e.srcElement)
      objTarget = e.srcElement;
        if (objTarget.nodeType == 3) // defeat Safari bug
                objTarget = objTarget.parentNode;


   if( cCharCode == 13 )
   {
      if( objTarget.name )
      {
         var nIndex;
         var strName = objTarget.id;
         var strIndexValue = "";
         var strRowValue   = "";
         var strNameValue  = "";
         var nSearchMode   = 0;

         for( nIndex=0; nIndex<strName.length; nIndex++ )
         {
            var cCurrent = strName.charAt(nIndex);

            if( cCurrent == "_" )
               break;

            strNameValue = strNameValue + cCurrent;
         }

         if( strNameValue == "textboxpriority" )
         {
            for( nIndex=strName.length-1; nIndex>=0; nIndex-- )
            {
               var cCurrent = strName.charAt(nIndex);

               if( cCurrent == "_" )
               {
                  if( nSearchMode < 1 )
                     nSearchMode++;
                  else
                     break;
               }
               else
               {
                  switch( nSearchMode )
                  {
                     case 0:
                        strIndexValue = cCurrent + strIndexValue;
                        break;
                     case 1:
                        strRowValue = cCurrent + strRowValue;
                        break;
                  }
               }
            }

            ChangePriority(strIndexValue, strRowValue, objTarget);
         }
      }
      else
      {
         alert("Please click on the \"Update QCart\" button to update QCart");
         /*
         if( confirm("Do you want to update QCart?") )
         {
            UpdateCart();
            document.qcart_form.Updated = "Updated by keyboard handler";
            self.document.qcart_form.submit()
         }
         */
      }
   }

   // Disable Enter Key (it makes Netscape crash otherwise)
   return cCharCode != 13;
}

document.onkeypress = KeyboardHandler;

if (document.layers)
   document.captureEvents(Event.KEYPRESS);

// Cookie functions
function GetCookieVal(nOffset)
{
   var strEnd = document.cookie.indexOf (";", nOffset);

   //if(strEnd == -1)
   if(strEnd < 0)
      strEnd = document.cookie.length;

   return unescape(document.cookie.substring(nOffset, strEnd));
}

function GetCookie(strName)
{
   var strArg     = strName + "=";
   var nArgLen    = strArg.length;
   var nCookieLen = document.cookie.length;
   var nIndex     = 0;

   while(nIndex < nCookieLen)
   {
      var nPos = nIndex + nArgLen;

      if(document.cookie.substring(nIndex, nPos) == strArg)
         return GetCookieVal(nPos);

      nIndex = document.cookie.indexOf(" ", nIndex) + 1;

      if(nIndex == 0)
         break;
   }
   return null;
}

function SetCookie(strName, strValue)
{
   var vArguments = SetCookie.arguments;
   var nArguments = SetCookie.arguments.length;

   var strExpires = (nArguments > 2) ? vArguments[2] : null;
   var strPath    = (nArguments > 3) ? vArguments[3] : null;
   var strDomain  = (nArguments > 4) ? vArguments[4] : null;
   var strSecure  = (nArguments > 5) ? vArguments[5] : false;

   document.cookie = strName + "=" + escape (strValue) +
                     ( (strExpires == null) ? ""         : ("; expires=" + strExpires.toGMTString() )) +
                     ( (strPath    == null) ? ""         : ("; path="    + strPath                  )) +
                     ( (strDomain  == null) ? ""         : ("; domain="  + strDomain                )) +
                     ( (strSecure  == true) ? "; secure" : "");
}

function DeleteCookie(strName)
{
   var exp = new Date();
   exp.setTime (exp.getTime() - 1);

   var strCookieVal = GetCookie(strName);
   document.cookie = strName + "=" + strCookieVal + "; expires=" + exp.toGMTString();
}

function SetImagePath(strImagePath)
{
   g_strImagePath = strImagePath;
}

function SetColors(strHeaderTextColor, strHeaderSortedTextColor, strHeaderRowColor, strTableEvenRowColor, strTableOddRowColor)
{
   if( strHeaderTextColor != '' )
      g_strHeaderTextColor       = strHeaderTextColor;
      
   if( strHeaderSortedTextColor != '' )
      g_strHeaderSortedTextColor = strHeaderSortedTextColor;

   if( strHeaderRowColor != '' )
      g_strHeaderRowColor        = strHeaderRowColor;

   if( strTableEvenRowColor != '' )
      g_strTableEvenRowColor     = strTableEvenRowColor;

   if( strTableOddRowColor != '' )
      g_strTableOddRowColor      = strTableOddRowColor;
}

function SetModifiedEx(nForceUpdate)
{
   if( g_nModified == 0 || nForceUpdate )
   {
      //SetID('qcart_modified', '<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><I><B>&#183;&#183;&#183; QCart modified, do not forget to save your changes &#183;&#183;&#183;</B></I></font>');

      var strHtml;

      strHtml =   '<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">';
      strHtml +=  "If you want your changes to take effect, click \"Update QCart\" below:<br>";
      strHtml +=  '</font>\n';
      strHtml += "<INPUT TYPE=\"SUBMIT\" NAME=\"Updated\" VALUE=\"Update QCart\" onClick=\"javascript:UpdateCart()\">";

      SetID('message_and_submit', strHtml);
   }
      
   g_nModified = 1;
}

function SetModified()
{
   SetModifiedEx(0);
}

function SetID( strID, strHTML )
{
   document.getElementById(strID).innerHTML = strHTML;
}

function SetTableLen(nTableSize)
{
   var nLastPage;

   g_nPaint = 0;

   if( nTableSize > g_nRowSize || nTableSize < 0 )
      g_nTableSize = g_nRowSize/1;
   else
      g_nTableSize = nTableSize/1;

   var exp = new Date();
   exp.setTime (exp.getTime() + 50000000);

   //SetCookie("DynamicTableLen", nTableSize, exp);
   SetCookie("LastLength", nTableSize, exp);

   nLastPage = GetLastPage();
   if( g_nCurrentPage < 0 )
      g_nCurrentPage = 0;
   if( g_nCurrentPage > nLastPage )
      g_nCurrentPage = nLastPage/1;

   UpdateTableSection();
   UpdateTable();

   if( g_nModified )
      SetModifiedEx(1);
}

function AddRow(nPriority, strStockNumber, strTitle, strStatus, strID)
{
   var strLnkTitle;

   strLnkTitle       = "javascript:ViewDescription('" + strStockNumber + "', 0)";
   strLnkNewWinTitle = "javascript:ViewDescription('" + strStockNumber + "', 1)";

   g_vRows[g_nRowSize] = new InfoRow(nPriority, strLnkTitle, strLnkNewWinTitle, strTitle, strStatus, strID);
   g_nRowSize++;
}

function InfoRow(nPriority, lnkTitle, lnkNewWinTitle, strTitle, strStatus, strID)
{
   this.m_nPriority      = nPriority;
   this.m_lnkTitle       = lnkTitle;
   this.m_lnkNewWinTitle = lnkNewWinTitle;
   this.m_strTitle       = strTitle;
   this.m_strStatus      = strStatus;
   this.m_strID          = strID;
   this.m_nChecked       = false;
   this.m_nTag           = 0;
}


function ViewDescriptionSimple(strStockNumber, nAction)
{
   if(nAction)
   {
      window.open('http://www.dvdhype.com/view_window.php3?stknum=' + strStockNumber, 'viewpic', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=800,height=600,alwaysRaised=yes,left=100,top=100');
   }
   else
   {
      if( g_nModified )
      {
         // For now, to avoid any bugs
         window.open('http://www.dvdhype.com/view_window.php3?stknum=' + strStockNumber, 'viewpic', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=800,height=600,alwaysRaised=yes,left=100,top=100');
      }
      else
      {
         location.href = 'http://www.dvdhype.com/view.php3?stknum=' + strStockNumber;
      }
   }
}


function ViewDescription(strStockNumber, nAction)
{
   // Save current table
   var strPriorityTag = "";
   var strCheckTag = "";
   var strTag = "";

   var nIndex;

   /*
   SetCookie('LastSort', g_strSortBy);
   SetCookie('LastPage',   g_nCurrentPage);
   SetCookie('LastLength', g_nTableSize);

   SetCookie('LastPriorityOrder', g_nPrioritySortOrder);
   SetCookie('LastTitleOrder',    g_nTitleSortOrder);
   SetCookie('LastStatusOrder',   g_nStatusSortOrder);
   SetCookie('LastActionOrder',   g_nActionSortOrder);

   g_nPrioritySortOrder = 1;
   SortByEx('Priority', 0);

   for(nIndex=0; nIndex<g_nRowSize; nIndex++)
   {
      if( nIndex==0 )
      {
         strPriorityTag += g_vRows[nIndex].m_strID;
         strCheckTag += (g_vRows[nIndex].m_nChecked ? '1' : '0');
         strTag += g_vRows[nIndex].m_nTag;
      }
      else
      {
         strPriorityTag += ',' + g_vRows[nIndex].m_strID;
         strCheckTag += ',' + (g_vRows[nIndex].m_nChecked ? '1' : '0');
         strTag += ',' + g_vRows[nIndex].m_nTag;
      }
   }

   SetCookie('LastValues', strPriorityTag);
   SetCookie('LastChecks', strCheckTag);
   SetCookie('LastTags', strTag);

   document.qcart_form.status_field.value = strPriorityTag;

   */
   if(nAction)
   {
      window.open('http://www.dvdhype.com/view_window.php3?stknum=' + strStockNumber, 'viewpic', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=800,height=600,alwaysRaised=yes,left=100,top=100');
   }
   else
   {
      if( g_nModified )
      {
          window.open('http://www.dvdhype.com/view_window.php3?stknum=' + strStockNumber, 'viewpic', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=800,height=600,alwaysRaised=yes,left=100,top=100');
      }
      else
      {
          location.href = 'http://www.dvdhype.com/view.php3?stknum=' + strStockNumber;
      }
   }
}

function ChangeStatus( strUndoLnk, strStatus, nType )
{
   if( nType == 0 )
   {
      if( !confirm("Are you sure you wish to cancel the following action -> " + strStatus + "?") )
         return;
   }
   location.href = strUndoLnk;
}


function UpdateCart()
{
   var strPriorityTag = "";
   var nIndex;


   //alert('executing UpdateCart function...');
   DeleteSelected();
   SortByEx('Priority', 0);

   for(nIndex=0; nIndex<g_nRowSize; nIndex++)
   {
      if( nIndex==0 )
         strPriorityTag += g_vRows[nIndex].m_strID;
      else
         strPriorityTag += ',' + g_vRows[nIndex].m_strID;
   }

   document.qcart_form.status_field.value = "";
   document.qcart_form.priority_field.value = strPriorityTag;

   //DeleteCookie('LastValues');
   //DeleteCookie('LastChecks');
   //DeleteCookie('LastPage');
   //DeleteCookie('LastSort');
   //DeleteCookie('LastLength');

   //DeleteCookie('LastPriorityOrder');
   //DeleteCookie('LastTitleOrder');
   //DeleteCookie('LastStatusOrder');
   //DeleteCookie('LastActionOrder');

}

function DiscardCart()
{
   document.qcart_form.status_field.value = "";
   document.qcart_form.priority_field.value = "";

   /*
   DeleteCookie('LastValues');
   DeleteCookie('LastSort');
   DeleteCookie('LastChecks');
   DeleteCookie('LastPage');
   DeleteCookie('LastLength');

   DeleteCookie('LastPriorityOrder');
   DeleteCookie('LastTitleOrder');
   DeleteCookie('LastStatusOrder');
   DeleteCookie('LastActionOrder');
   */
}

function ImageOn(strImageName)
{
   if (document.images)
      document.images[strImageName].src = g_imgOnImage[strImageName].src;
}

function ImageOff(strImageName)
{
   if (document.images)
      document.images[strImageName].src = g_imgOffImage[strImageName].src;
}

function ProcessClicks(e)
{
   alert('Click detected');
}

function ShowTable(nDefaultLen)
{
   /*
   var strLastValues = GetCookie('LastValues');
   var strLastSort   = GetCookie('LastSort');
   var strLastChecks = GetCookie('LastChecks');
   var strLastTags   = GetCookie('LastTags');
   var nLastPage     = GetCookie('LastPage');
   var nLastLength   = GetCookie('LastLength');
   var nTableLen     = GetCookie('DynamicTableLen');
   */

   var strLastSort   = GetCookie('LastSort');
   var nTableLen     = GetCookie('LastLength');

   //window.captureEvents(Event.CLICK);
   //window.onclick = ProcessClicks;

   // Table is not modified
   g_nModified = 0;

   if( nTableLen != null )
   {
      nDefaultLen = nTableLen;
   }
   else
   {
      if( nDefaultLen == 0 )
         nDefaultLen = 10;
   }

   /*
   // Restore information from cookie
   if( strLastValues != null && strLastChecks != null && strLastTags != null)
   {
      var nIndex;
      var nTag;
      var nChk;
      var nUso;
      var vTag = Array("");
      var vUso = Array("");
      var vChk = Array("");


      nUso = 0;
      for( nIndex=0; nIndex<strLastTags.length; nIndex++ )
      {
         var cCurrent = strLastTags.charAt(nIndex);

         if( cCurrent == "," )
         {
            nUso++;
            vUso[nUso] = "";
         }
         else
         {
            if( cCurrent != " " )
               vUso[nUso] += cCurrent;
         }

      }
      nUso++;


      nTag = 0;
      for( nIndex=0; nIndex<strLastValues.length; nIndex++ )
      {
         var cCurrent = strLastValues.charAt(nIndex);

         if( cCurrent == "," )
         {
            nTag++;
            vTag[nTag] = "";
         }
         else
         {
            if( cCurrent != " " )
               vTag[nTag] += cCurrent;
         }

      }
      nTag++;

      nChk = 0;
      for( nIndex=0; nIndex<strLastChecks.length; nIndex++ )
      {
         var cCurrent = strLastChecks.charAt(nIndex);

         if( cCurrent == "," )
         {
            nChk++;
            vChk[nChk] = "";
         }
         else
         {
            if( cCurrent != " " )
               vChk[nChk] += cCurrent;
         }

      }
      nChk++;

      g_nPrioritySortOrder = 1;
      SortByEx('Priority', 0);


      //for( nIndex=0; nIndex<g_nRowSize; nIndex++ )
      //{
      //   if( nIndex < nTag )
      //   {
      //      g_vRows[nIndex].m_Tag = vTag[nIndex];
      //      g_vRows[nIndex].m_nChecked = (vChk[vTag[nIndex]] == '1' ? true: false);
      //   }
      //   else
      //   {
      //      g_vRows[nIndex].m_Tag = nIndex;
      //      g_vRows[nIndex].m_nChecked = (vChk[nIndex] == '1' ? true: false);
      //   }
      //}

      //SortBy('Tag');
      //StoreTag();

      var nTotalRows = 0;
      var vRows = Array();
      for( nIndex=0; nIndex<g_nRowSize; nIndex++ )
      {
         if( nIndex < nTag )
         {
            vRows[nIndex] = g_vRows[vTag[nIndex]];
            vRows[nIndex].m_nPriority = nIndex;
            vRows[nIndex].m_nChecked = (vChk[nIndex] == '1' ? true: false);
            vRows[nIndex].m_nTag = vUso[nIndex]/1;
         }
         else
         {
            vRows[nIndex] = g_vRows[nIndex];  // A film has been added, append to the end
            vRows[nIndex].m_nPriority = nIndex;  // Last priority, ok
            vRows[nIndex].m_nChecked = false; // Not checked
            vRows[nIndex].m_nTag = nIndex/1; // New tag, will be at the end of list
         }

         nTotalRows++;
      }

      g_vRows = Array();
      for( nIndex=0; nIndex<nTotalRows; nIndex++ )
      {
         g_vRows[nIndex] = vRows[nIndex];
      }

      g_nRowSize = nTotalRows;

      SortByEx('Tag', 0);
      g_nPaint = 0;
   }
   */
   
   g_nPrioritySortOrder = GetCookie('LastPriorityOrder');
   g_nTitleSortOrder    = GetCookie('LastTitleOrder');
   g_nStatusSortOrder   = GetCookie('LastStatusOrder');
   g_nActionSortOrder   = GetCookie('LastActionOrder');

   if( g_nPrioritySortOrder == null )
      g_nPrioritySortOrder = 1;

   if( g_nTitleSortOrder == null )
      g_nTitleSortOrder = 1;

   if( g_nStatusSortOrder == null )
      g_nStatusSortOrder = 1;

   if( g_nActionSortOrder == null )
      g_nActionSortOrder = 1;

   //if( nLastLength != null )
   //   nDefaultLen = nLastLength/1;

   //if( nLastPage != null )
   //   g_nCurrentPage = nLastPage/1;

   SetTableLen(nDefaultLen);

   if( strLastSort != null )
   {
      if( strLastSort != 'Tag' )
         SortBy(strLastSort);
      else
         SortBy('Priority');
   }
   else
   {
      SortBy('Priority');
   }
   g_nPaint = 0;
   UpdatePriorityFieldOnly();
}


function SetQOutRowSize( nLen )
{
   g_nQOutRowSize = nLen;
}

function MakeQOutImages()
{
   nLen = g_nQOutRowSize;

   if( document.images )
   {
      var nIndex;

      for( nIndex=0; nIndex<nLen; nIndex++ )
      {
         var strName;
         var strPrevName;

         if( nIndex == 0 )
         {
            strName = 'outnw' + nIndex;
            g_imgOffImage[strName] = new Image(11, 11);
            g_imgOnImage[strName]  = new Image(11, 11);
            g_imgOffImage[strName].src = g_strImagePath + "nw_off.gif";
            g_imgOnImage[strName].src  = g_strImagePath + "nw.gif";
         }
         else
         {
            // Optimization for Internet Explorer (remove hourglass over icons)
            strName     = 'outnw' + nIndex;
            strPrevName = 'outnw' + (nIndex-1);
            g_imgOffImage[strName] = g_imgOffImage[strPrevName];
            g_imgOnImage[strName]  = g_imgOnImage[strPrevName];
         }
      }
   }
}

function UpdateTableSection()
{
   if( document.images )
   {
      var nIndex;

      g_imgOffImage = new Array();
      g_imgOnImage  = new Array();

      strName = 'home';
      g_imgOffImage[strName] = new Image(11, 12);
      g_imgOnImage[strName]  = new Image(11, 12);
      g_imgOffImage[strName].src = g_strImagePath + "page_home_off.gif";
      g_imgOnImage[strName].src  = g_strImagePath + "page_home.gif";

      strName = 'prev';
      g_imgOffImage[strName] = new Image(12, 11);
      g_imgOnImage[strName]  = new Image(12, 11);
      g_imgOffImage[strName].src = g_strImagePath + "page_prev_off.gif";
      g_imgOnImage[strName].src  = g_strImagePath + "page_prev.gif";

      strName = 'next';
      g_imgOffImage[strName] = new Image(12, 11);
      g_imgOnImage[strName]  = new Image(12, 11);
      g_imgOffImage[strName].src = g_strImagePath + "page_next_off.gif";
      g_imgOnImage[strName].src  = g_strImagePath + "page_next.gif";

      strName = 'end';
      g_imgOffImage[strName] = new Image(11, 12);
      g_imgOnImage[strName]  = new Image(11, 12);
      g_imgOffImage[strName].src = g_strImagePath + "page_end_off.gif";
      g_imgOnImage[strName].src  = g_strImagePath + "page_end.gif";

      for( nIndex=0; nIndex<g_nTableSize; nIndex++ )
      {
         var strName;
         var strPrevName;

         if( nIndex == 0 )
         {
            strName = 'up' + nIndex;
            g_imgOffImage[strName] = new Image(11, 12);
            g_imgOnImage[strName]  = new Image(11, 12);
            g_imgOffImage[strName].src = g_strImagePath + "button_up_off.gif";
            g_imgOnImage[strName].src  = g_strImagePath + "button_up.gif";

            strName = 'dn' + nIndex;
            g_imgOffImage[strName] = new Image(11, 12);
            g_imgOnImage[strName]  = new Image(11, 12);
            g_imgOffImage[strName].src = g_strImagePath + "button_dn_off.gif";
            g_imgOnImage[strName].src  = g_strImagePath + "button_dn.gif";

            strName = 'drop' + nIndex;
            g_imgOffImage[strName] = new Image(11, 12);
            g_imgOnImage[strName]  = new Image(11, 12);
            g_imgOffImage[strName].src = g_strImagePath + "button_drop_off.gif";
            g_imgOnImage[strName].src  = g_strImagePath + "button_drop.gif";

            strName = 'nw' + nIndex;
            g_imgOffImage[strName] = new Image(11, 11);
            g_imgOnImage[strName]  = new Image(11, 11);
            g_imgOffImage[strName].src = g_strImagePath + "nw_off.gif";
            g_imgOnImage[strName].src  = g_strImagePath + "nw.gif";
         }
         else
         {
            // Optimization for Internet Explorer (remove hourglass over icons)
            strName     = 'up' + nIndex;
            strPrevName = 'up' + (nIndex-1);
            g_imgOffImage[strName] = g_imgOffImage[strPrevName];
            g_imgOnImage[strName]  = g_imgOnImage[strPrevName];

            strName     = 'dn' + nIndex;
            strPrevName = 'dn' + (nIndex-1);
            g_imgOffImage[strName] = g_imgOffImage[strPrevName];
            g_imgOnImage[strName]  = g_imgOnImage[strPrevName];

            strName     = 'drop' + nIndex;
            strPrevName = 'drop' + (nIndex-1);
            g_imgOffImage[strName] = g_imgOffImage[strPrevName];
            g_imgOnImage[strName]  = g_imgOnImage[strPrevName];

            strName     = 'nw' + nIndex;
            strPrevName = 'nw' + (nIndex-1);
            g_imgOffImage[strName] = g_imgOffImage[strPrevName];
            g_imgOnImage[strName]  = g_imgOnImage[strPrevName];
         }

      }

      // Create Images for QOut
      MakeQOutImages();
   }


   var strPageHome = '<img name="home" hspace="7" width="11" height="12" src="'+ g_strImagePath + 'page_home_off.gif" alt="Home"     title="Home"     border="0"  onMouseOver="ImageOn(\'home\')" onMouseOut="ImageOff(\'home\')" />';
   var strPagePrev = '<img name="prev" hspace="7" width="12" height="11" src="'+ g_strImagePath + 'page_prev_off.gif" alt="Previous" title="Previous" border="0"  onMouseOver="ImageOn(\'prev\')" onMouseOut="ImageOff(\'prev\')" />';
   var strPageNext = '<img name="next" hspace="7" width="12" height="11" src="'+ g_strImagePath + 'page_next_off.gif" alt="Next"     title="Next"     border="0"  onMouseOver="ImageOn(\'next\')" onMouseOut="ImageOff(\'next\')" />';
   var strPageEnd  = '<img name="end"  hspace="7" width="11" height="12" src="'+ g_strImagePath + 'page_end_off.gif"  alt="End"      title="End"      border="0"  onMouseOver="ImageOn(\'end\')"  onMouseOut="ImageOff(\'end\')"  />';

   g_strTableDiv = '<BR><DIV ALIGN="center"><img name="nw_legend" hspace="7" width="11" height="11" src="'+ g_strImagePath + 'nw_off.gif" border="0"/>Open Movie Description In A Window&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
   g_strTableDiv += 'View Length: ';
   //g_strTableDiv += '<A HREF="javascript:SetTableLen(5)"  >5</A>, ';
   //if( g_nRowSize >= 10 )

   g_strTableDiv += '<A HREF="javascript:SetTableLen(10)" >10</A>';
   //if( g_nRowSize >= 15 )
   //   g_strTableDiv += ', <A HREF="javascript:SetTableLen(15)" >15</A>';
   //if( g_nRowSize >= 20 )
   //   g_strTableDiv += ', <A HREF="javascript:SetTableLen(20)" >20</A>';
   if( g_nRowSize >= 25 )
      g_strTableDiv += ', <A HREF="javascript:SetTableLen(25)" >25</A>';
   if( g_nRowSize < 25 )
      g_strTableDiv += ', <A HREF="javascript:SetTableLen(-1)">All</A>';

   g_strTableDiv += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
   g_strTableDiv += '<B ID="page_nav"></B> <A HREF="javascript:HomePage()">' + strPageHome + '</A>';
   g_strTableDiv += '<A HREF="javascript:PrevPage()">' + strPagePrev + '</A>';
   g_strTableDiv += '<A HREF="javascript:NextPage()">' + strPageNext + '</A>';
   g_strTableDiv += '<A HREF="javascript:EndPage()">'  + strPageEnd  + '</A></DIV>';
   g_strTableDiv += '<table border="0" width="100%">'; // cellspacing="0" 
   AppendTableHeader();
   for( nIndex=0; nIndex<g_nTableSize; nIndex++ )
      AppendTableEntry(nIndex);
   g_strTableDiv += '</table>';
   //g_strTableDiv += '<DIV ALIGN="right">';
   //g_strTableDiv += '(<A HREF="javascript:DeleteSelected()">Delete Selected</A>), ';
   //g_strTableDiv += '(<A HREF="javascript:SelectAll()">Select All</A>/';
   //g_strTableDiv += '<A HREF="javascript:UnselectAll()">Unselect All</A>)</DIV><BR>';

   //g_strTableDiv += '<DIV ALIGN="center" id="qcart_modified">&nbsp;</DIV><BR>';


   SetID("table_div", g_strTableDiv);
   SortBy(g_strSortBy);
}

function ToggleOpenNewWin()
{
   if( g_strOpenInNewWinCheck == '' )
      g_strOpenInNewWinCheck = 'CHECKED';
   else
      g_strOpenInNewWinCheck = '';
}

function GetLastPage()
{
   var nStart = 0;
   var nPage;

   nPage = 0;
   while( nStart < g_nRowSize )
   {
      nPage++;
      nStart = nPage * g_nTableSize;
   }

   if( nPage > 0 )
      nPage--;

   return nPage/1;
}

function HomePage()
{
   g_nCurrentPage = 0;
   UpdateTable();
}

function PrevPage()
{
   g_nCurrentPage--;
   if( g_nCurrentPage < 0 )
      g_nCurrentPage = 0;
   UpdateTable();
}


function NextPage()
{
   g_nCurrentPage++;

   var nLastPage;

   nLastPage = GetLastPage();

   if( g_nCurrentPage > nLastPage )
      g_nCurrentPage = nLastPage/1;

   UpdateTable();
}

function EndPage()
{
   g_nCurrentPage = GetLastPage();

   UpdateTable();
}

function GetStartIndex()
{
   var nStart;

   if( g_nCurrentPage == 0 )
      nStart = 0;
   else
      nStart = g_nCurrentPage * g_nTableSize;

   return nStart/1;
}

function GetIndexLen()
{
   var nStart;
   var nRemain;

   if( g_nCurrentPage == 0 )
      nStart = 0;
   else
      nStart = g_nCurrentPage * g_nTableSize;

   nRemain = g_nRowSize/1 - nStart;

   if( nRemain < g_nTableSize)
      nLen = nRemain;
   else
      nLen = g_nTableSize;

   return nLen/1;
}

// Only if using SortBy('Tag');
function UpdatePriorityFieldOnly()
{
   var nRow;
   var nLen;
   var nStart;

   nStart  = GetStartIndex();
   nLen    = GetIndexLen();
   nRow    = 0;

   // Update editbox content
   for( nIndex=nStart; nIndex<(nStart+nLen); nIndex++ )
   {
      if( nLen == 1 )
      {
         document.qcart_form.textboxpriority.value = g_vRows[nIndex].m_nPriority+1;
         nRow++;
      }
      else if( nRow < nLen )
      {
         document.qcart_form.textboxpriority[nRow].value = g_vRows[nIndex].m_nPriority+1;
         nRow++;
      }
   }
}

function UpdateTable()
{
   var nRow;
   var nLen;
   var nStart;

   g_nCurrentHeader = -2;

   nStart  = GetStartIndex();
   nLen    = GetIndexLen();
   nRow    = 0;

   // Content
   for( nIndex=nStart; nIndex<(nStart+nLen); nIndex++ )
   {
      SetRow(nRow, nIndex, 0);
      nRow++;
   }

   // Complete Table
   while( nRow < g_nTableSize )
   {
      SetRow(nRow, nRow, 3);
      nRow++;
   }

   var nLastPage = GetLastPage() + 1;
   var nCurPage = g_nCurrentPage/1 + 1;

   SetID("page_nav", 'Page (' + nCurPage + '/' + nLastPage + '):');
}

function MoveRowUp(nRow)
{
   var nStart;
   var nIndex;

   SetModified();
   g_strSortBy = 'Tag';
   StoreTag();

   nStart = GetStartIndex();
   nIndex = nStart + nRow;
   
   g_vRows[nIndex].m_nPriority -= 1.5;
   ReIndexTable();

   SortBy('Tag');
   //UpdateTable();
}

function MoveRowDn(nRow)
{
   var nStart;
   var nIndex;

   SetModified();
   g_strSortBy = 'Tag';
   StoreTag();

   nStart = GetStartIndex();
   nIndex = nStart + nRow;
   
   g_vRows[nIndex].m_nPriority+=1.5;
   ReIndexTable();

   SortBy('Tag');
   //UpdateTable();
}

function SelectAll()
{
   var nIndex;
   for(nIndex=0; nIndex<g_nRowSize; nIndex++)
      g_vRows[nIndex].m_nChecked = true;

   UpdateTable();
}

function UnselectAll()
{
   var nIndex;
   for(nIndex=0; nIndex<g_nRowSize; nIndex++)
      g_vRows[nIndex].m_nChecked = false;

   UpdateTable();
}

function DeleteSelected()
{
   var nIndex;
   var nCount;

   nCount = 0;
   for(nIndex=0; nIndex<g_nRowSize; nIndex++)
      if( g_vRows[nIndex].m_nChecked )
         nCount++;

   if( nCount == 0 )
      return;

   if( !confirm("Are you sure you want\nto delete " + nCount + " selected item(s)?") )
      return;

   if( g_nRowSize > 0 )
   {
      var nNewIndex = 0;
      var vRows = Array();

      for(nIndex=0; nIndex<g_nRowSize; nIndex++)
      {
         if( !(g_vRows[nIndex].m_nChecked) )
         {
            vRows[nNewIndex] = g_vRows[nIndex];
            nNewIndex++;
         }
      }

      g_vRows    = vRows;
      g_nRowSize = nNewIndex/1;
      SetModified();
   }

   ReIndexTable();
   UpdateTable();
}

function DeleteRow(nRow)
{
   var nStart;
   var nDeleteIndex;
   var nRowNum = nRow + 1;

   nStart = GetStartIndex();
   nDeleteIndex = nStart + nRow;

   if( !confirm("Are you sure you want to remove \"" + g_vRows[nDeleteIndex].m_strTitle + "\" movie from priority " + (g_vRows[nDeleteIndex].m_nPriority+1) + " ?") )
      return;

   if( g_nRowSize > 0 )
   {
      var nRowIndex;
      var nNewIndex = 0;

      for(nIndex=0; nIndex<g_nRowSize; nIndex++)
      {
         if( nIndex != nDeleteIndex )
         {
            g_vRows[nNewIndex] = g_vRows[nIndex];
            nNewIndex++;
         }
      }

      g_nRowSize--;

      SetModified();
   }

   if( g_strSortBy == 'Priority')
      ReIndexPriority();
   else
      ReIndexTable();

   UpdateTable();

   //UpdateCart();
   //document.qcart_form.Updated = "Updated";
   //self.document.qcart_form.submit();

}

function ToggleCheck(nIndex)
{
   g_vRows[nIndex].m_nChecked = !g_vRows[nIndex].m_nChecked;

   SetModified();
   
   //var strText = 'Toggle Check, Index: ' + nIndex + ' Value: ' + g_vRows[nIndex].m_nChecked;
   //document.title = strText;
}

function ChangePriority(nIndex, nRow, ebControl)
{
   //var strText = 'Priority has changed at Index: ' + nIndex + ', Row: ' + nRow + ', Value: ' + ebControl.value;
   //document.title = strText;

   // Retrieve editbox value
   var nPriority = ebControl.value-1;

   StoreTag();


   if( g_vRows[nIndex].m_nPriority > nPriority )
      g_vRows[nIndex].m_nPriority = nPriority-0.5;
   else
      g_vRows[nIndex].m_nPriority = nPriority+0.5;

   SortBy('Tag');
   ReIndexTable();
   SetModified();
}

function SetHeader(nSortedColumn)
{
   var strPriority;
   var strTitle;
   var strStatus;
   var strAction;
   var strSortedColor = g_strHeaderSortedTextColor;
   var strDefaultColor = g_strHeaderTextColor;
   var vColor = Array(strDefaultColor, strDefaultColor, strDefaultColor, strDefaultColor);

   if( nSortedColumn >= 0 )
      vColor[nSortedColumn] = strSortedColor;

   strPriority = '<a href="javascript:HeaderSortBy(\'Priority\')"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color=' + vColor[0] + '>Priority</font></a>'
   strTitle    = '<a href="javascript:HeaderSortBy(\'Title\')"   ><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color=' + vColor[1] + '>Movie Title</font></a>'
   strStatus   = '<a href="javascript:HeaderSortBy(\'Status\')"  ><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color=' + vColor[2] + '>Status</font></a>'
   strAction   = '<a href="javascript:HeaderSortBy(\'Action\')"  ><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color=' + vColor[3] + '>Del</font></a>'

   //strAction   = '<a href="javascript:HeaderSortBy(\'Action\')"  ><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color=' + vColor[3] + '>Remove</font></a>'
   //strAction   = '<input type="checkbox" align="left" valign="center" name="selected_all" value="selall" id="checkbox_selall" onClick="ToggleAll()"/><a href="javascript:HeaderSortBy(\'Action\')" align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color=' + vColor[3] + '>Remove</font></a>'


   if( g_nCurrentHeader != nSortedColumn )
   {
      SetID(g_strTableName + "_header_col0", strPriority);
      SetID(g_strTableName + "_header_col1", strTitle);
      SetID(g_strTableName + "_header_col2", strStatus);
      SetID(g_strTableName + "_header_col3", strAction);
   }

   g_nCurrentHeader = nSortedColumn;
}

function SetRow(nRow, nIndex, nType)
{
   var strPriorityHtml;
   var strMoveUpHtml;
   var strMoveDnHtml;
   var strTitleHtml;
   var strStatusHtml;
   var strCheckHtml;
   var strDeleteHtml;

   if( nIndex < g_nRowSize )
   {
      var strChecked;

      if(g_vRows[nIndex].m_nChecked)
         strChecked = 'CHECKED';
      else
         strChecked = '';

      // Table content can be modified here
      //strPriorityHtml = '&nbsp;<input type="text" name="textboxpriority_' + nRow + '_' + nIndex + '" id="textboxpriorityid_' + nRow + '_' + nIndex + '" value="' + (g_vRows[nIndex].m_nPriority+1) + '" size="2" align="center" onChange="ChangePriority(' + nIndex + ',' + nRow + ',this)" />';
      /*
      strPriorityHtml = '&nbsp;<input type="text" align="center" valign="center" name="textboxpriority" id="textboxpriority_' + nRow + '_' + nIndex + '" value="' + (g_vRows[nIndex].m_nPriority+1) + '" size="2" align="center" onChange="ChangePriority(' + nIndex + ',' + nRow + ',this)" />';
      strMoveUpHtml   = '&nbsp;<a href="javascript:MoveRowUp(' + nRow + ')"><img name="up' + nRow + '" hspace="1" width="11" height="12" src="'+ g_strImagePath + 'button_up_off.gif" alt="Move Up" title="Move Up" border="0" onMouseOver="ImageOn(\'up' + nRow + '\')" onMouseOut="ImageOff(\'up' + nRow + '\')" /></a>&nbsp;';
      strMoveDnHtml   = '&nbsp;<a href="javascript:MoveRowDn(' + nRow + ')"><img name="dn' + nRow + '" hspace="1" width="11" height="12" src="'+ g_strImagePath + 'button_dn_off.gif" alt="Move Down" title="Move Down" border="0" onMouseOver="ImageOn(\'dn' + nRow + '\')" onMouseOut="ImageOff(\'dn' + nRow + '\')" /></a>&nbsp;'
      strTitleHtml    = '<a href="'+ g_vRows[nIndex].m_lnkTitle       + '"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">' + g_vRows[nIndex].m_strTitle + '</font></a>&nbsp;';
      strTitleHtml   += '<a href="'+ g_vRows[nIndex].m_lnkNewWinTitle + '"><img name="nw' + nRow + '" hspace="1" width="11" height="11" src="'+ g_strImagePath + 'nw_off.gif" alt="Open movie description in new window" title="Open movie description in new window" border="0"  onMouseOver="ImageOn(\'nw' + nRow + '\')" onMouseOut="ImageOff(\'nw' + nRow + '\')" /></a>&nbsp;';
      strStatusHtml   = '<font size="1" face="Verdana, Arial, Helvetica, sans-serif">' + g_vRows[nIndex].m_strStatus + '</font>';
      strCheckHtml    = '&nbsp;<input type="checkbox" align="center" valign="center" ' + strChecked + ' name="selected_fld[]" value="QRow' + g_vRows[nIndex].m_nChecked + '" id="checkbox_row_' + nRow + '" onClick="ToggleCheck(' + nIndex + ')"/>&nbsp;';
      strDeleteHtml   = '&nbsp;<a href="javascript:DeleteRow(' + nRow + ')"><img name="drop' + nRow + '" hspace="3" width="11" height="12" src="'+ g_strImagePath + 'button_drop_off.gif" alt="Delete" title="Delete" border="0"  onMouseOver="ImageOn(\'drop' + nRow + '\')" onMouseOut="ImageOff(\'drop' + nRow + '\')" /></a>&nbsp;';
      */
      
      strPriorityHtml = '<input type="text" align="center" valign="center" name="textboxpriority" id="textboxpriority_' + nRow + '_' + nIndex + '" value="' + (g_vRows[nIndex].m_nPriority+1) + '" size="2" align="center" onChange="ChangePriority(' + nIndex + ',' + nRow + ',this)" />';
      strMoveUpHtml   = '<a href="javascript:MoveRowUp(' + nRow + ')"><img name="up' + nRow + '" hspace="1" width="11" height="12" src="'+ g_strImagePath + 'button_up_off.gif" alt="Move Up" title="Move Up" border="0" onMouseOver="ImageOn(\'up' + nRow + '\')" onMouseOut="ImageOff(\'up' + nRow + '\')" /></a>';
      strMoveDnHtml   = '<a href="javascript:MoveRowDn(' + nRow + ')"><img name="dn' + nRow + '" hspace="1" width="11" height="12" src="'+ g_strImagePath + 'button_dn_off.gif" alt="Move Down" title="Move Down" border="0" onMouseOver="ImageOn(\'dn' + nRow + '\')" onMouseOut="ImageOff(\'dn' + nRow + '\')" /></a>'
      strTitleHtml    = '<a href="'+ g_vRows[nIndex].m_lnkTitle       + '"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">' + g_vRows[nIndex].m_strTitle + '</font></a>';
      strTitleHtml   += '<a href="'+ g_vRows[nIndex].m_lnkNewWinTitle + '"><img name="nw' + nRow + '" hspace="1" width="11" height="11" src="'+ g_strImagePath + 'nw_off.gif" alt="Open movie description in new window" title="Open movie description in new window" border="0"  onMouseOver="ImageOn(\'nw' + nRow + '\')" onMouseOut="ImageOff(\'nw' + nRow + '\')" /></a>';
      strStatusHtml   = '<font size="1" face="Verdana, Arial, Helvetica, sans-serif">' + g_vRows[nIndex].m_strStatus + '</font>';
      strCheckHtml    = '<input type="checkbox" align="center" valign="center" ' + strChecked + ' name="selected_fld[]" value="QRow' + g_vRows[nIndex].m_nChecked + '" id="checkbox_row_' + nRow + '" onClick="ToggleCheck(' + nIndex + ')"/>';
      strDeleteHtml   = '<a href="javascript:DeleteRow(' + nRow + ')"><img name="drop' + nRow + '" align="center" hspace="3" width="11" height="12" src="'+ g_strImagePath + 'button_drop_off.gif" alt="Delete" title="Delete" border="0"  onMouseOver="ImageOn(\'drop' + nRow + '\')" onMouseOut="ImageOff(\'drop' + nRow + '\')" /></a>';

   }

   if( nType != 0 )
   {
      strPriorityHtml = '&nbsp;';
      strMoveUpHtml   = '&nbsp;';
      strMoveDnHtml   = '&nbsp;';
      strStatusHtml   = '&nbsp;';
      strCheckHtml    = '&nbsp;';
      strDeleteHtml   = '&nbsp;';

      if( nType == 1 )      // Previous Page Link
         strTitleHtml = '&nbsp;<a href="javascript:NextPage()"><b>>></b></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:EndPage()"><b>End</b></a>&nbsp;';
      else if( nType == 2 ) // Next Page Link
         strTitleHtml = '&nbsp;<a href="javascript:HomePage()"><b>Top</b></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:PrevPage()"><b><<</b></a>&nbsp;';
      else
         strTitleHtml = '&nbsp;';
   }

   if( nRow < g_nTableSize )
   {
      SetID( g_strTableName + '_col0_row' + nRow, strPriorityHtml );
      SetID( g_strTableName + '_col1_row' + nRow, strMoveUpHtml );
      SetID( g_strTableName + '_col2_row' + nRow, strMoveDnHtml );
      SetID( g_strTableName + '_col3_row' + nRow, strTitleHtml );
      SetID( g_strTableName + '_col4_row' + nRow, strStatusHtml );
      SetID( g_strTableName + '_col5_row' + nRow, strCheckHtml );
      SetID( g_strTableName + '_col6_row' + nRow, strDeleteHtml );
   }
   else
   {
      document.title = "Error: " + nRow + " Type:" + nType;
   }
}

function ReIndexTable()
{
   var strSortBy = g_strSortBy;
   SortByEx('Priority', 0);
   SortBy(strSortBy);
}

function ReIndexPriority()
{
   var nIndex;
   for(nIndex=0; nIndex<g_nRowSize; nIndex++)
      g_vRows[nIndex].m_nPriority = nIndex;
}

function StoreTag()
{
   var nIndex;
   for(nIndex=0; nIndex<g_nRowSize; nIndex++)
      g_vRows[nIndex].m_nTag = nIndex;
}

function SortTitle(rowGreater, rowLesser)
{
   if(rowGreater.m_strTitle<rowLesser.m_strTitle) return -g_nTitleSortOrder;
   if(rowGreater.m_strTitle>rowLesser.m_strTitle) return g_nTitleSortOrder;
   return SortPriority(rowGreater, rowLesser);
}

function SortPriority(rowGreater, rowLesser)
{
   if(rowGreater.m_nPriority<rowLesser.m_nPriority) return -g_nPrioritySortOrder;
   if(rowGreater.m_nPriority>rowLesser.m_nPriority) return g_nPrioritySortOrder;
   return 0;
}

function SortStatus(rowGreater, rowLesser)
{
   if(rowGreater.m_strStatus<rowLesser.m_strStatus) return -g_nStatusSortOrder;
   if(rowGreater.m_strStatus>rowLesser.m_strStatus) return g_nStatusSortOrder;
   return SortPriority(rowGreater, rowLesser);
}

function SortAction(rowGreater, rowLesser)
{
   if(rowGreater.m_nChecked<rowLesser.m_nChecked) return g_nActionSortOrder;
   if(rowGreater.m_nChecked>rowLesser.m_nChecked) return -g_nActionSortOrder;
   return SortPriority(rowGreater, rowLesser);
}

function SortTag(rowGreater, rowLesser)
{
   if(rowGreater.m_nTag<rowLesser.m_nTag) return -1;
   if(rowGreater.m_nTag>rowLesser.m_nTag) return 1;
   return 0;
}

function SortBy(strColumnName)
{
   SortByEx(strColumnName, 1);
}

function HeaderSortBy(strColumnName)
{
   SortByEx(strColumnName, 2);

   SetCookie('LastSort', strColumnName);
   SetCookie('LastPriorityOrder', g_nPrioritySortOrder);
   SetCookie('LastTitleOrder',    g_nTitleSortOrder);
   SetCookie('LastStatusOrder',   g_nStatusSortOrder);
   SetCookie('LastActionOrder',   g_nActionSortOrder);
}

function SortByEx(strColumnName, nUpdate)
{
   var strOldSort = g_strSortBy;
   g_strSortBy = strColumnName;

   switch( strColumnName )
   {
      case 'Priority':
      {
         var nOldSortOrder = g_nPrioritySortOrder;

         g_nPrioritySortOrder = 1;
         g_vRows.sort(SortPriority);
         ReIndexPriority();
         g_nPrioritySortOrder = nOldSortOrder;

         if( strOldSort == strColumnName && nUpdate == 2 )
            g_nPrioritySortOrder = -g_nPrioritySortOrder;

         g_vRows.sort(SortPriority);

         if( nUpdate )
         {
            UpdateTable();
            SetHeader(0);
         }

         break;
      }

      case 'Title':
      {
         if( strOldSort == strColumnName && nUpdate == 2)
            g_nTitleSortOrder = -g_nTitleSortOrder;

         g_vRows.sort(SortTitle);
         if( nUpdate )
         {
            UpdateTable();
            SetHeader(1);
         }
         break;
      }

      case 'Status':
      {
         if( strOldSort == strColumnName && nUpdate == 2)
            g_nStatusSortOrder = -g_nStatusSortOrder;

         g_vRows.sort(SortStatus);
         if( nUpdate )
         {
            UpdateTable();
            SetHeader(2);
         }
         break;
      }

      case 'Action':
      {
         if( strOldSort == strColumnName && nUpdate == 2)
            g_nActionSortOrder = -g_nActionSortOrder;

         g_vRows.sort(SortAction);
         if( nUpdate )
         {
            UpdateTable();
            SetHeader(3);
         }
         break;
      }

      case 'Tag':
      {
         g_vRows.sort(SortTag);

         if( nUpdate )
         {
            if( g_nPaint )
               UpdatePriorityFieldOnly();
            else
               UpdateTable();

            SetHeader(-1);
         }

         break;
      }

   }

   g_nPaint = 1;
}

function Fo( strTextColor )
{
   return '<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color=' + strTextColor + '>';
}

function Fc()
{
   return '</font>';
}

function ToggleAll()
{
   if( document.qcart_form.selall.checked )
   {
      SelectAll();
   }
   else
   {
      UnselectAll();
   }

   SetModified();
}

function AppendTableHeader()
{
   var strTableHeader;
   //g_strHeaderRowColor = '#3A6075';
   var strColor = g_strHeaderRowColor;
   var strTextColor = g_strHeaderTextColor;

   /*
   var strRemove;
   strRemove =  '<table border="0" width="100%">\n';
   strRemove += '<tr>\n';
   strRemove += '   <th bgcolor="' + strColor + '" colspan="2" id="' + g_strTableName + '_header_col3" width="70" >';
   strRemove += '      <a href="javascript:SortBy(\'Action\')">' + Fo(strTextColor) + 'Remove' + Fc() + '</a>\n';
   strRemove += '   </th>';
   strRemove += '</tr>\n';
   strRemove += '<tr>\n';
   strRemove += '    <td align="center" valign="center" height="30" width="35">\n';
   strRemove += '       <input type="checkbox" align="left" valign="center" name="selected_all" value="selall" id="checkbox_selall" onClick="ToggleAll()"/>';
   strRemove += '    </td>\n';
   strRemove += '    <td align="center" valign="center" height="30" width="35">\n';
   strRemove += '       '+ Fo(strTextColor) + 'All' + Fc();
   strRemove += '    </td>\n';
   strRemove += '</tr>\n';
   strRemove += '</table>\n';
   */

   var strRemove;
   strRemove =  '<table border="0" width="100%">\n';
   strRemove += '<tr>\n';
   strRemove += '    <th align="center" valign="center" width="33">\n';
   strRemove += '       <input type="checkbox" align="left" valign="center" name="selall" value="selall" id="checkbox_selall" onClick="ToggleAll()"/>';
   strRemove += '    </th>\n';
   strRemove += '    <th align="center" valign="center" width="37" id="' + g_strTableName + '_header_col3">\n';
   strRemove += '       ' + Fo(strTextColor) + 'Del' + Fc();
   strRemove += '    </th>\n';
   strRemove += '</tr>\n';
   strRemove += '</table>\n';

   strTableHeader  = '<tr>\n';
   strTableHeader += '    <th bgcolor="' + strColor + '" colspan="3" id="' + g_strTableName + '_header_col0" width="80" ><a href="javascript:SortBy(\'Priority\')">' + Fo(strTextColor) + 'Priority' + Fc() + '</a></th>\n';
   strTableHeader += '    <th bgcolor="' + strColor + '"             id="' + g_strTableName + '_header_col1" width="350"><a href="javascript:SortBy(\'Title\')"   >' + Fo(strTextColor) + 'Title'    + Fc() + '</a></th>\n';
   strTableHeader += '    <th bgcolor="' + strColor + '"             id="' + g_strTableName + '_header_col2" width="90" ><a href="javascript:SortBy(\'Status\')"  >' + Fo(strTextColor) + 'Status'   + Fc() + '</a></th>\n';
   strTableHeader += '    <th bgcolor="' + strColor + '" colspan="2" width="70" >' + strRemove + '</th>\n';
   strTableHeader += '</tr>\n';

   /*
   strTableHeader  = '<tr>\n';
   strTableHeader += '    <th bgcolor="' + strColor + '" colspan="3" id="' + g_strTableName + '_header_col0" width="80" ><a href="javascript:SortBy(\'Priority\')">' + Fo(strTextColor) + 'Priority' + Fc() + '</a></th>\n';
   strTableHeader += '    <th bgcolor="' + strColor + '"             id="' + g_strTableName + '_header_col1" width="350"><a href="javascript:SortBy(\'Title\')"   >' + Fo(strTextColor) + 'Title'    + Fc() + '</a></th>\n';
   strTableHeader += '    <th bgcolor="' + strColor + '"             id="' + g_strTableName + '_header_col2" width="90" ><a href="javascript:SortBy(\'Status\')"  >' + Fo(strTextColor) + 'Status'   + Fc() + '</a></th>\n';
   strTableHeader += '    <th bgcolor="' + strColor + '" colspan="2" id="' + g_strTableName + '_header_col3" width="70" ><a href="javascript:SortBy(\'Action\')"  >' + Fo(strTextColor) + 'Del'   + Fc() + '</a></th>\n';
   strTableHeader += '</tr>\n';
   */

   /*
   strTableHeader  = '<tr>\n';
   strTableHeader += '    <th bgcolor="' + strColor0 + '" colspan="3" id="' + g_strTableName + '_header_col0" width="80" ><a href="javascript:SortBy(\'Priority\')">' + Fo(strTextColor) + 'Priority' + Fc() + '</a></th>\n';
   strTableHeader += '    <th bgcolor="' + strColor1 + '"             id="' + g_strTableName + '_header_col1" width="350"><a href="javascript:SortBy(\'Title\')"   >' + Fo(strTextColor) + 'Title'    + Fc() + '</a></th>\n';
   strTableHeader += '    <th bgcolor="' + strColor0 + '"             id="' + g_strTableName + '_header_col2" width="90" ><a href="javascript:SortBy(\'Status\')"  >' + Fo(strTextColor) + 'Status'   + Fc() + '</a></th>\n';
   strTableHeader += '    <th bgcolor="' + strColor1 + '"             id="' + g_strTableName + '_header_col_" width="35" ><input type="checkbox" align="left" valign="center" name="selected_all" value="selall" id="checkbox_selall" onClick="ToggleAll()"/></th>\n';
   strTableHeader += '    <th bgcolor="' + strColor1 + '"             id="' + g_strTableName + '_header_col3" width="35" ><a href="javascript:SortBy(\'Action\')"  >' + Fo(strTextColor) + 'Del'   + Fc() + '</a></th>\n';
   strTableHeader += '</tr>\n';
   */

   g_strTableDiv += strTableHeader;
}

function AppendTableEntry( nRow )
{
   var strColor;
   var strTableRow;
   var nColumn;

   if( nRow % 2 == 0 )
      strColor = g_strTableEvenRowColor;
   else
      strColor = g_strTableOddRowColor;

   strTableRow  = '<tr>\n';
   for( nColumn=0; nColumn<7; nColumn++ )
   {
      if( nColumn == 5 || nColumn == 6 )
         strTableRow += '    <td align="center" valign="center" height="30" width="35" bgcolor="' + strColor + '" id="' + g_strTableName + '_col' + nColumn + '_row' + nRow + '">\n';
      else
         strTableRow += '    <td align="center" valign="center" height="30" bgcolor="' + strColor + '" id="' + g_strTableName + '_col' + nColumn + '_row' + nRow + '">\n';

      strTableRow += '        &nbsp;\n';
      strTableRow += '    </td>\n';
   }
   strTableRow += '</tr>\n';

   g_strTableDiv += strTableRow;
}
