//| doPageLinks.js (Bubbles Photo Library)
//|------------------------------------------------------------------------------
//| Copyright 2005 by Mark Anderson for Shoantel Limited
//| Site's catalogue content is copyright Bubbles Photo Library, but templates and support
//| JS/NP files are copyright Shoantel (except where attributed) and  my not be
//| copied or re-used without prior permission
//|------------------------------------------------------------------------------
//| Language               : JavaScript
//| Author                 : Mark Anderson (mark@shoantel.com)
//|------------------------------------------------------------------------------
//| Description:
//|   Defines utility data variables/functions for Portfolio NetworkPublish site.
//|
//| History:
//| 03 Mar 2005          : 0.1 Current version.
//|------------------------------------------------------------------------------
//

//------------------------------------------------------------------
// Purpose: creates links between pages in resultsets.
// Used by: results, lightbox
//------------------------------------------------------------------
function setNavLinks(curOffset,numPerPage,totalItems,numLinks,task,thePage,formName){
  numPerPage = parseInt(numPerPage,10);
  totalItems = parseInt(totalItems,10);
  if ((totalItems%numPerPage) !== 0) {
    var numPages= 1 + Math.floor(totalItems/numPerPage);
  } else {
    numPages= (totalItems/numPerPage);
  }
  var strLinks = '',theOffset='',newOffset='',newPage='',start=0, i=0,k=0,strLinksA;
  var linkStubA = '&nbsp;&nbsp;Jump to page: -&nbsp;&nbsp;';
  var linkStubB = '<a href="#" onClick="pageLink(\'' + task + '\',\'';
  var linkStubC = '\',' + formName + '); return false;">';
  var linkStubD = '</a>&nbsp;&nbsp;';
  if (numPages == 1){
    strLinks = linkStubA + numPages;
    return strLinks;
  } else {
    var curPage = ((curOffset/numPerPage) + 1);
    var halfLink = Math.floor(numLinks/2);
    if (numLinks > numPages) {
      numLinks = numPages;
    }
    if ((curPage-halfLink) <= 1) {
      i = 1;
    } else if ((curPage + halfLink) >= numPages) {
      i= (numPages-numLinks) + 1;
    } else {
      i = (curPage - halfLink);
    }
    strLinks = linkStubA;
    for (k = i; k < (i + numLinks); k ++){
      if (((k-1)* numPerPage)== curOffset) {
        strLinks += '[' + k.toString(10) + ']'+ '&nbsp;&nbsp;';
      } else {
        thisOffset = ((k - 1) * numPerPage).toString();
        newOffset = '&offset=' + thisOffset;
        newPage = thePage.replace(/&offset=\d+/,newOffset);
        strLinks += linkStubB + newPage + linkStubC;
        strLinks += k.toString(10) + linkStubD;
      }
    }
    if (numPages > numLinks) {
      var strFirst='', strLast='';
      thisOffset = 0;
      newOffset = '&offset=' + thisOffset;
      newPage = thePage.replace(/&offset=\d+/,newOffset);
      if (curOffset !== 0){
        strFirst = linkStubB + newPage + linkStubC + 'First' + linkStubD;
      } else {
        strFirst = '[First]&nbsp;&nbsp;';
      }
      thisOffset = ((numPages-1)*numPerPage);
      newOffset = '&offset=' + thisOffset;
      newPage = thePage.replace(/&offset=\d+/,newOffset);
      strLast = linkStubB + newPage + linkStubC + 'Last' + linkStubD;
      if (curOffset >= ((numPages-1)*numPerPage)){
        strLast = '[Last]';
      } else {
        strLast = linkStubB + newPage + linkStubC + 'Last' + linkStubD;
      }
      var len = linkStubA.length;
      strLinks = strLinks.slice(len,strLinks.length);
      strLinks = linkStubA + strFirst + strLinks + strLast;
    }
    return strLinks;
  }
}

//------------------------------------------------------------------
// Purpose: handles call from inter-page links to set correct form
// Used by: results, lightbox
//------------------------------------------------------------------
function pageLink(task,thePage,formName) {
  if (task == 'ADD') {
  goWhere('PAGELIST', thePage, 'ADD', formName);
  } else if (task == 'DEL'){
  goWhere('PAGELIST', thePage, 'DEL', formName);
  }
}


