From a7b57297cba0c696b49dd2d72c25935f34f56671 Mon Sep 17 00:00:00 2001 From: VictoriaKersey Date: Thu, 11 Apr 2019 09:20:23 -0500 Subject: [PATCH] vvv --- case1/{mpl_links_txt.html => mpl_links.html} | 6 +- case1/mpl_links.js | 24 +++ case1/mpl_links_txt.js | 15 -- case1/mr.schmidt.js | 24 +++ .../{dl_expense_txt.html => dl_expense.html} | 15 +- case2/dl_expense.js | 98 +++++++++++++ case2/dl_expense_txt.js | 48 ------ case3/{mas_reg2_txt.html => mas_reg2.html} | 8 +- case3/mas_reg2.js | 36 +++++ case3/mas_reg2_txt.js | 23 --- ...as_register_txt.html => mas_register.html} | 6 +- case3/mas_register.js | 99 +++++++++++++ case3/mas_register_txt.js | 30 ---- case4/ws_cloud.js | 138 ++++++++++++++++++ case4/ws_cloud_txt.js | 84 ----------- .../{ws_lincoln_txt.html => ws_lincoln.html} | 6 +- review/{co_cart_txt.html => co_cart.html} | 11 +- review/{co_cart_txt.js => co_cart.js} | 12 +- review/{co_credit_txt.html => co_credit.html} | 11 +- review/{co_credit_txt.js => co_credit.js} | 0 20 files changed, 463 insertions(+), 231 deletions(-) rename case1/{mpl_links_txt.html => mpl_links.html} (97%) create mode 100644 case1/mpl_links.js delete mode 100644 case1/mpl_links_txt.js create mode 100644 case1/mr.schmidt.js rename case2/{dl_expense_txt.html => dl_expense.html} (93%) create mode 100644 case2/dl_expense.js delete mode 100644 case2/dl_expense_txt.js rename case3/{mas_reg2_txt.html => mas_reg2.html} (95%) create mode 100644 case3/mas_reg2.js delete mode 100644 case3/mas_reg2_txt.js rename case3/{mas_register_txt.html => mas_register.html} (95%) create mode 100644 case3/mas_register.js delete mode 100644 case3/mas_register_txt.js create mode 100644 case4/ws_cloud.js delete mode 100644 case4/ws_cloud_txt.js rename case4/{ws_lincoln_txt.html => ws_lincoln.html} (98%) rename review/{co_cart_txt.html => co_cart.html} (94%) rename review/{co_cart_txt.js => co_cart.js} (89%) rename review/{co_credit_txt.html => co_credit.html} (94%) rename review/{co_credit_txt.js => co_credit.js} (100%) diff --git a/case1/mpl_links_txt.html b/case1/mpl_links.html similarity index 97% rename from case1/mpl_links_txt.html rename to case1/mpl_links.html index 956d056..37592f7 100644 --- a/case1/mpl_links_txt.html +++ b/case1/mpl_links.html @@ -7,8 +7,8 @@ Case Problem 1 Monroe Public Library Government Links - Author: - Date: + Author: Aspen Kersey & Jason Cobb + Date: 4/11/19 Filename: mpl_links.html --> @@ -17,6 +17,8 @@ + diff --git a/case1/mpl_links.js b/case1/mpl_links.js new file mode 100644 index 0000000..efe76c5 --- /dev/null +++ b/case1/mpl_links.js @@ -0,0 +1,24 @@ +"use strict"; + +/* + New Perspectives on HTML5, CSS3, and JavaScript 6th Edition + Tutorial 13 + Case Problem 1 + + Author: Aspen Kersey & Jason Cobb + Date: 4/11/19 + + Filename: mpl_links.js + +*/ +/*Event listener that runs annoynomas funtions*/ +window.addEventListener("load", function() { + /* All select variables in the gov links*/ + var allSelect = document.querySelectorAll("form#govLinks select"); + /*updates changes*/ + for (var i = 0; i < allSelect.length; i++) { + allSelect[i].onchange = function(e) { + location.href = e.target.value; + } + } +}); diff --git a/case1/mpl_links_txt.js b/case1/mpl_links_txt.js deleted file mode 100644 index fe21beb..0000000 --- a/case1/mpl_links_txt.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -/* - New Perspectives on HTML5, CSS3, and JavaScript 6th Edition - Tutorial 13 - Case Problem 1 - - Author: - Date: - - Filename: mpl_links.js - -*/ - - diff --git a/case1/mr.schmidt.js b/case1/mr.schmidt.js new file mode 100644 index 0000000..da98a17 --- /dev/null +++ b/case1/mr.schmidt.js @@ -0,0 +1,24 @@ +"use strict"; + +/* + New Perspectives on HTML5, CSS3, and JavaScript 6th Edition + Tutorial 13 + Case Problem 1 + + Author: Denise Kruschev + Date: 2018-03-01 + + Filename: mpl_links.js + +*/ + + +window.addEventListener("load", function() { + var allSelect = document.querySelectorAll("form#govLinks select"); + + for (var i = 0; i < allSelect.length; i++) { + allSelect[i].onchange = function(e) { + location.href = e.target.value; + } + } +}); \ No newline at end of file diff --git a/case2/dl_expense_txt.html b/case2/dl_expense.html similarity index 93% rename from case2/dl_expense_txt.html rename to case2/dl_expense.html index 48fadef..354cbf9 100644 --- a/case2/dl_expense_txt.html +++ b/case2/dl_expense.html @@ -7,8 +7,8 @@ Case Problem 2 Travel Expense Report - Author: - Date: + Author: Aspen Kersey & Jason Cobb + Date: 4/11/19 Filename: dl_expense.html --> @@ -17,7 +17,8 @@ - + @@ -70,20 +71,20 @@

Expense Report

First Name* M.I. Account* - + Department* - + Social Security Number* - + Project* - + diff --git a/case2/dl_expense.js b/case2/dl_expense.js new file mode 100644 index 0000000..6f27a84 --- /dev/null +++ b/case2/dl_expense.js @@ -0,0 +1,98 @@ +"use strict"; + +/* + New Perspectives on HTML5, CSS3, and JavaScript 6th Edition + Tutorial 13 + Case Problem 2 + + Author: Aspen Kersey & Jason Cobb + Date: 4/11/19 + + Filename: dl_expenses.js + + Function List + ============= + + validateSummary() + Validates the data entry in the summary field. + + calcClass(sumClass) + Sums up all of the data values for elements of the sumClass class. + + calcExp() + Calculates the travel expenses from all categories and dates. + + formatNumber(val, decimals) + Formats the value, "val" to the number of decimals indicated + by "decimals", adding thousands separators. + + formatUSCurrency(val) + Formats the value, "val", as U.S. currency. + +*/ + + + + +window.addEventListener("load", function() { + var changingCells = document.querySelectorAll("table#travelExp input.sum"); + + for (var i = 0; i < changingCells.length; i++) { + changingCells[i].onchange = calcExp; + } + + document.getElementById("submitButton").onclick = function() { + validateSummary(); + }; +}); + +function validateSummary() { + var summary = document.getElementById("summary"); + if (summary.validity.valueMissing) { + summary.setCustomValidity("You must include a summary of the trip in your report."); + } else { + summary.setCustomValidity(""); + } +} + +function calcClass(sumClass) { + var sumFields = document.getElementsByClassName(sumClass); + var sumTotal = 0; + + for (var i=0; i < sumFields.length; i++) { + var itemValue = parseFloat(sumFields[i].value); + if (!isNaN(itemValue)) { + sumTotal += itemValue; + } + } + return sumTotal; +} + + +function calcExp() { + + var expTable = document.querySelectorAll("table#travelExp tbody tr"); + + for (var i = 0; i < expTable.length; i++) { + document.getElementById("subtotal"+i).value = formatNumber(calcClass("date"+i), 2); + } + + document.getElementById("transTotal").value = formatNumber(calcClass("trans"), 2); + document.getElementById("lodgeTotal").value = formatNumber(calcClass("lodge"), 2); + document.getElementById("mealTotal").value = formatNumber(calcClass("meal"), 2); + document.getElementById("otherTotal").value = formatNumber(calcClass("other"), 2); + document.getElementById("expTotal").value = formatUSCurrency(calcClass("sum")); +} + + + + + +function formatNumber(val, decimals) { + return val.toLocaleString(undefined, {minimumFractionDigits: decimals, + maximumFractionDigits: decimals}); +} + +function formatUSCurrency(val) { + return val.toLocaleString('en-US', {style: "currency", currency: "USD"} ); +} \ No newline at end of file diff --git a/case2/dl_expense_txt.js b/case2/dl_expense_txt.js deleted file mode 100644 index bc32b41..0000000 --- a/case2/dl_expense_txt.js +++ /dev/null @@ -1,48 +0,0 @@ -"use strict"; - -/* - New Perspectives on HTML5, CSS3, and JavaScript 6th Edition - Tutorial 13 - Case Problem 2 - - Author: - Date: - - Filename: dl_expenses.js - - Function List - ============= - - validateSummary() - Validates the data entry in the summary field. - - calcClass(sumClass) - Sums up all of the data values for elements of the sumClass class. - - calcExp() - Calculates the travel expenses from all categories and dates. - - formatNumber(val, decimals) - Formats the value, "val" to the number of decimals indicated - by "decimals", adding thousands separators. - - formatUSCurrency(val) - Formats the value, "val", as U.S. currency. - -*/ - - - - - - - - -function formatNumber(val, decimals) { - return val.toLocaleString(undefined, {minimumFractionDigits: decimals, - maximumFractionDigits: decimals}); -} - -function formatUSCurrency(val) { - return val.toLocaleString('en-US', {style: "currency", currency: "USD"} ); -} \ No newline at end of file diff --git a/case3/mas_reg2_txt.html b/case3/mas_reg2.html similarity index 95% rename from case3/mas_reg2_txt.html rename to case3/mas_reg2.html index 63ca91a..2059de6 100644 --- a/case3/mas_reg2_txt.html +++ b/case3/mas_reg2.html @@ -7,8 +7,8 @@ Case Problem 3 Media Arts Society Registration Form #2 - Author: - Date: + Author: Aspen Kersey & Jason Cobb + Date: 4/11/19 Filename: mas_reg2.html @@ -19,7 +19,9 @@ MAS Registration Payment Form -> + + diff --git a/case3/mas_reg2.js b/case3/mas_reg2.js new file mode 100644 index 0000000..a8969c7 --- /dev/null +++ b/case3/mas_reg2.js @@ -0,0 +1,36 @@ +"use strict"; +/* + New Perspectives on HTML5, CSS3, and JavaScript 6th Edition + Tutorial 13 + Case Problem 3 + + + Filename: mas_reg2.js + + Author: Aspen Kersey & Jason Cobb + Date: 4/11/19 + + + Function List + ============= + + writeSessionValues() + Writes data values from session storage in to the + registration summary form + + +*/ + +window.addEventListener("load", writeSessionValues); + +function writeSessionValues() { + + document.getElementById("regName").textContent = sessionStorage.confName; + document.getElementById("regGroup").textContent = sessionStorage.confGroup; + document.getElementById("regEmail").textContent = sessionStorage.confMail; + document.getElementById("regPhone").textContent = sessionStorage.confPhone; + document.getElementById("regSession").textContent = sessionStorage.confSession; + document.getElementById("regBanquet").textContent = sessionStorage.confBanquet; + document.getElementById("regPack").textContent = sessionStorage.confPack; + document.getElementById("regTotal").textContent = "$" + sessionStorage.confTotal; +} \ No newline at end of file diff --git a/case3/mas_reg2_txt.js b/case3/mas_reg2_txt.js deleted file mode 100644 index 629f18b..0000000 --- a/case3/mas_reg2_txt.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; -/* - New Perspectives on HTML5, CSS3, and JavaScript 6th Edition - Tutorial 13 - Case Problem 3 - - - Filename: mas_reg2.js - - Author: - Date: - - - Function List - ============= - - writeSessionValues() - Writes data values from session storage in to the - registration summary form - - -*/ - diff --git a/case3/mas_register_txt.html b/case3/mas_register.html similarity index 95% rename from case3/mas_register_txt.html rename to case3/mas_register.html index 18e9a0c..77ac066 100644 --- a/case3/mas_register_txt.html +++ b/case3/mas_register.html @@ -7,8 +7,8 @@ Case Problem 3 Media Arts Society Registration Form - Author: - Date: + Author: Aspen Kersey & Jason Cobb + Date: 4/11/19 Filename: mas_register.html @@ -19,6 +19,8 @@ MAS Registration Form + diff --git a/case3/mas_register.js b/case3/mas_register.js new file mode 100644 index 0000000..c84e820 --- /dev/null +++ b/case3/mas_register.js @@ -0,0 +1,99 @@ +"use strict"; +/* + New Perspectives on HTML5, CSS3, and JavaScript 6th Edition + Tutorial 13 + Case Problem 3 + + + Filename: mas_register.js + + Author: Aspen Kersey & Jason Cobb + Date: 4/11/19 + + Function List + ============= + + formTest() + Performs a validation test on the selection of the conference + session package and the conference discount number + + calcCart() + Calculates the cost of the registration and saves data + in session storage + + writeSessionValues() + Writes data values from session storage in to the + registration summary form + + +*/ + +window.addEventListener("load", function() { + calcCart(); + document.getElementById("regSubmit").onclick = sessionTest; + document.getElementById("fnBox").onblur = calcCart; + document.getElementById("lnBox").onblur = calcCart; + document.getElementById("groupBox").onblur = calcCart; + document.getElementById("mailBox").onblur = calcCart; + document.getElementById("phoneBox").onblur = calcCart; + document.getElementById("sessionBox").onchange = calcCart; + document.getElementById("banquetBox").onblur = calcCart; + document.getElementById("mediaCB").onclick = calcCart; +}); + +function sessionTest() { + var confSession = document.getElementById("sessionBox"); + if (confSession.selectedIndex === -1) { + confSession.setCustomValidity("Select a Session Package"); + } else { + confSession.setCustomValidity(""); + } +} + + +function calcCart() { + sessionStorage.confName = document.forms.regForm.elements.firstName.value + " " + document.forms.regForm.elements.lastName.value; + sessionStorage.confGroup = document.forms.regForm.elements.group.value; + sessionStorage.confMail = document.forms.regForm.elements.email.value; + sessionStorage.confPhone = document.forms.regForm.elements.phoneNumber.value; + sessionStorage.confBanquet = document.forms.regForm.elements.banquetGuests.value; + + sessionStorage.confBanquetCost = document.forms.regForm.elements.banquetGuests.value*55; + + var selectedSession = document.getElementById("sessionBox").selectedIndex; + if (selectedSession !== -1) { + sessionStorage.confSession = document.forms.regForm.elements.sessionBox[selectedSession].text; + sessionStorage.confSessionCost = document.forms.regForm.elements.sessionBox[selectedSession].value; + } else { + sessionStorage.confSession = ""; + sessionStorage.confSessionCost = 0; + } + + if (document.forms.regForm.elements.mediaCB.checked) { + sessionStorage.confPack = "yes"; + sessionStorage.confPackCost = 115; + } else { + sessionStorage.confPack = "no"; + sessionStorage.confPackCost = 0; + } + + + sessionStorage.confTotal = parseFloat(sessionStorage.confSessionCost) + + parseFloat(sessionStorage.confBanquetCost) + + parseFloat(sessionStorage.confPackCost); + + writeSessionValues(); +} + +function writeSessionValues() { + + document.getElementById("regName").textContent = sessionStorage.confName; + document.getElementById("regGroup").textContent = sessionStorage.confGroup; + document.getElementById("regEmail").textContent = sessionStorage.confMail; + document.getElementById("regPhone").textContent = sessionStorage.confPhone; + document.getElementById("regSession").textContent = sessionStorage.confSession; + document.getElementById("regBanquet").textContent = sessionStorage.confBanquet; + document.getElementById("regPack").textContent = sessionStorage.confPack; + document.getElementById("regTotal").textContent = "$" + sessionStorage.confTotal; +} + diff --git a/case3/mas_register_txt.js b/case3/mas_register_txt.js deleted file mode 100644 index cbad7cc..0000000 --- a/case3/mas_register_txt.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -/* - New Perspectives on HTML5, CSS3, and JavaScript 6th Edition - Tutorial 13 - Case Problem 3 - - - Filename: mas_register.js - - Author: - Date: - - Function List - ============= - - formTest() - Performs a validation test on the selection of the conference - session package and the conference discount number - - calcCart() - Calculates the cost of the registration and saves data - in session storage - - writeSessionValues() - Writes data values from session storage in to the - registration summary form - - -*/ - diff --git a/case4/ws_cloud.js b/case4/ws_cloud.js new file mode 100644 index 0000000..7ae78c0 --- /dev/null +++ b/case4/ws_cloud.js @@ -0,0 +1,138 @@ +"use strict"; +/* + New Perspectives on HTML5, CSS3, and JavaScript 6th Edition + Tutorial 13 + Case Problem 4 + + + Filename: ws_cloud.js + + Author: Aspen Kersey & Jason Cobb + Date: 4/11/19 + + Function List + ============= + + findUnique(arr) + Returns the unique values in the "arr" array in the form of + a two-dimension array + array[i][j] + where i is the ith unique entry, array[i][0] provides the + value of the entry and array[i][1] provides the number + of repetitons of that value + + sortByCount(a,b) + Compare function used in a two-dimensional arrays to be sorted + in descending order of the values in the array's 2nd column + + sortByWord(a, b) + Compare function used in a two-dimensional array to be sorted + in ascending alphabetical order of the vlaues in the array's + first column + + randomValue(minVal, maxVal) + Returns a randome integer between minVal and maxVal + +*/ + + + + + + +window.addEventListener("load", function() { + // Retrieve only the text of the speech + var wordContent = document.getElementById("speech").textContent; + + // Change all characters to lowercase letters + wordContent = wordContent.toLowerCase(); + + // Remove all punctuation marks from the text + wordContent = wordContent.replace(/[!\.,:;\?\'"\(\)\{\}\d\-]/g,""); + + // Remove all stop words from the text + for (var i = 0; i < stopWords.length; i++) { + var stopWordsRE = new RegExp("\\b"+stopWords[i]+"\\b", "g"); + wordContent = wordContent.replace(stopWordsRE, ""); + } + + // Remove all leading and trailing white space characters + wordContent = wordContent.trim(); + + // Split the text at every occurence of 1 or more white space characters + var wordArray = wordContent.split(/\s+/g); + + // Generate a 2-D array of unique words and their counts + var uniqueWords = findUnique(wordArray); + + // Sort the array in descending order of count + uniqueWords.sort(sortByCount); + + // Limit the array to the top 100 words + uniqueWords.length = 100; + + // Determine the count of the least-used word in the array + var minimumCount = uniqueWords[99][1]; + + // Determine the count of the 3rd most-used word in the array + var top3Count = uniqueWords[2][1]; + + // Sort the array in alphabetical order + uniqueWords.sort(sortByWord); + + + // Loop through the unique words and format them according to their usage + for (var i = 0; i < uniqueWords.length; i++) { + var cloudWord = document.createElement("span"); + cloudWord.textContent = uniqueWords[i][0]; + var wordSize = Math.min(6, 0.45*uniqueWords[i][1]/minimumCount); + cloudWord.style.fontSize = wordSize + "em"; + cloudWord.style.transform = "rotate(" + randomValue(-30, 30) + "deg)"; + if (uniqueWords[i][1] >= top3Count) { + cloudWord.style.color = "rgb(251, 191, 191)"; + cloudWord.style.textShadow = "2px 2px 5px rgb(51, 51, 51)"; + } + document.getElementById("cloud").appendChild(cloudWord); + } +}); + + + +function findUnique(arr) { + var prevWord; + var unique = []; + var listNum = -1; + arr.sort(); + for ( var i = 0; i < arr.length; i++ ) { + if ( arr[i] !== prevWord ) { + listNum++; + unique[listNum] = []; + unique[listNum][0] = arr[i]; + unique[listNum][1] = 1; + } else { + unique[listNum][1] = unique[listNum][1]+1; + } + prevWord = arr[i]; + } + + return unique; +} + +function sortByCount(a,b) { + return b[1]-a[1]; +} + +function sortByWord(a, b) { + if (a[0] < b[0]) { + return -1; + } else if (a[0] > b[0]) { + return 1; + } else { + return 0; + } +} + +function randomValue(minVal, maxVal) { + var interval = maxVal - minVal; + return Math.floor(minVal + interval*Math.random()); +} diff --git a/case4/ws_cloud_txt.js b/case4/ws_cloud_txt.js deleted file mode 100644 index de4da75..0000000 --- a/case4/ws_cloud_txt.js +++ /dev/null @@ -1,84 +0,0 @@ -"use strict"; -/* - New Perspectives on HTML5, CSS3, and JavaScript 6th Edition - Tutorial 13 - Case Problem 4 - - - Filename: ws_cloud.js - - Author: - Date: - - Function List - ============= - - findUnique(arr) - Returns the unique values in the "arr" array in the form of - a two-dimension array - array[i][j] - where i is the ith unique entry, array[i][0] provides the - value of the entry and array[i][1] provides the number - of repetitons of that value - - sortByCount(a,b) - Compare function used in a two-dimensional arrays to be sorted - in descending order of the values in the array's 2nd column - - sortByWord(a, b) - Compare function used in a two-dimensional array to be sorted - in ascending alphabetical order of the vlaues in the array's - first column - - randomValue(minVal, maxVal) - Returns a randome integer between minVal and maxVal - -*/ - - - - - - - - - -function findUnique(arr) { - var prevWord; - var unique = []; - var listNum = -1; - arr.sort(); - for ( var i = 0; i < arr.length; i++ ) { - if ( arr[i] !== prevWord ) { - listNum++; - unique[listNum] = []; - unique[listNum][0] = arr[i]; - unique[listNum][1] = 1; - } else { - unique[listNum][1] = unique[listNum][1]+1; - } - prevWord = arr[i]; - } - - return unique; -} - -function sortByCount(a,b) { - return b[1]-a[1]; -} - -function sortByWord(a, b) { - if (a[0] < b[0]) { - return -1; - } else if (a[0] > b[0]) { - return 1; - } else { - return 0; - } -} - -function randomValue(minVal, maxVal) { - var interval = maxVal - minVal; - return Math.floor(minVal + interval*Math.random()); -} - diff --git a/case4/ws_lincoln_txt.html b/case4/ws_lincoln.html similarity index 98% rename from case4/ws_lincoln_txt.html rename to case4/ws_lincoln.html index a4e9e95..33142b2 100644 --- a/case4/ws_lincoln_txt.html +++ b/case4/ws_lincoln.html @@ -7,8 +7,8 @@ Case Problem 4 Word Cloud of Lincoln's 1st Inaugural - Author: - Date: + Author: Aspen Kersey & Jason Cobb + Date: 4/11/19 Filename: ws_lincoln.html @@ -19,6 +19,8 @@ Rhetoric in the United States Word Cloud + diff --git a/review/co_cart_txt.html b/review/co_cart.html similarity index 94% rename from review/co_cart_txt.html rename to review/co_cart.html index f2fe302..5156cb6 100644 --- a/review/co_cart_txt.html +++ b/review/co_cart.html @@ -7,8 +7,8 @@ Review Assignment Coctura Cart Page - Author: - Date: + Author: Jason and Aspen + Date: April 10, 2019 Filename: co_cart.html --> @@ -17,6 +17,13 @@ + + + + + diff --git a/review/co_cart_txt.js b/review/co_cart.js similarity index 89% rename from review/co_cart_txt.js rename to review/co_cart.js index 4a0ee57..15ec3b5 100644 --- a/review/co_cart_txt.js +++ b/review/co_cart.js @@ -7,8 +7,8 @@ Shopping Cart Form Script - Author: - Date: + Author: Jason and Aspen + Date: April 10, 2019 Filename: co_cart.js @@ -29,14 +29,6 @@ */ - - - - - - - - function formatNumber(val, decimals) { return val.toLocaleString(undefined, {minimumFractionDigits: decimals, maximumFractionDigits: decimals}); diff --git a/review/co_credit_txt.html b/review/co_credit.html similarity index 94% rename from review/co_credit_txt.html rename to review/co_credit.html index 0620047..e059429 100644 --- a/review/co_credit_txt.html +++ b/review/co_credit.html @@ -7,8 +7,8 @@ Review Assignment Coctura Credit Page - Author: - Date: + Author: Jason and Aspen + Date: April 10, 2019 Filename: co_credit.html --> @@ -16,7 +16,12 @@ Coctura Payment Form - + + + + diff --git a/review/co_credit_txt.js b/review/co_credit.js similarity index 100% rename from review/co_credit_txt.js rename to review/co_credit.js