Remove unused snortupdateutility.js

Message ID 20210325163317.823-1-hofmann@leo-andres.de
State Accepted
Commit 6c958adf2f2a115004fe6c3c5ab698f99c80e23b
Headers
Series Remove unused snortupdateutility.js |

Commit Message

Leo-Andres Hofmann March 25, 2021, 4:33 p.m. UTC
  This script doesn't seem to be maintained or used anywhere anymore.
The last reference to it was removed in commit 1772664.

Signed-off-by: Leo-Andres Hofmann <hofmann@leo-andres.de>
---
 config/rootfiles/common/web-user-interface |   1 -
 html/html/include/snortupdateutility.js    | 744 ---------------------
 2 files changed, 745 deletions(-)
 delete mode 100644 html/html/include/snortupdateutility.js
  

Comments

Peter Müller March 27, 2021, 8:27 p.m. UTC | #1
Hello Leo,

indeed, this is orphaned. Thank you for catching it. :-)

We probably need to remove it during the upgrading procedure of the Core Update this patch will
be included in, for good measures.

Acked-by: Peter Müller <peter.mueller@ipfire.org>

Thanks, and best regards,
Peter Müller

> This script doesn't seem to be maintained or used anywhere anymore.
> The last reference to it was removed in commit 1772664.
> 
> Signed-off-by: Leo-Andres Hofmann <hofmann@leo-andres.de>
> ---
>  config/rootfiles/common/web-user-interface |   1 -
>  html/html/include/snortupdateutility.js    | 744 ---------------------
>  2 files changed, 745 deletions(-)
>  delete mode 100644 html/html/include/snortupdateutility.js
> 
> diff --git a/config/rootfiles/common/web-user-interface b/config/rootfiles/common/web-user-interface
> index 9b2667676..540bf1e4b 100644
> --- a/config/rootfiles/common/web-user-interface
> +++ b/config/rootfiles/common/web-user-interface
> @@ -300,7 +300,6 @@ srv/web/ipfire/html/images/view-refresh.png
>  srv/web/ipfire/html/images/wakeup.gif
>  srv/web/ipfire/html/images/window-new.png
>  srv/web/ipfire/html/include
> -srv/web/ipfire/html/include/snortupdateutility.js
>  srv/web/ipfire/html/include/zoneconf.js
>  srv/web/ipfire/html/index.cgi
>  srv/web/ipfire/html/redirect-templates
> diff --git a/html/html/include/snortupdateutility.js b/html/html/include/snortupdateutility.js
> deleted file mode 100644
> index 10750519c..000000000
> --- a/html/html/include/snortupdateutility.js
> +++ /dev/null
> @@ -1,744 +0,0 @@
> -/*
> -File Info:	utility.js - JavaScript library
> -
> -Author:		Drew S. Dupont
> -
> -Date:		2/26/2003 - 8/12/2004 (or present day)
> -
> -Description:	Utility functions in JavaScript
> -		Drew S. Dupont <dsdupont@alumni.indiana.edu>
> -*/
> -// Show/Hide HTML Span
> -function showHideHTML(id, content) {
> -	// Browser variables
> -	var ie45, ns6, ns4, dom = false;
> -
> -	// Basic browser parse
> -	if (navigator.appName == "Microsoft Internet Explorer") {
> -		ie45 = parseInt(navigator.appVersion) >= 4;
> -	} else if (navigator.appName == "Netscape") {
> -		ns6 = parseInt(navigator.appVersion) >= 5;
> -		ns4 = parseInt(navigator.appVersion) < 5;
> -	}
> -	dom = ie45 || ns6;
> -
> -	// Return if using an old Netscape browser
> -	if(ns4) return;
> -
> -	// Check for type of call supported
> -	el = document.all ? document.all[id] : dom ? document.getElementById(id) : document.layers[id];
> -
> -	// Check if content to be "switched" is ""
> -	if (content == "") {
> -		// Return old content and replace with ""
> -		content = el.innerHTML;
> -		el.innerHTML = "";
> -	} else {
> -		// Replace current content with new content and return ""
> -		el.innerHTML = content;
> -		content = "";
> -	}
> -
> -	// Return content (either old or "")
> -	return content;
> -}
> -
> -// Check for special chars
> -function checkForSpecialChars(field, alphaStart, specialCheckChars) {
> -	// Local vars
> -	var alphaStartChars = /^[a-zA-Z]/;
> -	var noSpecialChars = /([^a-zA-Z0-9 _,?!':;\r\t\n\/\\\-\.#@]+)/;
> -
> -	// Check if should start with an alpha char
> -	if (alphaStart) {
> -		// Make sure starts with a alpha char
> -		if (alphaStartChars.test(field.value)) {
> -			// Check for special chars
> -			if (noSpecialChars.test(field.value)) {
> -				// Return true
> -				return true;
> -			} else {
> -				// Check for specialCheckChars
> -				if (specialCheckChars && (specialCheckChars.test(field.value))) {
> -					// Return true
> -					return true;
> -				} else {
> -					// Return false
> -					return false;
> -				}
> -			}
> -		} else {
> -			// Return true
> -			return true;
> -		}
> -	} else {
> -		// Check if contains any special chars
> -		if (noSpecialChars.test(field.value)) {
> -			// Return true
> -			return true;
> -		} else {
> -			// Check for specialCheckChars
> -			if (specialCheckChars && (specialCheckChars.test(field.value))) {
> -				// Return true
> -				return true;
> -			} else {
> -				// Return false
> -				return false;
> -			}
> -		}
> -	}
> -} // End checkForSpecialChars
> -
> -// Launch help
> -function launchHelp(helpSrc) {
> -	helpWindow = window.open(helpSrc, "helpWindow", "resizable=yes,menubar=no,statusbar=no,titlebar=no,scrollbars=yes,width=400,height=400")
> -	helpWindow.moveTo(25, 25);
> -	helpWindow.focus();
> -}
> -
> -// Image On
> -function imageOn(imageName)	{
> -	document[imageName].src = eval(imageName + "_over.src");
> -}
> -
> -// Image Off
> -function imageOff(imageName) {
> -	document[imageName].src = eval(imageName + ".src");
> -}
> -
> -// Image Down
> -function imageDown(imageName) {
> -	document[imageName].src = eval(imageName + "_down.src");
> -}
> -
> -// Image button On
> -function imageButtonOn(item, imageName)	{
> -	item.src = eval(imageName + "_over.src");
> -}
> -
> -// Image button Off
> -function imageButtonOff(item, imageName) {
> -	item.src = eval(imageName + ".src");
> -}
> -
> -// Image button Down
> -function imageButtonDown(item, imageName) {
> -	item.src = eval(imageName + "_down.src");
> -}
> -
> -// changeStatus
> -function changeStatus(message) {
> -	// Set window status
> -	window.status = message;
> -
> -	// Return true
> -	return true;
> -} // End changeStatus
> -
> -// isNumeric function
> -function isNumeric(num) {
> -	// Boolean var
> -	var bolValidNum = true;
> -	var digits = "1234567890";
> -	var len = num.length;
> -
> -	// Loop over num
> -	for (i = 0; i < len; ++i) {
> -		numSub = num.substring(i, i + 1);
> -
> -		// Test for numeric match
> -		if (digits.indexOf(numSub) == -1) {
> -			bolValidNum = false;
> -		}
> -	}
> -
> -	// Return boolean var
> -	return bolValidNum;
> -} // End isNumeric
> -
> -// Check for numeric and display nice error
> -function checkNumeric(field, message) {
> -	// Is it valid
> -	if (!isNumeric(field.value)) {
> -		alert(message);
> -		field.focus();
> -	}
> -} // End checkNumeric
> -
> -// Function getInt which return numeric value of passed in string
> -function getInt(str, i, minlength, maxlength) {
> -	for (x = maxlength; x >= minlength; --x) {
> -		var token = str.substring(i, i + x);
> -
> -		// Check for numeric
> -		if (isNumeric(token)) {
> -			return token;
> -		}
> -	}
> -
> -	// Return null
> -	return null;
> -}
> -
> -// Function dateCheck, requires global err variable for passing error messages 
> -// and requires the isNumeric function
> -function dateCheck(date, humanname, dateFormat) {
> -	// Date validation
> -	var date_s = date;
> -
> -	// If no dateFormat, then set one
> -	if (dateFormat == null) {
> -		format = "mm/dd/yyyy";
> -	} else {
> -		format = dateFormat;
> -	}
> -
> -	var date_err = 0; // Possible values are 0, 1
> -	var date_year_err = 0; // Possible values are 0, 1
> -	var date_month_err = 0; // Possible values are 1-12
> -	var date_day_err = 0; // Possible values are 0, 1, 2, 3, 4
> -	var i_date_s = 0;
> -	var i_format = 0;
> -	var err = "";
> -	var c = "";
> -	var token = "";
> -	var token2 = "";
> -	var x, y;
> -	var year = 0;
> -	var month = 0;
> -	var date = 0;
> -	var bYearProvided = false;
> -	var MONTH_NAMES = new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
> -
> -	// Trim the leading spaces from the string
> -	while (date_s.charAt(0) == ' ') {
> -		date_s = date_s.slice(1);
> -	}
> -
> -	while (i_format < format.length) {
> -		// Get next token from format string
> -		c = format.charAt(i_format);
> -		token = "";
> -
> -		while ((format.charAt(i_format) == c) && (i_format < format.length)) {
> -			token += format.charAt(i_format);
> -			++i_format;
> -		}
> -
> -		// Extract contents of value based on format token
> -		if ((token == "yyyy") || (token == "yy") || (token == "y")) {
> -			if (token == "yyyy") { x = 4; y = 4; } // 4-digit year
> -			if (token == "yy") { x = 2; y = 2; } // 2-digit year
> -			if (token == "y") { x = 2; y = 4; } // 2-or-4-digit year
> -
> -			year = getInt(date_s, i_date_s, x, y);
> -			bYearProvided = true;
> -
> -			if ((year == null) || (year.length != token.length)) {
> -				date_year_err = 1;
> -			}
> -
> -			i_date_s += year.length;
> -		} else {
> -			if (token == "mmm") { // Month name
> -				month = 0;
> -
> -				for (var i = 0; i < MONTH_NAMES.length; ++i) {
> -					var month_name = MONTH_NAMES[i];
> -
> -					if (date_s.substring(i_date_s, (i_date_s + month_name.length)).toLowerCase() == month_name.toLowerCase()) {
> -						month = i + 1;
> -
> -						if (month > 12) {
> -							month -= 12;
> -						}
> -
> -						i_date_s += month_name.length;
> -						break;
> -					}
> -				}
> -
> -				if ((month == 0) || (month < 1) || (month > 12)) {
> -					date_month_err = 1;
> -				}
> -			} else {
> -				if ((token == "mm") || (token == "m")) {
> -					x = token.length; y = 2;
> -					month = getInt(date_s, i_date_s, x, y);
> -
> -					if ((month == null) || (month < 1) || (month > 12)) {
> -						date_month_err = 1;
> -					}
> -
> -					i_date_s += month.length;
> -				} else {
> -					if (token=="dd" || token=="d") {
> -						x = token.length; y = 2;
> -						date = getInt(date_s, i_date_s, x, y);
> -
> -						if ((date == null) || (date < 1) || (date > 31)) {
> -							date_day_err = 1;
> -						}
> -
> -						i_date_s += date.length;
> -					} else {
> -						if (date_s.substring(i_date_s, (i_date_s + token.length)) != token) {
> -							date_err = 1;
> -						} else {
> -							i_date_s += token.length;
> -						}
> -					}
> -				}
> -			}
> -		}
> -	}
> -
> -	// If there are any trailing characters left in the date_s, it doesn't match
> -	if (i_date_s != date_s.length) {
> -		date_err = 1;
> -	}
> -
> -	// Is date valid for month?
> -	if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
> -		if (date > 30) {
> -			date_day_err = 2;
> -		}
> -	} else {
> -		if (month == 2) {
> -			// Check for leap year
> -			if ((((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0)) {
> -				// Leap year
> -				if (date > 29) {
> -					date_day_err = 3
> -				}
> -			} else {
> -				if (date > 28) {
> -					date_day_err = 4;
> -				}
> -			}
> -		} else {
> -			if (date > 31) {
> -				date_day_err = 1;
> -			}
> -		}
> -	}
> -
> -	// Add to the error message, if needed
> -	if (date_err != 0) {
> -		err += "\n - The " + humanname + " must be a valid date in the format " + format + ".";
> -	}
> -
> -	// Add to the error message, if needed
> -	if (date_month_err != 0) {
> -		err += "\n - The month must be between 1-12.";
> -	}
> -
> -	// Add to the error message, if needed
> -	if (date_year_err != 0) {
> -		err += "\n - The " + humanname + " must have a valid year.";
> -	}
> -
> -	// Add to the error message, if needed
> -	if (date_day_err != 0) {
> -		switch (date_day_err) {
> -			case 1:
> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 31 days.";
> -				break;
> -			case 2:
> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 30 days.";
> -				break;
> -			case 3:
> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 29 days in a Leap Year.";
> -				break;
> -			default:
> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 28 days in a non-Leap Year.";
> -				break;
> -		}
> -	}
> -
> -	return err;
> -} // End dateCheck
> -
> -// Compares two MM/DD/YYY dates for less than (-1), equal to (0), or 
> -// greater than (1)
> -function dateCompare(date1, date2) {
> -	var localDate1 = new Date(date1.substring(6,10), date1.substring(0,2), date1.substring(3,5));
> -	var localDate2 = new Date(date2.substring(6,10), date2.substring(0,2), date2.substring(3,5));
> -
> -	// Greater than
> -	if (localDate1.getTime() > localDate2.getTime()) {
> -		return 1;
> -	} else {
> -		// Less than
> -		if (localDate1.getTime() < localDate2.getTime()) {
> -			return -1;
> -		} else {
> -			// Equal
> -			return 0;
> -		}
> -	}
> -} // End dateCompare
> -
> -// All-purpose form validation script
> -function checkForm(dataForm) {
> -	var msg = "";
> -	var stripBlanksStart = /^\s+/g;
> -	var stripBlanksEnd = /\s+$/g;
> -	var squeezeBlanks = /\s+/g;
> -	var stripNonNumbers = /\D+/g;
> -	var stripNotDollars = /[^0-9\.]/g;
> -	var noSpaces = /\s+/g;
> -	var allNumbers = /^\d+$/;
> -	var zipCodeCheck = /^(\d{5})$|^(\d{5}-\d{4})$/;
> -	var passwordNumbers = /\d{1,}/;
> -	var passwordLetters = /\D{1,}/;
> -	var emailPattern = /^[a-zA-Z0-9]([a-zA-Z0-9_\-\.]*)@([a-zA-Z0-9_\-\.]*)(\.[a-zA-Z]{2,3}(\.[a-zA-Z]{2}){0,2})$/i;
> -	var replaceSeps = /[-,\.\/]/g;
> -	var time24Format = /^(([0-1]?\d)|(2[0-3])):[0-5]\d(:([0-5]\d))?/;
> -	var time12Format = /^(\d|0\d|1[0-2]):[0-5]\d(:[0-5]\d)?( (A|P)\.?M\.?)?/;
> -	var ipNetworkAddress = /^((\d{1,2}|[1]\d{2}|2[0-4]\d|25[0-5])(\.(\d{1,2}|[1]\d{2}|2[0-4]\d|25[0-5])){3}){1}((\/(0\.0\.0\.0|128\.0\.0\.0|192\.0\.0\.0|224\.0\.0\.0|240\.0\.0\.0|248\.0\.0\.0|252\.0\.0\.0|254\.0\.0\.0|(255\.(0\.0\.0|128\.0\.0|192\.0\.0|224\.0\.0|240\.0\.0|248\.0\.0|252\.0\.0|254\.0\.0|(255\.(0\.0|128\.0|192\.0|224\.0|240\.0|248\.0|252\.0|254\.0|(255\.(0|128|192|224|240|248|252|254|255))))))))|(\/(\d|[1-2]\d|3[0-2]))){0,1}$/;
> -	var ipNetworkPort = /^(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5]){1}((\:|\-)(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])){0,1}$/;
> -	var passwordLength = 6;
> -	var error_fields = "";
> -	var errors = "";
> -
> -	// Loop over form elements
> -	for (var i = 0; i < dataForm.length; ++i) {
> -		var element = dataForm.elements[i];
> -
> -		// Check for select box
> -		if (element.selectbox) {
> -			// Check for required
> -			if (element.required) {
> -				// Check for value
> -				if (element.options[element.selectedIndex].value == "") {
> -					error_fields += "\n - " + element.humanname + " requires a selection.";
> -				}
> -			}
> -			continue;
> -		}
> -
> -		// Strip the leading and trailing blanks
> -		element.value = element.value.replace(stripBlanksStart, '');
> -		element.value = element.value.replace(stripBlanksEnd, '');
> -
> -		// If it is required and is empty, alert
> -		if (element.required && (!element.value.length)) {
> -			error_fields += "\n - " + element.humanname + " is required.";
> -			continue;
> -		} else {
> -			// If it isn't required and doesn't have any length, skip it
> -			if ((! element.required) && (! element.value.length)) {
> -				continue;
> -			}
> -		}
> -
> -		// Check for special characters
> -		if (element.checkspecialchars) {
> -			if (checkForSpecialChars(element, element.alphaStart, element.specialChars)) {
> -				error_fields += "\n - " + element.humanname + " contains invalid characters.";
> -				continue;
> -			}
> -		}
> -		
> -		// Convert to uppercase if necessary
> -		if (element.uppercase) {
> -			element.value = element.value.toUpperCase();
> -		}
> -
> -		// Convert to uppercase if necessary
> -		if (element.lowercase) {
> -			element.value = element.value.toLowerCase();
> -		}
> -
> -		// UCFirst if necessary
> -		if (element.ucfirst) {
> -			// Squeeze the blanks
> -			rs = element.value.replace(squeezeBlanks, ' ');
> -			dsegs = rs.split(' ');
> -			element.value = "";
> -
> -			// Loop over chars
> -			for (j = 0; j < dsegs.length; ++j) {
> -				if (dsegs[j].length > 1) {
> -					fl = dsegs[j].substr(0, 1);
> -					fl = fl.toUpperCase();
> -					rn = dsegs[j].substr(1);
> -					rn = rn.toLowerCase();
> -					dsegs[j] = fl + rn;
> -				}
> -
> -				// Check for first value
> -				element.value = j ? element.value + ' ' + dsegs[j] : dsegs[j];
> -			}
> -		}
> -
> -		// Check for equality test
> -		if (element.equalto) {
> -			// Check for truevalue and use if found, otherwise use value
> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
> -			var elementValue2 = element.equaltovalue.truevalue ? element.equaltovalue.truevalue : element.equaltovalue.value;
> -
> -			// Check for value equality
> -			if (elementValue1 != elementValue2) {
> -				error_fields +="\n - " + element.humanname + " is not the same as " + element.equaltovalue.humanname;
> -				continue;
> -			}
> -		}
> -
> -		// Check for less than
> -		if (element.lessthan) {
> -			// Check for truevalue and use if found, otherwise use value
> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
> -			var elementValue2 = element.lessthanvalue.truevalue ? element.lessthanvalue.truevalue : element.lessthanvalue.value;
> -
> -			// Check for values
> -			if ((elementValue1 != '') && (elementValue2 != '')) {
> -				// Check for value less than
> -				if (elementValue1 >= elementValue2) {
> -					error_fields +="\n - " + element.humanname + " must be less than " + element.lessthanvalue.humanname;
> -					continue;
> -				}
> -			}
> -		}
> -
> -		// Check for less than equalto
> -		if (element.lessthanequalto) {
> -			// Check for truevalue and use if found, otherwise use value
> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
> -			var elementValue2 = element.lessthanequaltovalue.truevalue ? element.lessthanequaltovalue.truevalue : element.lessthanequaltovalue.value;
> -
> -			// Check for values
> -			if ((elementValue1 != '') && (elementValue2 != '')) {
> -				// Check for value less than equalto
> -				if (elementValue1 > elementValue2) {
> -					error_fields +="\n - " + element.humanname + " must be less than or equal to " + element.lessthanequaltovalue.humanname;
> -					continue;
> -				}
> -			}
> -		}
> -
> -		// Check for greater than
> -		if (element.greaterthan) {
> -			// Check for truevalue and use if found, otherwise use value
> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
> -			var elementValue2 = element.greaterthanvalue.truevalue ? element.greaterthanvalue.truevalue : element.greaterthanvalue.value;
> -
> -			// Check for values
> -			if ((elementValue1 != '') && (elementValue2 != '')) {
> -				// Check for value greater than
> -				if (elementValue1 <= elementValue2) {
> -					error_fields +="\n - " + element.humanname + " must be greater than " + element.greaterthanvalue.humanname;
> -					continue;
> -				}
> -			}
> -		}
> -
> -		// Check for greater than equalto
> -		if (element.greaterthanequalto) {
> -			// Check for truevalue and use if found, otherwise use value
> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
> -			var elementValue2 = element.greaterthanequaltovalue.truevalue ? element.greaterthanequaltovalue.truevalue : element.greaterthanequaltovalue.value;
> -
> -			// Check for values
> -			if ((elementValue1 != '') && (elementValue2 != '')) {
> -				// Check for value greater than equalto
> -				if (elementValue1 < elementValue2) {
> -					error_fields +="\n - " + element.humanname + " must be greater than or equal to " + element.greaterthanequaltovalue.humanname;
> -					continue;
> -				}
> -			}
> -		}
> -
> -		// Check a price (sort of)
> -		if (element.price) {
> -			// Strip out currency stuff
> -			element.value = element.value.replace(stripNotDollars, '');
> -			continue;
> -		}
> -
> -		// Check a telephone number
> -		if (element.telephone) {
> -			// Strip out parens and spaces
> -			rs = element.value.replace(stripNonNumbers, '');
> -
> -			if (rs.length == 7) {
> -				element.value = rs.substr(0, 3) + "-" + rs.substr(3, 4);
> -			} else {
> -				if (rs.length == 10) {
> -					element.value = rs.substr(0, 3) + "-" + rs.substr(3, 3) + "-" + rs.substr(6, 4);
> -				} else { 
> -					error_fields += "\n - " + element.humanname + " is an invalid telephone number.";
> -				}
> -			}
> -			continue;
> -		}
> -
> -		// Check a zip code
> -		if (element.zipcode) {
> -			if (!zipCodeCheck.test(element.value)) {
> -				error_fields +="\n - " + element.humanname + " is an invalid zipcode.";
> -			}
> -			continue;
> -		}
> -
> -		// Check a password (sort of)
> -		if (element.password) {
> -			if (element.value.length < passwordLength) {
> -				error_fields += "\n - " + element.humanname + " is too short";
> -				error_fields += "\n      Minimum length is " + passwordLength + " characters.";
> -				continue;
> -			}
> -
> -			if (!passwordNumbers.test(element.value)) {
> -				error_fields += "\n - " + element.humanname + " must contain at least one number.";
> -				continue;
> -			}
> -
> -			if (!passwordLetters.test(element.value)) {
> -				error_fields += "\n - " + element.humanname + " must contain at least one letter.";
> -				continue;
> -			}
> -		}
> -
> -		// Check for all numbers
> -		if (element.numeric) {
> -			if (!allNumbers.test(element.value)) {
> -				error_fields += "\n - " + element.humanname + " is not numeric.";
> -			}
> -			continue;
> -		}
> -
> -		// Check an email address for validity
> -		if (element.email) {
> -			element.value = element.value.replace(noSpaces, '');
> -
> -			if (!emailPattern.test(element.value)) {
> -				error_fields += "\n - " + element.humanname + " is not a valid email address.";
> -			}
> -			continue;
> -		}
> -
> -		// Check a date
> -		if (element.date) {
> -			error_fields += dateCheck(element.value, element.humanname, element.format);
> -			continue;
> -		}
> -
> -		// Check a time
> -		if (element.time) {
> -			// Check for 24 hour time
> -			if (element.time24) {
> -				// Check for valid
> -				if (!time24Format.test(element.value)) {
> -					error_fields += "\n - " + element.humanname + " is not a valid 24 hour time.";
> -				}
> -			} else {
> -				// Check for valid
> -				if (!time12Format.test(element.value)) {
> -					error_fields += "\n - " + element.humanname + " is not a valid 12 hour time.";
> -				}
> -			}
> -			continue;
> -		}
> -
> -		// Check the lengths
> -		if (element.minlen && (element.value.length < element.minlen)) {
> -			error_fields += "\n - " + element.humanname + " is too short";
> -			error_fields += "\n      Minimum length is " + element.minlen + " characters.";
> -			continue;
> -		}
> -
> -		if (element.maxlen && (element.value.length > element.maxlen)) {
> -			error_fields +="\n - " + element.humanname + " is too long";
> -			error_fields +="\n      Maximum length is " + element.maxlen + " characters.";
> -			continue;
> -		}
> -
> -		// Check for ip/network address
> -		if (element.ipnetworkaddress) {
> -			if (!ipNetworkAddress.test(element.value)) {
> -				error_fields +="\n - " + element.humanname + " is not a valid ip/network address";
> -			}
> -			continue;
> -		}
> -
> -		// Check for ip/network port
> -		if (element.ipnetworkport) {
> -			if (!ipNetworkPort.test(element.value)) {
> -				error_fields +="\n - " + element.humanname + " is not a valid ip/network port";
> -			} else {
> -				var searchChar = "";
> -				var portArray = "";
> -
> -				if (element.value.indexOf(":") > -1) {
> -					searchChar = ":";
> -				} else if (element.value.indexOf("-") > -1) {
> -					searchChar = "-";
> -				}
> -				
> -				if (searchChar != '') {
> -					portArray = element.value.split(searchChar);
> -
> -					if (portArray.length == 2) {
> -						if (parseInt(portArray[0]) > parseInt(portArray[1])) {
> -							error_fields +="\n - " + element.humanname + " can not have a start port greater than an end port";
> -						}
> -					}
> -				}
> -			}
> -			continue;
> -		}
> -	}
> -
> -	// Check for any errors
> -	if (error_fields == "") {
> -		return true;
> -	} else {
> -		msg = "The following fields have errors:\n";
> -		msg += error_fields;
> -		alert(msg);
> -		return false;
> -	}
> -}
> -
> -// Clear data
> -function clearData(field, data) {
> -	// Check if they equal
> -	if (field.value == data) {
> -		// Clear data
> -		field.value = '';
> -	}
> -}
> -
> -// Set empty data
> -function setEmptyData(field, data) {
> -	// Check if they equal
> -	if (! field.value.length) {
> -		// Clear data
> -		field.value = data;
> -	}
> -}
> -
> -// Trim whitespace from beginning and end
> -function trim(data) {
> -	var objRegExp = /^(\s*)$/;
> -
> -	// Check for all spaces
> -	if (objRegExp.test(data)) {
> -		data = data.replace(objRegExp, '');
> -
> -		if (data.length == 0)
> -			return data;
> -	}
> -
> -	// Check for leading & trailing spaces
> -	objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
> -
> -	if (objRegExp.test(data)) {
> -		// Remove leading and trailing whitespace characters
> -		data = data.replace(objRegExp, '$2');
> -	}
> -
> -	return data;
> -}
>
  
Leo-Andres Hofmann March 28, 2021, 12:23 p.m. UTC | #2
Hello Peter,

thank you for reviewing my work!

Unfortunately I don't know how to remove files during an update. Can you take over for me?

Best regards
Leo

Am 27.03.2021 um 21:27 schrieb Peter Müller:
> Hello Leo,
>
> indeed, this is orphaned. Thank you for catching it. :-)
>
> We probably need to remove it during the upgrading procedure of the Core Update this patch will
> be included in, for good measures.
>
> Acked-by: Peter Müller <peter.mueller@ipfire.org>
>
> Thanks, and best regards,
> Peter Müller
>
>> This script doesn't seem to be maintained or used anywhere anymore.
>> The last reference to it was removed in commit 1772664.
>>
>> Signed-off-by: Leo-Andres Hofmann <hofmann@leo-andres.de>
>> ---
>>   config/rootfiles/common/web-user-interface |   1 -
>>   html/html/include/snortupdateutility.js    | 744 ---------------------
>>   2 files changed, 745 deletions(-)
>>   delete mode 100644 html/html/include/snortupdateutility.js
>>
>> diff --git a/config/rootfiles/common/web-user-interface b/config/rootfiles/common/web-user-interface
>> index 9b2667676..540bf1e4b 100644
>> --- a/config/rootfiles/common/web-user-interface
>> +++ b/config/rootfiles/common/web-user-interface
>> @@ -300,7 +300,6 @@ srv/web/ipfire/html/images/view-refresh.png
>>   srv/web/ipfire/html/images/wakeup.gif
>>   srv/web/ipfire/html/images/window-new.png
>>   srv/web/ipfire/html/include
>> -srv/web/ipfire/html/include/snortupdateutility.js
>>   srv/web/ipfire/html/include/zoneconf.js
>>   srv/web/ipfire/html/index.cgi
>>   srv/web/ipfire/html/redirect-templates
>> diff --git a/html/html/include/snortupdateutility.js b/html/html/include/snortupdateutility.js
>> deleted file mode 100644
>> index 10750519c..000000000
>> --- a/html/html/include/snortupdateutility.js
>> +++ /dev/null
>> @@ -1,744 +0,0 @@
>> -/*
>> -File Info:	utility.js - JavaScript library
>> -
>> -Author:		Drew S. Dupont
>> -
>> -Date:		2/26/2003 - 8/12/2004 (or present day)
>> -
>> -Description:	Utility functions in JavaScript
>> -		Drew S. Dupont <dsdupont@alumni.indiana.edu>
>> -*/
>> -// Show/Hide HTML Span
>> -function showHideHTML(id, content) {
>> -	// Browser variables
>> -	var ie45, ns6, ns4, dom = false;
>> -
>> -	// Basic browser parse
>> -	if (navigator.appName == "Microsoft Internet Explorer") {
>> -		ie45 = parseInt(navigator.appVersion) >= 4;
>> -	} else if (navigator.appName == "Netscape") {
>> -		ns6 = parseInt(navigator.appVersion) >= 5;
>> -		ns4 = parseInt(navigator.appVersion) < 5;
>> -	}
>> -	dom = ie45 || ns6;
>> -
>> -	// Return if using an old Netscape browser
>> -	if(ns4) return;
>> -
>> -	// Check for type of call supported
>> -	el = document.all ? document.all[id] : dom ? document.getElementById(id) : document.layers[id];
>> -
>> -	// Check if content to be "switched" is ""
>> -	if (content == "") {
>> -		// Return old content and replace with ""
>> -		content = el.innerHTML;
>> -		el.innerHTML = "";
>> -	} else {
>> -		// Replace current content with new content and return ""
>> -		el.innerHTML = content;
>> -		content = "";
>> -	}
>> -
>> -	// Return content (either old or "")
>> -	return content;
>> -}
>> -
>> -// Check for special chars
>> -function checkForSpecialChars(field, alphaStart, specialCheckChars) {
>> -	// Local vars
>> -	var alphaStartChars = /^[a-zA-Z]/;
>> -	var noSpecialChars = /([^a-zA-Z0-9 _,?!':;\r\t\n\/\\\-\.#@]+)/;
>> -
>> -	// Check if should start with an alpha char
>> -	if (alphaStart) {
>> -		// Make sure starts with a alpha char
>> -		if (alphaStartChars.test(field.value)) {
>> -			// Check for special chars
>> -			if (noSpecialChars.test(field.value)) {
>> -				// Return true
>> -				return true;
>> -			} else {
>> -				// Check for specialCheckChars
>> -				if (specialCheckChars && (specialCheckChars.test(field.value))) {
>> -					// Return true
>> -					return true;
>> -				} else {
>> -					// Return false
>> -					return false;
>> -				}
>> -			}
>> -		} else {
>> -			// Return true
>> -			return true;
>> -		}
>> -	} else {
>> -		// Check if contains any special chars
>> -		if (noSpecialChars.test(field.value)) {
>> -			// Return true
>> -			return true;
>> -		} else {
>> -			// Check for specialCheckChars
>> -			if (specialCheckChars && (specialCheckChars.test(field.value))) {
>> -				// Return true
>> -				return true;
>> -			} else {
>> -				// Return false
>> -				return false;
>> -			}
>> -		}
>> -	}
>> -} // End checkForSpecialChars
>> -
>> -// Launch help
>> -function launchHelp(helpSrc) {
>> -	helpWindow = window.open(helpSrc, "helpWindow", "resizable=yes,menubar=no,statusbar=no,titlebar=no,scrollbars=yes,width=400,height=400")
>> -	helpWindow.moveTo(25, 25);
>> -	helpWindow.focus();
>> -}
>> -
>> -// Image On
>> -function imageOn(imageName)	{
>> -	document[imageName].src = eval(imageName + "_over.src");
>> -}
>> -
>> -// Image Off
>> -function imageOff(imageName) {
>> -	document[imageName].src = eval(imageName + ".src");
>> -}
>> -
>> -// Image Down
>> -function imageDown(imageName) {
>> -	document[imageName].src = eval(imageName + "_down.src");
>> -}
>> -
>> -// Image button On
>> -function imageButtonOn(item, imageName)	{
>> -	item.src = eval(imageName + "_over.src");
>> -}
>> -
>> -// Image button Off
>> -function imageButtonOff(item, imageName) {
>> -	item.src = eval(imageName + ".src");
>> -}
>> -
>> -// Image button Down
>> -function imageButtonDown(item, imageName) {
>> -	item.src = eval(imageName + "_down.src");
>> -}
>> -
>> -// changeStatus
>> -function changeStatus(message) {
>> -	// Set window status
>> -	window.status = message;
>> -
>> -	// Return true
>> -	return true;
>> -} // End changeStatus
>> -
>> -// isNumeric function
>> -function isNumeric(num) {
>> -	// Boolean var
>> -	var bolValidNum = true;
>> -	var digits = "1234567890";
>> -	var len = num.length;
>> -
>> -	// Loop over num
>> -	for (i = 0; i < len; ++i) {
>> -		numSub = num.substring(i, i + 1);
>> -
>> -		// Test for numeric match
>> -		if (digits.indexOf(numSub) == -1) {
>> -			bolValidNum = false;
>> -		}
>> -	}
>> -
>> -	// Return boolean var
>> -	return bolValidNum;
>> -} // End isNumeric
>> -
>> -// Check for numeric and display nice error
>> -function checkNumeric(field, message) {
>> -	// Is it valid
>> -	if (!isNumeric(field.value)) {
>> -		alert(message);
>> -		field.focus();
>> -	}
>> -} // End checkNumeric
>> -
>> -// Function getInt which return numeric value of passed in string
>> -function getInt(str, i, minlength, maxlength) {
>> -	for (x = maxlength; x >= minlength; --x) {
>> -		var token = str.substring(i, i + x);
>> -
>> -		// Check for numeric
>> -		if (isNumeric(token)) {
>> -			return token;
>> -		}
>> -	}
>> -
>> -	// Return null
>> -	return null;
>> -}
>> -
>> -// Function dateCheck, requires global err variable for passing error messages
>> -// and requires the isNumeric function
>> -function dateCheck(date, humanname, dateFormat) {
>> -	// Date validation
>> -	var date_s = date;
>> -
>> -	// If no dateFormat, then set one
>> -	if (dateFormat == null) {
>> -		format = "mm/dd/yyyy";
>> -	} else {
>> -		format = dateFormat;
>> -	}
>> -
>> -	var date_err = 0; // Possible values are 0, 1
>> -	var date_year_err = 0; // Possible values are 0, 1
>> -	var date_month_err = 0; // Possible values are 1-12
>> -	var date_day_err = 0; // Possible values are 0, 1, 2, 3, 4
>> -	var i_date_s = 0;
>> -	var i_format = 0;
>> -	var err = "";
>> -	var c = "";
>> -	var token = "";
>> -	var token2 = "";
>> -	var x, y;
>> -	var year = 0;
>> -	var month = 0;
>> -	var date = 0;
>> -	var bYearProvided = false;
>> -	var MONTH_NAMES = new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
>> -
>> -	// Trim the leading spaces from the string
>> -	while (date_s.charAt(0) == ' ') {
>> -		date_s = date_s.slice(1);
>> -	}
>> -
>> -	while (i_format < format.length) {
>> -		// Get next token from format string
>> -		c = format.charAt(i_format);
>> -		token = "";
>> -
>> -		while ((format.charAt(i_format) == c) && (i_format < format.length)) {
>> -			token += format.charAt(i_format);
>> -			++i_format;
>> -		}
>> -
>> -		// Extract contents of value based on format token
>> -		if ((token == "yyyy") || (token == "yy") || (token == "y")) {
>> -			if (token == "yyyy") { x = 4; y = 4; } // 4-digit year
>> -			if (token == "yy") { x = 2; y = 2; } // 2-digit year
>> -			if (token == "y") { x = 2; y = 4; } // 2-or-4-digit year
>> -
>> -			year = getInt(date_s, i_date_s, x, y);
>> -			bYearProvided = true;
>> -
>> -			if ((year == null) || (year.length != token.length)) {
>> -				date_year_err = 1;
>> -			}
>> -
>> -			i_date_s += year.length;
>> -		} else {
>> -			if (token == "mmm") { // Month name
>> -				month = 0;
>> -
>> -				for (var i = 0; i < MONTH_NAMES.length; ++i) {
>> -					var month_name = MONTH_NAMES[i];
>> -
>> -					if (date_s.substring(i_date_s, (i_date_s + month_name.length)).toLowerCase() == month_name.toLowerCase()) {
>> -						month = i + 1;
>> -
>> -						if (month > 12) {
>> -							month -= 12;
>> -						}
>> -
>> -						i_date_s += month_name.length;
>> -						break;
>> -					}
>> -				}
>> -
>> -				if ((month == 0) || (month < 1) || (month > 12)) {
>> -					date_month_err = 1;
>> -				}
>> -			} else {
>> -				if ((token == "mm") || (token == "m")) {
>> -					x = token.length; y = 2;
>> -					month = getInt(date_s, i_date_s, x, y);
>> -
>> -					if ((month == null) || (month < 1) || (month > 12)) {
>> -						date_month_err = 1;
>> -					}
>> -
>> -					i_date_s += month.length;
>> -				} else {
>> -					if (token=="dd" || token=="d") {
>> -						x = token.length; y = 2;
>> -						date = getInt(date_s, i_date_s, x, y);
>> -
>> -						if ((date == null) || (date < 1) || (date > 31)) {
>> -							date_day_err = 1;
>> -						}
>> -
>> -						i_date_s += date.length;
>> -					} else {
>> -						if (date_s.substring(i_date_s, (i_date_s + token.length)) != token) {
>> -							date_err = 1;
>> -						} else {
>> -							i_date_s += token.length;
>> -						}
>> -					}
>> -				}
>> -			}
>> -		}
>> -	}
>> -
>> -	// If there are any trailing characters left in the date_s, it doesn't match
>> -	if (i_date_s != date_s.length) {
>> -		date_err = 1;
>> -	}
>> -
>> -	// Is date valid for month?
>> -	if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
>> -		if (date > 30) {
>> -			date_day_err = 2;
>> -		}
>> -	} else {
>> -		if (month == 2) {
>> -			// Check for leap year
>> -			if ((((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0)) {
>> -				// Leap year
>> -				if (date > 29) {
>> -					date_day_err = 3
>> -				}
>> -			} else {
>> -				if (date > 28) {
>> -					date_day_err = 4;
>> -				}
>> -			}
>> -		} else {
>> -			if (date > 31) {
>> -				date_day_err = 1;
>> -			}
>> -		}
>> -	}
>> -
>> -	// Add to the error message, if needed
>> -	if (date_err != 0) {
>> -		err += "\n - The " + humanname + " must be a valid date in the format " + format + ".";
>> -	}
>> -
>> -	// Add to the error message, if needed
>> -	if (date_month_err != 0) {
>> -		err += "\n - The month must be between 1-12.";
>> -	}
>> -
>> -	// Add to the error message, if needed
>> -	if (date_year_err != 0) {
>> -		err += "\n - The " + humanname + " must have a valid year.";
>> -	}
>> -
>> -	// Add to the error message, if needed
>> -	if (date_day_err != 0) {
>> -		switch (date_day_err) {
>> -			case 1:
>> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 31 days.";
>> -				break;
>> -			case 2:
>> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 30 days.";
>> -				break;
>> -			case 3:
>> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 29 days in a Leap Year.";
>> -				break;
>> -			default:
>> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 28 days in a non-Leap Year.";
>> -				break;
>> -		}
>> -	}
>> -
>> -	return err;
>> -} // End dateCheck
>> -
>> -// Compares two MM/DD/YYY dates for less than (-1), equal to (0), or
>> -// greater than (1)
>> -function dateCompare(date1, date2) {
>> -	var localDate1 = new Date(date1.substring(6,10), date1.substring(0,2), date1.substring(3,5));
>> -	var localDate2 = new Date(date2.substring(6,10), date2.substring(0,2), date2.substring(3,5));
>> -
>> -	// Greater than
>> -	if (localDate1.getTime() > localDate2.getTime()) {
>> -		return 1;
>> -	} else {
>> -		// Less than
>> -		if (localDate1.getTime() < localDate2.getTime()) {
>> -			return -1;
>> -		} else {
>> -			// Equal
>> -			return 0;
>> -		}
>> -	}
>> -} // End dateCompare
>> -
>> -// All-purpose form validation script
>> -function checkForm(dataForm) {
>> -	var msg = "";
>> -	var stripBlanksStart = /^\s+/g;
>> -	var stripBlanksEnd = /\s+$/g;
>> -	var squeezeBlanks = /\s+/g;
>> -	var stripNonNumbers = /\D+/g;
>> -	var stripNotDollars = /[^0-9\.]/g;
>> -	var noSpaces = /\s+/g;
>> -	var allNumbers = /^\d+$/;
>> -	var zipCodeCheck = /^(\d{5})$|^(\d{5}-\d{4})$/;
>> -	var passwordNumbers = /\d{1,}/;
>> -	var passwordLetters = /\D{1,}/;
>> -	var emailPattern = /^[a-zA-Z0-9]([a-zA-Z0-9_\-\.]*)@([a-zA-Z0-9_\-\.]*)(\.[a-zA-Z]{2,3}(\.[a-zA-Z]{2}){0,2})$/i;
>> -	var replaceSeps = /[-,\.\/]/g;
>> -	var time24Format = /^(([0-1]?\d)|(2[0-3])):[0-5]\d(:([0-5]\d))?/;
>> -	var time12Format = /^(\d|0\d|1[0-2]):[0-5]\d(:[0-5]\d)?( (A|P)\.?M\.?)?/;
>> -	var ipNetworkAddress = /^((\d{1,2}|[1]\d{2}|2[0-4]\d|25[0-5])(\.(\d{1,2}|[1]\d{2}|2[0-4]\d|25[0-5])){3}){1}((\/(0\.0\.0\.0|128\.0\.0\.0|192\.0\.0\.0|224\.0\.0\.0|240\.0\.0\.0|248\.0\.0\.0|252\.0\.0\.0|254\.0\.0\.0|(255\.(0\.0\.0|128\.0\.0|192\.0\.0|224\.0\.0|240\.0\.0|248\.0\.0|252\.0\.0|254\.0\.0|(255\.(0\.0|128\.0|192\.0|224\.0|240\.0|248\.0|252\.0|254\.0|(255\.(0|128|192|224|240|248|252|254|255))))))))|(\/(\d|[1-2]\d|3[0-2]))){0,1}$/;
>> -	var ipNetworkPort = /^(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5]){1}((\:|\-)(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])){0,1}$/;
>> -	var passwordLength = 6;
>> -	var error_fields = "";
>> -	var errors = "";
>> -
>> -	// Loop over form elements
>> -	for (var i = 0; i < dataForm.length; ++i) {
>> -		var element = dataForm.elements[i];
>> -
>> -		// Check for select box
>> -		if (element.selectbox) {
>> -			// Check for required
>> -			if (element.required) {
>> -				// Check for value
>> -				if (element.options[element.selectedIndex].value == "") {
>> -					error_fields += "\n - " + element.humanname + " requires a selection.";
>> -				}
>> -			}
>> -			continue;
>> -		}
>> -
>> -		// Strip the leading and trailing blanks
>> -		element.value = element.value.replace(stripBlanksStart, '');
>> -		element.value = element.value.replace(stripBlanksEnd, '');
>> -
>> -		// If it is required and is empty, alert
>> -		if (element.required && (!element.value.length)) {
>> -			error_fields += "\n - " + element.humanname + " is required.";
>> -			continue;
>> -		} else {
>> -			// If it isn't required and doesn't have any length, skip it
>> -			if ((! element.required) && (! element.value.length)) {
>> -				continue;
>> -			}
>> -		}
>> -
>> -		// Check for special characters
>> -		if (element.checkspecialchars) {
>> -			if (checkForSpecialChars(element, element.alphaStart, element.specialChars)) {
>> -				error_fields += "\n - " + element.humanname + " contains invalid characters.";
>> -				continue;
>> -			}
>> -		}
>> -		
>> -		// Convert to uppercase if necessary
>> -		if (element.uppercase) {
>> -			element.value = element.value.toUpperCase();
>> -		}
>> -
>> -		// Convert to uppercase if necessary
>> -		if (element.lowercase) {
>> -			element.value = element.value.toLowerCase();
>> -		}
>> -
>> -		// UCFirst if necessary
>> -		if (element.ucfirst) {
>> -			// Squeeze the blanks
>> -			rs = element.value.replace(squeezeBlanks, ' ');
>> -			dsegs = rs.split(' ');
>> -			element.value = "";
>> -
>> -			// Loop over chars
>> -			for (j = 0; j < dsegs.length; ++j) {
>> -				if (dsegs[j].length > 1) {
>> -					fl = dsegs[j].substr(0, 1);
>> -					fl = fl.toUpperCase();
>> -					rn = dsegs[j].substr(1);
>> -					rn = rn.toLowerCase();
>> -					dsegs[j] = fl + rn;
>> -				}
>> -
>> -				// Check for first value
>> -				element.value = j ? element.value + ' ' + dsegs[j] : dsegs[j];
>> -			}
>> -		}
>> -
>> -		// Check for equality test
>> -		if (element.equalto) {
>> -			// Check for truevalue and use if found, otherwise use value
>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>> -			var elementValue2 = element.equaltovalue.truevalue ? element.equaltovalue.truevalue : element.equaltovalue.value;
>> -
>> -			// Check for value equality
>> -			if (elementValue1 != elementValue2) {
>> -				error_fields +="\n - " + element.humanname + " is not the same as " + element.equaltovalue.humanname;
>> -				continue;
>> -			}
>> -		}
>> -
>> -		// Check for less than
>> -		if (element.lessthan) {
>> -			// Check for truevalue and use if found, otherwise use value
>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>> -			var elementValue2 = element.lessthanvalue.truevalue ? element.lessthanvalue.truevalue : element.lessthanvalue.value;
>> -
>> -			// Check for values
>> -			if ((elementValue1 != '') && (elementValue2 != '')) {
>> -				// Check for value less than
>> -				if (elementValue1 >= elementValue2) {
>> -					error_fields +="\n - " + element.humanname + " must be less than " + element.lessthanvalue.humanname;
>> -					continue;
>> -				}
>> -			}
>> -		}
>> -
>> -		// Check for less than equalto
>> -		if (element.lessthanequalto) {
>> -			// Check for truevalue and use if found, otherwise use value
>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>> -			var elementValue2 = element.lessthanequaltovalue.truevalue ? element.lessthanequaltovalue.truevalue : element.lessthanequaltovalue.value;
>> -
>> -			// Check for values
>> -			if ((elementValue1 != '') && (elementValue2 != '')) {
>> -				// Check for value less than equalto
>> -				if (elementValue1 > elementValue2) {
>> -					error_fields +="\n - " + element.humanname + " must be less than or equal to " + element.lessthanequaltovalue.humanname;
>> -					continue;
>> -				}
>> -			}
>> -		}
>> -
>> -		// Check for greater than
>> -		if (element.greaterthan) {
>> -			// Check for truevalue and use if found, otherwise use value
>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>> -			var elementValue2 = element.greaterthanvalue.truevalue ? element.greaterthanvalue.truevalue : element.greaterthanvalue.value;
>> -
>> -			// Check for values
>> -			if ((elementValue1 != '') && (elementValue2 != '')) {
>> -				// Check for value greater than
>> -				if (elementValue1 <= elementValue2) {
>> -					error_fields +="\n - " + element.humanname + " must be greater than " + element.greaterthanvalue.humanname;
>> -					continue;
>> -				}
>> -			}
>> -		}
>> -
>> -		// Check for greater than equalto
>> -		if (element.greaterthanequalto) {
>> -			// Check for truevalue and use if found, otherwise use value
>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>> -			var elementValue2 = element.greaterthanequaltovalue.truevalue ? element.greaterthanequaltovalue.truevalue : element.greaterthanequaltovalue.value;
>> -
>> -			// Check for values
>> -			if ((elementValue1 != '') && (elementValue2 != '')) {
>> -				// Check for value greater than equalto
>> -				if (elementValue1 < elementValue2) {
>> -					error_fields +="\n - " + element.humanname + " must be greater than or equal to " + element.greaterthanequaltovalue.humanname;
>> -					continue;
>> -				}
>> -			}
>> -		}
>> -
>> -		// Check a price (sort of)
>> -		if (element.price) {
>> -			// Strip out currency stuff
>> -			element.value = element.value.replace(stripNotDollars, '');
>> -			continue;
>> -		}
>> -
>> -		// Check a telephone number
>> -		if (element.telephone) {
>> -			// Strip out parens and spaces
>> -			rs = element.value.replace(stripNonNumbers, '');
>> -
>> -			if (rs.length == 7) {
>> -				element.value = rs.substr(0, 3) + "-" + rs.substr(3, 4);
>> -			} else {
>> -				if (rs.length == 10) {
>> -					element.value = rs.substr(0, 3) + "-" + rs.substr(3, 3) + "-" + rs.substr(6, 4);
>> -				} else {
>> -					error_fields += "\n - " + element.humanname + " is an invalid telephone number.";
>> -				}
>> -			}
>> -			continue;
>> -		}
>> -
>> -		// Check a zip code
>> -		if (element.zipcode) {
>> -			if (!zipCodeCheck.test(element.value)) {
>> -				error_fields +="\n - " + element.humanname + " is an invalid zipcode.";
>> -			}
>> -			continue;
>> -		}
>> -
>> -		// Check a password (sort of)
>> -		if (element.password) {
>> -			if (element.value.length < passwordLength) {
>> -				error_fields += "\n - " + element.humanname + " is too short";
>> -				error_fields += "\n      Minimum length is " + passwordLength + " characters.";
>> -				continue;
>> -			}
>> -
>> -			if (!passwordNumbers.test(element.value)) {
>> -				error_fields += "\n - " + element.humanname + " must contain at least one number.";
>> -				continue;
>> -			}
>> -
>> -			if (!passwordLetters.test(element.value)) {
>> -				error_fields += "\n - " + element.humanname + " must contain at least one letter.";
>> -				continue;
>> -			}
>> -		}
>> -
>> -		// Check for all numbers
>> -		if (element.numeric) {
>> -			if (!allNumbers.test(element.value)) {
>> -				error_fields += "\n - " + element.humanname + " is not numeric.";
>> -			}
>> -			continue;
>> -		}
>> -
>> -		// Check an email address for validity
>> -		if (element.email) {
>> -			element.value = element.value.replace(noSpaces, '');
>> -
>> -			if (!emailPattern.test(element.value)) {
>> -				error_fields += "\n - " + element.humanname + " is not a valid email address.";
>> -			}
>> -			continue;
>> -		}
>> -
>> -		// Check a date
>> -		if (element.date) {
>> -			error_fields += dateCheck(element.value, element.humanname, element.format);
>> -			continue;
>> -		}
>> -
>> -		// Check a time
>> -		if (element.time) {
>> -			// Check for 24 hour time
>> -			if (element.time24) {
>> -				// Check for valid
>> -				if (!time24Format.test(element.value)) {
>> -					error_fields += "\n - " + element.humanname + " is not a valid 24 hour time.";
>> -				}
>> -			} else {
>> -				// Check for valid
>> -				if (!time12Format.test(element.value)) {
>> -					error_fields += "\n - " + element.humanname + " is not a valid 12 hour time.";
>> -				}
>> -			}
>> -			continue;
>> -		}
>> -
>> -		// Check the lengths
>> -		if (element.minlen && (element.value.length < element.minlen)) {
>> -			error_fields += "\n - " + element.humanname + " is too short";
>> -			error_fields += "\n      Minimum length is " + element.minlen + " characters.";
>> -			continue;
>> -		}
>> -
>> -		if (element.maxlen && (element.value.length > element.maxlen)) {
>> -			error_fields +="\n - " + element.humanname + " is too long";
>> -			error_fields +="\n      Maximum length is " + element.maxlen + " characters.";
>> -			continue;
>> -		}
>> -
>> -		// Check for ip/network address
>> -		if (element.ipnetworkaddress) {
>> -			if (!ipNetworkAddress.test(element.value)) {
>> -				error_fields +="\n - " + element.humanname + " is not a valid ip/network address";
>> -			}
>> -			continue;
>> -		}
>> -
>> -		// Check for ip/network port
>> -		if (element.ipnetworkport) {
>> -			if (!ipNetworkPort.test(element.value)) {
>> -				error_fields +="\n - " + element.humanname + " is not a valid ip/network port";
>> -			} else {
>> -				var searchChar = "";
>> -				var portArray = "";
>> -
>> -				if (element.value.indexOf(":") > -1) {
>> -					searchChar = ":";
>> -				} else if (element.value.indexOf("-") > -1) {
>> -					searchChar = "-";
>> -				}
>> -				
>> -				if (searchChar != '') {
>> -					portArray = element.value.split(searchChar);
>> -
>> -					if (portArray.length == 2) {
>> -						if (parseInt(portArray[0]) > parseInt(portArray[1])) {
>> -							error_fields +="\n - " + element.humanname + " can not have a start port greater than an end port";
>> -						}
>> -					}
>> -				}
>> -			}
>> -			continue;
>> -		}
>> -	}
>> -
>> -	// Check for any errors
>> -	if (error_fields == "") {
>> -		return true;
>> -	} else {
>> -		msg = "The following fields have errors:\n";
>> -		msg += error_fields;
>> -		alert(msg);
>> -		return false;
>> -	}
>> -}
>> -
>> -// Clear data
>> -function clearData(field, data) {
>> -	// Check if they equal
>> -	if (field.value == data) {
>> -		// Clear data
>> -		field.value = '';
>> -	}
>> -}
>> -
>> -// Set empty data
>> -function setEmptyData(field, data) {
>> -	// Check if they equal
>> -	if (! field.value.length) {
>> -		// Clear data
>> -		field.value = data;
>> -	}
>> -}
>> -
>> -// Trim whitespace from beginning and end
>> -function trim(data) {
>> -	var objRegExp = /^(\s*)$/;
>> -
>> -	// Check for all spaces
>> -	if (objRegExp.test(data)) {
>> -		data = data.replace(objRegExp, '');
>> -
>> -		if (data.length == 0)
>> -			return data;
>> -	}
>> -
>> -	// Check for leading & trailing spaces
>> -	objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
>> -
>> -	if (objRegExp.test(data)) {
>> -		// Remove leading and trailing whitespace characters
>> -		data = data.replace(objRegExp, '$2');
>> -	}
>> -
>> -	return data;
>> -}
>>
  
Michael Tremer March 29, 2021, 10:35 a.m. UTC | #3
Hello,

> On 28 Mar 2021, at 13:23, Leo Hofmann <hofmann@leo-andres.de> wrote:
> 
> Hello Peter,
> 
> thank you for reviewing my work!
> 
> Unfortunately I don't know how to remove files during an update. Can you take over for me?

Done. You normally do not have to worry about these things. A note in the commit message will help me to remember.

Best,
-Michael

> Best regards
> Leo
> 
> Am 27.03.2021 um 21:27 schrieb Peter Müller:
>> Hello Leo,
>> 
>> indeed, this is orphaned. Thank you for catching it. :-)
>> 
>> We probably need to remove it during the upgrading procedure of the Core Update this patch will
>> be included in, for good measures.
>> 
>> Acked-by: Peter Müller <peter.mueller@ipfire.org>
>> 
>> Thanks, and best regards,
>> Peter Müller
>> 
>>> This script doesn't seem to be maintained or used anywhere anymore.
>>> The last reference to it was removed in commit 1772664.
>>> 
>>> Signed-off-by: Leo-Andres Hofmann <hofmann@leo-andres.de>
>>> ---
>>>  config/rootfiles/common/web-user-interface |   1 -
>>>  html/html/include/snortupdateutility.js    | 744 ---------------------
>>>  2 files changed, 745 deletions(-)
>>>  delete mode 100644 html/html/include/snortupdateutility.js
>>> 
>>> diff --git a/config/rootfiles/common/web-user-interface b/config/rootfiles/common/web-user-interface
>>> index 9b2667676..540bf1e4b 100644
>>> --- a/config/rootfiles/common/web-user-interface
>>> +++ b/config/rootfiles/common/web-user-interface
>>> @@ -300,7 +300,6 @@ srv/web/ipfire/html/images/view-refresh.png
>>>  srv/web/ipfire/html/images/wakeup.gif
>>>  srv/web/ipfire/html/images/window-new.png
>>>  srv/web/ipfire/html/include
>>> -srv/web/ipfire/html/include/snortupdateutility.js
>>>  srv/web/ipfire/html/include/zoneconf.js
>>>  srv/web/ipfire/html/index.cgi
>>>  srv/web/ipfire/html/redirect-templates
>>> diff --git a/html/html/include/snortupdateutility.js b/html/html/include/snortupdateutility.js
>>> deleted file mode 100644
>>> index 10750519c..000000000
>>> --- a/html/html/include/snortupdateutility.js
>>> +++ /dev/null
>>> @@ -1,744 +0,0 @@
>>> -/*
>>> -File Info:	utility.js - JavaScript library
>>> -
>>> -Author:		Drew S. Dupont
>>> -
>>> -Date:		2/26/2003 - 8/12/2004 (or present day)
>>> -
>>> -Description:	Utility functions in JavaScript
>>> -		Drew S. Dupont <dsdupont@alumni.indiana.edu>
>>> -*/
>>> -// Show/Hide HTML Span
>>> -function showHideHTML(id, content) {
>>> -	// Browser variables
>>> -	var ie45, ns6, ns4, dom = false;
>>> -
>>> -	// Basic browser parse
>>> -	if (navigator.appName == "Microsoft Internet Explorer") {
>>> -		ie45 = parseInt(navigator.appVersion) >= 4;
>>> -	} else if (navigator.appName == "Netscape") {
>>> -		ns6 = parseInt(navigator.appVersion) >= 5;
>>> -		ns4 = parseInt(navigator.appVersion) < 5;
>>> -	}
>>> -	dom = ie45 || ns6;
>>> -
>>> -	// Return if using an old Netscape browser
>>> -	if(ns4) return;
>>> -
>>> -	// Check for type of call supported
>>> -	el = document.all ? document.all[id] : dom ? document.getElementById(id) : document.layers[id];
>>> -
>>> -	// Check if content to be "switched" is ""
>>> -	if (content == "") {
>>> -		// Return old content and replace with ""
>>> -		content = el.innerHTML;
>>> -		el.innerHTML = "";
>>> -	} else {
>>> -		// Replace current content with new content and return ""
>>> -		el.innerHTML = content;
>>> -		content = "";
>>> -	}
>>> -
>>> -	// Return content (either old or "")
>>> -	return content;
>>> -}
>>> -
>>> -// Check for special chars
>>> -function checkForSpecialChars(field, alphaStart, specialCheckChars) {
>>> -	// Local vars
>>> -	var alphaStartChars = /^[a-zA-Z]/;
>>> -	var noSpecialChars = /([^a-zA-Z0-9 _,?!':;\r\t\n\/\\\-\.#@]+)/;
>>> -
>>> -	// Check if should start with an alpha char
>>> -	if (alphaStart) {
>>> -		// Make sure starts with a alpha char
>>> -		if (alphaStartChars.test(field.value)) {
>>> -			// Check for special chars
>>> -			if (noSpecialChars.test(field.value)) {
>>> -				// Return true
>>> -				return true;
>>> -			} else {
>>> -				// Check for specialCheckChars
>>> -				if (specialCheckChars && (specialCheckChars.test(field.value))) {
>>> -					// Return true
>>> -					return true;
>>> -				} else {
>>> -					// Return false
>>> -					return false;
>>> -				}
>>> -			}
>>> -		} else {
>>> -			// Return true
>>> -			return true;
>>> -		}
>>> -	} else {
>>> -		// Check if contains any special chars
>>> -		if (noSpecialChars.test(field.value)) {
>>> -			// Return true
>>> -			return true;
>>> -		} else {
>>> -			// Check for specialCheckChars
>>> -			if (specialCheckChars && (specialCheckChars.test(field.value))) {
>>> -				// Return true
>>> -				return true;
>>> -			} else {
>>> -				// Return false
>>> -				return false;
>>> -			}
>>> -		}
>>> -	}
>>> -} // End checkForSpecialChars
>>> -
>>> -// Launch help
>>> -function launchHelp(helpSrc) {
>>> -	helpWindow = window.open(helpSrc, "helpWindow", "resizable=yes,menubar=no,statusbar=no,titlebar=no,scrollbars=yes,width=400,height=400")
>>> -	helpWindow.moveTo(25, 25);
>>> -	helpWindow.focus();
>>> -}
>>> -
>>> -// Image On
>>> -function imageOn(imageName)	{
>>> -	document[imageName].src = eval(imageName + "_over.src");
>>> -}
>>> -
>>> -// Image Off
>>> -function imageOff(imageName) {
>>> -	document[imageName].src = eval(imageName + ".src");
>>> -}
>>> -
>>> -// Image Down
>>> -function imageDown(imageName) {
>>> -	document[imageName].src = eval(imageName + "_down.src");
>>> -}
>>> -
>>> -// Image button On
>>> -function imageButtonOn(item, imageName)	{
>>> -	item.src = eval(imageName + "_over.src");
>>> -}
>>> -
>>> -// Image button Off
>>> -function imageButtonOff(item, imageName) {
>>> -	item.src = eval(imageName + ".src");
>>> -}
>>> -
>>> -// Image button Down
>>> -function imageButtonDown(item, imageName) {
>>> -	item.src = eval(imageName + "_down.src");
>>> -}
>>> -
>>> -// changeStatus
>>> -function changeStatus(message) {
>>> -	// Set window status
>>> -	window.status = message;
>>> -
>>> -	// Return true
>>> -	return true;
>>> -} // End changeStatus
>>> -
>>> -// isNumeric function
>>> -function isNumeric(num) {
>>> -	// Boolean var
>>> -	var bolValidNum = true;
>>> -	var digits = "1234567890";
>>> -	var len = num.length;
>>> -
>>> -	// Loop over num
>>> -	for (i = 0; i < len; ++i) {
>>> -		numSub = num.substring(i, i + 1);
>>> -
>>> -		// Test for numeric match
>>> -		if (digits.indexOf(numSub) == -1) {
>>> -			bolValidNum = false;
>>> -		}
>>> -	}
>>> -
>>> -	// Return boolean var
>>> -	return bolValidNum;
>>> -} // End isNumeric
>>> -
>>> -// Check for numeric and display nice error
>>> -function checkNumeric(field, message) {
>>> -	// Is it valid
>>> -	if (!isNumeric(field.value)) {
>>> -		alert(message);
>>> -		field.focus();
>>> -	}
>>> -} // End checkNumeric
>>> -
>>> -// Function getInt which return numeric value of passed in string
>>> -function getInt(str, i, minlength, maxlength) {
>>> -	for (x = maxlength; x >= minlength; --x) {
>>> -		var token = str.substring(i, i + x);
>>> -
>>> -		// Check for numeric
>>> -		if (isNumeric(token)) {
>>> -			return token;
>>> -		}
>>> -	}
>>> -
>>> -	// Return null
>>> -	return null;
>>> -}
>>> -
>>> -// Function dateCheck, requires global err variable for passing error messages
>>> -// and requires the isNumeric function
>>> -function dateCheck(date, humanname, dateFormat) {
>>> -	// Date validation
>>> -	var date_s = date;
>>> -
>>> -	// If no dateFormat, then set one
>>> -	if (dateFormat == null) {
>>> -		format = "mm/dd/yyyy";
>>> -	} else {
>>> -		format = dateFormat;
>>> -	}
>>> -
>>> -	var date_err = 0; // Possible values are 0, 1
>>> -	var date_year_err = 0; // Possible values are 0, 1
>>> -	var date_month_err = 0; // Possible values are 1-12
>>> -	var date_day_err = 0; // Possible values are 0, 1, 2, 3, 4
>>> -	var i_date_s = 0;
>>> -	var i_format = 0;
>>> -	var err = "";
>>> -	var c = "";
>>> -	var token = "";
>>> -	var token2 = "";
>>> -	var x, y;
>>> -	var year = 0;
>>> -	var month = 0;
>>> -	var date = 0;
>>> -	var bYearProvided = false;
>>> -	var MONTH_NAMES = new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
>>> -
>>> -	// Trim the leading spaces from the string
>>> -	while (date_s.charAt(0) == ' ') {
>>> -		date_s = date_s.slice(1);
>>> -	}
>>> -
>>> -	while (i_format < format.length) {
>>> -		// Get next token from format string
>>> -		c = format.charAt(i_format);
>>> -		token = "";
>>> -
>>> -		while ((format.charAt(i_format) == c) && (i_format < format.length)) {
>>> -			token += format.charAt(i_format);
>>> -			++i_format;
>>> -		}
>>> -
>>> -		// Extract contents of value based on format token
>>> -		if ((token == "yyyy") || (token == "yy") || (token == "y")) {
>>> -			if (token == "yyyy") { x = 4; y = 4; } // 4-digit year
>>> -			if (token == "yy") { x = 2; y = 2; } // 2-digit year
>>> -			if (token == "y") { x = 2; y = 4; } // 2-or-4-digit year
>>> -
>>> -			year = getInt(date_s, i_date_s, x, y);
>>> -			bYearProvided = true;
>>> -
>>> -			if ((year == null) || (year.length != token.length)) {
>>> -				date_year_err = 1;
>>> -			}
>>> -
>>> -			i_date_s += year.length;
>>> -		} else {
>>> -			if (token == "mmm") { // Month name
>>> -				month = 0;
>>> -
>>> -				for (var i = 0; i < MONTH_NAMES.length; ++i) {
>>> -					var month_name = MONTH_NAMES[i];
>>> -
>>> -					if (date_s.substring(i_date_s, (i_date_s + month_name.length)).toLowerCase() == month_name.toLowerCase()) {
>>> -						month = i + 1;
>>> -
>>> -						if (month > 12) {
>>> -							month -= 12;
>>> -						}
>>> -
>>> -						i_date_s += month_name.length;
>>> -						break;
>>> -					}
>>> -				}
>>> -
>>> -				if ((month == 0) || (month < 1) || (month > 12)) {
>>> -					date_month_err = 1;
>>> -				}
>>> -			} else {
>>> -				if ((token == "mm") || (token == "m")) {
>>> -					x = token.length; y = 2;
>>> -					month = getInt(date_s, i_date_s, x, y);
>>> -
>>> -					if ((month == null) || (month < 1) || (month > 12)) {
>>> -						date_month_err = 1;
>>> -					}
>>> -
>>> -					i_date_s += month.length;
>>> -				} else {
>>> -					if (token=="dd" || token=="d") {
>>> -						x = token.length; y = 2;
>>> -						date = getInt(date_s, i_date_s, x, y);
>>> -
>>> -						if ((date == null) || (date < 1) || (date > 31)) {
>>> -							date_day_err = 1;
>>> -						}
>>> -
>>> -						i_date_s += date.length;
>>> -					} else {
>>> -						if (date_s.substring(i_date_s, (i_date_s + token.length)) != token) {
>>> -							date_err = 1;
>>> -						} else {
>>> -							i_date_s += token.length;
>>> -						}
>>> -					}
>>> -				}
>>> -			}
>>> -		}
>>> -	}
>>> -
>>> -	// If there are any trailing characters left in the date_s, it doesn't match
>>> -	if (i_date_s != date_s.length) {
>>> -		date_err = 1;
>>> -	}
>>> -
>>> -	// Is date valid for month?
>>> -	if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
>>> -		if (date > 30) {
>>> -			date_day_err = 2;
>>> -		}
>>> -	} else {
>>> -		if (month == 2) {
>>> -			// Check for leap year
>>> -			if ((((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0)) {
>>> -				// Leap year
>>> -				if (date > 29) {
>>> -					date_day_err = 3
>>> -				}
>>> -			} else {
>>> -				if (date > 28) {
>>> -					date_day_err = 4;
>>> -				}
>>> -			}
>>> -		} else {
>>> -			if (date > 31) {
>>> -				date_day_err = 1;
>>> -			}
>>> -		}
>>> -	}
>>> -
>>> -	// Add to the error message, if needed
>>> -	if (date_err != 0) {
>>> -		err += "\n - The " + humanname + " must be a valid date in the format " + format + ".";
>>> -	}
>>> -
>>> -	// Add to the error message, if needed
>>> -	if (date_month_err != 0) {
>>> -		err += "\n - The month must be between 1-12.";
>>> -	}
>>> -
>>> -	// Add to the error message, if needed
>>> -	if (date_year_err != 0) {
>>> -		err += "\n - The " + humanname + " must have a valid year.";
>>> -	}
>>> -
>>> -	// Add to the error message, if needed
>>> -	if (date_day_err != 0) {
>>> -		switch (date_day_err) {
>>> -			case 1:
>>> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 31 days.";
>>> -				break;
>>> -			case 2:
>>> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 30 days.";
>>> -				break;
>>> -			case 3:
>>> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 29 days in a Leap Year.";
>>> -				break;
>>> -			default:
>>> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 28 days in a non-Leap Year.";
>>> -				break;
>>> -		}
>>> -	}
>>> -
>>> -	return err;
>>> -} // End dateCheck
>>> -
>>> -// Compares two MM/DD/YYY dates for less than (-1), equal to (0), or
>>> -// greater than (1)
>>> -function dateCompare(date1, date2) {
>>> -	var localDate1 = new Date(date1.substring(6,10), date1.substring(0,2), date1.substring(3,5));
>>> -	var localDate2 = new Date(date2.substring(6,10), date2.substring(0,2), date2.substring(3,5));
>>> -
>>> -	// Greater than
>>> -	if (localDate1.getTime() > localDate2.getTime()) {
>>> -		return 1;
>>> -	} else {
>>> -		// Less than
>>> -		if (localDate1.getTime() < localDate2.getTime()) {
>>> -			return -1;
>>> -		} else {
>>> -			// Equal
>>> -			return 0;
>>> -		}
>>> -	}
>>> -} // End dateCompare
>>> -
>>> -// All-purpose form validation script
>>> -function checkForm(dataForm) {
>>> -	var msg = "";
>>> -	var stripBlanksStart = /^\s+/g;
>>> -	var stripBlanksEnd = /\s+$/g;
>>> -	var squeezeBlanks = /\s+/g;
>>> -	var stripNonNumbers = /\D+/g;
>>> -	var stripNotDollars = /[^0-9\.]/g;
>>> -	var noSpaces = /\s+/g;
>>> -	var allNumbers = /^\d+$/;
>>> -	var zipCodeCheck = /^(\d{5})$|^(\d{5}-\d{4})$/;
>>> -	var passwordNumbers = /\d{1,}/;
>>> -	var passwordLetters = /\D{1,}/;
>>> -	var emailPattern = /^[a-zA-Z0-9]([a-zA-Z0-9_\-\.]*)@([a-zA-Z0-9_\-\.]*)(\.[a-zA-Z]{2,3}(\.[a-zA-Z]{2}){0,2})$/i;
>>> -	var replaceSeps = /[-,\.\/]/g;
>>> -	var time24Format = /^(([0-1]?\d)|(2[0-3])):[0-5]\d(:([0-5]\d))?/;
>>> -	var time12Format = /^(\d|0\d|1[0-2]):[0-5]\d(:[0-5]\d)?( (A|P)\.?M\.?)?/;
>>> -	var ipNetworkAddress = /^((\d{1,2}|[1]\d{2}|2[0-4]\d|25[0-5])(\.(\d{1,2}|[1]\d{2}|2[0-4]\d|25[0-5])){3}){1}((\/(0\.0\.0\.0|128\.0\.0\.0|192\.0\.0\.0|224\.0\.0\.0|240\.0\.0\.0|248\.0\.0\.0|252\.0\.0\.0|254\.0\.0\.0|(255\.(0\.0\.0|128\.0\.0|192\.0\.0|224\.0\.0|240\.0\.0|248\.0\.0|252\.0\.0|254\.0\.0|(255\.(0\.0|128\.0|192\.0|224\.0|240\.0|248\.0|252\.0|254\.0|(255\.(0|128|192|224|240|248|252|254|255))))))))|(\/(\d|[1-2]\d|3[0-2]))){0,1}$/;
>>> -	var ipNetworkPort = /^(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5]){1}((\:|\-)(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])){0,1}$/;
>>> -	var passwordLength = 6;
>>> -	var error_fields = "";
>>> -	var errors = "";
>>> -
>>> -	// Loop over form elements
>>> -	for (var i = 0; i < dataForm.length; ++i) {
>>> -		var element = dataForm.elements[i];
>>> -
>>> -		// Check for select box
>>> -		if (element.selectbox) {
>>> -			// Check for required
>>> -			if (element.required) {
>>> -				// Check for value
>>> -				if (element.options[element.selectedIndex].value == "") {
>>> -					error_fields += "\n - " + element.humanname + " requires a selection.";
>>> -				}
>>> -			}
>>> -			continue;
>>> -		}
>>> -
>>> -		// Strip the leading and trailing blanks
>>> -		element.value = element.value.replace(stripBlanksStart, '');
>>> -		element.value = element.value.replace(stripBlanksEnd, '');
>>> -
>>> -		// If it is required and is empty, alert
>>> -		if (element.required && (!element.value.length)) {
>>> -			error_fields += "\n - " + element.humanname + " is required.";
>>> -			continue;
>>> -		} else {
>>> -			// If it isn't required and doesn't have any length, skip it
>>> -			if ((! element.required) && (! element.value.length)) {
>>> -				continue;
>>> -			}
>>> -		}
>>> -
>>> -		// Check for special characters
>>> -		if (element.checkspecialchars) {
>>> -			if (checkForSpecialChars(element, element.alphaStart, element.specialChars)) {
>>> -				error_fields += "\n - " + element.humanname + " contains invalid characters.";
>>> -				continue;
>>> -			}
>>> -		}
>>> -		
>>> -		// Convert to uppercase if necessary
>>> -		if (element.uppercase) {
>>> -			element.value = element.value.toUpperCase();
>>> -		}
>>> -
>>> -		// Convert to uppercase if necessary
>>> -		if (element.lowercase) {
>>> -			element.value = element.value.toLowerCase();
>>> -		}
>>> -
>>> -		// UCFirst if necessary
>>> -		if (element.ucfirst) {
>>> -			// Squeeze the blanks
>>> -			rs = element.value.replace(squeezeBlanks, ' ');
>>> -			dsegs = rs.split(' ');
>>> -			element.value = "";
>>> -
>>> -			// Loop over chars
>>> -			for (j = 0; j < dsegs.length; ++j) {
>>> -				if (dsegs[j].length > 1) {
>>> -					fl = dsegs[j].substr(0, 1);
>>> -					fl = fl.toUpperCase();
>>> -					rn = dsegs[j].substr(1);
>>> -					rn = rn.toLowerCase();
>>> -					dsegs[j] = fl + rn;
>>> -				}
>>> -
>>> -				// Check for first value
>>> -				element.value = j ? element.value + ' ' + dsegs[j] : dsegs[j];
>>> -			}
>>> -		}
>>> -
>>> -		// Check for equality test
>>> -		if (element.equalto) {
>>> -			// Check for truevalue and use if found, otherwise use value
>>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>>> -			var elementValue2 = element.equaltovalue.truevalue ? element.equaltovalue.truevalue : element.equaltovalue.value;
>>> -
>>> -			// Check for value equality
>>> -			if (elementValue1 != elementValue2) {
>>> -				error_fields +="\n - " + element.humanname + " is not the same as " + element.equaltovalue.humanname;
>>> -				continue;
>>> -			}
>>> -		}
>>> -
>>> -		// Check for less than
>>> -		if (element.lessthan) {
>>> -			// Check for truevalue and use if found, otherwise use value
>>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>>> -			var elementValue2 = element.lessthanvalue.truevalue ? element.lessthanvalue.truevalue : element.lessthanvalue.value;
>>> -
>>> -			// Check for values
>>> -			if ((elementValue1 != '') && (elementValue2 != '')) {
>>> -				// Check for value less than
>>> -				if (elementValue1 >= elementValue2) {
>>> -					error_fields +="\n - " + element.humanname + " must be less than " + element.lessthanvalue.humanname;
>>> -					continue;
>>> -				}
>>> -			}
>>> -		}
>>> -
>>> -		// Check for less than equalto
>>> -		if (element.lessthanequalto) {
>>> -			// Check for truevalue and use if found, otherwise use value
>>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>>> -			var elementValue2 = element.lessthanequaltovalue.truevalue ? element.lessthanequaltovalue.truevalue : element.lessthanequaltovalue.value;
>>> -
>>> -			// Check for values
>>> -			if ((elementValue1 != '') && (elementValue2 != '')) {
>>> -				// Check for value less than equalto
>>> -				if (elementValue1 > elementValue2) {
>>> -					error_fields +="\n - " + element.humanname + " must be less than or equal to " + element.lessthanequaltovalue.humanname;
>>> -					continue;
>>> -				}
>>> -			}
>>> -		}
>>> -
>>> -		// Check for greater than
>>> -		if (element.greaterthan) {
>>> -			// Check for truevalue and use if found, otherwise use value
>>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>>> -			var elementValue2 = element.greaterthanvalue.truevalue ? element.greaterthanvalue.truevalue : element.greaterthanvalue.value;
>>> -
>>> -			// Check for values
>>> -			if ((elementValue1 != '') && (elementValue2 != '')) {
>>> -				// Check for value greater than
>>> -				if (elementValue1 <= elementValue2) {
>>> -					error_fields +="\n - " + element.humanname + " must be greater than " + element.greaterthanvalue.humanname;
>>> -					continue;
>>> -				}
>>> -			}
>>> -		}
>>> -
>>> -		// Check for greater than equalto
>>> -		if (element.greaterthanequalto) {
>>> -			// Check for truevalue and use if found, otherwise use value
>>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>>> -			var elementValue2 = element.greaterthanequaltovalue.truevalue ? element.greaterthanequaltovalue.truevalue : element.greaterthanequaltovalue.value;
>>> -
>>> -			// Check for values
>>> -			if ((elementValue1 != '') && (elementValue2 != '')) {
>>> -				// Check for value greater than equalto
>>> -				if (elementValue1 < elementValue2) {
>>> -					error_fields +="\n - " + element.humanname + " must be greater than or equal to " + element.greaterthanequaltovalue.humanname;
>>> -					continue;
>>> -				}
>>> -			}
>>> -		}
>>> -
>>> -		// Check a price (sort of)
>>> -		if (element.price) {
>>> -			// Strip out currency stuff
>>> -			element.value = element.value.replace(stripNotDollars, '');
>>> -			continue;
>>> -		}
>>> -
>>> -		// Check a telephone number
>>> -		if (element.telephone) {
>>> -			// Strip out parens and spaces
>>> -			rs = element.value.replace(stripNonNumbers, '');
>>> -
>>> -			if (rs.length == 7) {
>>> -				element.value = rs.substr(0, 3) + "-" + rs.substr(3, 4);
>>> -			} else {
>>> -				if (rs.length == 10) {
>>> -					element.value = rs.substr(0, 3) + "-" + rs.substr(3, 3) + "-" + rs.substr(6, 4);
>>> -				} else {
>>> -					error_fields += "\n - " + element.humanname + " is an invalid telephone number.";
>>> -				}
>>> -			}
>>> -			continue;
>>> -		}
>>> -
>>> -		// Check a zip code
>>> -		if (element.zipcode) {
>>> -			if (!zipCodeCheck.test(element.value)) {
>>> -				error_fields +="\n - " + element.humanname + " is an invalid zipcode.";
>>> -			}
>>> -			continue;
>>> -		}
>>> -
>>> -		// Check a password (sort of)
>>> -		if (element.password) {
>>> -			if (element.value.length < passwordLength) {
>>> -				error_fields += "\n - " + element.humanname + " is too short";
>>> -				error_fields += "\n      Minimum length is " + passwordLength + " characters.";
>>> -				continue;
>>> -			}
>>> -
>>> -			if (!passwordNumbers.test(element.value)) {
>>> -				error_fields += "\n - " + element.humanname + " must contain at least one number.";
>>> -				continue;
>>> -			}
>>> -
>>> -			if (!passwordLetters.test(element.value)) {
>>> -				error_fields += "\n - " + element.humanname + " must contain at least one letter.";
>>> -				continue;
>>> -			}
>>> -		}
>>> -
>>> -		// Check for all numbers
>>> -		if (element.numeric) {
>>> -			if (!allNumbers.test(element.value)) {
>>> -				error_fields += "\n - " + element.humanname + " is not numeric.";
>>> -			}
>>> -			continue;
>>> -		}
>>> -
>>> -		// Check an email address for validity
>>> -		if (element.email) {
>>> -			element.value = element.value.replace(noSpaces, '');
>>> -
>>> -			if (!emailPattern.test(element.value)) {
>>> -				error_fields += "\n - " + element.humanname + " is not a valid email address.";
>>> -			}
>>> -			continue;
>>> -		}
>>> -
>>> -		// Check a date
>>> -		if (element.date) {
>>> -			error_fields += dateCheck(element.value, element.humanname, element.format);
>>> -			continue;
>>> -		}
>>> -
>>> -		// Check a time
>>> -		if (element.time) {
>>> -			// Check for 24 hour time
>>> -			if (element.time24) {
>>> -				// Check for valid
>>> -				if (!time24Format.test(element.value)) {
>>> -					error_fields += "\n - " + element.humanname + " is not a valid 24 hour time.";
>>> -				}
>>> -			} else {
>>> -				// Check for valid
>>> -				if (!time12Format.test(element.value)) {
>>> -					error_fields += "\n - " + element.humanname + " is not a valid 12 hour time.";
>>> -				}
>>> -			}
>>> -			continue;
>>> -		}
>>> -
>>> -		// Check the lengths
>>> -		if (element.minlen && (element.value.length < element.minlen)) {
>>> -			error_fields += "\n - " + element.humanname + " is too short";
>>> -			error_fields += "\n      Minimum length is " + element.minlen + " characters.";
>>> -			continue;
>>> -		}
>>> -
>>> -		if (element.maxlen && (element.value.length > element.maxlen)) {
>>> -			error_fields +="\n - " + element.humanname + " is too long";
>>> -			error_fields +="\n      Maximum length is " + element.maxlen + " characters.";
>>> -			continue;
>>> -		}
>>> -
>>> -		// Check for ip/network address
>>> -		if (element.ipnetworkaddress) {
>>> -			if (!ipNetworkAddress.test(element.value)) {
>>> -				error_fields +="\n - " + element.humanname + " is not a valid ip/network address";
>>> -			}
>>> -			continue;
>>> -		}
>>> -
>>> -		// Check for ip/network port
>>> -		if (element.ipnetworkport) {
>>> -			if (!ipNetworkPort.test(element.value)) {
>>> -				error_fields +="\n - " + element.humanname + " is not a valid ip/network port";
>>> -			} else {
>>> -				var searchChar = "";
>>> -				var portArray = "";
>>> -
>>> -				if (element.value.indexOf(":") > -1) {
>>> -					searchChar = ":";
>>> -				} else if (element.value.indexOf("-") > -1) {
>>> -					searchChar = "-";
>>> -				}
>>> -				
>>> -				if (searchChar != '') {
>>> -					portArray = element.value.split(searchChar);
>>> -
>>> -					if (portArray.length == 2) {
>>> -						if (parseInt(portArray[0]) > parseInt(portArray[1])) {
>>> -							error_fields +="\n - " + element.humanname + " can not have a start port greater than an end port";
>>> -						}
>>> -					}
>>> -				}
>>> -			}
>>> -			continue;
>>> -		}
>>> -	}
>>> -
>>> -	// Check for any errors
>>> -	if (error_fields == "") {
>>> -		return true;
>>> -	} else {
>>> -		msg = "The following fields have errors:\n";
>>> -		msg += error_fields;
>>> -		alert(msg);
>>> -		return false;
>>> -	}
>>> -}
>>> -
>>> -// Clear data
>>> -function clearData(field, data) {
>>> -	// Check if they equal
>>> -	if (field.value == data) {
>>> -		// Clear data
>>> -		field.value = '';
>>> -	}
>>> -}
>>> -
>>> -// Set empty data
>>> -function setEmptyData(field, data) {
>>> -	// Check if they equal
>>> -	if (! field.value.length) {
>>> -		// Clear data
>>> -		field.value = data;
>>> -	}
>>> -}
>>> -
>>> -// Trim whitespace from beginning and end
>>> -function trim(data) {
>>> -	var objRegExp = /^(\s*)$/;
>>> -
>>> -	// Check for all spaces
>>> -	if (objRegExp.test(data)) {
>>> -		data = data.replace(objRegExp, '');
>>> -
>>> -		if (data.length == 0)
>>> -			return data;
>>> -	}
>>> -
>>> -	// Check for leading & trailing spaces
>>> -	objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
>>> -
>>> -	if (objRegExp.test(data)) {
>>> -		// Remove leading and trailing whitespace characters
>>> -		data = data.replace(objRegExp, '$2');
>>> -	}
>>> -
>>> -	return data;
>>> -}
>>>
  
Leo-Andres Hofmann March 29, 2021, 7:09 p.m. UTC | #4
Hi Michael,

thank you! I'll add a note next time :)

Best regards,
Leo

Am 29.03.2021 um 12:35 schrieb Michael Tremer:
> Hello,
>
>> On 28 Mar 2021, at 13:23, Leo Hofmann <hofmann@leo-andres.de> wrote:
>>
>> Hello Peter,
>>
>> thank you for reviewing my work!
>>
>> Unfortunately I don't know how to remove files during an update. Can you take over for me?
> Done. You normally do not have to worry about these things. A note in the commit message will help me to remember.
>
> Best,
> -Michael
>
>> Best regards
>> Leo
>>
>> Am 27.03.2021 um 21:27 schrieb Peter Müller:
>>> Hello Leo,
>>>
>>> indeed, this is orphaned. Thank you for catching it. :-)
>>>
>>> We probably need to remove it during the upgrading procedure of the Core Update this patch will
>>> be included in, for good measures.
>>>
>>> Acked-by: Peter Müller <peter.mueller@ipfire.org>
>>>
>>> Thanks, and best regards,
>>> Peter Müller
>>>
>>>> This script doesn't seem to be maintained or used anywhere anymore.
>>>> The last reference to it was removed in commit 1772664.
>>>>
>>>> Signed-off-by: Leo-Andres Hofmann <hofmann@leo-andres.de>
>>>> ---
>>>>   config/rootfiles/common/web-user-interface |   1 -
>>>>   html/html/include/snortupdateutility.js    | 744 ---------------------
>>>>   2 files changed, 745 deletions(-)
>>>>   delete mode 100644 html/html/include/snortupdateutility.js
>>>>
>>>> diff --git a/config/rootfiles/common/web-user-interface b/config/rootfiles/common/web-user-interface
>>>> index 9b2667676..540bf1e4b 100644
>>>> --- a/config/rootfiles/common/web-user-interface
>>>> +++ b/config/rootfiles/common/web-user-interface
>>>> @@ -300,7 +300,6 @@ srv/web/ipfire/html/images/view-refresh.png
>>>>   srv/web/ipfire/html/images/wakeup.gif
>>>>   srv/web/ipfire/html/images/window-new.png
>>>>   srv/web/ipfire/html/include
>>>> -srv/web/ipfire/html/include/snortupdateutility.js
>>>>   srv/web/ipfire/html/include/zoneconf.js
>>>>   srv/web/ipfire/html/index.cgi
>>>>   srv/web/ipfire/html/redirect-templates
>>>> diff --git a/html/html/include/snortupdateutility.js b/html/html/include/snortupdateutility.js
>>>> deleted file mode 100644
>>>> index 10750519c..000000000
>>>> --- a/html/html/include/snortupdateutility.js
>>>> +++ /dev/null
>>>> @@ -1,744 +0,0 @@
>>>> -/*
>>>> -File Info:	utility.js - JavaScript library
>>>> -
>>>> -Author:		Drew S. Dupont
>>>> -
>>>> -Date:		2/26/2003 - 8/12/2004 (or present day)
>>>> -
>>>> -Description:	Utility functions in JavaScript
>>>> -		Drew S. Dupont <dsdupont@alumni.indiana.edu>
>>>> -*/
>>>> -// Show/Hide HTML Span
>>>> -function showHideHTML(id, content) {
>>>> -	// Browser variables
>>>> -	var ie45, ns6, ns4, dom = false;
>>>> -
>>>> -	// Basic browser parse
>>>> -	if (navigator.appName == "Microsoft Internet Explorer") {
>>>> -		ie45 = parseInt(navigator.appVersion) >= 4;
>>>> -	} else if (navigator.appName == "Netscape") {
>>>> -		ns6 = parseInt(navigator.appVersion) >= 5;
>>>> -		ns4 = parseInt(navigator.appVersion) < 5;
>>>> -	}
>>>> -	dom = ie45 || ns6;
>>>> -
>>>> -	// Return if using an old Netscape browser
>>>> -	if(ns4) return;
>>>> -
>>>> -	// Check for type of call supported
>>>> -	el = document.all ? document.all[id] : dom ? document.getElementById(id) : document.layers[id];
>>>> -
>>>> -	// Check if content to be "switched" is ""
>>>> -	if (content == "") {
>>>> -		// Return old content and replace with ""
>>>> -		content = el.innerHTML;
>>>> -		el.innerHTML = "";
>>>> -	} else {
>>>> -		// Replace current content with new content and return ""
>>>> -		el.innerHTML = content;
>>>> -		content = "";
>>>> -	}
>>>> -
>>>> -	// Return content (either old or "")
>>>> -	return content;
>>>> -}
>>>> -
>>>> -// Check for special chars
>>>> -function checkForSpecialChars(field, alphaStart, specialCheckChars) {
>>>> -	// Local vars
>>>> -	var alphaStartChars = /^[a-zA-Z]/;
>>>> -	var noSpecialChars = /([^a-zA-Z0-9 _,?!':;\r\t\n\/\\\-\.#@]+)/;
>>>> -
>>>> -	// Check if should start with an alpha char
>>>> -	if (alphaStart) {
>>>> -		// Make sure starts with a alpha char
>>>> -		if (alphaStartChars.test(field.value)) {
>>>> -			// Check for special chars
>>>> -			if (noSpecialChars.test(field.value)) {
>>>> -				// Return true
>>>> -				return true;
>>>> -			} else {
>>>> -				// Check for specialCheckChars
>>>> -				if (specialCheckChars && (specialCheckChars.test(field.value))) {
>>>> -					// Return true
>>>> -					return true;
>>>> -				} else {
>>>> -					// Return false
>>>> -					return false;
>>>> -				}
>>>> -			}
>>>> -		} else {
>>>> -			// Return true
>>>> -			return true;
>>>> -		}
>>>> -	} else {
>>>> -		// Check if contains any special chars
>>>> -		if (noSpecialChars.test(field.value)) {
>>>> -			// Return true
>>>> -			return true;
>>>> -		} else {
>>>> -			// Check for specialCheckChars
>>>> -			if (specialCheckChars && (specialCheckChars.test(field.value))) {
>>>> -				// Return true
>>>> -				return true;
>>>> -			} else {
>>>> -				// Return false
>>>> -				return false;
>>>> -			}
>>>> -		}
>>>> -	}
>>>> -} // End checkForSpecialChars
>>>> -
>>>> -// Launch help
>>>> -function launchHelp(helpSrc) {
>>>> -	helpWindow = window.open(helpSrc, "helpWindow", "resizable=yes,menubar=no,statusbar=no,titlebar=no,scrollbars=yes,width=400,height=400")
>>>> -	helpWindow.moveTo(25, 25);
>>>> -	helpWindow.focus();
>>>> -}
>>>> -
>>>> -// Image On
>>>> -function imageOn(imageName)	{
>>>> -	document[imageName].src = eval(imageName + "_over.src");
>>>> -}
>>>> -
>>>> -// Image Off
>>>> -function imageOff(imageName) {
>>>> -	document[imageName].src = eval(imageName + ".src");
>>>> -}
>>>> -
>>>> -// Image Down
>>>> -function imageDown(imageName) {
>>>> -	document[imageName].src = eval(imageName + "_down.src");
>>>> -}
>>>> -
>>>> -// Image button On
>>>> -function imageButtonOn(item, imageName)	{
>>>> -	item.src = eval(imageName + "_over.src");
>>>> -}
>>>> -
>>>> -// Image button Off
>>>> -function imageButtonOff(item, imageName) {
>>>> -	item.src = eval(imageName + ".src");
>>>> -}
>>>> -
>>>> -// Image button Down
>>>> -function imageButtonDown(item, imageName) {
>>>> -	item.src = eval(imageName + "_down.src");
>>>> -}
>>>> -
>>>> -// changeStatus
>>>> -function changeStatus(message) {
>>>> -	// Set window status
>>>> -	window.status = message;
>>>> -
>>>> -	// Return true
>>>> -	return true;
>>>> -} // End changeStatus
>>>> -
>>>> -// isNumeric function
>>>> -function isNumeric(num) {
>>>> -	// Boolean var
>>>> -	var bolValidNum = true;
>>>> -	var digits = "1234567890";
>>>> -	var len = num.length;
>>>> -
>>>> -	// Loop over num
>>>> -	for (i = 0; i < len; ++i) {
>>>> -		numSub = num.substring(i, i + 1);
>>>> -
>>>> -		// Test for numeric match
>>>> -		if (digits.indexOf(numSub) == -1) {
>>>> -			bolValidNum = false;
>>>> -		}
>>>> -	}
>>>> -
>>>> -	// Return boolean var
>>>> -	return bolValidNum;
>>>> -} // End isNumeric
>>>> -
>>>> -// Check for numeric and display nice error
>>>> -function checkNumeric(field, message) {
>>>> -	// Is it valid
>>>> -	if (!isNumeric(field.value)) {
>>>> -		alert(message);
>>>> -		field.focus();
>>>> -	}
>>>> -} // End checkNumeric
>>>> -
>>>> -// Function getInt which return numeric value of passed in string
>>>> -function getInt(str, i, minlength, maxlength) {
>>>> -	for (x = maxlength; x >= minlength; --x) {
>>>> -		var token = str.substring(i, i + x);
>>>> -
>>>> -		// Check for numeric
>>>> -		if (isNumeric(token)) {
>>>> -			return token;
>>>> -		}
>>>> -	}
>>>> -
>>>> -	// Return null
>>>> -	return null;
>>>> -}
>>>> -
>>>> -// Function dateCheck, requires global err variable for passing error messages
>>>> -// and requires the isNumeric function
>>>> -function dateCheck(date, humanname, dateFormat) {
>>>> -	// Date validation
>>>> -	var date_s = date;
>>>> -
>>>> -	// If no dateFormat, then set one
>>>> -	if (dateFormat == null) {
>>>> -		format = "mm/dd/yyyy";
>>>> -	} else {
>>>> -		format = dateFormat;
>>>> -	}
>>>> -
>>>> -	var date_err = 0; // Possible values are 0, 1
>>>> -	var date_year_err = 0; // Possible values are 0, 1
>>>> -	var date_month_err = 0; // Possible values are 1-12
>>>> -	var date_day_err = 0; // Possible values are 0, 1, 2, 3, 4
>>>> -	var i_date_s = 0;
>>>> -	var i_format = 0;
>>>> -	var err = "";
>>>> -	var c = "";
>>>> -	var token = "";
>>>> -	var token2 = "";
>>>> -	var x, y;
>>>> -	var year = 0;
>>>> -	var month = 0;
>>>> -	var date = 0;
>>>> -	var bYearProvided = false;
>>>> -	var MONTH_NAMES = new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
>>>> -
>>>> -	// Trim the leading spaces from the string
>>>> -	while (date_s.charAt(0) == ' ') {
>>>> -		date_s = date_s.slice(1);
>>>> -	}
>>>> -
>>>> -	while (i_format < format.length) {
>>>> -		// Get next token from format string
>>>> -		c = format.charAt(i_format);
>>>> -		token = "";
>>>> -
>>>> -		while ((format.charAt(i_format) == c) && (i_format < format.length)) {
>>>> -			token += format.charAt(i_format);
>>>> -			++i_format;
>>>> -		}
>>>> -
>>>> -		// Extract contents of value based on format token
>>>> -		if ((token == "yyyy") || (token == "yy") || (token == "y")) {
>>>> -			if (token == "yyyy") { x = 4; y = 4; } // 4-digit year
>>>> -			if (token == "yy") { x = 2; y = 2; } // 2-digit year
>>>> -			if (token == "y") { x = 2; y = 4; } // 2-or-4-digit year
>>>> -
>>>> -			year = getInt(date_s, i_date_s, x, y);
>>>> -			bYearProvided = true;
>>>> -
>>>> -			if ((year == null) || (year.length != token.length)) {
>>>> -				date_year_err = 1;
>>>> -			}
>>>> -
>>>> -			i_date_s += year.length;
>>>> -		} else {
>>>> -			if (token == "mmm") { // Month name
>>>> -				month = 0;
>>>> -
>>>> -				for (var i = 0; i < MONTH_NAMES.length; ++i) {
>>>> -					var month_name = MONTH_NAMES[i];
>>>> -
>>>> -					if (date_s.substring(i_date_s, (i_date_s + month_name.length)).toLowerCase() == month_name.toLowerCase()) {
>>>> -						month = i + 1;
>>>> -
>>>> -						if (month > 12) {
>>>> -							month -= 12;
>>>> -						}
>>>> -
>>>> -						i_date_s += month_name.length;
>>>> -						break;
>>>> -					}
>>>> -				}
>>>> -
>>>> -				if ((month == 0) || (month < 1) || (month > 12)) {
>>>> -					date_month_err = 1;
>>>> -				}
>>>> -			} else {
>>>> -				if ((token == "mm") || (token == "m")) {
>>>> -					x = token.length; y = 2;
>>>> -					month = getInt(date_s, i_date_s, x, y);
>>>> -
>>>> -					if ((month == null) || (month < 1) || (month > 12)) {
>>>> -						date_month_err = 1;
>>>> -					}
>>>> -
>>>> -					i_date_s += month.length;
>>>> -				} else {
>>>> -					if (token=="dd" || token=="d") {
>>>> -						x = token.length; y = 2;
>>>> -						date = getInt(date_s, i_date_s, x, y);
>>>> -
>>>> -						if ((date == null) || (date < 1) || (date > 31)) {
>>>> -							date_day_err = 1;
>>>> -						}
>>>> -
>>>> -						i_date_s += date.length;
>>>> -					} else {
>>>> -						if (date_s.substring(i_date_s, (i_date_s + token.length)) != token) {
>>>> -							date_err = 1;
>>>> -						} else {
>>>> -							i_date_s += token.length;
>>>> -						}
>>>> -					}
>>>> -				}
>>>> -			}
>>>> -		}
>>>> -	}
>>>> -
>>>> -	// If there are any trailing characters left in the date_s, it doesn't match
>>>> -	if (i_date_s != date_s.length) {
>>>> -		date_err = 1;
>>>> -	}
>>>> -
>>>> -	// Is date valid for month?
>>>> -	if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
>>>> -		if (date > 30) {
>>>> -			date_day_err = 2;
>>>> -		}
>>>> -	} else {
>>>> -		if (month == 2) {
>>>> -			// Check for leap year
>>>> -			if ((((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0)) {
>>>> -				// Leap year
>>>> -				if (date > 29) {
>>>> -					date_day_err = 3
>>>> -				}
>>>> -			} else {
>>>> -				if (date > 28) {
>>>> -					date_day_err = 4;
>>>> -				}
>>>> -			}
>>>> -		} else {
>>>> -			if (date > 31) {
>>>> -				date_day_err = 1;
>>>> -			}
>>>> -		}
>>>> -	}
>>>> -
>>>> -	// Add to the error message, if needed
>>>> -	if (date_err != 0) {
>>>> -		err += "\n - The " + humanname + " must be a valid date in the format " + format + ".";
>>>> -	}
>>>> -
>>>> -	// Add to the error message, if needed
>>>> -	if (date_month_err != 0) {
>>>> -		err += "\n - The month must be between 1-12.";
>>>> -	}
>>>> -
>>>> -	// Add to the error message, if needed
>>>> -	if (date_year_err != 0) {
>>>> -		err += "\n - The " + humanname + " must have a valid year.";
>>>> -	}
>>>> -
>>>> -	// Add to the error message, if needed
>>>> -	if (date_day_err != 0) {
>>>> -		switch (date_day_err) {
>>>> -			case 1:
>>>> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 31 days.";
>>>> -				break;
>>>> -			case 2:
>>>> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 30 days.";
>>>> -				break;
>>>> -			case 3:
>>>> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 29 days in a Leap Year.";
>>>> -				break;
>>>> -			default:
>>>> -				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 28 days in a non-Leap Year.";
>>>> -				break;
>>>> -		}
>>>> -	}
>>>> -
>>>> -	return err;
>>>> -} // End dateCheck
>>>> -
>>>> -// Compares two MM/DD/YYY dates for less than (-1), equal to (0), or
>>>> -// greater than (1)
>>>> -function dateCompare(date1, date2) {
>>>> -	var localDate1 = new Date(date1.substring(6,10), date1.substring(0,2), date1.substring(3,5));
>>>> -	var localDate2 = new Date(date2.substring(6,10), date2.substring(0,2), date2.substring(3,5));
>>>> -
>>>> -	// Greater than
>>>> -	if (localDate1.getTime() > localDate2.getTime()) {
>>>> -		return 1;
>>>> -	} else {
>>>> -		// Less than
>>>> -		if (localDate1.getTime() < localDate2.getTime()) {
>>>> -			return -1;
>>>> -		} else {
>>>> -			// Equal
>>>> -			return 0;
>>>> -		}
>>>> -	}
>>>> -} // End dateCompare
>>>> -
>>>> -// All-purpose form validation script
>>>> -function checkForm(dataForm) {
>>>> -	var msg = "";
>>>> -	var stripBlanksStart = /^\s+/g;
>>>> -	var stripBlanksEnd = /\s+$/g;
>>>> -	var squeezeBlanks = /\s+/g;
>>>> -	var stripNonNumbers = /\D+/g;
>>>> -	var stripNotDollars = /[^0-9\.]/g;
>>>> -	var noSpaces = /\s+/g;
>>>> -	var allNumbers = /^\d+$/;
>>>> -	var zipCodeCheck = /^(\d{5})$|^(\d{5}-\d{4})$/;
>>>> -	var passwordNumbers = /\d{1,}/;
>>>> -	var passwordLetters = /\D{1,}/;
>>>> -	var emailPattern = /^[a-zA-Z0-9]([a-zA-Z0-9_\-\.]*)@([a-zA-Z0-9_\-\.]*)(\.[a-zA-Z]{2,3}(\.[a-zA-Z]{2}){0,2})$/i;
>>>> -	var replaceSeps = /[-,\.\/]/g;
>>>> -	var time24Format = /^(([0-1]?\d)|(2[0-3])):[0-5]\d(:([0-5]\d))?/;
>>>> -	var time12Format = /^(\d|0\d|1[0-2]):[0-5]\d(:[0-5]\d)?( (A|P)\.?M\.?)?/;
>>>> -	var ipNetworkAddress = /^((\d{1,2}|[1]\d{2}|2[0-4]\d|25[0-5])(\.(\d{1,2}|[1]\d{2}|2[0-4]\d|25[0-5])){3}){1}((\/(0\.0\.0\.0|128\.0\.0\.0|192\.0\.0\.0|224\.0\.0\.0|240\.0\.0\.0|248\.0\.0\.0|252\.0\.0\.0|254\.0\.0\.0|(255\.(0\.0\.0|128\.0\.0|192\.0\.0|224\.0\.0|240\.0\.0|248\.0\.0|252\.0\.0|254\.0\.0|(255\.(0\.0|128\.0|192\.0|224\.0|240\.0|248\.0|252\.0|254\.0|(255\.(0|128|192|224|240|248|252|254|255))))))))|(\/(\d|[1-2]\d|3[0-2]))){0,1}$/;
>>>> -	var ipNetworkPort = /^(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5]){1}((\:|\-)(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])){0,1}$/;
>>>> -	var passwordLength = 6;
>>>> -	var error_fields = "";
>>>> -	var errors = "";
>>>> -
>>>> -	// Loop over form elements
>>>> -	for (var i = 0; i < dataForm.length; ++i) {
>>>> -		var element = dataForm.elements[i];
>>>> -
>>>> -		// Check for select box
>>>> -		if (element.selectbox) {
>>>> -			// Check for required
>>>> -			if (element.required) {
>>>> -				// Check for value
>>>> -				if (element.options[element.selectedIndex].value == "") {
>>>> -					error_fields += "\n - " + element.humanname + " requires a selection.";
>>>> -				}
>>>> -			}
>>>> -			continue;
>>>> -		}
>>>> -
>>>> -		// Strip the leading and trailing blanks
>>>> -		element.value = element.value.replace(stripBlanksStart, '');
>>>> -		element.value = element.value.replace(stripBlanksEnd, '');
>>>> -
>>>> -		// If it is required and is empty, alert
>>>> -		if (element.required && (!element.value.length)) {
>>>> -			error_fields += "\n - " + element.humanname + " is required.";
>>>> -			continue;
>>>> -		} else {
>>>> -			// If it isn't required and doesn't have any length, skip it
>>>> -			if ((! element.required) && (! element.value.length)) {
>>>> -				continue;
>>>> -			}
>>>> -		}
>>>> -
>>>> -		// Check for special characters
>>>> -		if (element.checkspecialchars) {
>>>> -			if (checkForSpecialChars(element, element.alphaStart, element.specialChars)) {
>>>> -				error_fields += "\n - " + element.humanname + " contains invalid characters.";
>>>> -				continue;
>>>> -			}
>>>> -		}
>>>> -		
>>>> -		// Convert to uppercase if necessary
>>>> -		if (element.uppercase) {
>>>> -			element.value = element.value.toUpperCase();
>>>> -		}
>>>> -
>>>> -		// Convert to uppercase if necessary
>>>> -		if (element.lowercase) {
>>>> -			element.value = element.value.toLowerCase();
>>>> -		}
>>>> -
>>>> -		// UCFirst if necessary
>>>> -		if (element.ucfirst) {
>>>> -			// Squeeze the blanks
>>>> -			rs = element.value.replace(squeezeBlanks, ' ');
>>>> -			dsegs = rs.split(' ');
>>>> -			element.value = "";
>>>> -
>>>> -			// Loop over chars
>>>> -			for (j = 0; j < dsegs.length; ++j) {
>>>> -				if (dsegs[j].length > 1) {
>>>> -					fl = dsegs[j].substr(0, 1);
>>>> -					fl = fl.toUpperCase();
>>>> -					rn = dsegs[j].substr(1);
>>>> -					rn = rn.toLowerCase();
>>>> -					dsegs[j] = fl + rn;
>>>> -				}
>>>> -
>>>> -				// Check for first value
>>>> -				element.value = j ? element.value + ' ' + dsegs[j] : dsegs[j];
>>>> -			}
>>>> -		}
>>>> -
>>>> -		// Check for equality test
>>>> -		if (element.equalto) {
>>>> -			// Check for truevalue and use if found, otherwise use value
>>>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>>>> -			var elementValue2 = element.equaltovalue.truevalue ? element.equaltovalue.truevalue : element.equaltovalue.value;
>>>> -
>>>> -			// Check for value equality
>>>> -			if (elementValue1 != elementValue2) {
>>>> -				error_fields +="\n - " + element.humanname + " is not the same as " + element.equaltovalue.humanname;
>>>> -				continue;
>>>> -			}
>>>> -		}
>>>> -
>>>> -		// Check for less than
>>>> -		if (element.lessthan) {
>>>> -			// Check for truevalue and use if found, otherwise use value
>>>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>>>> -			var elementValue2 = element.lessthanvalue.truevalue ? element.lessthanvalue.truevalue : element.lessthanvalue.value;
>>>> -
>>>> -			// Check for values
>>>> -			if ((elementValue1 != '') && (elementValue2 != '')) {
>>>> -				// Check for value less than
>>>> -				if (elementValue1 >= elementValue2) {
>>>> -					error_fields +="\n - " + element.humanname + " must be less than " + element.lessthanvalue.humanname;
>>>> -					continue;
>>>> -				}
>>>> -			}
>>>> -		}
>>>> -
>>>> -		// Check for less than equalto
>>>> -		if (element.lessthanequalto) {
>>>> -			// Check for truevalue and use if found, otherwise use value
>>>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>>>> -			var elementValue2 = element.lessthanequaltovalue.truevalue ? element.lessthanequaltovalue.truevalue : element.lessthanequaltovalue.value;
>>>> -
>>>> -			// Check for values
>>>> -			if ((elementValue1 != '') && (elementValue2 != '')) {
>>>> -				// Check for value less than equalto
>>>> -				if (elementValue1 > elementValue2) {
>>>> -					error_fields +="\n - " + element.humanname + " must be less than or equal to " + element.lessthanequaltovalue.humanname;
>>>> -					continue;
>>>> -				}
>>>> -			}
>>>> -		}
>>>> -
>>>> -		// Check for greater than
>>>> -		if (element.greaterthan) {
>>>> -			// Check for truevalue and use if found, otherwise use value
>>>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>>>> -			var elementValue2 = element.greaterthanvalue.truevalue ? element.greaterthanvalue.truevalue : element.greaterthanvalue.value;
>>>> -
>>>> -			// Check for values
>>>> -			if ((elementValue1 != '') && (elementValue2 != '')) {
>>>> -				// Check for value greater than
>>>> -				if (elementValue1 <= elementValue2) {
>>>> -					error_fields +="\n - " + element.humanname + " must be greater than " + element.greaterthanvalue.humanname;
>>>> -					continue;
>>>> -				}
>>>> -			}
>>>> -		}
>>>> -
>>>> -		// Check for greater than equalto
>>>> -		if (element.greaterthanequalto) {
>>>> -			// Check for truevalue and use if found, otherwise use value
>>>> -			var elementValue1 = element.truevalue ? element.truevalue : element.value;
>>>> -			var elementValue2 = element.greaterthanequaltovalue.truevalue ? element.greaterthanequaltovalue.truevalue : element.greaterthanequaltovalue.value;
>>>> -
>>>> -			// Check for values
>>>> -			if ((elementValue1 != '') && (elementValue2 != '')) {
>>>> -				// Check for value greater than equalto
>>>> -				if (elementValue1 < elementValue2) {
>>>> -					error_fields +="\n - " + element.humanname + " must be greater than or equal to " + element.greaterthanequaltovalue.humanname;
>>>> -					continue;
>>>> -				}
>>>> -			}
>>>> -		}
>>>> -
>>>> -		// Check a price (sort of)
>>>> -		if (element.price) {
>>>> -			// Strip out currency stuff
>>>> -			element.value = element.value.replace(stripNotDollars, '');
>>>> -			continue;
>>>> -		}
>>>> -
>>>> -		// Check a telephone number
>>>> -		if (element.telephone) {
>>>> -			// Strip out parens and spaces
>>>> -			rs = element.value.replace(stripNonNumbers, '');
>>>> -
>>>> -			if (rs.length == 7) {
>>>> -				element.value = rs.substr(0, 3) + "-" + rs.substr(3, 4);
>>>> -			} else {
>>>> -				if (rs.length == 10) {
>>>> -					element.value = rs.substr(0, 3) + "-" + rs.substr(3, 3) + "-" + rs.substr(6, 4);
>>>> -				} else {
>>>> -					error_fields += "\n - " + element.humanname + " is an invalid telephone number.";
>>>> -				}
>>>> -			}
>>>> -			continue;
>>>> -		}
>>>> -
>>>> -		// Check a zip code
>>>> -		if (element.zipcode) {
>>>> -			if (!zipCodeCheck.test(element.value)) {
>>>> -				error_fields +="\n - " + element.humanname + " is an invalid zipcode.";
>>>> -			}
>>>> -			continue;
>>>> -		}
>>>> -
>>>> -		// Check a password (sort of)
>>>> -		if (element.password) {
>>>> -			if (element.value.length < passwordLength) {
>>>> -				error_fields += "\n - " + element.humanname + " is too short";
>>>> -				error_fields += "\n      Minimum length is " + passwordLength + " characters.";
>>>> -				continue;
>>>> -			}
>>>> -
>>>> -			if (!passwordNumbers.test(element.value)) {
>>>> -				error_fields += "\n - " + element.humanname + " must contain at least one number.";
>>>> -				continue;
>>>> -			}
>>>> -
>>>> -			if (!passwordLetters.test(element.value)) {
>>>> -				error_fields += "\n - " + element.humanname + " must contain at least one letter.";
>>>> -				continue;
>>>> -			}
>>>> -		}
>>>> -
>>>> -		// Check for all numbers
>>>> -		if (element.numeric) {
>>>> -			if (!allNumbers.test(element.value)) {
>>>> -				error_fields += "\n - " + element.humanname + " is not numeric.";
>>>> -			}
>>>> -			continue;
>>>> -		}
>>>> -
>>>> -		// Check an email address for validity
>>>> -		if (element.email) {
>>>> -			element.value = element.value.replace(noSpaces, '');
>>>> -
>>>> -			if (!emailPattern.test(element.value)) {
>>>> -				error_fields += "\n - " + element.humanname + " is not a valid email address.";
>>>> -			}
>>>> -			continue;
>>>> -		}
>>>> -
>>>> -		// Check a date
>>>> -		if (element.date) {
>>>> -			error_fields += dateCheck(element.value, element.humanname, element.format);
>>>> -			continue;
>>>> -		}
>>>> -
>>>> -		// Check a time
>>>> -		if (element.time) {
>>>> -			// Check for 24 hour time
>>>> -			if (element.time24) {
>>>> -				// Check for valid
>>>> -				if (!time24Format.test(element.value)) {
>>>> -					error_fields += "\n - " + element.humanname + " is not a valid 24 hour time.";
>>>> -				}
>>>> -			} else {
>>>> -				// Check for valid
>>>> -				if (!time12Format.test(element.value)) {
>>>> -					error_fields += "\n - " + element.humanname + " is not a valid 12 hour time.";
>>>> -				}
>>>> -			}
>>>> -			continue;
>>>> -		}
>>>> -
>>>> -		// Check the lengths
>>>> -		if (element.minlen && (element.value.length < element.minlen)) {
>>>> -			error_fields += "\n - " + element.humanname + " is too short";
>>>> -			error_fields += "\n      Minimum length is " + element.minlen + " characters.";
>>>> -			continue;
>>>> -		}
>>>> -
>>>> -		if (element.maxlen && (element.value.length > element.maxlen)) {
>>>> -			error_fields +="\n - " + element.humanname + " is too long";
>>>> -			error_fields +="\n      Maximum length is " + element.maxlen + " characters.";
>>>> -			continue;
>>>> -		}
>>>> -
>>>> -		// Check for ip/network address
>>>> -		if (element.ipnetworkaddress) {
>>>> -			if (!ipNetworkAddress.test(element.value)) {
>>>> -				error_fields +="\n - " + element.humanname + " is not a valid ip/network address";
>>>> -			}
>>>> -			continue;
>>>> -		}
>>>> -
>>>> -		// Check for ip/network port
>>>> -		if (element.ipnetworkport) {
>>>> -			if (!ipNetworkPort.test(element.value)) {
>>>> -				error_fields +="\n - " + element.humanname + " is not a valid ip/network port";
>>>> -			} else {
>>>> -				var searchChar = "";
>>>> -				var portArray = "";
>>>> -
>>>> -				if (element.value.indexOf(":") > -1) {
>>>> -					searchChar = ":";
>>>> -				} else if (element.value.indexOf("-") > -1) {
>>>> -					searchChar = "-";
>>>> -				}
>>>> -				
>>>> -				if (searchChar != '') {
>>>> -					portArray = element.value.split(searchChar);
>>>> -
>>>> -					if (portArray.length == 2) {
>>>> -						if (parseInt(portArray[0]) > parseInt(portArray[1])) {
>>>> -							error_fields +="\n - " + element.humanname + " can not have a start port greater than an end port";
>>>> -						}
>>>> -					}
>>>> -				}
>>>> -			}
>>>> -			continue;
>>>> -		}
>>>> -	}
>>>> -
>>>> -	// Check for any errors
>>>> -	if (error_fields == "") {
>>>> -		return true;
>>>> -	} else {
>>>> -		msg = "The following fields have errors:\n";
>>>> -		msg += error_fields;
>>>> -		alert(msg);
>>>> -		return false;
>>>> -	}
>>>> -}
>>>> -
>>>> -// Clear data
>>>> -function clearData(field, data) {
>>>> -	// Check if they equal
>>>> -	if (field.value == data) {
>>>> -		// Clear data
>>>> -		field.value = '';
>>>> -	}
>>>> -}
>>>> -
>>>> -// Set empty data
>>>> -function setEmptyData(field, data) {
>>>> -	// Check if they equal
>>>> -	if (! field.value.length) {
>>>> -		// Clear data
>>>> -		field.value = data;
>>>> -	}
>>>> -}
>>>> -
>>>> -// Trim whitespace from beginning and end
>>>> -function trim(data) {
>>>> -	var objRegExp = /^(\s*)$/;
>>>> -
>>>> -	// Check for all spaces
>>>> -	if (objRegExp.test(data)) {
>>>> -		data = data.replace(objRegExp, '');
>>>> -
>>>> -		if (data.length == 0)
>>>> -			return data;
>>>> -	}
>>>> -
>>>> -	// Check for leading & trailing spaces
>>>> -	objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
>>>> -
>>>> -	if (objRegExp.test(data)) {
>>>> -		// Remove leading and trailing whitespace characters
>>>> -		data = data.replace(objRegExp, '$2');
>>>> -	}
>>>> -
>>>> -	return data;
>>>> -}
>>>>
  

Patch

diff --git a/config/rootfiles/common/web-user-interface b/config/rootfiles/common/web-user-interface
index 9b2667676..540bf1e4b 100644
--- a/config/rootfiles/common/web-user-interface
+++ b/config/rootfiles/common/web-user-interface
@@ -300,7 +300,6 @@  srv/web/ipfire/html/images/view-refresh.png
 srv/web/ipfire/html/images/wakeup.gif
 srv/web/ipfire/html/images/window-new.png
 srv/web/ipfire/html/include
-srv/web/ipfire/html/include/snortupdateutility.js
 srv/web/ipfire/html/include/zoneconf.js
 srv/web/ipfire/html/index.cgi
 srv/web/ipfire/html/redirect-templates
diff --git a/html/html/include/snortupdateutility.js b/html/html/include/snortupdateutility.js
deleted file mode 100644
index 10750519c..000000000
--- a/html/html/include/snortupdateutility.js
+++ /dev/null
@@ -1,744 +0,0 @@ 
-/*
-File Info:	utility.js - JavaScript library
-
-Author:		Drew S. Dupont
-
-Date:		2/26/2003 - 8/12/2004 (or present day)
-
-Description:	Utility functions in JavaScript
-		Drew S. Dupont <dsdupont@alumni.indiana.edu>
-*/
-// Show/Hide HTML Span
-function showHideHTML(id, content) {
-	// Browser variables
-	var ie45, ns6, ns4, dom = false;
-
-	// Basic browser parse
-	if (navigator.appName == "Microsoft Internet Explorer") {
-		ie45 = parseInt(navigator.appVersion) >= 4;
-	} else if (navigator.appName == "Netscape") {
-		ns6 = parseInt(navigator.appVersion) >= 5;
-		ns4 = parseInt(navigator.appVersion) < 5;
-	}
-	dom = ie45 || ns6;
-
-	// Return if using an old Netscape browser
-	if(ns4) return;
-
-	// Check for type of call supported
-	el = document.all ? document.all[id] : dom ? document.getElementById(id) : document.layers[id];
-
-	// Check if content to be "switched" is ""
-	if (content == "") {
-		// Return old content and replace with ""
-		content = el.innerHTML;
-		el.innerHTML = "";
-	} else {
-		// Replace current content with new content and return ""
-		el.innerHTML = content;
-		content = "";
-	}
-
-	// Return content (either old or "")
-	return content;
-}
-
-// Check for special chars
-function checkForSpecialChars(field, alphaStart, specialCheckChars) {
-	// Local vars
-	var alphaStartChars = /^[a-zA-Z]/;
-	var noSpecialChars = /([^a-zA-Z0-9 _,?!':;\r\t\n\/\\\-\.#@]+)/;
-
-	// Check if should start with an alpha char
-	if (alphaStart) {
-		// Make sure starts with a alpha char
-		if (alphaStartChars.test(field.value)) {
-			// Check for special chars
-			if (noSpecialChars.test(field.value)) {
-				// Return true
-				return true;
-			} else {
-				// Check for specialCheckChars
-				if (specialCheckChars && (specialCheckChars.test(field.value))) {
-					// Return true
-					return true;
-				} else {
-					// Return false
-					return false;
-				}
-			}
-		} else {
-			// Return true
-			return true;
-		}
-	} else {
-		// Check if contains any special chars
-		if (noSpecialChars.test(field.value)) {
-			// Return true
-			return true;
-		} else {
-			// Check for specialCheckChars
-			if (specialCheckChars && (specialCheckChars.test(field.value))) {
-				// Return true
-				return true;
-			} else {
-				// Return false
-				return false;
-			}
-		}
-	}
-} // End checkForSpecialChars
-
-// Launch help
-function launchHelp(helpSrc) {
-	helpWindow = window.open(helpSrc, "helpWindow", "resizable=yes,menubar=no,statusbar=no,titlebar=no,scrollbars=yes,width=400,height=400")
-	helpWindow.moveTo(25, 25);
-	helpWindow.focus();
-}
-
-// Image On
-function imageOn(imageName)	{
-	document[imageName].src = eval(imageName + "_over.src");
-}
-
-// Image Off
-function imageOff(imageName) {
-	document[imageName].src = eval(imageName + ".src");
-}
-
-// Image Down
-function imageDown(imageName) {
-	document[imageName].src = eval(imageName + "_down.src");
-}
-
-// Image button On
-function imageButtonOn(item, imageName)	{
-	item.src = eval(imageName + "_over.src");
-}
-
-// Image button Off
-function imageButtonOff(item, imageName) {
-	item.src = eval(imageName + ".src");
-}
-
-// Image button Down
-function imageButtonDown(item, imageName) {
-	item.src = eval(imageName + "_down.src");
-}
-
-// changeStatus
-function changeStatus(message) {
-	// Set window status
-	window.status = message;
-
-	// Return true
-	return true;
-} // End changeStatus
-
-// isNumeric function
-function isNumeric(num) {
-	// Boolean var
-	var bolValidNum = true;
-	var digits = "1234567890";
-	var len = num.length;
-
-	// Loop over num
-	for (i = 0; i < len; ++i) {
-		numSub = num.substring(i, i + 1);
-
-		// Test for numeric match
-		if (digits.indexOf(numSub) == -1) {
-			bolValidNum = false;
-		}
-	}
-
-	// Return boolean var
-	return bolValidNum;
-} // End isNumeric
-
-// Check for numeric and display nice error
-function checkNumeric(field, message) {
-	// Is it valid
-	if (!isNumeric(field.value)) {
-		alert(message);
-		field.focus();
-	}
-} // End checkNumeric
-
-// Function getInt which return numeric value of passed in string
-function getInt(str, i, minlength, maxlength) {
-	for (x = maxlength; x >= minlength; --x) {
-		var token = str.substring(i, i + x);
-
-		// Check for numeric
-		if (isNumeric(token)) {
-			return token;
-		}
-	}
-
-	// Return null
-	return null;
-}
-
-// Function dateCheck, requires global err variable for passing error messages 
-// and requires the isNumeric function
-function dateCheck(date, humanname, dateFormat) {
-	// Date validation
-	var date_s = date;
-
-	// If no dateFormat, then set one
-	if (dateFormat == null) {
-		format = "mm/dd/yyyy";
-	} else {
-		format = dateFormat;
-	}
-
-	var date_err = 0; // Possible values are 0, 1
-	var date_year_err = 0; // Possible values are 0, 1
-	var date_month_err = 0; // Possible values are 1-12
-	var date_day_err = 0; // Possible values are 0, 1, 2, 3, 4
-	var i_date_s = 0;
-	var i_format = 0;
-	var err = "";
-	var c = "";
-	var token = "";
-	var token2 = "";
-	var x, y;
-	var year = 0;
-	var month = 0;
-	var date = 0;
-	var bYearProvided = false;
-	var MONTH_NAMES = new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
-
-	// Trim the leading spaces from the string
-	while (date_s.charAt(0) == ' ') {
-		date_s = date_s.slice(1);
-	}
-
-	while (i_format < format.length) {
-		// Get next token from format string
-		c = format.charAt(i_format);
-		token = "";
-
-		while ((format.charAt(i_format) == c) && (i_format < format.length)) {
-			token += format.charAt(i_format);
-			++i_format;
-		}
-
-		// Extract contents of value based on format token
-		if ((token == "yyyy") || (token == "yy") || (token == "y")) {
-			if (token == "yyyy") { x = 4; y = 4; } // 4-digit year
-			if (token == "yy") { x = 2; y = 2; } // 2-digit year
-			if (token == "y") { x = 2; y = 4; } // 2-or-4-digit year
-
-			year = getInt(date_s, i_date_s, x, y);
-			bYearProvided = true;
-
-			if ((year == null) || (year.length != token.length)) {
-				date_year_err = 1;
-			}
-
-			i_date_s += year.length;
-		} else {
-			if (token == "mmm") { // Month name
-				month = 0;
-
-				for (var i = 0; i < MONTH_NAMES.length; ++i) {
-					var month_name = MONTH_NAMES[i];
-
-					if (date_s.substring(i_date_s, (i_date_s + month_name.length)).toLowerCase() == month_name.toLowerCase()) {
-						month = i + 1;
-
-						if (month > 12) {
-							month -= 12;
-						}
-
-						i_date_s += month_name.length;
-						break;
-					}
-				}
-
-				if ((month == 0) || (month < 1) || (month > 12)) {
-					date_month_err = 1;
-				}
-			} else {
-				if ((token == "mm") || (token == "m")) {
-					x = token.length; y = 2;
-					month = getInt(date_s, i_date_s, x, y);
-
-					if ((month == null) || (month < 1) || (month > 12)) {
-						date_month_err = 1;
-					}
-
-					i_date_s += month.length;
-				} else {
-					if (token=="dd" || token=="d") {
-						x = token.length; y = 2;
-						date = getInt(date_s, i_date_s, x, y);
-
-						if ((date == null) || (date < 1) || (date > 31)) {
-							date_day_err = 1;
-						}
-
-						i_date_s += date.length;
-					} else {
-						if (date_s.substring(i_date_s, (i_date_s + token.length)) != token) {
-							date_err = 1;
-						} else {
-							i_date_s += token.length;
-						}
-					}
-				}
-			}
-		}
-	}
-
-	// If there are any trailing characters left in the date_s, it doesn't match
-	if (i_date_s != date_s.length) {
-		date_err = 1;
-	}
-
-	// Is date valid for month?
-	if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
-		if (date > 30) {
-			date_day_err = 2;
-		}
-	} else {
-		if (month == 2) {
-			// Check for leap year
-			if ((((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0)) {
-				// Leap year
-				if (date > 29) {
-					date_day_err = 3
-				}
-			} else {
-				if (date > 28) {
-					date_day_err = 4;
-				}
-			}
-		} else {
-			if (date > 31) {
-				date_day_err = 1;
-			}
-		}
-	}
-
-	// Add to the error message, if needed
-	if (date_err != 0) {
-		err += "\n - The " + humanname + " must be a valid date in the format " + format + ".";
-	}
-
-	// Add to the error message, if needed
-	if (date_month_err != 0) {
-		err += "\n - The month must be between 1-12.";
-	}
-
-	// Add to the error message, if needed
-	if (date_year_err != 0) {
-		err += "\n - The " + humanname + " must have a valid year.";
-	}
-
-	// Add to the error message, if needed
-	if (date_day_err != 0) {
-		switch (date_day_err) {
-			case 1:
-				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 31 days.";
-				break;
-			case 2:
-				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 30 days.";
-				break;
-			case 3:
-				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 29 days in a Leap Year.";
-				break;
-			default:
-				err += "\n - The month you entered in the " + humanname + " can only have between 1 and 28 days in a non-Leap Year.";
-				break;
-		}
-	}
-
-	return err;
-} // End dateCheck
-
-// Compares two MM/DD/YYY dates for less than (-1), equal to (0), or 
-// greater than (1)
-function dateCompare(date1, date2) {
-	var localDate1 = new Date(date1.substring(6,10), date1.substring(0,2), date1.substring(3,5));
-	var localDate2 = new Date(date2.substring(6,10), date2.substring(0,2), date2.substring(3,5));
-
-	// Greater than
-	if (localDate1.getTime() > localDate2.getTime()) {
-		return 1;
-	} else {
-		// Less than
-		if (localDate1.getTime() < localDate2.getTime()) {
-			return -1;
-		} else {
-			// Equal
-			return 0;
-		}
-	}
-} // End dateCompare
-
-// All-purpose form validation script
-function checkForm(dataForm) {
-	var msg = "";
-	var stripBlanksStart = /^\s+/g;
-	var stripBlanksEnd = /\s+$/g;
-	var squeezeBlanks = /\s+/g;
-	var stripNonNumbers = /\D+/g;
-	var stripNotDollars = /[^0-9\.]/g;
-	var noSpaces = /\s+/g;
-	var allNumbers = /^\d+$/;
-	var zipCodeCheck = /^(\d{5})$|^(\d{5}-\d{4})$/;
-	var passwordNumbers = /\d{1,}/;
-	var passwordLetters = /\D{1,}/;
-	var emailPattern = /^[a-zA-Z0-9]([a-zA-Z0-9_\-\.]*)@([a-zA-Z0-9_\-\.]*)(\.[a-zA-Z]{2,3}(\.[a-zA-Z]{2}){0,2})$/i;
-	var replaceSeps = /[-,\.\/]/g;
-	var time24Format = /^(([0-1]?\d)|(2[0-3])):[0-5]\d(:([0-5]\d))?/;
-	var time12Format = /^(\d|0\d|1[0-2]):[0-5]\d(:[0-5]\d)?( (A|P)\.?M\.?)?/;
-	var ipNetworkAddress = /^((\d{1,2}|[1]\d{2}|2[0-4]\d|25[0-5])(\.(\d{1,2}|[1]\d{2}|2[0-4]\d|25[0-5])){3}){1}((\/(0\.0\.0\.0|128\.0\.0\.0|192\.0\.0\.0|224\.0\.0\.0|240\.0\.0\.0|248\.0\.0\.0|252\.0\.0\.0|254\.0\.0\.0|(255\.(0\.0\.0|128\.0\.0|192\.0\.0|224\.0\.0|240\.0\.0|248\.0\.0|252\.0\.0|254\.0\.0|(255\.(0\.0|128\.0|192\.0|224\.0|240\.0|248\.0|252\.0|254\.0|(255\.(0|128|192|224|240|248|252|254|255))))))))|(\/(\d|[1-2]\d|3[0-2]))){0,1}$/;
-	var ipNetworkPort = /^(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5]){1}((\:|\-)(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])){0,1}$/;
-	var passwordLength = 6;
-	var error_fields = "";
-	var errors = "";
-
-	// Loop over form elements
-	for (var i = 0; i < dataForm.length; ++i) {
-		var element = dataForm.elements[i];
-
-		// Check for select box
-		if (element.selectbox) {
-			// Check for required
-			if (element.required) {
-				// Check for value
-				if (element.options[element.selectedIndex].value == "") {
-					error_fields += "\n - " + element.humanname + " requires a selection.";
-				}
-			}
-			continue;
-		}
-
-		// Strip the leading and trailing blanks
-		element.value = element.value.replace(stripBlanksStart, '');
-		element.value = element.value.replace(stripBlanksEnd, '');
-
-		// If it is required and is empty, alert
-		if (element.required && (!element.value.length)) {
-			error_fields += "\n - " + element.humanname + " is required.";
-			continue;
-		} else {
-			// If it isn't required and doesn't have any length, skip it
-			if ((! element.required) && (! element.value.length)) {
-				continue;
-			}
-		}
-
-		// Check for special characters
-		if (element.checkspecialchars) {
-			if (checkForSpecialChars(element, element.alphaStart, element.specialChars)) {
-				error_fields += "\n - " + element.humanname + " contains invalid characters.";
-				continue;
-			}
-		}
-		
-		// Convert to uppercase if necessary
-		if (element.uppercase) {
-			element.value = element.value.toUpperCase();
-		}
-
-		// Convert to uppercase if necessary
-		if (element.lowercase) {
-			element.value = element.value.toLowerCase();
-		}
-
-		// UCFirst if necessary
-		if (element.ucfirst) {
-			// Squeeze the blanks
-			rs = element.value.replace(squeezeBlanks, ' ');
-			dsegs = rs.split(' ');
-			element.value = "";
-
-			// Loop over chars
-			for (j = 0; j < dsegs.length; ++j) {
-				if (dsegs[j].length > 1) {
-					fl = dsegs[j].substr(0, 1);
-					fl = fl.toUpperCase();
-					rn = dsegs[j].substr(1);
-					rn = rn.toLowerCase();
-					dsegs[j] = fl + rn;
-				}
-
-				// Check for first value
-				element.value = j ? element.value + ' ' + dsegs[j] : dsegs[j];
-			}
-		}
-
-		// Check for equality test
-		if (element.equalto) {
-			// Check for truevalue and use if found, otherwise use value
-			var elementValue1 = element.truevalue ? element.truevalue : element.value;
-			var elementValue2 = element.equaltovalue.truevalue ? element.equaltovalue.truevalue : element.equaltovalue.value;
-
-			// Check for value equality
-			if (elementValue1 != elementValue2) {
-				error_fields +="\n - " + element.humanname + " is not the same as " + element.equaltovalue.humanname;
-				continue;
-			}
-		}
-
-		// Check for less than
-		if (element.lessthan) {
-			// Check for truevalue and use if found, otherwise use value
-			var elementValue1 = element.truevalue ? element.truevalue : element.value;
-			var elementValue2 = element.lessthanvalue.truevalue ? element.lessthanvalue.truevalue : element.lessthanvalue.value;
-
-			// Check for values
-			if ((elementValue1 != '') && (elementValue2 != '')) {
-				// Check for value less than
-				if (elementValue1 >= elementValue2) {
-					error_fields +="\n - " + element.humanname + " must be less than " + element.lessthanvalue.humanname;
-					continue;
-				}
-			}
-		}
-
-		// Check for less than equalto
-		if (element.lessthanequalto) {
-			// Check for truevalue and use if found, otherwise use value
-			var elementValue1 = element.truevalue ? element.truevalue : element.value;
-			var elementValue2 = element.lessthanequaltovalue.truevalue ? element.lessthanequaltovalue.truevalue : element.lessthanequaltovalue.value;
-
-			// Check for values
-			if ((elementValue1 != '') && (elementValue2 != '')) {
-				// Check for value less than equalto
-				if (elementValue1 > elementValue2) {
-					error_fields +="\n - " + element.humanname + " must be less than or equal to " + element.lessthanequaltovalue.humanname;
-					continue;
-				}
-			}
-		}
-
-		// Check for greater than
-		if (element.greaterthan) {
-			// Check for truevalue and use if found, otherwise use value
-			var elementValue1 = element.truevalue ? element.truevalue : element.value;
-			var elementValue2 = element.greaterthanvalue.truevalue ? element.greaterthanvalue.truevalue : element.greaterthanvalue.value;
-
-			// Check for values
-			if ((elementValue1 != '') && (elementValue2 != '')) {
-				// Check for value greater than
-				if (elementValue1 <= elementValue2) {
-					error_fields +="\n - " + element.humanname + " must be greater than " + element.greaterthanvalue.humanname;
-					continue;
-				}
-			}
-		}
-
-		// Check for greater than equalto
-		if (element.greaterthanequalto) {
-			// Check for truevalue and use if found, otherwise use value
-			var elementValue1 = element.truevalue ? element.truevalue : element.value;
-			var elementValue2 = element.greaterthanequaltovalue.truevalue ? element.greaterthanequaltovalue.truevalue : element.greaterthanequaltovalue.value;
-
-			// Check for values
-			if ((elementValue1 != '') && (elementValue2 != '')) {
-				// Check for value greater than equalto
-				if (elementValue1 < elementValue2) {
-					error_fields +="\n - " + element.humanname + " must be greater than or equal to " + element.greaterthanequaltovalue.humanname;
-					continue;
-				}
-			}
-		}
-
-		// Check a price (sort of)
-		if (element.price) {
-			// Strip out currency stuff
-			element.value = element.value.replace(stripNotDollars, '');
-			continue;
-		}
-
-		// Check a telephone number
-		if (element.telephone) {
-			// Strip out parens and spaces
-			rs = element.value.replace(stripNonNumbers, '');
-
-			if (rs.length == 7) {
-				element.value = rs.substr(0, 3) + "-" + rs.substr(3, 4);
-			} else {
-				if (rs.length == 10) {
-					element.value = rs.substr(0, 3) + "-" + rs.substr(3, 3) + "-" + rs.substr(6, 4);
-				} else { 
-					error_fields += "\n - " + element.humanname + " is an invalid telephone number.";
-				}
-			}
-			continue;
-		}
-
-		// Check a zip code
-		if (element.zipcode) {
-			if (!zipCodeCheck.test(element.value)) {
-				error_fields +="\n - " + element.humanname + " is an invalid zipcode.";
-			}
-			continue;
-		}
-
-		// Check a password (sort of)
-		if (element.password) {
-			if (element.value.length < passwordLength) {
-				error_fields += "\n - " + element.humanname + " is too short";
-				error_fields += "\n      Minimum length is " + passwordLength + " characters.";
-				continue;
-			}
-
-			if (!passwordNumbers.test(element.value)) {
-				error_fields += "\n - " + element.humanname + " must contain at least one number.";
-				continue;
-			}
-
-			if (!passwordLetters.test(element.value)) {
-				error_fields += "\n - " + element.humanname + " must contain at least one letter.";
-				continue;
-			}
-		}
-
-		// Check for all numbers
-		if (element.numeric) {
-			if (!allNumbers.test(element.value)) {
-				error_fields += "\n - " + element.humanname + " is not numeric.";
-			}
-			continue;
-		}
-
-		// Check an email address for validity
-		if (element.email) {
-			element.value = element.value.replace(noSpaces, '');
-
-			if (!emailPattern.test(element.value)) {
-				error_fields += "\n - " + element.humanname + " is not a valid email address.";
-			}
-			continue;
-		}
-
-		// Check a date
-		if (element.date) {
-			error_fields += dateCheck(element.value, element.humanname, element.format);
-			continue;
-		}
-
-		// Check a time
-		if (element.time) {
-			// Check for 24 hour time
-			if (element.time24) {
-				// Check for valid
-				if (!time24Format.test(element.value)) {
-					error_fields += "\n - " + element.humanname + " is not a valid 24 hour time.";
-				}
-			} else {
-				// Check for valid
-				if (!time12Format.test(element.value)) {
-					error_fields += "\n - " + element.humanname + " is not a valid 12 hour time.";
-				}
-			}
-			continue;
-		}
-
-		// Check the lengths
-		if (element.minlen && (element.value.length < element.minlen)) {
-			error_fields += "\n - " + element.humanname + " is too short";
-			error_fields += "\n      Minimum length is " + element.minlen + " characters.";
-			continue;
-		}
-
-		if (element.maxlen && (element.value.length > element.maxlen)) {
-			error_fields +="\n - " + element.humanname + " is too long";
-			error_fields +="\n      Maximum length is " + element.maxlen + " characters.";
-			continue;
-		}
-
-		// Check for ip/network address
-		if (element.ipnetworkaddress) {
-			if (!ipNetworkAddress.test(element.value)) {
-				error_fields +="\n - " + element.humanname + " is not a valid ip/network address";
-			}
-			continue;
-		}
-
-		// Check for ip/network port
-		if (element.ipnetworkport) {
-			if (!ipNetworkPort.test(element.value)) {
-				error_fields +="\n - " + element.humanname + " is not a valid ip/network port";
-			} else {
-				var searchChar = "";
-				var portArray = "";
-
-				if (element.value.indexOf(":") > -1) {
-					searchChar = ":";
-				} else if (element.value.indexOf("-") > -1) {
-					searchChar = "-";
-				}
-				
-				if (searchChar != '') {
-					portArray = element.value.split(searchChar);
-
-					if (portArray.length == 2) {
-						if (parseInt(portArray[0]) > parseInt(portArray[1])) {
-							error_fields +="\n - " + element.humanname + " can not have a start port greater than an end port";
-						}
-					}
-				}
-			}
-			continue;
-		}
-	}
-
-	// Check for any errors
-	if (error_fields == "") {
-		return true;
-	} else {
-		msg = "The following fields have errors:\n";
-		msg += error_fields;
-		alert(msg);
-		return false;
-	}
-}
-
-// Clear data
-function clearData(field, data) {
-	// Check if they equal
-	if (field.value == data) {
-		// Clear data
-		field.value = '';
-	}
-}
-
-// Set empty data
-function setEmptyData(field, data) {
-	// Check if they equal
-	if (! field.value.length) {
-		// Clear data
-		field.value = data;
-	}
-}
-
-// Trim whitespace from beginning and end
-function trim(data) {
-	var objRegExp = /^(\s*)$/;
-
-	// Check for all spaces
-	if (objRegExp.test(data)) {
-		data = data.replace(objRegExp, '');
-
-		if (data.length == 0)
-			return data;
-	}
-
-	// Check for leading & trailing spaces
-	objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
-
-	if (objRegExp.test(data)) {
-		// Remove leading and trailing whitespace characters
-		data = data.replace(objRegExp, '$2');
-	}
-
-	return data;
-}