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('