function wtFTrim(str, chars) {
return wtFLtrim(wtFLtrim(str, chars), chars);
}
function wtFLtrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
function wtFRtrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
function wtClearFormImage(fieldID) {
var valueElement = document.getElementById(fieldID + 'value');
if(valueElement) {
valueElement.value = "";
}
var imageElement = document.getElementById(fieldID + 'Image');
if(imageElement) {
imageElement.innerHTML = '';
}
}
function wtGetKeyCode(e)
{
if (window.event)
{
return window.event.keyCode;
}
else if (e)
{
return e.which;
}
else
{
return null;
}
}
function wtAllowKeys(e, goodkeys)
{
var key, keychar;
key = wtGetKeyCode(e);
if (key == null)
{
return true;
}
// get character
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();
goodkeys = goodkeys.toLowerCase();
// check goodkeys
if (goodkeys.indexOf(keychar) != -1)
{
return true;
}
// control keys
if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
{
return true;
}
return false;
}
function wtGetKey(e)
{
if (window.event)
{
return window.event.keyCode;
}
else if (e)
{
return e.which;
}
else
{
return null;
}
}
function wtCheckKeys(e, goodkeys)
{
var key, keychar;
key = wtGetKey(e);
if (key == null)
{
return true;
}
// get character
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();
goodkeys = goodkeys.toLowerCase();
// check goodkeys
if (goodkeys.indexOf(keychar) != -1)
{
return true;
}
// control keys
if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
{
return true;
}
return false;
}
function wtFormValue(id) {
var element = document.getElementById(id);
var subelement = document.getElementById(id + "_1");
var value = '';
if( subelement || (!element) || typeof(element) == 'undefined') {
element = document.getElementById(id + "_1");
if(element) {
var i = 1;
for(i = 1; i < 100; i++) {
element = document.getElementById(id + '_' + i);
if(!element) {
break;
}
if(element.checked) {
if(value != '') {
value += ',';
}
value += element.value;
}
}
}
return value;
}
return element.value;
}
function wtSetFieldVisibility() {
for(var key in g_fieldConditions) {
wtCheckFieldVisibility(key);
}
}
function wtOptionChanged(id) {
if(typeof(g_fieldDependencies) != 'undefined') {
if(typeof(g_fieldDependencies[id]) != 'undefined') {
for(var i = 0; i < g_fieldDependencies[id].length; i++) {
wtCheckFieldVisibility(g_fieldDependencies[id][i]);
}
}
}
}
function wtOptionSelected(options, value) {
var optionsArray = options.split(',');
for(var i = 0; i < optionsArray.length; i++) {
if(optionsArray[i] == value) {
return true;
}
}
return false;
}
function wtChangeCountry(countryFieldID, stateFieldID) {
var country = $('#' + countryFieldID).val();
var html = '';
if(country == 'Australia') {
html += '\n';
} else {
html += '\n';
}
$('#' + stateFieldID + 'States').html(html);
}
function wtCheckFieldVisibility(id) {
var show = true;
show = eval(g_fieldConditions[id]);
var rowid = '';
if(id.indexOf('Field') == 0) {
rowid = 'row' + id.substring(5);
} else {
rowid = id + 'Field';
}
var rowelement = document.getElementById(rowid);
if(rowelement != null && typeof(rowelement) != 'undefined') {
if(show) {
rowelement.style.display = '';
} else {
rowelement.style.display = 'none';
}
}
}
function wtCheckPhoneNumber(theForm, field) {
var value = theForm[field].value;
if(value == '') {
return true;
}
var reg = /^([0-9_\(\)\-\+\.\ ])+$/;
return reg.test(value);
// return /^\w+([\.\+-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(value);
}
function wtCheckRequiredPhoneNumber(theForm, field) {
var ok = false;
ok = wtCheckRequiredField(theForm, field);
if(!ok) {
return false;
}
return wtCheckPhoneNumber(theForm, field);
}
function wtCheckEmail(theForm, field) {
var value = theForm[field].value;
if(value == '') {
return true;
}
var reg = /^([A-Za-z0-9_\-\+\.\'])+\@([A-Za-z0-9_\-\.\'])+\.([A-Za-z]{2,4})$/;
return reg.test(value);
// return /^\w+([\.\+-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(value);
}
function wtCheckRequiredEmail(theForm, field) {
var ok = false;
ok = wtCheckRequiredField(theForm, field);
if(!ok) {
return false;
}
return wtCheckEmail(theForm, field);
}
function wtCheckFileExtension(theForm, field, allowedExtensions) {
var value = theForm[field].value;
value = value.replace(/^\s+|\s+$/g, '') ;
if(value == '') {
return true;
}
var extnArray = allowedExtensions.split(",");
var pos = value.lastIndexOf('.');
var extension = '';
if(pos != -1) {
extension = value.substr(pos + 1);
}
extension = extension.toLowerCase();
for(var i = 0; i < extnArray.length; i++) {
var allowedExtension = extnArray[i].replace(/^\s+|\s+$/g, '') ;
allowedExtension = allowedExtension.toLowerCase();
if(extension == allowedExtension) {
return true;
}
}
return false;
}
function wtCheckRequiredField(theForm, field) {
if(theForm[field] && typeof(theForm[field].value) != 'undefined') {
var value = theForm[field].value;
if(value == '' && theForm[field].checked) value = 'true';;
value = wtFTrim(value);
if(value == '') {
return false;
} else {
}
} else {
var yearelement = document.getElementById(field + "Year");
if(yearelement) {
// field is a date
var dayelement = document.getElementById(field + "Day");
var monthelement = document.getElementById(field + "Month");
var year = yearelement.value;
var month = monthelement.value;
var day = 'day';
if(dayelement) {
day = dayelement.value;
}
if(year.length != 4 || month == '' || day == '') {
return false;
}
return true;
}
var inputs = document.getElementsByTagName('input');
var foundField = false;
var fieldHasValue = false;
for(var i = 0; i < inputs.length; i++) {
if(inputs[i].id.indexOf(field + "_") == 0) {
if(inputs[i].checked) {
return true;
}
foundField = true;
}
}
if(foundField) {
return false;
}
if(typeof wtCustomCheckRequiredField == 'function') {
var returnValue = wtCustomCheckRequiredField(theForm, field);
if(typeof returnValue != 'undefined') {
return returnValue;
}
}
}
return true;
}
var g_formErrors = new Object();
function wtFormError(formID) {
if(g_formErrors[formID]) {
return g_formErrors[formID];
} else {
return null;
}
}
function wtFormCheck(theForm, definition) {
var action = '';
var invalidFields = new Array();
var error = false;
var fieldcount = 0;
var errorFields = '';
for(var field in definition) {
var visible = true;
var rowid = '';
if(field.indexOf('Field') == 0) {
rowid = 'row' + field.substring(5);
} else {
rowid = field + 'Field';
}
var rowElement = document.getElementById(rowid);
var errorinfo = '';
if(rowElement) {
visible = rowElement.style.display != 'none';
}
action = definition[field];
var fieldok = true;
if(visible) {
switch(action) {
case 'required':
fieldok = wtCheckRequiredField(theForm, field);
break;
case 'email':
fieldok = wtCheckEmail(theForm, field);
break;
case 'requiredemail':
fieldok = wtCheckRequiredEmail(theForm, field);
break;
case 'phone':
fieldok = wtCheckPhoneNumber(theForm, field);
break;
case 'requiredphone':
fieldok = wtCheckRequiredPhoneNumber(theForm, field);
break;
}
if(action.indexOf('filefilter') == 0) {
var filterparts = action.split('=');
if(filterparts.length > 1) {
fieldok = wtCheckFileExtension(theForm, field, filterparts[1]);
if(!fieldok) {
var allowedExtensions = filterparts[1].split(',');
errorinfo = '';
for(var i = 0; i < allowedExtensions.length; i++) {
if(i != 0) {
if(i == allowedExtensions.length - 1) {
errorinfo += ' or ';
} else {
errorinfo += ', ';
}
}
errorinfo += allowedExtensions[i].replace(/^\s+|\s+$/g, '');
}
errorinfo = " (Must have an extension of " + errorinfo + ")";
}
}
}
}
if(action.indexOf('maxsize') == 0) {
var sizeparts = action.split('=');
if(sizeparts.length > 1) {
var maxsize = sizeparts[1];
var pos = maxsize.indexOf('MB');
if(pos != -1) {
maxsize = maxsize.substr(0, pos);
maxsize *= 1024 * 1024;
}
var fileField = theForm[field];
if(fileField.files && fileField.files[0]) {
var filesize = fileField.files[0].size;
if(filesize > maxsize) {
fieldok = false;
errorinfo = "Maximum file size is " + sizeparts[1];
}
}
}
}
if(!fieldok) {
if(fieldcount == 0) {
if(typeof(theForm[field]) != 'undefined') {
// theForm[field].focus();
}
}
fieldcount++;
error = true;
}
var labelelement = document.getElementById(field + "Label");
if(labelelement && labelelement.childNodes[0]) {
labelelement = labelelement.childNodes[0];
}
if(labelelement) {
if(fieldok) {
labelelement.className = labelelement.className.replace(/wtfielderror/i, '');
} else {
var errorlabelelement = document.getElementById(field + "ErrorLabel");
var label = '';
if(errorlabelelement) {
label = errorlabelelement.innerHTML;
} else {
//alert(field + labelelement + labelelement.name);
label = labelelement.innerHTML;
//alert(label);
if(labelelement.className.indexOf('wtSingleCheckbox') != -1) {
//console.log('wtSingleCheckboxLabel'+field);
label = document.getElementById('wtSingleCheckboxLabel'+field).innerHTML;
}
if(label.indexOf('