function validateTwoFields(form) { var bValid = true; var focusField = null; var i = 0; var fields = new Array(); oTwoFields = new twofields(); for (x in oTwoFields) { var field = form[oTwoFields[x][0]]; var secondField = form[oTwoFields[x][2]("secondProperty")]; if (field.type == 'text' || field.type == 'textarea' || field.type == 'select-one' || field.type == 'radio' || field.type == 'password') { var value; var secondValue; // get field's value if (field.type == "select-one") { var si = field.selectedIndex; value = field.options[si].value; secondValue = secondField.options[si].value; } else { value = field.value; secondValue = secondField.value; } if (value != secondValue) { if (i == 0) { focusField = field; } fields[i++] = oTwoFields[x][1]; bValid = false; } } } if (fields.length > 0) { focusField.focus(); alert(fields.join('\n')); } return bValid; } /*$RCSfile: validateMinLength.js,v $ $Rev: 376673 $ $Date: 2006-02-10 13:42:31 +0000 (Fri, 10 Feb 2006) $ */ /** * A field is considered valid if greater than the specified minimum. * Fields are not checked if they are disabled. *
* Caution: Using validateMinLength on a password field in a
* login page gives unnecessary information away to hackers. While it only slightly
* weakens security, we suggest using it only when modifying a password.
* @param form The form validation is taking place on. */ function validateFloatRange(form) { var isValid = true; var focusField = null; var i = 0; var fields = new Array(); var oRange = eval('new ' + jcv_retrieveFormName(form) + '_floatRange()'); for (var x in oRange) { if (!jcv_verifyArrayElement(x, oRange[x])) { continue; } var field = form[oRange[x][0]]; if (!jcv_isFieldPresent(field)) { continue; } if ((field.type == 'hidden' || field.type == 'text' || field.type == 'textarea') && (field.value.length > 0)) { var fMin = parseFloat(oRange[x][2]("min")); var fMax = parseFloat(oRange[x][2]("max")); var fValue = parseFloat(field.value); if (!(fValue >= fMin && fValue <= fMax)) { if (i == 0) { focusField = field; } fields[i++] = oRange[x][1]; isValid = false; } } } if (fields.length > 0) { jcv_handleErrors(fields, focusField); } return isValid; } /*$RCSfile: validateIntRange.js,v $ $Rev: 376673 $ $Date: 2006-02-10 13:42:31 +0000 (Fri, 10 Feb 2006) $ */ /** * Check to see if fields is in a valid integer range. * Fields are not checked if they are disabled. *
* @param form The form validation is taking place on. */ function validateIntRange(form) { var isValid = true; var focusField = null; var i = 0; var fields = new Array(); var oRange = eval('new ' + jcv_retrieveFormName(form) + '_intRange()'); for (var x in oRange) { if (!jcv_verifyArrayElement(x, oRange[x])) { continue; } var field = form[oRange[x][0]]; if (jcv_isFieldPresent(field)) { var value = ''; if (field.type == 'hidden' || field.type == 'text' || field.type == 'textarea' || field.type == 'radio' ) { value = field.value; } if (field.type == 'select-one') { var si = field.selectedIndex; if (si >= 0) { value = field.options[si].value; } } if (value.length > 0) { var iMin = parseInt(oRange[x][2]("min")); var iMax = parseInt(oRange[x][2]("max")); var iValue = parseInt(value, 10); if (!(iValue >= iMin && iValue <= iMax)) { if (i == 0) { focusField = field; } fields[i++] = oRange[x][1]; isValid = false; } } } } if (fields.length > 0) { jcv_handleErrors(fields, focusField); } return isValid; } /*$RCSfile: validateInteger.js,v $ $Rev: 376673 $ $Date: 2006-02-10 13:42:31 +0000 (Fri, 10 Feb 2006) $ */ /** * Check to see if fields are a valid integer. * Fields are not checked if they are disabled. *
* @param form The form validation is taking place on. */ function validateInteger(form) { var bValid = true; var focusField = null; var i = 0; var fields = new Array(); var oInteger = eval('new ' + jcv_retrieveFormName(form) + '_IntegerValidations()'); for (var x in oInteger) { if (!jcv_verifyArrayElement(x, oInteger[x])) { continue; } var field = form[oInteger[x][0]]; if (!jcv_isFieldPresent(field)) { continue; } if ((field.type == 'hidden' || field.type == 'text' || field.type == 'textarea' || field.type == 'select-one' || field.type == 'radio')) { var value = ''; // get field's value if (field.type == "select-one") { var si = field.selectedIndex; if (si >= 0) { value = field.options[si].value; } } else { value = field.value; } if (value.length > 0) { if (!jcv_isDecimalDigits(value)) { bValid = false; if (i == 0) { focusField = field; } fields[i++] = oInteger[x][1]; } else { var iValue = parseInt(value, 10); if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) { if (i == 0) { focusField = field; } fields[i++] = oInteger[x][1]; bValid = false; } } } } } if (fields.length > 0) { jcv_handleErrors(fields, focusField); } return bValid; } /*$RCSfile: validateMask.js,v $ $Rev: 376673 $ $Date: 2006-02-10 13:42:31 +0000 (Fri, 10 Feb 2006) $ */ /** * Check to see if fields are a valid using a regular expression. * Fields are not checked if they are disabled. *
* @param form The form validation is taking place on. */ function validateMask(form) { var isValid = true; var focusField = null; var i = 0; var fields = new Array(); var oMasked = eval('new ' + jcv_retrieveFormName(form) + '_mask()'); for (var x in oMasked) { if (!jcv_verifyArrayElement(x, oMasked[x])) { continue; } var field = form[oMasked[x][0]]; if (!jcv_isFieldPresent(field)) { continue; } if ((field.type == 'hidden' || field.type == 'text' || field.type == 'textarea' || field.type == 'file') && (field.value.length > 0)) { if (!jcv_matchPattern(field.value, oMasked[x][2]("mask"))) { if (i == 0) { focusField = field; } fields[i++] = oMasked[x][1]; isValid = false; } } } if (fields.length > 0) { jcv_handleErrors(fields, focusField); } return isValid; } function jcv_matchPattern(value, mask) { return mask.exec(value); } /*$RCSfile: validateDate.js,v $ $Rev: 376673 $ $Date: 2006-02-10 13:42:31 +0000 (Fri, 10 Feb 2006) $ */ /** * Check to see if fields are a valid date. * Fields are not checked if they are disabled. *
* @param form The form validation is taking place on. */ function validateDate(form) { var bValid = true; var focusField = null; var i = 0; var fields = new Array(); var oDate = eval('new ' + jcv_retrieveFormName(form) + '_DateValidations()'); for (var x in oDate) { if (!jcv_verifyArrayElement(x, oDate[x])) { continue; } var field = form[oDate[x][0]]; if (!jcv_isFieldPresent(field)) { continue; } var value = field.value; var isStrict = true; var datePattern = oDate[x][2]("datePatternStrict"); // try loose pattern if (datePattern == null) { datePattern = oDate[x][2]("datePattern"); isStrict = false; } if ((field.type == 'hidden' || field.type == 'text' || field.type == 'textarea') && (value.length > 0) && (datePattern.length > 0)) { var MONTH = "MM"; var DAY = "dd"; var YEAR = "yyyy"; var orderMonth = datePattern.indexOf(MONTH); var orderDay = datePattern.indexOf(DAY); var orderYear = datePattern.indexOf(YEAR); if ((orderDay < orderYear && orderDay > orderMonth)) { var iDelim1 = orderMonth + MONTH.length; var iDelim2 = orderDay + DAY.length; var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); if (iDelim1 == orderDay && iDelim2 == orderYear) { dateRegexp = isStrict ? new RegExp("^(\\d{2})(\\d{2})(\\d{4})$") : new RegExp("^(\\d{1,2})(\\d{1,2})(\\d{4})$"); } else if (iDelim1 == orderDay) { dateRegexp = isStrict ? new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$") : new RegExp("^(\\d{1,2})(\\d{1,2})[" + delim2 + "](\\d{4})$"); } else if (iDelim2 == orderYear) { dateRegexp = isStrict ? new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$") : new RegExp("^(\\d{1,2})[" + delim1 + "](\\d{1,2})(\\d{4})$"); } else { dateRegexp = isStrict ? new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$") : new RegExp("^(\\d{1,2})[" + delim1 + "](\\d{1,2})[" + delim2 + "](\\d{4})$"); } var matched = dateRegexp.exec(value); if(matched != null) { if (!jcv_isValidDate(matched[2], matched[1], matched[3])) { if (i == 0) { focusField = field; } fields[i++] = oDate[x][1]; bValid = false; } } else { if (i == 0) { focusField = field; } fields[i++] = oDate[x][1]; bValid = false; } } else if ((orderMonth < orderYear && orderMonth > orderDay)) { var iDelim1 = orderDay + DAY.length; var iDelim2 = orderMonth + MONTH.length; var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); if (iDelim1 == orderMonth && iDelim2 == orderYear) { dateRegexp = isStrict ? new RegExp("^(\\d{2})(\\d{2})(\\d{4})$") : new RegExp("^(\\d{1,2})(\\d{1,2})(\\d{4})$"); } else if (iDelim1 == orderMonth) { dateRegexp = isStrict ? new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$") : new RegExp("^(\\d{1,2})(\\d{1,2})[" + delim2 + "](\\d{4})$"); } else if (iDelim2 == orderYear) { dateRegexp = isStrict ? new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$") : new RegExp("^(\\d{1,2})[" + delim1 + "](\\d{1,2})(\\d{4})$"); } else { dateRegexp = isStrict ? new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$") : new RegExp("^(\\d{1,2})[" + delim1 + "](\\d{1,2})[" + delim2 + "](\\d{4})$"); } var matched = dateRegexp.exec(value); if(matched != null) { if (!jcv_isValidDate(matched[1], matched[2], matched[3])) { if (i == 0) { focusField = field; } fields[i++] = oDate[x][1]; bValid = false; } } else { if (i == 0) { focusField = field; } fields[i++] = oDate[x][1]; bValid = false; } } else if ((orderMonth > orderYear && orderMonth < orderDay)) { var iDelim1 = orderYear + YEAR.length; var iDelim2 = orderMonth + MONTH.length; var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); if (iDelim1 == orderMonth && iDelim2 == orderDay) { dateRegexp = isStrict ? new RegExp("^(\\d{4})(\\d{2})(\\d{2})$") : new RegExp("^(\\d{4})(\\d{1,2})(\\d{1,2})$"); } else if (iDelim1 == orderMonth) { dateRegexp = isStrict ? new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$") : new RegExp("^(\\d{4})(\\d{1,2})[" + delim2 + "](\\d{1,2})$"); } else if (iDelim2 == orderDay) { dateRegexp = isStrict ? new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$") : new RegExp("^(\\d{4})[" + delim1 + "](\\d{1,2})(\\d{1,2})$"); } else { dateRegexp = isStrict ? new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$") : new RegExp("^(\\d{4})[" + delim1 + "](\\d{1,2})[" + delim2 + "](\\d{1,2})$"); } var matched = dateRegexp.exec(value); if(matched != null) { if (!jcv_isValidDate(matched[3], matched[2], matched[1])) { if (i == 0) { focusField = field; } fields[i++] = oDate[x][1]; bValid = false; } } else { if (i == 0) { focusField = field; } fields[i++] = oDate[x][1]; bValid = false; } } else { if (i == 0) { focusField = field; } fields[i++] = oDate[x][1]; bValid = false; } } } if (fields.length > 0) { jcv_handleErrors(fields, focusField); } return bValid; } function jcv_isValidDate(day, month, year) { if (month < 1 || month > 12) { return false; } if (day < 1 || day > 31) { return false; } if ((month == 4 || month == 6 || month == 9 || month == 11) && (day == 31)) { return false; } if (month == 2) { var leap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); if (day>29 || (day == 29 && !leap)) { return false; } } return true; } /*$RCSfile: validateFloat.js,v $ $Rev: 376673 $ $Date: 2006-02-10 13:42:31 +0000 (Fri, 10 Feb 2006) $ */ /** * Check to see if fields are a valid float. * Fields are not checked if they are disabled. *
* @param form The form validation is taking place on.
*/
function validateFloat(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
var oFloat = eval('new ' + jcv_retrieveFormName(form) + '_FloatValidations()');
for (var x in oFloat) {
if (!jcv_verifyArrayElement(x, oFloat[x])) {
continue;
}
var field = form[oFloat[x][0]];
if (!jcv_isFieldPresent(field)) {
continue;
}
if ((field.type == 'hidden' ||
field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio')) {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}
if (value.length > 0) {
// remove '.' before checking digits
var tempArray = value.split('.');
//Strip off leading '0'
var zeroIndex = 0;
var joinedString= tempArray.join('');
while (joinedString.charAt(zeroIndex) == '0') {
zeroIndex++;
}
var noZeroString = joinedString.substring(zeroIndex,joinedString.length);
if (!jcv_isAllDigits(noZeroString) || tempArray.length > 2) {
bValid = false;
if (i == 0) {
focusField = field;
}
fields[i++] = oFloat[x][1];
} else {
var iValue = parseFloat(value);
if (isNaN(iValue)) {
if (i == 0) {
focusField = field;
}
fields[i++] = oFloat[x][1];
bValid = false;
}
}
}
}
}
if (fields.length > 0) {
jcv_handleErrors(fields, focusField);
}
return bValid;
}
function validateEmailList(form) {
var bValid = true;
var bThisValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
var emails = null;
oEmailList = new emaillist();
for (x in oEmailList) {
if ((form[oEmailList[x][0]].type == 'text' ||
form[oEmailList[x][0]].type == 'textarea') &&
(form[oEmailList[x][0]].value.length > 0)) {
emails = tokenize(form[oEmailList[x][0]].value);
bThisValid = true;
for (cnt=0;cnt
* @param form The form validation is taking place on.
*/
function validateCreditCard(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
var oCreditCard = eval('new ' + jcv_retrieveFormName(form) + '_creditCard()');
for (var x in oCreditCard) {
if (!jcv_verifyArrayElement(x, oCreditCard[x])) {
continue;
}
var field = form[oCreditCard[x][0]];
if (!jcv_isFieldPresent(field)) {
continue;
}
if ((field.type == 'text' ||
field.type == 'textarea') &&
(field.value.length > 0)) {
if (!jcv_luhnCheck(field.value)) {
if (i == 0) {
focusField = field;
}
fields[i++] = oCreditCard[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
jcv_handleErrors(fields, focusField);
}
return bValid;
}
/**
* Checks whether a given credit card number has a valid Luhn checksum.
* This allows you to spot most randomly made-up or garbled credit card numbers immediately.
* Reference: http://www.speech.cs.cmu.edu/~sburke/pub/luhn_lib.html
*/
function jcv_luhnCheck(cardNumber) {
if (jcv_isLuhnNum(cardNumber)) {
var no_digit = cardNumber.length;
var oddoeven = no_digit & 1;
var sum = 0;
for (var count = 0; count < no_digit; count++) {
var digit = parseInt(cardNumber.charAt(count));
if (!((count & 1) ^ oddoeven)) {
digit *= 2;
if (digit > 9) digit -= 9;
};
sum += digit;
};
if (sum == 0) return false;
if (sum % 10 == 0) return true;
};
return false;
}
function jcv_isLuhnNum(argvalue) {
argvalue = argvalue.toString();
if (argvalue.length == 0) {
return false;
}
for (var n = 0; n < argvalue.length; n++) {
if ((argvalue.substring(n, n+1) < "0") ||
(argvalue.substring(n,n+1) > "9")) {
return false;
}
}
return true;
}
/*$RCSfile: validateShort.js,v $ $Rev: 376673 $ $Date: 2006-02-10 13:42:31 +0000 (Fri, 10 Feb 2006) $ */
/**
* Check to see if fields are a valid short.
* Fields are not checked if they are disabled.
*
* @param form The form validation is taking place on.
*/
function validateShort(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
var oShort = eval('new ' + jcv_retrieveFormName(form) + '_ShortValidations()');
for (var x in oShort) {
if (!jcv_verifyArrayElement(x, oShort[x])) {
continue;
}
var field = form[oShort[x][0]];
if (!jcv_isFieldPresent(field)) {
continue;
}
if ((field.type == 'hidden' ||
field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio')) {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}
if (value.length > 0) {
if (!jcv_isDecimalDigits(value)) {
bValid = false;
if (i == 0) {
focusField = field;
}
fields[i++] = oShort[x][1];
} else {
var iValue = parseInt(value, 10);
if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
if (i == 0) {
focusField = field;
}
fields[i++] = oShort[x][1];
bValid = false;
}
}
}
}
}
if (fields.length > 0) {
jcv_handleErrors(fields, focusField);
}
return bValid;
}
/*$RCSfile: validateMaxLength.js,v $ $Rev: 376673 $ $Date: 2006-02-10 13:42:31 +0000 (Fri, 10 Feb 2006) $ */
/**
* A field is considered valid if less than the specified maximum.
* Fields are not checked if they are disabled.
*
* Caution: Using
* @param form The form validation is taking place on.
*/
function validateEmail(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
var oEmail = eval('new ' + jcv_retrieveFormName(form) + '_email()');
for (var x in oEmail) {
if (!jcv_verifyArrayElement(x, oEmail[x])) {
continue;
}
var field = form[oEmail[x][0]];
if (!jcv_isFieldPresent(field)) {
continue;
}
if ((field.type == 'hidden' ||
field.type == 'text' ||
field.type == 'textarea') &&
(field.value.length > 0)) {
if (!jcv_checkEmail(field.value)) {
if (i == 0) {
focusField = field;
}
fields[i++] = oEmail[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
jcv_handleErrors(fields, focusField);
}
return bValid;
}
/**
* Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
* http://javascript.internet.com
*/
function jcv_checkEmail(emailStr) {
if (emailStr.length == 0) {
return true;
}
// TLD checking turned off by default
var checkTLD=0;
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
return false;
}
var user=matchArray[1];
var domain=matchArray[2];
for (i=0; i
* @param form The form validation is taking place on.
*/
function validateRequired(form) {
var isValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
var oRequired = eval('new ' + jcv_retrieveFormName(form) + '_required()');
for (var x in oRequired) {
if (!jcv_verifyArrayElement(x, oRequired[x])) {
continue;
}
var field = form[oRequired[x][0]];
if (!jcv_isFieldPresent(field)) {
fields[i++] = oRequired[x][1];
isValid=false;
} else if ((field.type == 'hidden' ||
field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'file' ||
field.type == 'radio' ||
field.type == 'checkbox' ||
field.type == 'select-one' ||
field.type == 'password')) {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else if (field.type == 'radio' || field.type == 'checkbox') {
if (field.checked) {
value = field.value;
}
} else {
value = field.value;
}
if (trim(value).length == 0) {
if ((i == 0) && (field.type != 'hidden')) {
focusField = field;
}
fields[i++] = oRequired[x][1];
isValid = false;
}
} else if (field.type == "select-multiple") {
var numOptions = field.options.length;
lastSelected=-1;
for(loop=numOptions-1;loop>=0;loop--) {
if(field.options[loop].selected) {
lastSelected = loop;
value = field.options[loop].value;
break;
}
}
if(lastSelected < 0 || trim(value).length == 0) {
if(i == 0) {
focusField = field;
}
fields[i++] = oRequired[x][1];
isValid=false;
}
} else if ((field.length > 0) && (field[0].type == 'radio' || field[0].type == 'checkbox')) {
isChecked=-1;
for (loop=0;loop < field.length;loop++) {
if (field[loop].checked) {
isChecked=loop;
break; // only one needs to be checked
}
}
if (isChecked < 0) {
if (i == 0) {
focusField = field[0];
}
fields[i++] = oRequired[x][1];
isValid=false;
}
}
}
if (fields.length > 0) {
jcv_handleErrors(fields, focusField);
}
return isValid;
}
// Trim whitespace from left and right sides of s.
function trim(s) {
return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}
function doDelete(form){
if (confirm("Are you sure?")) {
if (form!=null) form.elements['action'].value = "delete";
return true;
} else {
return false;
}
}
function trim(strText) {
// this will get rid of leading whitespace
while ((strText.substring(0,1) == ' ') ||
(strText.substring(0,1) == '\n') ||
(strText.substring(0,1) == '\r') ||
(strText.substring(0,1) == '\t'))
strText = strText.substring(1, strText.length);
// this will get rid of trailing whitespace
while ((strText.substring(strText.length-1,strText.length) == ' ') ||
(strText.substring(strText.length-1,strText.length) == '\n') ||
(strText.substring(strText.length-1,strText.length) == '\r') ||
(strText.substring(strText.length-1,strText.length) == '\t'))
strText = strText.substring(0, strText.length-1);
return strText;
}
function validateMulti(min,max, formElementArray){
total = 0;
for (i=0; i< formElementArray.length;i++){
checkbox = document.getElementsByName(formElementArray[i])[0];
if ((checkbox != null) && (checkbox.checked)) total++;
}
if (total < min ) alert('Select at least '+ min +' options.');
if (total > max ) alert('Select no more then '+ max +' options.');
return ((total >= min) && (total <= max));
}
function validateRadio(formElement){
radioboxes = document.getElementsByName(formElement);
selected = false;
for (i=0; i< radioboxes.length;i++){
selected = selected || radioboxes[i].checked;
}
if (selected) {
return true;
} else {
alert('Select at least 1 options.');
return false
}
}
function validateRequiredText(formElement){
textfield = document.getElementsByName(formElement)[0];
value = trim(textfield.value);
if (value.length == 0) {
alert('Answering is required.');
textfield.focus();
return false;
} else {
return true;
}
}
function popup(url,name,width,height){
base = "";
//test if url is relative
if (!url.match(new RegExp("^(([a-zA-Z]{3,5}:)|/)"))) {
baseCollection = document.getElementsByTagName('base');
if ((baseCollection!=null) && (baseCollection.length > 0)) {
base = baseCollection[0].href;
base = base.substring(0,base.lastIndexOf('/')+1)
}
}
return window.open(base+url,name,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width='+width+',height='+height);
}
function max(a,b) {
if (a < b ) return b;
else return a;
}
// special array so questiontypes are stored at a central place
var questionTypeArray = new Array(10);
questionTypeArray[1] = 'Image';
questionTypeArray[2] = 'Text';
questionTypeArray[3] = 'Title';
questionTypeArray[4] = 'Open';
questionTypeArray[5] = 'Multiple Choice';
questionTypeArray[6] = 'Rank';
questionTypeArray[7] = 'Dropdown';
questionTypeArray[8] = 'Matrix';
questionTypeArray[9] = 'Multiple choice image';
questionTypeArray[10] = 'Link';
questionTypeArray[11] = 'Popup';
questionTypeArray[12] = 'Jumper';
questionTypeArray[13] = 'Reply';
questionTypeArray[14] = 'SmartAgent';
questionTypeArray[15] = 'Provincie/plaats';
validateMaxLength on a password field in a
* login page gives unnecessary information away to hackers. While it only slightly
* weakens security, we suggest using it only when modifying a password.