var numRows; var SaveableParameters = new Array(numRows); var SettingsSaved = 0; var operation; var minValue1; var maxValue1; var minValue2; var maxValue2; var maxValue3; var theFormat; var numberoptions; function updateWorksheetAddSubWorksheet() { if ( document.getElementById ) { // Get our operator... operation = document.getElementById( 'operation' ).value; // Get our data range... minValue1 = document.getElementById( 'min1' ).value; maxValue1 = document.getElementById( 'max1' ).value; minValue2 = document.getElementById( 'min2' ).value; maxValue2 = document.getElementById( 'max2' ).value; maxValue3 = document.getElementById( 'max3' ).value; theFormat = document.getElementById( 'format' ).value; // Important layout settings... var numCols = document.getElementById( 'colsnum' ).value; numRows = document.getElementById( 'rowsnum' ).value; numberoptions = document.getElementById( 'numberoptions' ).value; var base_row_height = 95; numRows = parseInt( numRows ); var row_height = Math.round(base_row_height / (numRows/8)); numCols = parseInt( numCols ); switch (numCols) { case 5: var cellStyle = "font-size:12pt;letter-spacing:2px; height:" + row_height + "px"; break; case 4: var cellStyle = "font-size:16pt;letter-spacing:2px; height:" + row_height + "px"; break; case 3: var cellStyle = "font-size:18pt;letter-spacing:3px; height:" + row_height + "px"; break; case 2: var cellStyle = "font-size:24pt;letter-spacing:4px; height:" + row_height + "px"; break; case 1: var cellStyle = "font-size:30pt;letter-spacing:5px; height:" + row_height + "px"; break; } //make sure Max total is big enough minValue1 = parseInt( minValue1 ); minValue2 = parseInt( minValue2 ); maxValue1 = parseInt( maxValue1 ); maxValue2 = parseInt( maxValue2 ); maxValue3 = parseInt( maxValue3 ); maxValue3 = Math.max(maxValue1,maxValue2,maxValue3,minValue1,minValue2) if (maxValue3 <= (minValue1 + minValue2)) { maxValue3 = minValue1 + minValue2; } //put user-saveable parameters into an array for (var i = SettingsSaved; i < numRows; i++) { SaveableParameters[i] = new Array(8); SaveableParameters[i][0] = operation; SaveableParameters[i][1] = minValue1; SaveableParameters[i][2] = maxValue1; SaveableParameters[i][3] = minValue2; SaveableParameters[i][4] = maxValue2; SaveableParameters[i][5] = maxValue2; SaveableParameters[i][6] = theFormat; SaveableParameters[i][7] = numberoptions; } // Start generating our worksheet table... var worksheetOutput = ""; worksheetOutput += ''; for ( var i = 0; i < numRows; i++ ) { operation = SaveableParameters[i][0]; minValue1 = SaveableParameters[i][1]; maxValue1 = SaveableParameters[i][2]; minValue2 = SaveableParameters[i][3]; maxValue2 = SaveableParameters[i][4]; maxValue2 = SaveableParameters[i][5]; theFormat = SaveableParameters[i][6]; numberoptions= SaveableParameters[i][7]; worksheetOutput += ''; for ( var j = 0; j < numCols; j++ ) { // Math.random() = value between 0.0 & 1.0... var valueOne = randomNumberRangeAddSubWorksheet( minValue1, maxValue1 ); var valueTwo = randomNumberRangeAddSubWorksheet( minValue2, maxValue2 ); var result; var operator; switch (operation) { case "+": operator = "+"; do { var valueOne = randomNumberRangeAddSubWorksheet( minValue1, maxValue1 ); var valueTwo = randomNumberRangeAddSubWorksheet( minValue2, maxValue2 ); result = valueOne + valueTwo; } while (result > maxValue3); break; case "-": //make sure first number is largest if (valueOne < valueTwo) { //exchange values var valueTemp = valueOne; valueOne = valueTwo; valueTwo = valueTemp; } operator = "-"; result = valueOne - valueTwo; break; case "x": operator = "x"; result = valueOne * valueTwo; break; case "+-": //randomly set operator as plus or minus: 0 = + , 1 = - var ran_number=Math.floor(Math.random()*2); switch (ran_number) { case 0: operator = "+"; do { var valueOne = randomNumberRangeAddSubWorksheet( minValue1, maxValue1 ); var valueTwo = randomNumberRangeAddSubWorksheet( minValue2, maxValue2 ); result = valueOne + valueTwo; } while (result > maxValue3); break; case 1: //make sure first number is largest if (valueOne < valueTwo) { //exchange values var valueTemp = valueOne; valueOne = valueTwo; valueTwo = valueTemp; } operator = "-"; result = valueOne - valueTwo; break; } } if ( theFormat == "line" ) //format this way for line format { worksheetOutput += ''; } if ( theFormat == "stacked" ) //format this way for stacked format { worksheetOutput += ''; } } worksheetOutput += ''; } worksheetOutput += '
'; worksheetOutput += '

'; switch (numberoptions) { case 'conventional': {ran_number = 0;} break; case 'last': {var ran_number=Math.floor(Math.random()*3); } //0,1,or 2 break; case 'jumbled': {var ran_number=Math.floor(Math.random()*6); } //0,1,2,3,4, or 5 break; } switch (ran_number) { case 0: //conventional worksheetOutput += valueOne + ' ' + operator + ' ' + valueTwo + ' = ' + result + ''; break; case 1: worksheetOutput += '' + valueOne + ' ' + operator + ' ' + valueTwo + ' = ' + result ; break; case 2: worksheetOutput += valueOne + ' ' + operator + ' ' + valueTwo + ' = ' + result ; break; //next 3 options have answer first case 3: worksheetOutput += '' + result + ' = ' + valueOne + ' ' + operator + ' ' + valueTwo ; break; case 4: worksheetOutput += result + '= ' + valueOne + ' ' + operator + ' ' + valueTwo ; break; case 5: worksheetOutput += result + ' = ' + valueOne + ' ' + operator + ' ' + valueTwo + ''; break; } worksheetOutput += '

'; worksheetOutput += '
'; worksheetOutput += '
'; if (numberoptions == 'conventional') {ran_number = 0;} else {var ran_number=Math.floor(Math.random()*3); } //0,1,or 2 switch (ran_number) { case 0: //conventional worksheetOutput += valueOne + '
 ' + operator + ' ' + valueTwo + '
'+ result +'
'; break; case 1: worksheetOutput += '' + valueOne + '
 ' + operator + ' ' + valueTwo + '
'+ result +''; break; case 2: worksheetOutput += valueOne + '
 ' + operator + ' ' + valueTwo + '
'+ result +'
'; break } worksheetOutput += '
'; // Output HTML to our DIV... document.getElementById( 'output' ).innerHTML = worksheetOutput; // And reveal demo... // showFirstResultAddSubWorksheet(); } } function saveSettingsAddSubWorksheet() { if (SettingsSaved == numRows) { alert ("No more Settings can be saved."); return; } SettingsSaved ++; var settingsOutput = ""; for ( var m = 0; m < SettingsSaved; m++ ) { if (m == SettingsSaved - 1) {settingsOutput += 'Settings for Row ' + (m + 1) + ' Saved
';} else {settingsOutput += 'Settings for Row ' + (m + 1) + ' Saved
';} } var i = SettingsSaved - 1; SaveableParameters[i][0] = operation; SaveableParameters[i][1] = minValue1; SaveableParameters[i][2] = maxValue1; SaveableParameters[i][3] = minValue2; SaveableParameters[i][4] = maxValue2; SaveableParameters[i][5] = maxValue2; SaveableParameters[i][6] = theFormat; SaveableParameters[i][7] = numberoptions; alert ("Settings have been saved for row " + SettingsSaved); settingsOutput += '

'; document.getElementById( 'savedsettings' ).innerHTML = settingsOutput; } function clearSettingsAddSubWorksheet() { var r=confirm("Delete saved row settings?"); if (r==true) { SettingsSaved = 0; settingsOutput = ""; document.getElementById( 'savedsettings' ).innerHTML = settingsOutput; updateWorksheetAddSubWorksheet(); } } function showFirstResultAddSubWorksheet() { if ( document.getElementById ) { document.getElementById( '1' ).style.visibility = "visible"; } } function showResultsAddSubWorksheet() { if ( document.getElementsByTagName ) { var spans = document.getElementsByTagName( "span" ); for( var i = 0; i < spans.length; i++ ) { if ( spans[ i ].className.indexOf( "result" ) != -1 ) { spans[ i ].style.visibility = "visible"; } } } } function hideResultsAddSubWorksheet() { if ( document.getElementsByTagName ) { var spans = document.getElementsByTagName( "span" ); for( var i = 0; i < spans.length; i++ ) { if ( spans[ i ].className.indexOf( "result" ) != -1 ) { spans[ i ].style.visibility = "hidden"; } } } } function printWorksheetAddSubWorksheet() { if ( document.getElementById ) { document.getElementById( 'design' ).style.visibility = "hidden"; document.getElementById( 'reveal' ).style.visibility = "hidden"; window.print(); document.getElementById( 'design' ).style.visibility = "visible"; document.getElementById( 'reveal' ).style.visibility = "visible"; } } function randomNumberRangeAddSubWorksheet( minValue, maxValue ) { var minValue = parseInt( minValue ); var maxValue = parseInt( maxValue ); return Math.round( Math.random() * ( maxValue - minValue ) ) + minValue; }