
/*************************************************************************
  This code is from Dynamic Web Coding at http://www.dyn-web.com/
  See Terms of Use at http://www.dyn-web.com/bus/terms.html
  regarding conditions under which you may use this code.
  This notice must be retained in the code as is!
*************************************************************************/

function getDocHeight(doc) {
  var docHt = 0, sh, oh;
  if (doc.height) docHt = doc.height;
  else if (doc.body) {
    if (doc.body.scrollHeight) docHt = sh = doc.body.scrollHeight;
    if (doc.body.offsetHeight) docHt = oh = doc.body.offsetHeight;
    if (sh && oh) docHt = Math.max(sh, oh);
  }
  return docHt;
}

function setIframeHeight(iframeName) {
  var iframeWin = window.frames[iframeName];
  var iframeEl = document.getElementById? document.getElementById(iframeName): document.all? document.all[iframeName]: null;
  if ( iframeEl && iframeWin ) {
    iframeEl.style.height = "auto"; // helps resize (for some) if new doc shorter than previous  
    var docHt = getDocHeight(iframeWin.document);
    // need to add to height to be sure it will all show
    if (docHt) iframeEl.style.height = docHt + 30 + "px";
  }
}

function loadIframeG(iframeName, fnc) {
  if (typeof fnc == 'undefined' ) fnc = '';
  if ( window.frames[iframeName] ) { 
   	window.frames[iframeName].document.close();  	
	if (fnc != '') {
		switch (fnc) {
			case '6m': showGraph6m(iframeName); break;
			case '1y': showGraph1y(iframeName); break;
			case '2y': showGraph2y(iframeName); break;
			case '3y': showGraph3y(iframeName); break;
			case '4y': showGraph4y(iframeName); break;
			case '5y': showGraph5y(iframeName); break;

			case '93': showGraph1993(iframeName); break;
			case '94': showGraph1994(iframeName); break;
			case 'o5': showGraph2005(iframeName); break;
			case 'o6': showGraph2006(iframeName); break;
			case 'o7': showGraph2007(iframeName); break;
			case 'o8': showGraph2008(iframeName); break;
			case 'avg': showGraphAlly(iframeName); break;
		}
		window.frames[iframeName].document.close(); 

	}
    return false;
  }
  else return true; 
}	

function loadIframe(iframeName, url, fnc) {
  if (typeof fnc == 'undefined' ) fnc = '';
  if ( window.frames[iframeName] ) {  	  	
      window.frames[iframeName].location = url

    return false;
  }
  else return true; 
}	


function Graph(width, height, stacked) {
//posMax is set to 7.5 to keep graphs even
this.stacked = stacked;
this.width = width || 400;
this.height = height || 200;
this.rows = new Array();
this.addRow = _addRowGraph;
this.setXScale = _setXScaleGraph;
this.setXScaleValues = _setXScaleValuesGraph;
this.setTime = _setStartTimeGraph;
this.setDate = _setStartDateGraph;
this.build = _buildGraph;
this.setLegend = _setLegendGraph;
this.writeLegend = _writeLegendGraph;
this.offset = 0;
return this;
}
function _setLegendGraph() {
this.legends = arguments;
}
function _addRowGraph() {
this.rows[this.rows.length] = new Array();
var row = this.rows[this.rows.length-1];
for(var i = 0; i < arguments.length; i++)

row[row.length] = arguments[i];

}
function _rescaleGraph(g) {
g.posMax = 7.5, g.negMax = 0, g.c = 0;
for(var i = 0; i < g.rows.length; i++) {
for(var j = 0; j < g.rows[i].length; j++) {
g.c++;
if(g.rows[i][j] > g.posMax) g.posMax = g.rows[i][j];
if(g.rows[i][j] < g.negMax) g.negMax = g.rows[i][j];

}
}

g.vscale = g.height/(g.posMax-g.negMax);
g.hscale = Math.floor(g.width/g.c-1/g.rows[0].length);
}
function _stackRescaleGraph(g) {
var m, n, c = 0;
g.posMax = 7.5, g.negMax = 0;
for(var i = 0; i < g.rows[0].length; i++) {
m = 0; n = 0;
c++;
for(var j = 0; j < g.rows.length; j++) {
if(g.rows[j][i] > 0) m += g.rows[j][i];
else n += g.rows[j][i];
}
if(m > g.posMax) g.posMax = m;
if(n < g.negMax) g.negMax = n;
}

g.vscale = g.height/(g.posMax-g.negMax);
g.hscale = Math.floor(g.width/c)-1;

}
function _relRescaleGraph(g) {
var m, c = 0;
g.vscale = g.height/100;
for(var i = 0; i < g.rows[0].length; i++) {
m = 0;
c++;
for(var j = 0; j < g.rows.length; j++) {
if(g.rows[j][i] < 0) g.rows[j][i] = 0;
m += g.rows[j][i];
}
var s = 100/m; var k = 0;
for(var j = 1; j < g.rows.length; j++) {
g.rows[j][i] *= s;
g.rows[j][i] = Math.round(10*g.rows[j][i])/10;
if(j != 0) k += g.rows[j][i]*g.vscale;
}
g.rows[0][i] = Math.round(10*(g.height-k)/g.vscale)/10;
}
g.hscale = Math.floor(g.width/c)-1;
g.posMax = 100; g.negMax = 0;
}
function _writeLegendGraph() {
var st = "";
st += "<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=4><TR><TD><FONT FACE='Arial,Helvetica' SIZE=-1>";
for(var i = 0; i < this.legends.length; i++) {
if(!this.legends[i]) continue;
if(i >= this.rows.length) break;
st += "<IMG SRC="+i+".gif BORDER=1 HSPACE=3>"+this.legends[i]+"<BR>\n";
}
st += "</FONT></TD></TR></TABLE>";
return st;
}
function _buildRegGraph(g, doc) {
var str = "";
str += "<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>\n";
if(g.title) {
str += "<TR>\n";

if(g.scale) str += "<TD COLSPAN=3></TD>\n";
if(g.yLabel) str += "<TD></TD>\n";
str += "<TH VALIGN=TOP HEIGHT=30 COLSPAN="+(g.c)+">\n";
str += "<FONT FACE='Arial,Helvetica' SIZE=-1>";
str += g.title;
str += "</FONT></TH></TR>\n";
}
if(g.yLabel) {
g.yLabel = g.yLabel.split("");
g.yLabel = g.yLabel.join("<BR>\n");
str += "<TR>\n";
var r = 2; if(g.negMax && g.posMax) r++;
str += "<TH ROWSPAN="+r+" ALIGN=LEFT WIDTH=20 NOWRAP>\n";
str += "<FONT FACE='Arial,Helvetica' SIZE=-1>"+g.yLabel+"</FONT></TD>\n";
}

if(g.posMax > 0) {
if(!g.yLabel) str += "<TR>\n";
if(g.scale) str += _writeScaleGraph(g, 0, g.posMax);
str += "<TD VALIGN=BOTTOM";
if(g.bgColor) str += " BGCOLOR=\""+g.bgColor+"\"";
str += ">";
for(var j = 0; j < g.rows[0].length; j++) {
for(var i = 0; i < g.rows.length; i++) {

if(g.dLabel) str += "<font face=Times New Roman Size=-3>" + g.rows[i][j] + "</font><BR>";  
//*
if(parseInt(g.vscale*g.rows[i][j]) > 0) {
str += "<IMG BORDER=0 SRC=\""+i+".gif\" ";
str += "ALT=\"";
if(g.legends && g.legends[i]) str += g.legends[i]+": ";
str += (g.rows[i][j]+g.offset);
if(g.dates) str += ", "+g.dates[j];
str += "\" ";
str += "WIDTH="+parseInt(g.hscale)+" ";
str += "HEIGHT="+parseInt(g.vscale*g.rows[i][j])+" ";
str += ">";
} else
str += "<IMG SRC=\"clear.gif\" WIDTH="+parseInt(g.hscale)+" HEIGHT=5>";
str += "</TD>\n<TD VALIGN=BOTTOM";
if(g.bgColor) str += " BGCOLOR=\""+g.bgColor+"\"";
str += ">";
}
str += "<IMG SRC=\"clear.gif\" WIDTH=1 HEIGHT=5>";
}
str += "</TD>\n";
}
if(g.legends && g.posMax != 0) {
str += "<TD WIDTH=5 NOWRAP ROWSPAN=3></TD>\n";
str += "<TD ROWSPAN=3>";
str += g.writeLegend();
str += "</TD>\n";
}
if(g.scale || g.xScale) {

if(g.posMax) str += "</TR><TR>\n";
else str += "<TR><TD COLSPAN=2></TD>\n";
str += "<TD BGCOLOR=#000000 COLSPAN="+(g.c+1)+">";
str += "<IMG SRC=\"black.gif\" HEIGHT=1 WIDTH=";
str += parseInt(g.rows[0].length*g.hscale)+" ></TD></TR>\n";
}
if(g.xScale && !g.negMax)
str += _writeXScaleGraph(g);
if(g.negMax < 0) {
if(g.posMax != 0 && !g.scale) str += "</TR>";
str += "<TR>\n";
if(g.scale) str += _writeNegScaleGraph(g, g.negMax, 0);
str += "<TD VALIGN=TOP";
if(g.bgColor) str += " BGCOLOR=\""+g.bgColor+"\"";
str += ">";
for(var j = 0; j < g.rows[0].length; j++) {
for(var i = 0; i < g.rows.length; i++) {
if(parseInt(g.vscale*g.rows[i][j]) < 0) {
str += "<IMG VSPACE=0 HSPACE=0 BORDER=0 ALIGN=TOP SRC="+i+".gif WIDTH="+
parseInt(g.hscale)+" HEIGHT="+
parseInt(-1*g.vscale*g.rows[i][j]);
str += " ALT=\"";
if(g.legends && g.legends[i]) str += g.legends[i]+": ";
str += (g.rows[i][j]+g.offset);
if(g.dates) str += ", "+g.dates[j];
str += "\" >";
} else
str += "<IMG SRC=\"clear.gif\" ALIGN=TOP BORDER=0 WIDTH="+parseInt(g.hscale)+
" HEIGHT=5>";
str += "</TD>\n<TD VALIGN=TOP";
if(g.bgColor) str += " BGCOLOR=\""+g.bgColor+"\"";
str += ">";
}
str += "<IMG SRC=\"clear.gif\" ALIGN=TOP WIDTH=1 BORDER=0 HEIGHT=5>";
}
str += "</TD>\n";
if(g.legends && g.posMax == 0) {
str += "<TD WIDTH=5 NOWRAP ROWSPAN=2></TD><TD>";
str += g.writeLegend();
str += "</TD>\n";
}
}
str += "</TD></TR>\n";
if(g.xLabel) {
str += "<TR>\n";
if(g.scale) str += "<TD COLSPAN=3></TD>\n";
if(g.yLabel) str += "<TD></TD>\n";
str += "<TH COLSPAN="+g.c+" HEIGHT=25 VALIGN=BOTTOM><FONT FACE='Arial,Helvetica' SIZE=-1>";
str += g.xLabel;
str += "</FONT></TH></TR>\n";
}
str += "</TABLE>\n";
doc.write(str); 
}
function _setXScaleGraph(s, skip, inc) {
this.xScale = true;
this.s = s || 0;
this.skip = skip || 1;
this.inc = inc || 1;
}
function _setXScaleValuesGraph() {
this.xScale = true;
this.s = 0;
this.skip = 1;
this.inc = 1;
this.dates = new Array();
for(var i = 0; i < arguments.length; i++)
this.dates[this.dates.length] = arguments[i];
}
function _setStartTimeGraph(hour, min, skip, inc) {
this.xScale = true;
this.sTime = new Date(0, 0, 0, hour, min);
this.skip = skip || 1;
this.inc = inc || 1;
}
function _setStartDateGraph(month, day, year, skip, inc) {
this.xScale = true;
this.sDate = new Date(year, month-1, day);
this.skip = skip || 1;
this.inc = inc || skip || 1;
this.showDate = true;
}
function _setDatesArrayGraph(g) {
if(g.dates) return;
g.dates = new Array();
for(var i = 0; i < g.rows[0].length; i++) {
var dateStr = "";
if(g.sDate) {
if(g.showDay) {
eval('switch(g.sDate.getDay()) {'+
'case 0: dateStr += "Sun"; break;'+
'case 1: dateStr += "Mon"; break;'+
'case 2: dateStr += "Tue"; break;'+
'case 3: dateStr += "Wed"; break;'+
'case 4: dateStr += "Thu"; break;'+
'case 5: dateStr += "Fri"; break;'+
'case 6: dateStr += "Sat"; break;'+
'}');
dateStr += " ";
}
if(g.longDate && g.showDate) {
dateStr += g.sDate.getDate()+"-";
eval('switch(g.sDate.getMonth()) {'+
'case 0: dateStr += "Jan"; break;'+
'case 1: dateStr += "Feb"; break;'+
'case 2: dateStr += "Mar"; break;'+
'case 3: dateStr += "Apr"; break;'+
'case 4: dateStr += "May"; break;'+
'case 5: dateStr += "Jun"; break;'+
'case 6: dateStr += "Jul"; break;'+
'case 7: dateStr += "Aug"; break;'+
'case 8: dateStr += "Sep"; break;'+
'case 9: dateStr += "Oct"; break;'+
'case 10: dateStr += "Nov"; break;'+
'case 11: dateStr += "Dec"; break;'+
'}');
} else if(g.showDate) dateStr += (g.sDate.getMonth()+1)+"/"+g.sDate.getDate();
if(g.showYear && g.showDate) {
if(g.longDate) dateStr += "-";
else dateStr += "/";
}
if(g.showYear) {
if(g.longYear) dateStr += g.sDate.getFullYear();
else dateStr += (g.sDate.getFullYear()%100);
}
g.sDate.setDate(g.sDate.getDate()+ g.inc);
} else if(g.sTime) {
var hrs = g.sTime.getHours();
if(!g.armyTime) {
var pm = false;
if(hrs == 0) { hrs = 12; }
else if(hrs >= 12) { if(hrs > 12) hrs -= 12; pm = true; }
} else 
if(hrs < 10) hrs = "0" + hrs;
dateStr = hrs + ":";
var min = g.sTime.getMinutes();
if(min < 10) min = "0" + min;
dateStr += min;
if(!g.armyTime) { !pm ? dateStr += "am" : dateStr += "pm" ; }
g.sTime.setMinutes(g.sTime.getMinutes()+ g.inc); 
} else dateStr = g.s+i*g.inc;
g.dates[i] = dateStr;
}
}
function _writeXScaleGraph(g) {
var st = "";
if(!g.c) g.c = g.rows[0].length*2-1;
st += "<TR>\n";
if(g.scale) st += "<TD COLSPAN=2></TD>\n";
if(g.yLabel) st += "<TD></TD>\n";
st += "<TD VALIGN=TOP COLSPAN="+(g.c+1)+">";
st += "<IMG SRC=black.gif HEIGHT=10 WIDTH=1>";
st += "<IMG SRC=clear.gif HEIGHT=1 WIDTH=1>";
var n = g.rows[0].length;
var mult = g.rows.length;
if(g.stacked || g.relative) mult = 1;
for(var i = 0; i < n; i++) {
st += "<IMG SRC=clear.gif HEIGHT=1 WIDTH="+(g.hscale*mult)+">";
if((i+1) % g.skip)
st += "<IMG SRC=clear.gif HEIGHT=10 WIDTH=1>";
else
st += "<IMG SRC=black.gif HEIGHT=10 WIDTH=1>";
}
st += "</TD></TR><TR>\n";
if(g.scale) st += "<TD COLSPAN=3></TD>\n";
if(g.yLabel) st += "<TD></TD>\n";
var cspan = g.rows.length;
if(g.stacked || g.relative) cspan = 2;
cspan *= g.skip;
if(g.sDate || g.sTime) _setDatesArrayGraph(g);
var t = 0;
for(var i = 0; i < Math.floor(g.rows[0].length/g.skip); i++) {
st += "<TD VALIGN=TOP";
st += " COLSPAN="+cspan; t += cspan;
st += "><FONT FACE='Arial,Helvetica' SIZE=-3><I>";
st += g.dates[i*g.skip] || "";
st += "</I></FONT></TD>\n";
}
var len = g.rows[0].length;
if(!g.stacked) len *= g.rows.length;
if(i < Math.ceil(g.rows[0].length/g.skip)) {
st += "<TD VALIGN=TOP";
st += " COLSPAN="+(len-t);
st += "><FONT FACE='Arial,Helvetica' SIZE=-3><I>";
st += g.dates[i*g.skip];
st += "</I></FONT></TD>\n";
}
st += "</TR>\n"; 
return st;
}
function _writeNegScaleGraph(g, min, max) {
var h = Math.ceil(g.height/(g.posMax-g.negMax)*g.scale);
var p = -1*g.negMax/(g.posMax-g.negMax);
var n = Math.floor(g.height*p/h);
var st = "";
if(h < 15) {
if(!g.posMax)
alert("Warning! Scale is too small! Please make\nthe scale larger or make the graph taller.");
st += "<TD></TD><TD></TD><TD></TD>\n"
return st;
}
st += "<TD VALIGN=TOP ALIGN=RIGHT>";
var H = h - 3;
for(var i = 0; i < n; i++) {
st += "<FONT FACE=Arial,Helvetica SIZE=-3><I>"+(g.scale*-1*(i+1)+g.offset)+"</I></FONT>";
st += "<IMG SRC=clear.gif WIDTH=1 HEIGHT="+H+"><BR>\n";
}
st += "</TD>\n";
st += "<TD VALIGN=TOP>";
for(var i = 0; i < n; i++) {
st += "<IMG SRC=clear.gif WIDTH=1 HEIGHT="+(h-1)+"><BR>\n";
st += "<IMG SRC=black.gif WIDTH=6 HEIGHT=1><BR>\n";
}
st += "</TD>\n";
st += "<TD VALIGN=TOP>";
st += "<IMG SRC=black.gif WIDTH=1 HEIGHT="+(g.height*p)+">";
st += "<IMG SRC=clear.gif WIDTH=1 HEIGHT="+(g.height*p)+">";
st += "</TD>\n"
return st;
}
function _writeScaleGraph(g, min, max) {
var h;
var p = g.posMax/(g.posMax-g.negMax);
h = Math.ceil(g.height/(g.posMax-g.negMax)*g.scale);
var n = Math.floor(g.height*p/h);
var st = "";
if(h < 15) {
alert("Warning! Scale is too small! Please make\nthe scale larger or make the graph taller.");
st += "<TD ROWSPAN=2></TD><TD ROWSPAN=2></TD><TD></TD>\n"
return st;
}
st += "<TD VALIGN=BOTTOM ROWSPAN=2 ALIGN=RIGHT>";
var H = h - 3;
for(var i = 0; i < n; i++) {
st += "<FONT FACE=Arial,Helvetica SIZE=-3><I>"+(g.scale*(n-1)-g.scale*i+g.offset);
if(g.relative) st += "%";
st += "</I></FONT>";
st += "<IMG SRC=clear.gif WIDTH=1 HEIGHT="+H+"><BR>\n";
}
st += "</TD>\n";
st += "<TD VALIGN=BOTTOM ROWSPAN=2>";
for(var i = 0; i < n; i++) {
st += "<IMG SRC=black.gif WIDTH=6 HEIGHT=1><BR>\n";
st += "<IMG SRC=clear.gif WIDTH=1 HEIGHT="+(h-1)+"><BR>\n";
}
st += "<IMG SRC=black.gif WIDTH=6 HEIGHT=1><BR>\n";
st += "</TD>\n";
st += "<TD VALIGN=BOTTOM>";
st += "<IMG SRC=black.gif WIDTH=1 HEIGHT="+(g.height*p)+">";
st += "<IMG SRC=clear.gif WIDTH=1 HEIGHT="+(g.height*p)+">";
st += "</TD>\n"
return st;
}
function _buildStackGraph(g) {
if(!g.c) g.c = g.rows[0].length*2-1;
var str = "";
str += "<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>\n";
if(g.title) {
str += "<TR>\n";
if(g.scale) str += "<TD COLSPAN=3></TD>\n";
if(g.yLabel) str += "<TD></TD>\n";
str += "<TH VALIGN=TOP HEIGHT=30 COLSPAN="+(g.c)+">";
str += "<FONT FACE='Arial,Helvetica' SIZE=-1>";
str += g.title;
str += "</FONT></TH></TR>\n";
}
if(g.yLabel) {
g.yLabel = g.yLabel.split("");
g.yLabel = g.yLabel.join("<BR>\n");
str += "<TR>\n";
var rspan = 2; if(g.negMax && g.posMax) rspan++;
str += "<TH ROWSPAN="+rspan+" ALIGN=LEFT NOWRAP WIDTH=20>";
str += "<FONT FACE='Arial,Helvetica' SIZE=-1>"+g.yLabel+"</FONT></TH>\n";
}
if(g.posMax > 0) {
if(!g.yLabel) str += "<TR>\n";
if(g.scale) str += _writeScaleGraph(g, 0, g.posMax);
for(var j = 0; j < g.rows[0].length; j++) {
str += "<TD VALIGN=BOTTOM";
if(g.bgColor) str += " BGCOLOR=\""+g.bgColor+"\"";
str += ">";
var k = 0, y = 0, drawn = false;
for(var i = 1; i < g.rows.length; i++)
if(parseInt(g.vscale*g.rows[i][j]) > 0)
k += parseInt(g.vscale*g.rows[i][j]);
if(g.rows.length > 0 && g.relative && (g.height > k)) {
str += "<IMG SRC=0.gif WIDTH="+parseInt(g.hscale)+" HEIGHT="+(g.height-k)+" ";
str += "ALT=\"";
if(g.legends && g.legends[0]) str += g.legends[0]+": ";
str += Math.round((g.height-k)/g.vscale*10)/10+"%";
if(g.dates) str += ", "+g.dates[j];
str += "\" ><BR>\n";
y++;
drawn = true;
}
for(var i = y; i < g.rows.length; i++) {
if(parseInt(g.vscale*g.rows[i][j]) > 0) {
str += "<IMG SRC="+i+".gif WIDTH="+parseInt(g.hscale)+" HEIGHT="+
parseInt(g.vscale*g.rows[i][j])+" ";
str += "ALT=\"";
if(g.legends && g.legends[i]) str += g.legends[i]+": ";
str += g.rows[i][j];
if(g.relative) str += "%";
if(g.dates) str += ", "+g.dates[j];
str += "\" ><BR>\n";
drawn = true;
}
}
if(!drawn) str += "<IMG SRC=clear.gif WIDTH="+parseInt(g.hscale)+" HEIGHT=1>";
str += "</TD>\n";
str += "<TD";
if(g.bgColor) str += " BGCOLOR=\""+g.bgColor+"\"";
str += "><IMG SRC=clear.gif WIDTH=1 HEIGHT=5></TD>\n";
}
}
if(g.legends && g.posMax != 0) {
str += "<TD WIDTH=5 NOWRAP ROWSPAN=3></TD>\n<TD ROWSPAN=3>";
str += g.writeLegend();
str += "</TD>\n";
}
if(g.scale || g.xScale) {
str += "</TR><TR>\n<TD BGCOLOR=#000000 COLSPAN="+(g.rows[0].length*2);
str += "><IMG SRC=black.gif HEIGHT=1 WIDTH=";
str += parseInt(g.rows[0].length*g.hscale)+" ></TD></TR>\n";
}
if(g.xScale && !g.negMax) {
str += _writeXScaleGraph(g);
}
if(g.negMax < 0) {
if(g.posMax != 0) str += "</TR>\n";
str += "<TR>\n";
if(g.scale) str += _writeNegScaleGraph(g, g.negMax, 0);
for(var j = 0; j < g.rows[0].length; j++) {
str += "<TD VALIGN=TOP";
if(g.bgColor) str += " BGCOLOR=\""+g.bgColor+"\"";
str += ">";
var drawn = false;
for(var i = 0; i < g.rows.length; i++) {
if(parseInt(g.vscale*g.rows[i][j]) < 0) {
str += "<IMG VSPACE=0 HSPACE=0 BORDER=0 ALIGN=TOP SRC="+i+".gif WIDTH="+
parseInt(g.hscale)+" HEIGHT="+
parseInt(-1*g.vscale*g.rows[i][j])+" ";
str += "ALT=\"";
if(g.legends && g.legends[i]) str += g.legends[i]+": ";
str += g.rows[i][j];
if(g.relative) str += "%";
if(g.dates) str += ", "+g.dates[j];
str += "\" ><BR>\n"; 
drawn = true;
}
}
if(!drawn) str += "<IMG SRC=clear.gif WIDTH="+parseInt(g.hscale)+" HEIGHT=1>";
str += "</TD>\n";
str += "<TD";
if(g.bgColor) str += " BGCOLOR=\""+g.bgColor+"\"";
str += "><IMG SRC=clear.gif WIDTH=1 HEIGHT=5></TD>";
}
if(g.legends && g.posMax == 0) {
str += "<TD WIDTH=5 NOWRAP ROWSPAN=2></TD>\n<TD>";
str += g.writeLegend();
str += "</TD>\n";
}
}
str += "</TD></TR>\n";
if(g.xLabel) {
str += "<TR>\n";
if(g.scale) str += "<TD COLSPAN=3></TD>\n";
if(g.yLabel) str += "<TD></TD>\n";
str += "<TH COLSPAN="+g.c+" HEIGHT=25 VALIGN=BOTTOM><FONT FACE='Arial,Helvetica' SIZE=-1>";
str += g.xLabel;
str += "</FONT></TH></TR>\n";
}
str += "</TABLE>\n";
doc.write(str); 
}
function _adjustOffsetGraph(g) {
if(g.relative) return;
for(var i = 0; i < g.rows.length; i++)
for(var j = 0; j < g.rows[i].length; j++)
g.rows[i][j] -= g.offset;
}
function _buildGraph(d) {
doc = d || document;
if(!this.rows) return;
if(this.rows.length == 0) {
doc.write("<TABLE><TR><TD><TT>[empty graph]</TT></TD></TR></TABLE>\n");
return;
}
_adjustOffsetGraph(this);
if(this.xScale) _setDatesArrayGraph(this);
if(this.relative) {
_relRescaleGraph(this);
_buildStackGraph(this, doc);
return;
}
if(this.stacked) {
_stackRescaleGraph(this);
_buildStackGraph(this, doc);
return;
}
_rescaleGraph(this);
_buildRegGraph(this, doc);
}

function showGraphAlly()
{
var g = new Graph(370,275);

document.write("<a href='Allcdrates.htm'>Show Raw Data</a>");
g.addRow(4.351,4.757,4.864,5.062,5.119,5.316);
//* g.addRow(4.673,5.660,6.609,6.052,6.407,5.935,5.791,7.182,5.181,3.778,2.507,3.025,4.446,5.416);
//* g.addRow(5.139,6.026,7.056,6.286,6.453,6.078,5.909,7.339,5.213,4.244,3.098,3.438,4.498,5.524);
//* g.setLegend("1Y","2Y","3Y");
g.dLabel = true;
g.scale = .5;
g.setXScaleValues("6mo","1Y","2Y","3Y","4Y","5Y");
g.title = "Average Rates by Term; All Years";
g.yLabel = "% APR";
g.build();
}

function showGraph6m(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';
if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}
var g = new Graph(370,275);
a.write("<a href='6mcdrates.htm'>Show Raw Data</a>");
g.addRow(3.780,5.050,6.239,5.742,5.928,5.641,5.598,6.854,4.344,2.546,1.683,2.164,3.740,5.280,5.364,3.684,4.401);
g.scale = .5;
g.setXScaleValues("1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","Avg");
g.title = "6mo Average Rates by Year";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);

}

function showGraph1y(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';

if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}
var g = new Graph(370,275);

a.write("<a href='1ycdrates.htm'>Show Raw Data</a>");
g.addRow(4.033,5.223,6.311,5.889,6.136,5.728,5.871,7.091,4.586,2.956,2.054,2.674,4.188,5.404,5.443,3.933,4.775);
g.scale = .5;
g.setXScaleValues("1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","Avg");
g.title = "1Y Average Rates by Year";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);
}

function showGraph2y(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';

if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}
var g = new Graph(370,275);
a.write("<a href='2ycdrates.htm'>Show Raw Data</a>");
g.addRow(4.673,5.660,6.609,6.052,6.407,5.935,5.791,7.182,5.181,3.778,2.507,3.025,4.457,5.436,5.408,4.013,4.895);
g.scale = .5;
g.setXScaleValues("1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","Avg");
g.title = "2Y Average Rates by Year";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);
}

function showGraph3y(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';

if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}

var g = new Graph(370,275);
a.write("<a href='3ycdrates.htm'>Show Raw Data</a>");
g.addRow(5.139,6.026,7.056,6.286,6.453,6.078,5.909,7.339,5.213,4.244,3.098,3.429,4.517,5.535,5.553,4.099,5.093);
g.scale = .5;
g.setXScaleValues("1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","Avg");
g.title = "3Y Average Rates by Year";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);
}

function showGraph4y(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';
if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}

var g = new Graph(370,275);
a.write("<a href='4ycdrates.htm'>Show Raw Data</a>");
g.addRow(5.525,7.077,7.019,6.299,6.625,5.940,5.950,7.336,5.451,4.532,3.417,4.040,4.805,5.591,5.489,4.311,5.207);
g.scale = .5;
g.setXScaleValues("1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","Avg");
g.title = "4Y Average Rates by Year";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);
}

function showGraph5y(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';
if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}

var g = new Graph(370,275);
a.write("<a href='5ycdrates.htm'>Show Raw Data</a>");
g.addRow(5.553,6.783,7.670,6.674,6.761,6.189,6.360,7.595,5.562,4.989,3.8550,4.415,4.957,5.705,5.526,4.432,5.405);
g.scale = .5;
g.setXScaleValues("1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","Avg");
g.title = "5Y Average Rates by Year";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);
}


function showGraph1993(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';

if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}
var g = new Graph(370,275);
a.write("<a href='1993cdrates.htm'>Show Raw Data</a>");

g.addRow(3.780,4.033,4.673,5.139,5.525,5.553);
g.scale = .5;
g.setXScaleValues("6-Month","1-Year","2-Year","3-Year","4-Year","5-Year");
g.title = "1993 Average Rates by Term";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);

}

function showGraph1994(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';

if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}
var g = new Graph(370,275);
a.write("<a href='1994cdrates.htm'>Show Raw Data</a>");

g.addRow(5.050,5.223,5.660,6.026,7.077,6.783);
g.scale = .5;
g.setXScaleValues("6-Month","1-Year","2-Year","3-Year","4-Year","5-Year");
g.title = "1994 Average Rates by Term";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);

}

function showGraph2005(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';

if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}
var g = new Graph(370,275);
a.write("<a href='2005cdrates.htm'>Show Raw Data</a>");

g.addRow(3.740,4.188,4.458,4.517,4.805,4.957);
g.scale = .5;
g.setXScaleValues("6-Month","1-Year","2-Year","3-Year","4-Year","5-Year");
g.title = "2005 Average Rates by Term";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);

}

function showGraph2006(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';

if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}
var g = new Graph(370,275);
a.write("<a href='2006cdrates.htm'>Show Raw Data</a>");

g.addRow(5.280,5.404,5.436,5.547,5.591,5.707);
g.scale = .5;
g.setXScaleValues("6-Month","1-Year","2-Year","3-Year","4-Year","5-Year");
g.title = "2006 Average Rates by Term";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);

}

function showGraph2007(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';

if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}
var g = new Graph(370,275);
a.write("<a href='2007cdrates.htm'>Show Raw Data</a>");

g.addRow(5.364,5.443,5.408,5.553,5.489,5.523);
g.scale = .5;
g.setXScaleValues("6-Month","1-Year","2-Year","3-Year","4-Year","5-Year");
g.title = "2007 Average Rates by Term";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);

}

function showGraph2008(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';

if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}
var g = new Graph(370,275);
a.write("<a href='2008cdrates.htm'>Show Raw Data</a>");

g.addRow(3.684,3.933,4.013,4.099,4.311,4.432);
g.scale = .5;
g.setXScaleValues("6-Month","1-Year","2-Year","3-Year","4-Year","5-Year");
g.title = "2008 Average Rates by Term";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);

}
function showGraphAlly(ifn)
{
if (typeof ifn == 'undefined' ) ifn = '';

if (ifn != '') {
var a = window.frames[ifn].document;
}
else {
var a = this.document;
}
var g = new Graph(370,275);
a.write("<a href='avgcdrates.htm'>Show Raw Data</a>");

g.addRow(4.401,4.808,4.895,5.093,5.207,5.405);
g.scale = .5;
g.setXScaleValues("6-Month","1-Year","2-Year","3-Year","4-Year","5-Year");
g.title = "Average Rates by Term: 1993 - 2007";
g.yLabel = "% APR";
g.dLabel = true;
g.build(a);

}