/* Copyright 2006 Greg Posel */ /* calc.js - Updated 04/11/06 */ function selectWeight() { if (document.refCalculator.materialBox.selectedIndex > 2) { document.refCalculator.measureBox.selectedIndex = 1; } } function checknGo() { if (validateEntries()) calcValue(); } function printValue(subtractor, factor) { var wFloat = 0; var mFloat = 0; var answer = 0; var weight = document.refCalculator.weightBox.value; var market = getSelection(document.refCalculator.spotBox.innerHTML); wFloat = parseFloat(weight); mFloat = parseFloat(market); answer = factor * wFloat * (mFloat - subtractor); answer = formatAnswer(answer); //display value document.refCalculator.valueBox.value = answer; } function getSelection(selection) { var posFound; var newSelection; posFound = selection.search("selected>"); newSelection = selection.substring(posFound + 9, posFound + 13); return(newSelection); } function formatAnswer(answer) { var fmtStg = ""; var i, stop; answer *= 100; answer = Math.round(answer); answer = answer.toString(); stop = answer.length; for (i = 1; i <= stop; i++) { fmtStg += answer.substring(stop - i, stop - i + 1); if (i == 2) { fmtStg += "."; } else if (i == 5 || i == 8 || i == 11) { if ( i != stop ) fmtStg += ","; } } fmtStg += " $ "; answer = ""; stop = fmtStg.length; for (i = 1; i <= stop; i++) { answer += fmtStg.substring(stop - i, stop - i + 1); } return (answer); } function calcValue() { var measure = document.refCalculator.measureBox.selectedIndex; var factor = 0; var subtractor = 0; switch(document.refCalculator.materialBox.selectedIndex) { case 0: { // alert("Silver Flake Selected"); subtractor = .15; if (measure == 0) // Troy Ounces { factor = .85; } else if(measure == 1) // Pounds { factor = 12; } else // Grams { factor = .032154 * .85; } break; } case 1: { // alert(".999 Silver Selected"); subtractor = .20; if (measure == 0) // Troy Ounces { factor = 1; } else if (measure == 1) // Pounds { factor = 14.583; } else // Grams { factor = .032154; } break; } case 2: { // alert("Sterling Selected"); subtractor = .15; if (measure == 0) // Troy Ounces { factor = .88 * .9; } else if (measure == 1) // Pounds { factor = 14.583 * .88 * .9; } else // Grams { factor = .032154 * .88 * .9; } break; } case 3: { // alert("X-Ray Selected"); subtractor = .15; if (measure != 1) { alert("Film weights must be measured in pounds!"); } else { factor = .015; } break; } case 4: { // alert("Industrial X-Ray Selected"); subtractor = .15; if (measure != 1) { alert("Film weights must be measured in pounds!"); } else { factor = .18; } break; } case 5: { // alert("Scans Selected"); subtractor = .15; if (measure != 1) { alert("Film weights must be measured in pounds!"); } else { factor = .005; } break; } case 6: { // alert("Newspaper Litho Selected"); subtractor = .15; if (measure != 1) { alert("Film weights must be measured in pounds!"); } else { factor = .13; } break; } case 7: { // alert("Mix Litho Selected"); subtractor = .15; if (measure != 1) { alert("Film weights must be measured in pounds!"); } else { factor = .15; } break; } default: { alert("No Handler"); } } printValue(subtractor,factor); } function validateEntries() { var theForm = document.refCalculator var checkOK = "0123456789-.,"; var checkStr = theForm.weightBox.value; var allValid = true; var decPoints = 0; var allNum = ""; for (i = 0; i < checkStr.length; i++) { ch = checkStr.charAt(i); for (j = 0; j < checkOK.length; j++) if (ch == checkOK.charAt(j)) break; if (j == checkOK.length) { allValid = false; break; } if (ch == ".") { allNum += "."; decPoints++; } else if (ch != ",") allNum += ch; } if (!allValid) { alert("Please enter only digit characters in the Weight field."); theForm.weightBox.focus(); return (false); } if (decPoints > 1) { alert("Please enter a valid number in the Weight field."); theForm.weightBox.focus(); return (false); } var chkVal = allNum; var prsVal = parseFloat(allNum); if (chkVal != "" && !(prsVal > "0")) { alert("Please enter a value greater than 0 in the Weight field."); theForm.weightBox.focus(); return (false); } return (true); }