var min_reports = 100;
var max_reports = 500000;
var max_pages = 999999999;
var max_cds = 9999;
var min_users = 20;
var max_users = 5000;
var percent_pages_eliminated = 0.65;
var cost_per_page = 0.07;
var cost_per_internal_report = 2;
var usps_cost = 1.83;
var other_courier_cost = 16.1;
var cost_per_cd = 75;
var no_system_yearly_savings_per_user = 3265;
var existing_system_yearly_savings_per_user = 980;
var checkmark_green = new Image(15, 20);
var checkmark_red = new Image(15, 20);
checkmark_green.src = '/images/checkmark_green.gif';
checkmark_red.src = '/images/checkmark_red.gif';

var calculating = '<table border="0" cellspacing="0" cellpadding="0">'
calculating += '        <tr>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals02">Potential Annual Savings Opportunity - Direct</td>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals01">calculating...</td>'
calculating += '        </tr>'
calculating += '        <tr>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals02">&nbsp;</td>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
calculating += '        </tr>'
calculating += '        <tr>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals02">Potential Annual Savings Opportunity - Indirect</td>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals01">calculating...</td>'
calculating += '        </tr>'
calculating += '        <tr>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals02">&nbsp;</td>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
calculating += '        </tr>'
calculating += '        <tr>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals02">Total Potential Annual Savings Opportunity</td>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
calculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals01">calculating...</td>'
calculating += '        </tr>'
calculating += '        <tr>'
calculating += '          <td></td>'
calculating += '          <td></td>'
calculating += '          <td width="160"></td>'
calculating += '        </tr>'
calculating += '      </table>'

var icalculating = '<table border="0" cellspacing="0" cellpadding="0">'
icalculating += '        <tr>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals02">Potential Annual Savings Opportunity - Direct</td>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals01">&nbsp;</td>'
icalculating += '        </tr>'
icalculating += '        <tr>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals02">&nbsp;</td>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
icalculating += '        </tr>'
icalculating += '        <tr>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals02">Potential Annual Savings Opportunity - Indirect</td>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals01">&nbsp;</td>'
icalculating += '        </tr>'
icalculating += '        <tr>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals02">&nbsp;</td>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
icalculating += '        </tr>'
icalculating += '        <tr>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals02">Total Potential Annual Savings Opportunity</td>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap">&nbsp;</td>'
icalculating += '          <td align="right" valign="middle" nowrap="nowrap" class="myTotals01">&nbsp;</td>'
icalculating += '        </tr>'
icalculating += '        <tr>'
icalculating += '          <td></td>'
icalculating += '          <td></td>'
icalculating += '          <td width="160"></td>'
icalculating += '        </tr>'
icalculating += '      </table>'

function CalculateROI(myFrm) {
	var average_pages;
	if(myFrm.ReportsPrinted.value > 0) {
		average_pages = myFrm.PagesPrinted.value / myFrm.ReportsPrinted.value;
	}
	else {
		average_pages = 0;
	}
	var pages_eliminated = myFrm.PagesPrinted.value * percent_pages_eliminated;
	var print_savings_per_month = pages_eliminated * cost_per_page;
	var print_savings_per_year = print_savings_per_month * 12;
	var internal_distribution = myFrm.ReportsPrinted.value - myFrm.ExternallyDistributed.value;
	var internal_savings_per_month = internal_distribution * cost_per_internal_report;
	var internal_savings_per_year = internal_savings_per_month * 12;
	var usps_savings_per_month = myFrm.DistributedViaUSPS.value * usps_cost;
	var usps_savings_per_year = usps_savings_per_month * 12;
	var other_courier_savings_per_month = myFrm.DistributedViaOther.value * other_courier_cost;
	var other_courier_savings_per_year = other_courier_savings_per_month * 12;
	var distribution_savings_per_month = internal_savings_per_month + usps_savings_per_month + other_courier_savings_per_month;
	var distribution_savings_per_year = distribution_savings_per_month * 12;
	var transmittal_savings_per_month = myFrm.CD_ROMs.value * cost_per_cd;
	var transmittal_savings_per_year = transmittal_savings_per_month * 12;
	var direct_savings_per_month = print_savings_per_month + distribution_savings_per_month + transmittal_savings_per_month;
	var direct_savings_per_year = Math.round(direct_savings_per_month * 12);
	var indirect_savings_per_year;
	if(myFrm.SystemReplacement[0].checked) {
		indirect_savings_per_year = Math.round(existing_system_yearly_savings_per_user * myFrm.UniqueIndividuals.value);
	}
	else {
		indirect_savings_per_year = Math.round(no_system_yearly_savings_per_user * myFrm.UniqueIndividuals.value);
	}
	var total_savings_per_year = Math.round(direct_savings_per_year + indirect_savings_per_year);
	myFrm.DirectSavings.value = addCommas(direct_savings_per_year + '');
	myFrm.IndirectSavings.value = addCommas(indirect_savings_per_year + '');
	myFrm.TotalSavings.value = addCommas(total_savings_per_year + '');
	//document.getElementById('divDirectSavings').innerHTML = addCommas(direct_savings_per_year + '');
	//document.getElementById('divIndirectSavings').innerHTML = addCommas(indirect_savings_per_year + '');
	//document.getElementById('divTotalSavings').innerHTML = addCommas(total_savings_per_year + '');
}
/*
function checkReportsProduced(myFrm) {
  // myFrm.ReportsProduced.value = stripZeros(myFrm.ReportsProduced.value);
  if(myFrm.ReportsProduced.value >= min_reports && myFrm.ReportsProduced.value <= max_reports) {
    document.imgReportsProduced.src = checkmark_green.src;
	document.getElementById('divReportsPrinted').innerHTML = '(0 - ' + addCommas(stripZeros(myFrm.ReportsProduced.value) + '') + ')';
	document.getElementById('divExternallyDistributed').innerHTML = '(0 - ' + addCommas(stripZeros(myFrm.ReportsProduced.value) + '') + ')';
  }
  else {
    document.imgReportsProduced.src = checkmark_red.src;
	document.getElementById('divReportsPrinted').innerHTML = '(0 - ' + addCommas(max_reports + '') + ')';
	document.getElementById('divExternallyDistributed').innerHTML = '(0 - ' + addCommas(max_reports + '') + ')';
  }
}
*/
function checkForm(myFrm) {
	var myError = false;
	document.getElementById('resultArea').innerHTML = icalculating;
	myFrm.Reset.disabled = false;
  if(myFrm.SystemReplacement[0].checked || myFrm.SystemReplacement[1].checked) {
    document.imgSystemReplacement.src = checkmark_green.src;
  }
  if(myFrm.SystemReplacement[1].checked) {
    document.imgSystemName.src = checkmark_green.src;
  }
  if(myFrm.SystemName.value && (!myFrm.SystemReplacement[0].checked && !myFrm.SystemReplacement[1].checked)) {
    myFrm.SystemReplacement[0].checked = true;
	document.imgSystemReplacement.src = checkmark_green.src;
	document.imgSystemName.src = checkmark_green.src;
  }
  if(!myFrm.SystemName.value && myFrm.SystemReplacement[0].checked) {
    document.imgSystemName.src = checkmark_red.src;
	myError = true;
  }
  if(myFrm.SystemName.value && myFrm.SystemReplacement[0].checked) {
    document.imgSystemName.src = checkmark_green.src;
  }
  if(myFrm.ReportsProduced.value >= min_reports && myFrm.ReportsProduced.value <= max_reports) {
	  document.imgReportsProduced.src = checkmark_green.src;
	  document.getElementById('divReportsPrinted').innerHTML = '(0 - ' + addCommas(myFrm.ReportsProduced.value + '') + ')';
	  document.getElementById('divExternallyDistributed').innerHTML = '(0 - ' + addCommas(myFrm.ReportsProduced.value + '') + ')';
	  document.getElementById('divDistributedViaUSPS').innerHTML = '(0 - ' + addCommas(myFrm.ReportsProduced.value + '') + ')';
	  document.getElementById('divDistributedViaOther').innerHTML = '(0 - ' + addCommas(myFrm.ReportsProduced.value + '') + ')';
	  if(myFrm.ReportsPrinted.value-0 >= 0 && myFrm.ReportsPrinted.value-0 <= myFrm.ReportsProduced.value-0) {
		  document.imgReportsPrinted.src = checkmark_green.src;
		  if(myFrm.ReportsPrinted.value-0 > 0) {
	  	  	document.getElementById('divPagesPrinted').innerHTML = '(1 - ' + addCommas(max_pages + '') + ')';
			if(myFrm.PagesPrinted.value-0 >= 1 && myFrm.PagesPrinted.value-0 <= max_pages) {
				document.imgPagesPrinted.src = checkmark_green.src;
			}
			else {
				document.imgPagesPrinted.src = checkmark_red.src;
				myError = true;
			}
		  }
		  else {
	  	    document.getElementById('divPagesPrinted').innerHTML = '(0 - ' + addCommas(max_pages + '') + ')';
			if(myFrm.PagesPrinted.value-0 == 0) {
				document.imgPagesPrinted.src = checkmark_green.src;
			}
			else {
				document.imgPagesPrinted.src = checkmark_red.src;
				myError = true;
			}
		  }
	  }
	  else {
		  document.imgReportsPrinted.src = checkmark_red.src;
		  document.imgPagesPrinted.src = checkmark_red.src;
	  	  document.getElementById('divPagesPrinted').innerHTML = '(0 - ' + addCommas(max_pages + '') + ')';
		  myError = true;
	  }
	  if(myFrm.ExternallyDistributed.value-0 >= 0 && myFrm.ExternallyDistributed.value-0 <= myFrm.ReportsProduced.value-0) {
		  document.imgExternallyDistributed.src = checkmark_green.src;
		  if(myFrm.ExternallyDistributed.value-0 == 0) {
	  	    document.getElementById('divDistributedViaUSPS').innerHTML = '(0)';
	  	    document.getElementById('divDistributedViaOther').innerHTML = '(0)';
			if(myFrm.DistributedViaUSPS.value-0 != 0) {
				document.imgDistributedViaUSPS.src = checkmark_red.src;
				myError = true;
			}
			else {
				document.imgDistributedViaUSPS.src = checkmark_green.src;
			}
			if(myFrm.DistributedViaOther.value-0 != 0) {
				document.imgDistributedViaOther.src = checkmark_red.src;
				myError = true;
			}
			else {
				document.imgDistributedViaOther.src = checkmark_green.src;
			}
		  }
		  else {
	  	    document.getElementById('divDistributedViaUSPS').innerHTML = '(0 - ' + addCommas(myFrm.ExternallyDistributed.value + '') + ')';
	  	    document.getElementById('divDistributedViaOther').innerHTML = '(0 - ' + addCommas(myFrm.ExternallyDistributed.value + '') + ')';
			if(((myFrm.DistributedViaUSPS.value-0) + (myFrm.DistributedViaOther.value-0)) > myFrm.ExternallyDistributed.value-0) {
				document.imgDistributedViaUSPS.src = document.imgDistributedViaOther.src = checkmark_red.src;
				myError = true;
	  	    	document.getElementById('divDistributedViaUSPS').innerHTML = '(0 - ' + addCommas((myFrm.ExternallyDistributed.value-0) - (myFrm.DistributedViaOther.value-0) + '') + ')';
	  	    	document.getElementById('divDistributedViaOther').innerHTML = '(0 - ' + addCommas((myFrm.ExternallyDistributed.value-0) - (myFrm.DistributedViaUSPS.value-0) + '') + ')';
			}
			else {
	  	    	document.getElementById('divDistributedViaUSPS').innerHTML = '(0 - ' + addCommas((myFrm.ExternallyDistributed.value-0) - (myFrm.DistributedViaOther.value-0) + '') + ')';
	  	    	document.getElementById('divDistributedViaOther').innerHTML = '(0 - ' + addCommas((myFrm.ExternallyDistributed.value-0) - (myFrm.DistributedViaUSPS.value-0) + '') + ')';
				document.imgDistributedViaUSPS.src = document.imgDistributedViaOther.src = checkmark_green.src;
			}
		  }
	  }
	  else {
		  document.imgExternallyDistributed.src = checkmark_red.src;
		  document.imgDistributedViaUSPS.src = checkmark_red.src;
		  document.imgDistributedViaOther.src = checkmark_red.src;
	  	  document.getElementById('divDistributedViaUSPS').innerHTML = '(0 - ' + addCommas(myFrm.ReportsProduced.value + '') + ')';
	  	  document.getElementById('divDistributedViaOther').innerHTML = '(0 - ' + addCommas(myFrm.ReportsProduced.value + '') + ')';
		  myError = true;
	  }
  }
  else {
	  document.imgReportsProduced.src = checkmark_red.src;
	  document.imgReportsPrinted.src = checkmark_red.src;
	  document.imgPagesPrinted.src = checkmark_red.src;
	  document.imgExternallyDistributed.src = checkmark_red.src;
	  document.imgDistributedViaUSPS.src = checkmark_red.src;
	  document.imgDistributedViaOther.src = checkmark_red.src;
	  document.getElementById('divReportsPrinted').innerHTML = '(0 - ' + addCommas(max_reports + '') + ')';
	  document.getElementById('divExternallyDistributed').innerHTML = '(0 - ' + addCommas(max_reports + '') + ')';
	  document.getElementById('divDistributedViaUSPS').innerHTML = '(0 - ' + addCommas(max_reports + '') + ')';
	  document.getElementById('divDistributedViaOther').innerHTML = '(0 - ' + addCommas(max_reports + '') + ')';
	  document.getElementById('divPagesPrinted').innerHTML = '(0 - ' + addCommas(max_pages + '') + ')';
	  myError = true;
  }
  if(myFrm.CD_Distribution[0].checked) {
	  document.imgCD_Distribution.src = checkmark_green.src;
	  document.getElementById('divCD_ROMs').innerHTML = '(1 - ' + addCommas(max_cds + '') + ')';
	  if(myFrm.CD_ROMs.value-0 >= 1 && myFrm.CD_ROMs.value-0 <= max_cds) {
		  document.imgCD_ROMs.src = checkmark_green.src;
	  }
	  else {
		  document.imgCD_ROMs.src = checkmark_red.src;
		  myError = true;
	  }
  }
  else {
	  if(myFrm.CD_Distribution[1].checked) {
	  	document.imgCD_Distribution.src = checkmark_green.src;
	    document.getElementById('divCD_ROMs').innerHTML = '(0)';
		if(myFrm.CD_ROMs.value-0 != 0) {
		  document.imgCD_ROMs.src = checkmark_red.src;
		  myError = true;
		}
		else {
			document.imgCD_ROMs.src = checkmark_green.src;
		}
	  }
	  else {
	  	document.imgCD_Distribution.src = checkmark_red.src;
		document.imgCD_ROMs.src = checkmark_red.src;
	    document.getElementById('divCD_ROMs').innerHTML = '(0 - ' + addCommas(max_cds + '') + ')';
		myError = true;
	  }
  }
  if(myFrm.UniqueIndividuals.value-0 >= min_users && myFrm.UniqueIndividuals.value-0 <= max_users) {
	  document.imgUniqueIndividuals.src = checkmark_green.src;
  }
  else {
	  document.imgUniqueIndividuals.src = checkmark_red.src;
	  myError = true;
  }
  if(!myError) {
	  myFrm.Calculate.disabled = false;
  }
  else {
	  myFrm.Calculate.disabled = true;
  }
  return myError;
}

function stripZeros(num) {
  var newTerm;
  while(num.charAt(0) == "0") {
    newTerm = num.substring(1, num.length);
	num = newTerm;
  }
  if(num == "") {
    num = "0";
  }
  return num;
}

function limitinput(evt, strList, bAllow) {
  /*
  Limits the input to strList.
  If bAllow is true, then only allow what is in strList.
  If bAllow is false, then do not allow what is in strList.
  */
  var charCode = evt.keyCode;
  if(charCode==0) {
    charCode = evt.which;
  }
  var strChar = String.fromCharCode(charCode);
  /*  controlArray holds the ASCII codes for valid control commands (BS, CR, LF, etc)  */
  var controlArray = Array(0, 8, 9, 10, 13, 27);
  var intOut = 0;
  if(bAllow == true) {
    if(charCode==8 || charCode==9 || charCode==37 || charCode==39 || charCode==46 || charCode==116 || (strList.indexOf(strChar)!=-1)) { /*  Valid  */
	  return true;
    }
    else {
      return false;
    }
  }
  else {
    if(charCode==8 || charCode==9 || charCode==37 || charCode==39 || charCode==46 || charCode==116 || (strList.indexOf(strChar)==-1)) {
      return true;
    }
    else {
      return false;
    }
  }
}

function frmInitialize() {
	document.getElementById('resultArea').innerHTML = icalculating;
	document.frmROICalculator.Calculate.disabled = true;
	document.frmROICalculator.Reset.disabled = true;
	document.frmROICalculator.SystemReplacement[0].checked = document.frmROICalculator.SystemReplacement[1].checked = document.frmROICalculator.CD_Distribution[0].checked = document.frmROICalculator.CD_Distribution[1].checked = false;
	document.frmROICalculator.SystemName.value = "";
	document.frmROICalculator.ReportsProduced.value = document.frmROICalculator.ReportsPrinted.value = document.frmROICalculator.PagesPrinted.value = document.frmROICalculator.ExternallyDistributed.value = document.frmROICalculator.DistributedViaUSPS.value = document.frmROICalculator.DistributedViaOther.value = document.frmROICalculator.CD_ROMs.value = document.frmROICalculator.UniqueIndividuals.value = 0;
	document.imgSystemReplacement.src = document.imgSystemName.src = document.imgReportsProduced.src = document.imgReportsPrinted.src = document.imgPagesPrinted.src = document.imgExternallyDistributed.src = document.imgDistributedViaUSPS.src = document.imgDistributedViaOther.src = document.imgCD_Distribution.src = document.imgCD_ROMs.src = document.imgUniqueIndividuals.src = checkmark_red.src;
  document.getElementById('divReportsProduced').innerHTML = '(' + addCommas(min_reports + '') + ' - ' + addCommas(max_reports + '') + ')';
  document.getElementById('divReportsPrinted').innerHTML = '(0 - ' + addCommas(max_reports + '') + ')';
  document.getElementById('divPagesPrinted').innerHTML = '(0 - ' + addCommas(max_pages + '') + ')';
  document.getElementById('divExternallyDistributed').innerHTML = '(0 - ' + addCommas(max_reports + '') + ')';
  document.getElementById('divDistributedViaUSPS').innerHTML = '(0 - ' + addCommas(max_reports + '') + ')';
  document.getElementById('divDistributedViaOther').innerHTML = '(0 - ' + addCommas(max_reports + '') + ')';
  document.getElementById('divCD_ROMs').innerHTML = '(0 - ' + addCommas(max_cds + '') + ')';
  document.getElementById('divUniqueIndividuals').innerHTML = '(' + addCommas(min_users + '') + ' - ' + addCommas(max_users + '') + ')';
  document.frmROICalculator.SystemReplacement[0].focus();
}

function addCommas(nStr) {
  nStr += '';
  x = nStr.split('.');
  x1 = x[0];
  x2 = x.length > 1 ? '.' + x[1] : '';
  var rgx = /(\d+)(\d{3})/;
  while (rgx.test(x1)) {
    x1 = x1.replace(rgx, '$1' + ',' + '$2');
  }
  return x1 + x2;
}

