// This file contains intellectual property and artistic creations 
// by Dennis Sandow and is copyright 2000-2010 by the author. 
// For use only on websites maintained by Dennis Sandow, or with
// specific permission.  Do not remove this notice.

retURL = location.href.split('#')[0].split('?')[0].replace(/.*\//g,'');
var cArgs=(location.search+'||').split('|')[0].replace(/\?/g,''); 
var expectedSerialNo = (location.search+'|').split('|')[1]; 
sortopt = parseInt( (location.search+'||').split('|')[2] ); 
if ( isNaN(sortopt) ) sortopt=0;
Target = (location.href+'#').split('#')[1];
var dirSorted = new Array(), dirCompressed = new Array(), dirCx = new Array();

var kk=0, ktcompr=0, prevBusType='';
var ShowRes=mySpecial, ShowHidden=isExpress;

function SortOpts() {
  soWords=new Array('Category','Name','Address','Recent')
  soStr='<form name="sorter"><b>Sort:</b>'+
    '<a href="javascript:goPw(\'NEW\')" class="noUL">&nbsp;</a>';
  for (sox=0; sox<=3; sox++) {
    soStr += '<input type="radio" value="none" '+
      (sortopt==sox?'CHECKED':'')+
      ' onclick="window.location.href=\''+retURL+'?'+cArgs+'||'+sox+
      (Target?'#'+Target:'')+'\'">'+
      'By&nbsp;'+soWords[sox]+'&nbsp; ';
  };
  if (ShowRes) soStr += '<br>'+
    (isPrint?'&reg;':'<span class="invers"><b>R</b></span>')+
    ' = Residence or Zoned as Residential';
  soStr += '</form>'; 
  return soStr ;
};

function sortEm(arg){
if ( typeof arg == udf ) arg='';
  kk=0; ktcompr=0; prevBusType='';
  for ( x1 in dirCx ){
    dotL = new Array(); dotL = dirCx[x1].split('|');
    switch (arg) {
// sorting on Name, compressed key, Res
      case 1: dirSorted[kk++]=dotL[1].toUpperCase()+'|||'+x1+'|'+dotL[8]; break;
// sorting on Street, Address, name, compressed key
      case 2: 
        strt=extractStreet(dotL[7]).toUpperCase();
        addr='00000'+dotL[7].split(' ')[0].replace(/[A-Z]/g,'');
         addr=addr.substring(addr.length-5,99);
         addr=addr+dotL[7].split(' ')[0].replace(/[0-9]/g,'').toUpperCase();
        dirSorted[kk++]=strt+'|'+addr+'|'+dotL[1]+'|'+x1+'|'+dotL[8];
        break;
// sorting on Date, name, compressed key
      case 3: 
        dirSorted[kk++]=( 9000000000000-( (dotL[11] && ( dotL[14] || dotL[15] || dotL[16] ) )?dotL[11]:0) )+'||'+dotL[1]+'|'+x1; 
        break;
// sorting on BusClass, name, compressed key
      default: dirSorted[kk++]=dotL[3]+'||'+dotL[1]+'|'+x1+'|'+dotL[8];
    };
  };
  dirSorted.sort(); 
  return;
};

function extractStreet(arg){
  return perfectStreetShort(arg).replace(/^[0-9]+[A-Za-z]* */,'' ).replace(/<.*/,'').replace(/ -.*/,'');
};  

function perfectStreetShort(sT){
  sT=sT.replace(/[,;(<br>)]*[ -]*Suite /,' - Suite ');
  sT=sT.replace(/ Street([,< ])/,' St$1').replace(' St.',' St');
  sT=sT.replace(/ Avenue([,< ])/,' Ave$1').replace(' Ave.',' Ave');
  sT=sT.replace(/ Drive([,< ])/,' Dr$1').replace(' Dr.',' Dr');
  sT=sT.replace(/ Road([,< ])/,' Rd$1').replace(' Rd.',' Rd');
  sT=sT.replace(/ Place([,< ])/,' Pl$1').replace(' Pl.',' Pl');
  sT=sT.replace(/ Lane([,< ])/,' Ln$1').replace(' Ln.',' Ln');
  sT=sT.replace(/P.O. *B/,'PO B');
  return sT;
};

function perfectStreetLong(sT){
  sT=sT.replace(/[,;(<br>)]*[ -]*Suite /,' - Suite ');
  sT=sT.replace(/ [sS]t\.*([;,< ])/,' Street$1');
  sT=sT.replace(/ [aA]ve\.*([;,< ])/,' Avenue$1');
  sT=sT.replace(/ [dD]r\.*([;,< ])/,' Drive$1');
  sT=sT.replace(/ [rR]d\.*([;,< ])/,' Road$1');
  sT=sT.replace(/ [pP]l\.*([;,< ])/,' Place$1');
  sT=sT.replace(/ [lL]n\.*([;,< ])/,' Lane$1');
  sT=sT.replace(/ [bB]lvd\.*([;,< ])/,' Blvd.$1');
  sT=sT.replace(/P.O. *B/,'PO B');
  return sT.replace(/<br>$/,'').replace(/<br>$/,'');
};

function makeIndex(){
  for ( x1 in dirSorted ){
    busType=dirSorted[x1].split('|')[0];
    isRes=(dirSorted[x1]+'||').split('|')[4];
    if( ! ShowRes && isRes ) continue;
    if ( busType != prevBusType && (busType != 'XXX' || ShowHidden ) ) {
      dirCompressed[ktcompr++] = busType;
    };
    prevBusType=busType;
  };
  colLen=Math.ceil( ktcompr/3 );
// document.write(ktcompr+' '+colLen)
  dirCompressed[ktcompr++] = '' ; dirCompressed[ktcompr++] = '' ;
  indLine = new Array('<td align="left" class="v10">','<td align="left" class="v10">','<td align="left" class="v10">') ;
  for ( x1 =0; x1 < colLen ; x1++ ){
    for ( x2 =0; x2 < 3 ; x2++ ){
      busType=dirCompressed[(x2*colLen)+x1];
      indLine[x2] = indLine[x2] + (x1?'<br>':'')+
        (busType?('<a href="#'+busType+'" class="noUL"><b>'+busType.replace(/ /g,'&nbsp;')+'</b></a>'):'&nbsp;');
    };
  };
  return indLine[0]+'</td>'+indLine[1]+'</td>'+indLine[2]+'</td>';
};

var Alfas='ABCDEFGHIJKLMNOPQRSTUVWXYZ', prevICap='';
function keyLetters(){
  for ( x1 in dirSorted ){
    isRes=(dirSorted[x1]+'|||').split('|')[4];
    if( ! ShowRes && isRes ) continue;
    icap=(dirSorted[x1]+'|||').split('|')[0].charAt(0);
    if ( icap != prevICap  ) dirCompressed[ktcompr++] = icap;
    prevICap=icap;
  };
  keeLine='';
  for ( x0=0; x0<26; x0++ ) {
    Alfa=Alfas.charAt(x0); keeChar=false;
    for ( x1 =0; x1 < dirCompressed.length ; x1++ ){
      if ( Alfa == dirCompressed[x1] ) {
        keeChar = true; break;
      };
    };
    if ( keeChar ) {
      keeLine += '<a href="#'+Alfa+'"><b>'+Alfa+'</b></a>&nbsp;';
    } else keeLine += Alfa+'&nbsp;';
  };
  return '<td align="center" class="v10">'+keeLine+'</td>';
};

var fileSerialNo='';
function goPw(qkey){
  location.href=(isWeb?'adminfi/pwbuffer.htm?upfirein.htm~':'upfirein.htm?')+
    qkey+'|'+cArgs+'|'+fileSerialNo+'|'+sortopt+'|'+isPrint;
};
function popInfo(qkey){
  tu= new Array(); tu = dirCx[qkey].split('|');
  if ( ! tu[14] && ! tu[15] && ! tu[16] ) return;
  Captn['common'] = tu[1]+'<br>was inspected on '+tu[10];
  Mesage['common'] = (tu[14]?('<b>Findings:</b><br>'+tu[14]+''):'')+
    (tu[15]?('<hr width="65%"><b>Citations:</b><br>'+tu[15]+''):'')+
    (tu[16]?('<hr width="65%"><b>Re-Inspection:</b><br>'+tu[16]+''):'')+'<!-- <a href= > -->';
  HintPop('common','');
};

function mainPageListing(){
  iChar='zzz'; prevIChar='';aChar='zzz'; prevAChar='';prevBusType='';blkctr=0;
  document.write('<table align="center" border="'+(isPrint?0:1)+'" cellpadding="'+(isPrint?0:3)+'" cellspacing="0" width="98%">');
  for ( x1 in dirSorted ){
    busType=dirSorted[x1].split('|')[0]; 
    if ( busType == 'XXX' && ! ShowHidden ) continue;
    key=dirSorted[x1].split('|')[3]; 
    dotL = new Array(); dotL = dirCx[key].split('|');
    if ( dotL[8] && ! ShowRes  ) continue;

// greybar on by-category only
    if ( ! sortopt && busType != prevBusType ) {
      document.write('<tr><td colspan=2 bgcolor="#c0c0c0" class="v12"><a href="javascript:goPw(\'NEW!'+busType+'\')" name="'+busType+'" class="noUL"><b>'+busType+'</b></a></td></tr>');
      blkctr=0;
    };

    blkctr++; block=''; linkTarg=''; flagnum='';
// flagCell 
    flagCell = '<a '+
    'href="javascript:goPw(\''+key+'\')" onmouseout="xnd()" onMouseover="return popInfo(\''+key+'\')" class="noUL">'
// create optional line number
    if (ShowHidden) flagnum = '<span class=v6>'+blkctr+'</span>';
// flag image
    if ( dotL[15] && dotL[15].toLowerCase() != 'none' && ! dotL[16] ) {
      flagCell +='<img src="'+pixPath+'boxreda.gif" border="0" '+
        (isPrint?'width="20"':'')+' align="left">'+ flagnum; //40x30
    } else if ( dotL[14] || dotL[16] ) {
      flagCell += '<img src="'+pixPath+'save.gif" border="0" '+
        (isPrint?'width="18" align="left"':'')+'>&nbsp;&nbsp;'+ flagnum; //24x25
    } else flagCell += '&nbsp;'+ flagnum;
    flagCell += '</a>';

// Entry Name    
    block += dotL[1]; iChar=dotL[1].charAt(0);
// address
    block += dotL[7]?(' - '+perfectStreetLong(dotL[7])).replace(/\<br\>/g,'; ').replace(/, NJ.*/,''):'';
    aChar=extractStreet(dotL[7]).toUpperCase().charAt(0);
// res zone        
    if ( dotL[8] && ShowRes  ) block += '&nbsp; <span class="invers"><b>R</b></span>&nbsp;';
// tickler
    if ( ShowHidden && dotL[17] ) block += '<br><span class="v8gb">'+dotL[17]+'</span>';

    if ( sortopt == 1 && iChar != prevIChar ) linkTarg=iChar;
    if ( sortopt == 2 && aChar != prevAChar ) linkTarg=aChar;

    document.write(
      '<tr valign="top"><td width="2%" align=right>'+
      flagCell+'&nbsp;&nbsp;</td>'+
      '<td width="98%" class="v10">'+
      (typeof Recent != udf && Recent == key?'<a name=\''+key+'\'></a>':'')+
      (typeof Target != udf && Target == key?'<a name=\''+key+'\'></a>':'')+
      (linkTarg?'<a name="'+linkTarg+'"></a>':'')+
      block.replace(/\<br\>\<br\>/g,'<br>')+
      '</td></tr>');
    prevBusType=busType;
    prevIChar=iChar;
    prevAChar=aChar;
  };
  if ( typeof Recent != udf && Recent && ! Target && expectedSerialNo ){
    Reload=location.href.split('#')[0]+'#'+Recent;
  };
};

