// This javascript is used in assisting the page display. For JS that 
// assists with calculations, see calculations.js.


//Loads the page elements
function initPageElements() {
    simData.initialized = true; //simple data always stands alone
    //annual expenses
    layout[0] = new PlotKit.Layout("bar", null);
    renderer[0] = new SweetCanvasRenderer($('annual'), layout[0], {"colorScheme": [Color.zirousOrangeColor(), Color.zirousBlueColor()]});

    //annual expenses, cumalitive
    layout[1] = new PlotKit.Layout("lineonly", {});
    renderer[1] = new SweetCanvasRenderer($('annualCumalitive'), layout[1], {"colorScheme": [Color.zirousOrangeColor(), Color.zirousBlueColor()],
                                                                             "shouldFill": false,
                                                                             "shouldStroke": true,
                                                                             "strokeColor":  null});
    //annual roi
    layout[2] = new PlotKit.Layout("line", {"yOriginIsZero":false, "yTickPrecision":2});
    renderer[2] = new SweetCanvasRenderer($('annualRoi'), layout[2], {"colorScheme": [Color.zirousOrangeColor(), Color.zirousBlueColor()]});

    //fetchObjValues();
    loadSliders();
    showView('simpleView'); //<-- calls showSliders()
    
    //display(hidden) assumptions text:
    document.getElementById('assumptionsText').innerHTML = asmpText;
    inData.initAnnualMaintenance(currentImplementation);
    //get color of lines from renderer
    /*
    document.getElementById("legend11").style.background=(Color.fromRGBString(""+renderer[0].options.colorScheme[0])).toHexString();
    document.getElementById("legend12").style.background=(Color.fromRGBString(""+renderer[0].options.colorScheme[1])).toHexString();
    document.getElementById("legend21").style.background=(Color.fromRGBString(""+renderer[1].options.colorScheme[0])).toHexString();
    document.getElementById("legend22").style.background=(Color.fromRGBString(""+renderer[1].options.colorScheme[1])).toHexString();*/
  }

// Called when chart's values change. Refreashes charts
  function chartReload() {
    //annual expenses
    var data1 = inData.getDatapointsArray(currentImplementation,false,false);
    var data2 = inData.getDatapointsArray(currentImplementation,true,false);
    var money = MochiKit.Format.numberFormatter('$###,###');
    inData.initAnnualMaintenance(currentImplementation);
    var sum = 0;
    for(var num in inData.annualMaint){
    	sum += parseInt(inData.annualMaint[num]);
    }
    document.getElementById('totalMaintenance').innerHTML =money(sum);
    var tmp = [];
    layout[0].addDataset("data", data1);
    layout[0].addDataset("data2", data2);
    
    for(var k=0; k<data1.length; k++){
      if(k==0){
        tmp[0] = "";
        tmp[1] = "";
      }
      tmp[0] += "<td>"+money((data1[k])[1])+"</td>";
      tmp[1] += "<td>"+money((data2[k])[1])+"</td>";
    }
    
    var tdSize = (""+(data1[4])[1]).length*10;

    /*ttAnnualExpGraphData ="Current Expense: Y1-"+(data1[0])[1]+", Y2-"+(data1[1])[1]+", Y3-"+(data1[2])[1]+", Y4-"+(data1[3])[1]+", Y5-"+(data1[4])[1]+"<br/>"+
                          "SOA Expense: Y1-"+(data2[0])[1]+", Y2-"+(data2[1])[1]+", Y3-"+(data2[2])[1]+", Y4"+(data2[3])[1]+", Y5-"+(data2[4])[1];*/
    ttAnnualExpGraphData ="<table border='0' cellspacing='0' style='text-align:center;'>"+
                          "<tr><td>&nbsp;</td><td width='"+tdSize+"px'>Y1</td><td width='"+tdSize+"px'>Y2</td><td width='"+tdSize+"px'>Y3</td><td width='"+tdSize+"px'>Y4</td><td width='"+tdSize+"px'>Y5</td></tr>"+
                          "<tr><td style='text-align:right'>Current Expense:</td>"+tmp[0]+"</tr>"+
                          "<tr><td style='text-align:right'>SOA Expense:</td>"+tmp[1]+"</tr></table>";
    document.getElementById('annualSrvcData').innerHTML = 
      "<table border='1' cellspacing='0' class='dataTable printViewOnly'>"+
      "  <tr><td>Year</td><td width='"+tdSize+"px'>Y1</td><td width='"+tdSize+"px'>Y2</td><td width='"+tdSize+"px'>Y3</td><td width='"+tdSize+"px'>Y4</td><td width='"+tdSize+"px'>Y5</td></tr>"+
      "  <tr><td>Current</td>"+tmp[0]+"</tr>"+
      "  <tr><td>SOA</td>"+tmp[1]+"</tr>"+
      "</table>";

    //annual expenses, cumulative
    data1 = inData.getDatapointsArray(currentImplementation,false,true);
    data2 = inData.getDatapointsArray(currentImplementation,true,true);
    layout[1].addDataset("data", data1);
    layout[1].addDataset("data2", data2);
    
    for(var k=0; k<data1.length; k++){
      if(k==0){
        tmp[0] = "";
        tmp[1] = "";
      }
      tmp[0] += "<td>"+money((data1[k])[1])+"</td>";
      tmp[1] += "<td>"+money((data2[k])[1])+"</td>";
    }

    tdSize = (""+(data1[4])[1]).length*10;
    /*ttCumultExpGraphData ="Current Cumulative Expenses: Y1-"+(data1[0])[1]+", Y2-"+(data1[1])[1]+", Y3-"+(data1[2])[1]+", Y4-"+(data1[3])[1]+", Y5-"+(data1[4])[1]+"<br/>"+
                          "SOA Cumulative Expenses: Y1-"+(data2[0])[1]+", Y2-"+(data2[1])[1]+", Y3-"+(data2[2])[1]+", Y4"+(data2[3])[1]+", Y5-"+(data2[4])[1];*/
    ttCumultExpGraphData ="<table border='0' cellspacing='0' style='text-align:center;'>"+
                          "<tr><td>&nbsp;</td><td width='"+tdSize+"px'>Y1</td><td width='"+tdSize+"px'>Y2</td><td width='"+tdSize+"px'>Y3</td><td width='"+tdSize+"px'>Y4</td><td width='"+tdSize+"px'>Y5</td></tr>"+
                          "<tr><td style='text-align:right'>Current Cumulative Expenses:</td>"+tmp[0]+"</tr>"+
                          "<tr><td style='text-align:right'>SOA Cumulative Expenses:</td>"+tmp[1]+"</tr></table>";
    document.getElementById('cumlExpnsData').innerHTML = 
      "<div class='fiveHundredPxContainer'>"+
      "<table border='1' cellspacing='0' cellpadding='0' class='dataTable printViewOnly'>"+
      "  <tr><td width='50px;'>Year</td><td width='"+tdSize+"px'>Y1</td><td width='"+tdSize+"px'>Y2</td><td width='"+tdSize+"px'>Y3</td><td width='"+tdSize+"px'>Y4</td><td width='"+tdSize+"px'>Y5</td></tr>"+
      "  <tr><td>Current</td>"+tmp[0]+"</tr>"+
      "  <tr><td>SOA</td>"+tmp[1]+"</tr>"+
      "</table></div>";

    //tmpss used in recalculations
    tmp[0] = (data1[4])[1]; //total current
    tmp[1] = (data2[4])[1]; //total SOA

    //annual returns
    data1 = inData.getROIDatapoints(currentImplementation);
    layout[2].addDataset("data", data1);
    
    tdSize = (""+(data1[4])[1]).length*10;
    /*ttRoiGraphData = "Total ROI: Y1-"+(data1[0])[1]+", Y2-"+(data1[1])[1]+", Y3-"+(data1[2])[1]+", Y4-"+(data1[3])[1]+", Y5-"+(data1[4])[1];*/
    ttRoiGraphData ="<table border='0' cellspacing='0' style='text-align:center;'>"+
                    "<tr><td>&nbsp;</td><td width='"+tdSize+"px'>Y1</td><td width='"+tdSize+"px'>Y2</td><td width='"+tdSize+"px'>Y3</td><td width='"+tdSize+"px'>Y4</td><td width='"+tdSize+"px'>Y5</td></tr>"+
                    "<tr><td style='text-align:right'>Total ROI:</td><td>"+(data1[0])[1]+"</td><td>"+(data1[1])[1]+"</td><td>"+(data1[2])[1]+"</td><td>"+(data1[3])[1]+"</td><td>"+(data1[4])[1]+"</td></tr></table>";
    document.getElementById('roiData').innerHTML = 
      "<table border='1' cellspacing='0' class='dataTable printViewOnly'>"+
      "  <tr><td>Year</td><td width='"+tdSize+"px'>Y1</td><td width='"+tdSize+"px'>Y2</td><td width='"+tdSize+"px'>Y3</td><td width='"+tdSize+"px'>Y4</td><td width='"+tdSize+"px'>Y5</td></tr>"+
      "  <tr><td>ROI</td><td>"+(data1[0])[1]+"</td><td>"+(data1[1])[1]+"</td><td>"+(data1[2])[1]+"</td><td>"+(data1[3])[1]+"</td><td>"+(data1[4])[1]+"</td></tr>"+
      "</table>";

    //recalculations
    setCalculatedValues(tmp[0],tmp[1],inData.getROI());

    // update
    var i;
    for (i=0; i<3; i++){
      layout[i].evaluate();
      renderer[i].clear();
      renderer[i].render();
    }

  }
  
  //Shows selected sliders depanding on simple or adavaced view. If advanced depending on simple complex moderate selection.  
  function showSliders() {
    //re-show from calculation hiding
    document.getElementById('yearsDiv').style.display = '';
    document.getElementById('loadingMessage').style.display = 'none';
    
    if(viewIsSimple){
      currentImplementation = "2";
      document.getElementById('simpleIntTime').style.display = 'none';
	    document.getElementById('simpleSlidersDiv').style.display = 'none';
	    //document.getElementById('moderateIntTime').style.display = 'none';
      document.getElementById('moderateSlidersDiv').style.display = 'none';
      document.getElementById('complexIntTime').style.display = 'none';
	  	document.getElementById('complexSlidersDiv').style.display = 'none';
	  	document.getElementById('totalSlidersDiv').style.display = '';
	  	for(var p=15; p<20; p++) slider[p].recalculate();
	  	chartReload();
      return true; //or break?
    }else{
      document.getElementById('totalSlidersDiv').style.display = 'none';
    }
    
    var num = 0;
	  if (document.getElementById('simple').checked) num +=1;
	  if (document.getElementById('moderate').checked) num +=10;
	  if (document.getElementById('complex').checked) num +=100;

	  if(num != 0) document.getElementById('yearsDiv').style.display = '';

	  switch (num){
	  case 1: //Simple
	  	currentImplementation = "1"; 
	  	document.getElementById('simpleIntTime').style.display = '';
	    document.getElementById('simpleSlidersDiv').style.display = '';
	    document.getElementById('moderateIntTime').style.display = 'none';
	      document.getElementById('moderateSlidersDiv').style.display = 'none';
	      document.getElementById('complexIntTime').style.display = 'none';
	  	document.getElementById('complexSlidersDiv').style.display = 'none';
	  	for(var p=0; p<5; p++) slider[p].recalculate();
	  	break;
	  case 10: //Moderate
	  	currentImplementation = "2"; 
	  	document.getElementById('simpleIntTime').style.display = 'none';
	  	document.getElementById('simpleSlidersDiv').style.display = 'none';
	  	document.getElementById('moderateIntTime').style.display = '';
      document.getElementById('moderateSlidersDiv').style.display = '';
      document.getElementById('complexIntTime').style.display = 'none';
	  	document.getElementById('complexSlidersDiv').style.display = 'none';
	  	for(var p=5; p<10; p++) slider[p].recalculate();
	  	break;
	  case 100: //Complex
	  	currentImplementation = "3"; 
	  	document.getElementById('simpleIntTime').style.display = 'none';
	  	document.getElementById('simpleSlidersDiv').style.display = 'none';
	  	document.getElementById('moderateIntTime').style.display = 'none';
      document.getElementById('moderateSlidersDiv').style.display = 'none';
      document.getElementById('complexIntTime').style.display = '';
	  	document.getElementById('complexSlidersDiv').style.display = '';
	  	for(var p=10; p<15; p++) slider[p].recalculate();
	  	break;
	  case 11: //Simple-Moderate
	  	currentImplementation = "4";
	  	document.getElementById('simpleIntTime').style.display = '';
	    document.getElementById('simpleSlidersDiv').style.display = '';
	    document.getElementById('moderateIntTime').style.display = '';
      document.getElementById('moderateSlidersDiv').style.display = '';
      document.getElementById('complexIntTime').style.display = 'none';
	  	document.getElementById('complexSlidersDiv').style.display = 'none';
	  	for(var p=0; p<10; p++) slider[p].recalculate();
	  	break;
	  case 101: //Simple-Complex
      currentImplementation = "5"; 
      document.getElementById('simpleIntTime').style.display = '';
	    document.getElementById('simpleSlidersDiv').style.display = '';
	    document.getElementById('moderateIntTime').style.display = 'none';
      document.getElementById('moderateSlidersDiv').style.display = 'none';
      document.getElementById('complexIntTime').style.display = '';
	  	document.getElementById('complexSlidersDiv').style.display = '';
	    for(var p=0; p<15; p++) {
        if(p>=5 && p<10) p=10;
        slider[p].recalculate();
      }
	  	break;
	  case 110: //Moderate - Complex
	    currentImplementation = "6";
	    document.getElementById('simpleIntTime').style.display = 'none';
	  	document.getElementById('simpleSlidersDiv').style.display = 'none';
	  	document.getElementById('moderateIntTime').style.display = '';
      document.getElementById('moderateSlidersDiv').style.display = '';
      document.getElementById('complexIntTime').style.display = '';
	  	document.getElementById('complexSlidersDiv').style.display = '';
	  	for(var p=5; p<15; p++) slider[p].recalculate();
	  	break;
	  case 111: //Simple - Moderate - Complex
	    currentImplementation = "7";
	    document.getElementById('simpleIntTime').style.display = '';
	    document.getElementById('simpleSlidersDiv').style.display = '';
	    document.getElementById('moderateIntTime').style.display = '';
      document.getElementById('moderateSlidersDiv').style.display = '';
      document.getElementById('complexIntTime').style.display = '';
	  	document.getElementById('complexSlidersDiv').style.display = '';
	  	for(var p=0; p<15; p++) slider[p].recalculate();
	  	break;
	  default : //None
      currentImplementation = "0";
      		document.getElementById('simpleIntTime').style.display = 'none';
	  	document.getElementById('simpleSlidersDiv').style.display = 'none';
	  	document.getElementById('moderateIntTime').style.display = 'none';
	      	document.getElementById('moderateSlidersDiv').style.display = 'none';
	      	document.getElementById('complexIntTime').style.display = 'none';
	  	document.getElementById('complexSlidersDiv').style.display = 'none';
	  	document.getElementById('yearsDiv').style.display = 'none';
	 }
	 chartReload();
  }
  
	/* Gets the user input values (not sliders)*/
	function fetchObjValues(){
	    document.getElementById('simpleIntTime').value = inData.simpleIntTime;
	    document.getElementById('moderateIntTime').value = inData.moderateIntTime;
	    document.getElementById('complexIntTime').value = inData.complexIntTime;
	    document.getElementById('develWage').value = inData.develWage;
	    //document.getElementById('annualMaintCost').value = inData.annualMaintCost;
	    document.getElementById('hwmwCost').value = inData.hwmwCost;
	    document.getElementById('consultCost').value = inData.consultCost;
	    document.getElementById('trainCost').value = inData.trainCost;
	}
	
	/* Sets formatted values in Calculation Results (exp, soaexp, npv, and roi) */
	function setCalculatedValues(exp, soaExp, roi){
	    var tmp;
	    var money = MochiKit.Format.numberFormatter('$###,###');
	    document.getElementById('totalExpense').innerHTML = money(exp);
	    document.getElementById('totalSoaExpense').innerHTML = money(soaExp);
	    document.getElementById('currFutureReturns').innerHTML = money(inData.npv);
	    tmp = MochiKit.Format.twoDigitFloat(roi);
	    document.getElementById('ROI').innerHTML = tmp + " <span style='font-size:90%'>("+MochiKit.Format.percentFormat(tmp-1) + " gain on investment)</span>";
	    //ttRoiValueMsg = MochiKit.Format.percentFormat(tmp-1) + " gain on investment";
	}
	
	/* Sets display for simple or complex view 
	input a: string 'simpleView' for simple view selection otherwise complexview*/
	function showView(a){
	
	hideAllSliders(); //hides the table rows while slider vals are being calculated

	if (a == 'simpleView'){
		viewIsSimple = true;
		inData  = new cloneObject(simData);
		fetchObjValues();
		//document.getElementById('advancedButtonDiv').style.display = '';
		//document.getElementById('simpleButtonDiv').style.display = 'none';
		document.getElementById('viewLink').innerHTML = "<a href=\"#\" onclick=\"simData = new cloneObject(inData);showView('advancedView')\">Advanced View</a>";
		
		document.getElementById('simpleBoxInput').style.display = 'none';
		document.getElementById('hourlabel').style.padding = '0 0 0 0';
		document.getElementById('complexBoxInput').style.display = 'none';
		document.getElementById('moderateIntTime').style.display = '';
		document.getElementById('moderateIntTime').style.margin = '0 0 0 0.6em';
		document.getElementById('moderateIntTime').style.fontSize = '';
		document.getElementById('moderateCheckBox').style.display = 'none';

		document.getElementById('chartOne').style.paddingTop = '0px';
		document.getElementById('chartTwo').style.paddingTop = '0px';
		document.getElementById('chartThree').style.paddingTop = '0px';
		
		//set 'integration time' and 'number of new services' tool tips
		document.getElementById('hourlabel').onmouseover = function (){
                                                        Tip(ttIntegrationTime);
                                                       };
    		document.getElementById('newServicesLabel').onmouseover = function (){
                                                        Tip(ttNumOfServices);
                                                       };
	} else { // complex view
   		document.getElementById('viewLink').innerHTML = "<a href=\"#\" onclick=\"advData = new cloneObject(inData);showView('simpleView')\">Simple View</a>";
		
		document.getElementById('simpleBoxInput').style.display = '';
		document.getElementById('hourlabel').style.padding = '1.2em 0 0 0';
		document.getElementById('complexBoxInput').style.display = '';
		document.getElementById('moderateIntTime').style.display = 'none';
		document.getElementById('moderateIntTime').style.margin = '0 1.5em 0 1.1em';
		document.getElementById('moderateIntTime').style.fontSize = '70%';
		document.getElementById('moderateCheckBox').style.display = '';
		
		document.getElementById('chartOne').style.paddingTop = '1.5em';
		document.getElementById('chartTwo').style.paddingTop = '1.5em';
		document.getElementById('chartThree').style.paddingTop = '1.5em';
		
		//set 'integration time' and 'number of new services' tool tips
		//needs more work with width/line break concerns
		document.getElementById('hourlabel').onmouseover = function (){
		var toolTip = ttIntegrationTime + "<br/><div style='margin-left:3em;'>"+
			      "<b>Simple:</b> "+ ttIntegrationTimeSimple + "<br/>" +
			      "<b>Moderate:</b> "+ ttIntegrationTimeModerate + "<br/>" +
			      "<b>Complex:</b> "+ ttIntegrationTimeComplex + 
			      "</div>";
		Tip(toolTip);
	       };
    		document.getElementById('newServicesLabel').onmouseover = function (){
		var toolTip = ttNumOfServices + "<br/><div style='margin-left:3em;'>"+
			      "<b>Simple:</b> "+ ttNumServicesSimple + "<br/>" +
			      "<b>Moderate:</b> "+ ttNumServicesModerate + "<br/>" +
			      "<b>Complex:</b> "+ ttNumServicesComplex + 
			      "</div>";
		Tip(toolTip);
	       };
		
    if(!advData.initialized || parseInt(simData.moderateIntTime)==0){
      advData.initialized = true;
      //first time viewing advanced
      //copy simple form's valules
      //set simpl and complx integration times
      //set all service counts
      advData  = new cloneObject(simData);
      
      advData.complexIntTime = 1.25*simData.moderateIntTime;
      advData.simpleIntTime  = 0.93*simData.moderateIntTime;
      for(var k=0; k<5; k++){
        advData.srvcSimple[k] = Math.floor(simData.srvcModerate[k]/3)+simData.srvcModerate[k]%3;
        advData.srvcModerate[k] = Math.floor(simData.srvcModerate[k]/3);
        advData.srvcComplex[k] = advData.srvcModerate[k];
      }
    }

	    inData = new cloneObject(advData);

	    fetchObjValues();

	    viewIsSimple = false;
		}
	  loadSliderValues();
	  showSliders();
	}

	/* Used to set up sliders */
	function loadSliders(){
		var k;
		var ie = false;
		if (navigator.appName=="Microsoft Internet Explorer") ie = true;

		//setup sliders
		for (k=0; k<20; k++){
      slider[k] = new Slider(document.getElementById("slider-"+(k+1)),
                             document.getElementById("slider-input-"+(k+1)));
      slider[k].setIndex(k);
		}

    //setup slider values
    loadSliderValues();

    for (k=0; k<20; k++){
      //setup onchange events for the sliders
      slider[k].onchange = function () {
        var thisIndex = this.getIndex();
        document.getElementById("yr"+(thisIndex+1)).value = this.getValue();
        if(thisIndex<5){
          inData.srvcSimple[thisIndex] = this.getValue();
        }
        else if(thisIndex<10 || thisIndex>=15){
          inData.srvcModerate[thisIndex%5] = this.getValue();
        }
        else{
          inData.srvcComplex[thisIndex%5] = this.getValue();
        }
        if(!ie) chartReload();
      };
      //set the values in related text fields
      var yrElement = document.getElementById("yr"+(k+1));
      yrElement.value = slider[k].getValue();
    }

		if(ie){
      document.getElementById("simpleSlidersDiv").onmouseup = function (){chartReload();};
      document.getElementById("moderateSlidersDiv").onmouseup = function (){chartReload();};
      document.getElementById("complexSlidersDiv").onmouseup = function (){chartReload();};
      document.getElementById("totalSlidersDiv").onmouseup = function (){chartReload();};
		}
	}
	//TODO allow values over full value
	function loadSliderValues(){
    for (k=0; k<5; k++){
      slider[k].setValue(inData.srvcSimple[k]);
		}
		for (k=5; k<10; k++){
      slider[k].setValue(inData.srvcModerate[k%5]);
		}
		for (k=10; k<15; k++){
      slider[k].setValue(inData.srvcComplex[k%5]);
		}
		for (k=15; k<20; k++){
      slider[k].setValue(inData.srvcModerate[k%5]);
		}
	}
	
	function setServicesValue(index,value){
    //set slider value
    slider[index].setValue(value);
    //if above maximum, we will need to set the data
    if(value > slider[index].getMaximum()){
      if(index<5){
        inData.srvcSimple[index] = value;
      }
      else if(index<10 || index>=15){
        inData.srvcModerate[index%5] = value;
      }
      else{
        inData.srvcComplex[index%5] = value;
      }
      //construct element id
      var elmentId = "yr"+(parseInt(index)+1);
      document.getElementById(elmentId).value = value;
      chartReload();
    }

    //for some wierd reason, IE needs this. Method is called onfocus!?
    if (navigator.appName=="Microsoft Internet Explorer") chartReload();
	}

//This hides all sliders. Used when calculating.
function hideAllSliders(){
    document.getElementById('loadingMessage').style.display = '';
    document.getElementById('yearsDiv').style.display = 'none';
    document.getElementById('simpleSlidersDiv').style.display = 'none';
    document.getElementById('moderateSlidersDiv').style.display = 'none';
    document.getElementById('complexSlidersDiv').style.display = 'none';
    document.getElementById('totalSlidersDiv').style.display = 'none';
	}
	
/*Should be called only from the calc view*/	
function printView(){
	  var money = MochiKit.Format.numberFormatter('$###,###');

	  document.getElementById('totalInvestments').innerHTML=money(inData.getTotalInvestment());
	  document.getElementById('futureReturns').innerHTML=money(inData.npv);
	  document.getElementById('ROI').innerHTML = document.getElementById('ROI').innerHTML.substring(0,4);

	  document.getElementById('yr1lbl').innerHTML=inData.srvcSimple[0];
	  document.getElementById('yr2lbl').innerHTML=inData.srvcSimple[1];
	  document.getElementById('yr3lbl').innerHTML=inData.srvcSimple[2];
	  document.getElementById('yr4lbl').innerHTML=inData.srvcSimple[3];
	  document.getElementById('yr5lbl').innerHTML=inData.srvcSimple[4];
	  document.getElementById('yr6lbl').innerHTML=inData.srvcModerate[0];
	  document.getElementById('yr7lbl').innerHTML=inData.srvcModerate[1];
	  document.getElementById('yr8lbl').innerHTML=inData.srvcModerate[2];
	  document.getElementById('yr9lbl').innerHTML=inData.srvcModerate[3];
	  document.getElementById('yr10lbl').innerHTML=inData.srvcModerate[4];
	  document.getElementById('yr11lbl').innerHTML=inData.srvcComplex[0];
	  document.getElementById('yr12lbl').innerHTML=inData.srvcComplex[1];
	  document.getElementById('yr13lbl').innerHTML=inData.srvcComplex[2];
	  document.getElementById('yr14lbl').innerHTML=inData.srvcComplex[3];
	  document.getElementById('yr15lbl').innerHTML=inData.srvcComplex[4];
	  document.getElementById('yr16lbl').innerHTML=inData.srvcModerate[0];
	  document.getElementById('yr17lbl').innerHTML=inData.srvcModerate[1];
	  document.getElementById('yr18lbl').innerHTML=inData.srvcModerate[2];
	  document.getElementById('yr19lbl').innerHTML=inData.srvcModerate[3];
	  document.getElementById('yr20lbl').innerHTML=inData.srvcModerate[4];

	  document.getElementById('stylesheet').href = 'css/printView.css';
  }

/*Should be called only from the print view*/
function calcView(){
  document.getElementById('ROI').innerHTML += " <span style='font-size:90%'>("+MochiKit.Format.percentFormat(parseInt(document.getElementById('ROI').innerHTML.substring(2))/100)+" gain on investment)</span>";
  
 	document.getElementById('stylesheet').href = 'css/calcStyle.css';
}

//start scenario number #
function startScenario(number){
  var hasValsOutOfRange = false;
  var growthRate;
  
 //hide start content
 document.getElementById('startContent').style.display='none';
 
 //set data values
 switch(number){
  case 1: growthRate = 45;
          inData.moderateIntTime = 700;
          inData.develWage       = 50;
          inData.hwmwCost        = 209950;
          inData.consultCost     = 50000;
          inData.trainCost       = 9000;
          //starting with 8
          inData.srvcModerate    = genProcCounts(8,growthRate);
          break;
  case 2: growthRate = 45;
          inData.moderateIntTime = 700;
          inData.develWage       = 50;
          inData.hwmwCost        = 384200;
          inData.consultCost     = 300000;
          inData.trainCost       = 4500;
          //starting with 30
          inData.srvcModerate    = genProcCounts(30,growthRate);
          break;
  default: alert("no match");
 }
 //if the last is greater, then 1 or more are greater
 if(inData.srvcModerate[4] > 50) hasValsOutOfRange = true;
 
 //load into view
 fetchObjValues();
 loadSliderValues();

 //unhide content
 document.getElementById('content').style.display='';
  
 //refresh sliders
 for(var p=15; p<20; p++) {
  slider[p].recalculate();
 }
 
 //if we are going to have default values over slider max of 50, set values after the fact
 if(hasValsOutOfRange){
    inData.srvcModerate = genProcCounts(inData.srvcModerate[0],growthRate);
    document.getElementById('yr16').value = inData.srvcModerate[0];
    document.getElementById('yr17').value = inData.srvcModerate[1];
    document.getElementById('yr18').value = inData.srvcModerate[2];
    document.getElementById('yr19').value = inData.srvcModerate[3];
    document.getElementById('yr20').value = inData.srvcModerate[4];
    inData.initAnnualMaintenance(currentImplementation);
    chartReload();
 }
 if (navigator.appName=="Microsoft Internet Explorer") chartReload();
}