
/*

        Author:		Robbe D. Morris
		Date:		September 29, 2002
		URL:			http://www.robbemorris.com

*/

var idxBarGraphDisplayKey=0;
var idxBarGraphDisplayName=1;
var idxBarGraphDisplay=2;
var idxBarGraphDisplayWeight=3;
var idxBarGraphDisplayInfo=4;
var idxBarGraphDisplayColor=5;

 var BarGraphBarColor = '#044475'; 
 var BarGraphBarBorder = '2';
 var BarGraphMaxWidth=380; 
 var BarGraphMathOption=1;
 var BarGraphTableWidth=500;
 var BarGraphTableTDWidth=380;

 function BarGraphDrawTable(GraphArrays)
  {

      
      var sBarGraphName='';
      var sBarGraphImgDiv='';
      var sBarGraphLock='';
      var sBarGraphWgt='';
      var sH='';
      var Idx=0;
      var lArrayLength=0;
      var lLoop=0;
      var lFoundCnt=0;
      var oBarGraphRow;
	  var nWidth=0;
	  var nWeight=0;
	  //var sBarGraphBarBorder='BORDER-RIGHT: ' + BarGraphBarBorder + 'px outset ' + BarGraphBarColor + '; BORDER-LEFT: ' + BarGraphBarBorder + 'px outset ' + BarGraphBarColor + '; BORDER-TOP: ' + BarGraphBarBorder + 'px outset ' + BarGraphBarColor + '; BORDER-BOTTOM: ' + BarGraphBarBorder + 'px outset ' + BarGraphBarColor;
      var sBarGraphBarBorder='';
      var sBarGraphWeightStyle='font-family:verdana,arial,helvetica;sans-serif color:#000000; font-size:12px;align=right; BORDER-RIGHT: 0px outset #5D7BBA; BORDER-LEFT: 0px outset #5D7BBA; BORDER-TOP: 0px outset #5D7BBA; BORDER-BOTTOM: 0px outset #5D7BBA; text-align: RIGHT;BACKGROUND-COLOR:#FFFFFF;height:20px;';
      var sBarGraphInsStyle='font-family:verdana,arial,helvetica;sans-serif color:#000000; font-size:10px; text-decoration:none; font-style:bold; background-color:#FFFFFF; ';
	  var oBarGraph = document.getElementById('BarGraphTable');
	  var oBarGraphDIV;
 
   try
	  {

 
        lArrayLength = GraphArrays.length;

    	if (lArrayLength < 1) { return false; }
 
        sH += '<table border=0 align=left width=' + BarGraphTableWidth + ' cellpadding=0 cellspacing=2 >';
 
 
       for (lLoop=0; lLoop<lArrayLength; lLoop++)
       {
		  
           oBarGraphRow = GraphArrays[lLoop];
           Idx = lLoop;
  
           if (oBarGraphRow[idxBarGraphDisplay] == true)
           {
       
               lFoundCnt +=1;

               sBarGraphName = 'id=divBarGraph_' + Idx + ' name=divBarGraph_' + Idx;
               
               nWidth = BarGraphConvertWeightToWidth(oBarGraphRow[idxBarGraphDisplayWeight]); 
			               
			   if ((nWidth > BarGraphMaxWidth) || (nWidth < 0)) 
			   { 
					nWidth = 0; 
					nWeight = BarGraphConvertWidthToWeight(nWidth);
				}
                else { nWeight = oBarGraphRow[idxBarGraphDisplayWeight]; }
                
   
              sH += '<tr>';
              sH += '<td align=right style="padding-right:5px;" valign=middle width=15>'+(lLoop+1)+'.</td>';
              sH += '<td align=left valign=top width=100 >' + oBarGraphRow[idxBarGraphDisplayName] + '</td>';
              sH += '<td align=left valign=top  width=' + BarGraphTableTDWidth + ' height=110 id=tblBarGraph1 name=tblBarGraph1 nowrap><span style="line-height:16px">'+oBarGraphRow[idxBarGraphDisplayInfo] +"</span><br>";
              sH += '<div ' + sBarGraphName + ' style="' + sBarGraphBarBorder + ';position:relative;left:0px;top:0px;height:15px;width:'+nWidth+'px;BACKGROUND-COLOR:' + oBarGraphRow[idxBarGraphDisplayColor] + ';"></div></td>';
              sH += '</tr>';

            }
          }

             sH += '</table>';
      
             oBarGraph.innerHTML=sH;
            
	      }
	       catch (exception) 
		  { 
		     if (exception.description == null) { alert("BarGraph Draw Error: " + exception.message); }  
		     else {  alert("BarGraph Draw Error: " + exception.description); }
		  }
  }


	function BarGraphConvertWidthToWeight(nWidth)
	{
         var nRet=0;
		 var nMax=0;
		 var nWeight=0;

		 nMax = parseFloat(BarGraphMaxWidth);
         nWidth = parseFloat(nWidth);
 
         nWeight = (nWidth / nMax) * 100;	   
		 nRet =  nWeight;
				    
		 return nRet;
		  
	}

	function BarGraphConvertWeightToWidth(nWeight)
	{
         var nRet=0;
		 var nMax=0;
		 var nWidthPercent=0;
		  
		 nMax = parseFloat(BarGraphMaxWidth);
         nWeight = parseFloat(nWeight);
 
        
         nWeight = nWeight * 3.5;						   
         nRet = BarGraphRoundNumber(nWeight,"1");
			
		 return nRet;
		  
	}

	  function BarGraphRoundNumber(number,X)
  {
	  
		var number2;
		var TmpNum;

		 X=(!X ? 1:X);
	
		number2 = Math.round(number*Math.pow(10,X))/Math.pow(10,X);
		TmpNum = "" + number2;
		var TmpArray = TmpNum.split(".");
		if (TmpArray.length <2) { number2 = number2 + ".0"; }
	 
	    return number2;
  }
 
