var KDS=KDS||{};KDS.FormConfigs=KDS.FormConfigs||{};KDS.Constants=KDS.Constants||{};KDS.Validation=(function(){return{"Version":2.00,"MinorVersion":0.100616,"CssHighlightingClass":(KDS.Constants.FORMCHECKER_HIGHLIGHTING_CLASS||'kds-formfield-not-valid-highlight'),"MaxErrorsAlerted":(KDS.Constants.FORMCHECKER_MAX_ERRORS_ALERTED||7),"GetFormErrors":function(f,a){var b={};var m;for(var k in a){var c=a[k];var e=f.elements[k];if(e){m=KDS.Validators.ValidateField(e,c);if(m&&m.length>0){b[k]=m}}}return b},"GetFormErrorMessages":function(f,a){var o=KDS.Validation.GetFormErrors(f,a);return KDS.Validation.GetMessagesFromFormErrors(o)},"GetMessagesFromFormErrors":function(b){var a=[];for(var n in b){a=a.concat(b[n])}return(a)},"FormChecker":function(f,c,b,d,e){if(!c){c=KDS.FormConfigs[f.name];if(!c){alert('Script Error: KDS FormConfig object neither supplied nor found for form name '+f.name+'!');return false}}if(typeof b=='function'){if(!b(f,c)){return false}}var o=KDS.Validation.GetFormErrors(f,c);var a=KDS.Validation.GetMessagesFromFormErrors(o);if(typeof jQuery=='function'){KDS.Validation.HighlightFormErrors(f,c,o)}if(a.length>0){a=KDS.Validation.TrimErrorMessages(a);if(typeof e=='function'){e(a)}else{KDS.Validation.AlertErrorMessages(a)}return false}if(typeof d=='function'){if(!d(f,c)){return false}}return true},"TrimErrorMessages":function(a,b){if(!b||b<1){b=KDS.Validation.MaxErrorsAlerted}var n=a.length;if(n>=(b+2)){n=b}var c=a.slice(0,n);if(n<a.length){c.push('(There are '+(a.length-n)+' additional errors not shown.)')}return c},"AlertErrorMessages":function(a){var b='One or more errors have occurred:\n\n*  ';b+=a.join('\n*  ');if(a.length==1){b+='\n\nPlease correct this error and try again.'}else{b+='\n\nPlease correct the errors listed above and try again.'}alert(b);return},"HighlightFormErrors":function(f,c,g,h){if(typeof jQuery!=='function'){alert('Script Error: HighlightFormErrors requires jQuery to be present and loaded!');return false}if(!h){h=KDS.Validation.CssHighlightingClass}if(g.length==0){return true}else{$.each(g,function(k,e){var a;var b;var d=c[k];if(!d.ht||!d.ut){KDS.Validation.SetHighlightingTargets(d,f)}a=d.ht;b=d.ut;if(a&&(!b?(b=a):b)){a.addClass(h);b.each(function(){if(!this._kdshighlighting){this._kdshighlighting=true;if(d.inputtype=='radio'||d.inputtype=='checkbox'){$(this).click(function(){a.removeClass(h)})}else{$(this).focus(function(){a.removeClass(h)})}}})}})}return(g.length==0)},"SetHighlightingTargets":function(a,f){var b;var c;if(!f){f=document}b=$('[name="'+a.name+'"]',f);c=b;if(a.inputtype==='group'){b=b.eq(0).parents('fieldset:first');var d=b.find('legend:first');if(d.length>0){b=d}}else if(a.inputtype==='checkbox'){var e=$('label[for="'+a.name+'"]:first',f);if(e.length>0){b=e}else{e=b.parents('label:first');if(e.length>0){b=e}else{}}}else{}a.ht=b;a.ut=c;return{"ht":b,"ut":c}}}})();KDS.Validators=(function(){function isEmpty(s){return(s==''||s==null)};function isEmail(a){return((a.search(/^\w+((-\w+)|(\.\w+)|(\+\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)!=-1)?true:false)};function isValidDate(a){return(!isNaN(Date.parse(a)))};function isInt(i){var a=/^\-?\d{1,10}$/;return(a.test(i))};function isFloat(n){var a=/^-?\d*(\.\d*)?$/;return(!isEmpty(n)&&a.test(n))};function isCurrency(n){var a=/^\-?\d*(\.\d{0,2})?$/;return(!isEmpty(n)&&a.test(n))};return{"Version":2.00,"ValidateField":function(e,a){if(!e||!a){return null}var m=[];if(!e.name&&a.inputtype!='group'){alert('Script Error: e has no name?');return null}if(a.inputtype=='hidden'){return m}if(a.format=='fckeditor'){FCKeditorAPI.GetInstance(a.name).UpdateLinkedField()}else if(a.format=='ckeditor'){CKEDITOR.instances[a.name].updateElement()}if(a.isrequired){m=m.concat(KDS.Validators.ValidateRequiredField(e,a))}if(m.length===0){if(a.inputtype=='select'||a.inputtype=='group'){m=m.concat(KDS.Validators.ValidateChoiceField(e,a))}else{switch(a.datatype.toLowerCase()){case'int':m=m.concat(KDS.Validators.ValidateIntField(e,a));break;case'float':m=m.concat(KDS.Validators.ValidateFloatField(e,a));break;case'currency':m=m.concat(KDS.Validators.ValidateCurrencyField(e,a));break;case'datetime':m=m.concat(KDS.Validators.ValidateDateTimeField(e,a));break;case'text':m=m.concat(KDS.Validators.ValidateStringField(e,a));break;default:alert('Script Error: DataType \''+a.datatype+' for \''+a.label+'\' was not recognized');break}if(m.length===0){switch(a.format.toLowerCase()){case'email':m=m.concat(KDS.Validators.ValidateEmailField(e,a));break}}if(m.length===0){if(a.minstrlength||a.maxstrlength||a.minnumericvalue||a.maxnumericvalue||a.mindatetimevalue||a.maxdatetimevalue){}}if(m.length===0&&a.regpattern){m=m.concat(KDS.Validators.ValidateRegularExpressionField(e,a))}}}return m},"ValidateRequiredField":function(e,a){if(!e||!a){return null}var m=[];if(e.options){if(isNaN(e.selectedIndex)||e.selectedIndex<0||isEmpty(e.options[e.selectedIndex].value)){m.push('The field \''+a.label+'\' is required');return m}}else if(e.length){var b=false;for(var i=0;i<e.length;i++){if(e[i].name&&e[i].checked){b=true}}if(!b){if(e[0].type==='radio'){m.push('The field \''+a.label+'\' requires a selection')}else{m.push('The field \''+a.label+'\' requires at least one selection')}return m}}else{if(e.type=='checkbox'){if(!e.checked){m.push('The field \''+a.label+'\' must be acknowledged');return m}}if(a.inputtype=='fckeditor'){window.FCKeditorAPI.GetInstance(a.name).UpdateLinkedField()}else if(a.inputtype=='ckeditor'){CKEDITOR.instances[a.name].updateElement()}if(isEmpty(e.value)){m.push('The field \''+a.label+'\' is required');return m}}return m},"ValidateIntField":function(e,a){var m=[];if(!isEmpty(e.value)){if(!isInt(e.value)){m.push('The field \''+a.label+'\' must be a valid integer (a whole number containing only the digits 0-9)')}}return m},"ValidateFloatField":function(e,a){var m=[];if(!isEmpty(e.value)){if(!isFloat(e.value)){m.push('The field \''+a.label+'\' must be a valid number')}}return m},"ValidateCurrencyField":function(e,a){var m=[];if(!isEmpty(e.value)){if(/[\$,]/.test(e.value)){m.push('Please do not include any dollar signs or commas in the value for \''+a.label+'\'')}else if(!isCurrency(e.value)){m.push('The field \''+a.label+'\' must be a valid currency')}}return m},"ValidateDateTimeField":function(e,a){var m=[];if(!isEmpty(e.value)){if(!isValidDate(e.value)){m.push('The field \''+a.label+'\' must be a valid date (in the format MM/DD/YYYY)')}}return m},"ValidateStringField":function(e,a){var m=[];if(!isEmpty(e.value)){if(a.maxstrlength){if(e.value.length>a.maxstrlength){m.push('The field \''+a.label+'\' may not exceed '+a.maxstrlength+' characters in length')}}if(a.minstrlength){if(e.value.length<a.minstrlength){m.push('The field \''+a.label+'\' must be at least '+a.minstrlength+' characters in length')}}}return m},"ValidateEmailField":function(e,a){var m=[];if(!isEmpty(e.value)){if(!isEmail(e.value)){m.push('The field \''+a.label+'\' does not appear to be a valid email address')}}return m},"ValidateRegularExpressionField":function(e,a){var m=[];if(a.regpattern){if(!isEmpty(e.value)){var b=a.regpattern;var c=new RegExp(b);if(!c.test(e.value)){var d='The field \''+a.label+'\' does not appear to be valid. ';if(a.regmessage){d+=a.regmessage}else{d+='Please verify the entry'}m.push(d)}}}return m},"ValidateChoiceField":function(e,a){var m=[];if(e.options||e.length){if(a.minselections||a.maxselections){var b=0;if(e.options){for(var i=0;i<e.options.length;i++){if(e.options[i].selected){b++}}}else{for(var i=0;i<e.length;i++){if(e[i].checked){b++}}}if(a.minselections){if(b<a.minselections){m.push('A minimum of '+a.minselections+' selections must be made for \''+a.label+'\'')}}if(a.maxselections){if(b>a.maxselections){m.push('No more than '+a.maxselections+' selection'+(a.maxselections==1?'':'s')+' may be made for \''+a.label+'\'')}}}}return m}}})();KDS.FormUtilities=(function(){function removeRestoreFieldRequirements(g,h){g.find(':input').each(function(){var a=this;var b=$(this);if(!a.name||!a.form||!a.form.id){return false}var c=KDS.FormConfigs[a.form.id];if(!c){return false}var d=c[a.name];if(!d){return false}var e='kds_field_originally_required';var f=b.data(e);if(typeof f=='undefined'){f=d.isrequired;b.data(e,f)}if(h){d.isrequired=false}else{d.isrequired=f}})};function isCkEditor(a){return!!document.getElementById('cke_'+a)};function getWysiwygEditor(a){if(isCkEditor(a)){return(CKEDITOR.instances[a])}else{return(window.FCKeditorAPI.GetInstance(a))}};var i={};i.Version=2.00;i.MinorVersion=0.110812;i.RemoveFieldRequirements=function(a){removeRestoreFieldRequirements(a,true)};i.RestoreFieldRequirements=function(a){removeRestoreFieldRequirements(a,false)};i.GetWysiwygValue=function(a){var b='';var c=getWysiwygEditor(a);if(c){if(isCkEditor(a)){b=c.getData()}else{}}return(b)};i.SetWysiwygValue=function(a,b,c){var d=getWysiwygEditor(a);if(d){if(isCkEditor(a)){if(c){d.setData(b,c)}else{d.setData(b)}}else{d.SetHTML(b)}}};i.CheckWysiwygIsDirty=function(a){var b=true;var c=getWysiwygEditor(a);if(c){if(isCkEditor(a)){b=c.checkDirty()}else{b=c.IsDirty()}}return(b)};return i})();
