/* 6,0,0,201
--------------------------------------------------------------------------

Copyright (c) 2001-9 Corporate Practical Solutions and Partners.

This software is the property of Corporate Practical Solutions and Partners.

No part of this software may be reproduced in any form,
without the prior consent of Corporate Practical Solutions.

--------------------------------------------------------------------------
*/
  function _QuickSort (SortArray, Lower, Higher, FieldNumber, FieldType) { var UpCount = Lower; var DownCount = Higher;  var SaveItem; var Item = SortArray[Math.floor((Lower + Higher) / 2)];  do { switch (FieldType) { case 1 :				/* Alpha */ while (SortArray[UpCount].Field[FieldNumber].toLowerCase() < Item.Field[FieldNumber].toLowerCase()) UpCount++; while (SortArray[DownCount].Field[FieldNumber].toLowerCase() > Item.Field[FieldNumber].toLowerCase()) DownCount--; break; case 2 :				/* Version */ while (CompareVersionNumbers(SortArray[UpCount].Field[FieldNumber], Item.Field[FieldNumber]) == -1) UpCount++; while (CompareVersionNumbers(SortArray[DownCount].Field[FieldNumber], Item.Field[FieldNumber]) == 1) DownCount--; break; default :				/* Numeric */ while (SortArray[UpCount].Field[FieldNumber] < Item.Field[FieldNumber]) UpCount++; while (SortArray[DownCount].Field[FieldNumber] > Item.Field[FieldNumber]) DownCount--; break; } if (UpCount <= DownCount) { SaveItem = SortArray[UpCount]; SortArray[UpCount] = SortArray[DownCount];
 SortArray[DownCount] = SaveItem; UpCount++; DownCount--; } } while (UpCount <= DownCount);  if (Lower < DownCount) _QuickSort(SortArray, Lower, DownCount, FieldNumber, FieldType); if (UpCount < Higher) _QuickSort(SortArray, UpCount, Higher, FieldNumber, FieldType); }  function QuickSort(SortArray, FieldNumber, FieldType, Ascending) { if (SortArray.length == 0) return; _QuickSort(SortArray, 0, SortArray.length - 1, FieldNumber, FieldType); if (! Ascending) ReverseSort(SortArray); }  function ReverseSort(SortArray) { var left = 0; var right = SortArray.length-1; var SaveItem;  while (left < right) { SaveItem = SortArray[left]; SortArray[left] = SortArray[right]; SortArray[right] = SaveItem; left++; right--; } }