(function($){$.extend($.fn,{autoFormat:function(method,options){if(!this.length){return}if(typeof method==="string"){switch(method){case"add":this.each(function(){var data=$(this).data("autoFormat");if(data){var formatter=data.formatter;if(!$.isArray(options)){formatter.add(options)}else{$.each(options,function(i,option){formatter.add(option)})}}});break;case"remove":if(options){var toRemove=options.split(/\s/);this.each(function(){var data=$(this).data("autoFormat");if(data){var formatter=data.formatter;$.each(toRemove,function(i,key){formatter.remove(key)})}})}else{this.each(function(){var data=$(this).data("autoFormat");if(data){data.formatter.removeAll()}})}break}}else{options=method;if(!$.isArray(options)){options=[options]}this.each(function(){processElement(this,options)})}return this}});function processElement(elem,options){var data=$(elem).data("autoFormat");if(!data){var formatter=new $.autoFormatter(elem,options);$(elem).data("autoFormat",{formatter:formatter})}else{data.formatter.set(options)}}$.autoFormatter=function(element,options){if(!$.isArray(options)){options=[options]}this.element=element;this.init(options)};$.extend($.autoFormatter,{defaults:[{format:"",datatype:"String"}],prototype:{settings:[],datatypeMap:{},init:function(options){this.set(options);$(this.element).bind("change.autoFormat",$.autoFormatter.formatHandler)},set:function(options){this.settings=$.extend(true,[],options);this.datatypeMap={};var formatter=this;$.each(this.settings,function(i,setting){formatter.datatypeMap[setting.datatype]=i})},add:function(options){if(this.datatypeMap[options.datatype]!=null){$.extend(true,this.settings[this.datatypeMap[options.datatype]],options)}else{this.settings.push($.extend(true,{},options));this.datatypeMap[options.datatype]=this.settings.length-1}},remove:function(datatype){delete this.settings[this.datatypeMap[datatype]];delete this.datatypeMap[datatype]},removeAll:function(){this.settings=[];this.datatypeMap={}}},formatHandler:function(e){var formatter=$.data(this,"autoFormat").formatter;var element=e.target;$.each(formatter.settings,function(i,setting){if(setting){var datatype=setting.datatype;var format=setting.format;var value=element.value;var formatterFn=$.autoFormatter.formatter;if(datatype in formatterFn&&element.type!="file"){var startPos=element.selectionStart,endPos=element.selectionEnd;element.value=formatterFn[datatype](value,format);element.selectionStart=startPos;element.selectionEnd=endPos}}})},addFormatter:function(datatype,formatter){$.extend($.autoFormatter.formatter,{datatype:formatter})},setDefaults:function(settings){$.autoFormatter.defaults=$.extend(true,[],options)},formatter:{BigDecimal:function(value,format){var v=$.trim(value);if(v.length&&/^-?(?:\d*|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(v)){return BigDecimalFormat.getInstance(format).format(new BigDecimal(v))}return value},Double:function(value,format){var v=$.trim(value);if(v.length&&/^-?(?:\d*|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(v)){if(typeof v=="string"){v=v.replace(/,/g,"")}return DecimalFormat.getInstance(format).format(v)}return value},Long:function(value,format){var v=$.trim(value);if(v.length&&/^-?(?:\d+|\d{1,3}(?:,\d{3})+)$/.test(v)){if(typeof v=="string"){v=v.replace(/,/g,"")}return DecimalFormat.getInstance(format).format(v)}return value},BigInteger:function(value,format){var v=$.trim(value);if(v.length&&/^-?(?:\d+|\d{1,3}(?:,\d{3})+)$/.test(value)){if(typeof value=="string"){v=v.replace(/,/g,"")}return BigDecimalFormat.getInstance(format).format(new BigDecimal(v))}return value},AutoCaps:function(value,format){return $.trim(value.toUpperCase())},Date:function(value,format){var v=$.trim(value);if(v!==""){var milliseconds=Date.parse(v.replace(/[^a-zA-Z0-9:]/g," "));if(!isNaN(milliseconds)){format=format.replace(/\u00A0/g," ");var formatter=SimpleDateFormat.getInstance(format);var formatted,parsed=formatter.parse(v);if(parsed){return formatter.format(parsed)}}}return value},Timestamp:function(value,format){return this.Date(value,format)},Time:function(value,format){return this.Date(value,format)},SQLDate:function(value,format){return this.Date(value,format)},String:function(value,format){return $.trim(value)},Whitespace:function(value,format){return value}}})})(jQuery);(function($){jQuery.fn.eachJQueryObject=(function(){var jq=$([1]);return function(c){var i=-1,el,len=this.length;try{while(++i<len&&(el=jq[0]=this[i])&&c.call(jq,i,el)!==false){}}catch(e){delete jq[0];throw e}delete jq[0];return this}}())})(jQuery);var allElements="input:not(:button),select,textarea";$(function(){$("form").each(function(){var $form=$(this);var dataType,format;$form.find(allElements).eachJQueryObject(function(){if(this[0].type==="hidden"){return true}var metadata=this.metadata();dataType=decodeHtml(this.attr("data-datatype")||metadata.datatype);format=decodeHtml(this.attr("data-format")||metadata.format);if(!!dataType&&!!format){this.autoFormat({format:format,datatype:dataType})}})})});
function DecimalFormat(pattern){this._Format=String(pattern)}DecimalFormat.prototype.separator=",";DecimalFormat.prototype.decpoint=".";DecimalFormat.prototype.percent="%";DecimalFormat.prototype.currency="$";DecimalFormat.prototype.format=DecimalFormat_format;DecimalFormat.prototype._strip=DecimalFormat_strip;DecimalFormat.prototype._separate=DecimalFormat_separate;var _decimalFormat_instances=[];DecimalFormat.getInstance=function(format){if(!_decimalFormat_instances[format]){_decimalFormat_instances[format]=new DecimalFormat(format)}return _decimalFormat_instances[format]};function DecimalFormat_format(number){var format=this._Format;if(number-0!=number){return null}var useSeparator=format.indexOf(this.separator)!=-1;var usePercent=format.indexOf(this.percent)!=-1;var useCurrency=format.indexOf(this.currency)!=-1;var isNegative=(number<0);number=Math.abs(number);if(usePercent){number*=100}format=this._strip(format,this.separator+this.percent+this.currency);number=""+number;var decindex=number.indexOf(this.decpoint);var dec=decindex!=-1;var nleftEnd=(dec)?number.substring(0,decindex):number;var nrightEnd=(dec)?number.substring(decindex+1):"";decindex=format.indexOf(this.decpoint);dec=decindex!=-1;var sleftEnd=(dec)?format.substring(0,decindex):format;var srightEnd=(dec)?format.substring(decindex+1):"";if(srightEnd.length<nrightEnd.length){var nextChar=nrightEnd.charAt(srightEnd.length)-0;nrightEnd=nrightEnd.substring(0,srightEnd.length);if(nextChar>=5){nrightEnd=""+((nrightEnd-0)+1)}while(srightEnd.length>nrightEnd.length){nrightEnd="0"+nrightEnd}if(srightEnd.length<nrightEnd.length){nrightEnd=nrightEnd.substring(1);nleftEnd=(nleftEnd-0)+1}}else{for(var i=nrightEnd.length;srightEnd.length>nrightEnd.length;i++){if(srightEnd.charAt(i)=="0"){nrightEnd+="0"}else{break}}}sleftEnd=this._strip(sleftEnd,"#");while(sleftEnd.length>nleftEnd.length){nleftEnd="0"+nleftEnd}if(useSeparator){nleftEnd=this._separate(nleftEnd,this.separator)}var output=nleftEnd+((nrightEnd!="")?"."+nrightEnd:"");output=((useCurrency)?this.currency:"")+output+((usePercent)?this.percent:"");if(isNegative){output=(useCurrency)?"("+output+")":"-"+output}return output}function DecimalFormat_strip(input,chars){var output="";for(var i=0;i<input.length;i++){var c=input.charAt(i);if(chars.indexOf(c)==-1){output+=c}}return output}function DecimalFormat_separate(input,separator){input=""+input;var output="";for(var i=0;i<input.length;i++){if(i!=0&&(input.length-i)%3==0){output+=separator}output+=input.charAt(i)}return output};
var ValidationUtils={getObjectData:function(element){var objData=$.data(element,validationDataId);if(!objData){objData={};$.data(element,validationDataId,objData)}return objData},setData:function(element,dataId,dataVal){var data=this.getObjectData(element);data[dataId]=dataVal},getData:function(element,dataId){var data=this.getObjectData(element);if(data[dataId]){return data[dataId]}return undefined},removeData:function(element,dataId){var data=this.getObjectData(element);delete data[dataId]},getValidator:function(element){if(element.nodeName=="FORM"){return this.getData(element,validatorObjID)}else{if(element.form){return this.getData(element.form,validatorObjID)}}return},getValidationAttribute:function(element,attName){var atts=this.getData(element,"attributes");return(atts&&atts[attName])||(this.getJQueryObject(element).metadata({type:"class",single:"__"+attName+"__"})[attName])},setValidationAttribute:function(element,attName,attVal){var atts=this.getData(element,"attributes");if(!atts){atts={};this.setData(element,"attributes",atts)}atts[attName]=attVal},getJQueryObject:function(element){var $element=this.getData(element,"_jQueryObject_");if(!$element){if($.isArray(element)){$element=$([element])}else{$element=$(element)}this.setData(element,"_jQueryObject_",$element)}return $element},setJQueryObject:function(element,$element){this.setData(element,"_jQueryObject_",$element)}};
(function(){var globalRules={};var allElements="input:not(:button),select,textarea,.validation-control";function Validator($form){this.$form=$form;this.options=$.extend({},$.validation.defaults);this.errors=[]}function swap(array,a,b){var o1=array[a];array[a]=array[b];array[b]=o1}function removeRuleFromValidators(array,objParam){var k=0;if(!array){return undefined}for(var i=0;i+k<array.length;i++){while(objParam.validatorName===array[i].validatorName&&objParam.parameter===array[i].parameter&&objParam.message===array[i].message&&(!objParam.selector||!array[i].selector||objParam.selector===array[i].selector)&&i+k<array.length){swap(array,i,array.length-k-1);k++}}return array.splice(0,array.length-k)}function insertValidator(validators,validator){if(validator.validatorName==="required"){validators.unshift(validator)}else{if(validator.validatorName==="datatype"){var i;for(i=0;i<validators.length&&(validators[i].validatorName==="required"||validators[i].validatorName==="datatype");i++){}validators.push(validator);swap(validators,i,validators.length-1)}else{validators.push(validator)}}}function reOrderValidator(validators){for(var i=0;i<validators.length;i++){if(validators[i].validatorName=="required"){swap(validators,0,i)}if(i>0&&validators[i].validatorName=="datatype"){swap(validators,1,i)}}if(validators.length>1&&validators[0].validatorName!="required"&&validators[1].validatorName=="datatype"){swap(validators,0,1)}}function getValidatorsInRules($element){var validators=[];for(var selector in globalRules){if(!($element[0] instanceof Element)){continue}if($element.is(selector)){for(var validatorName in globalRules[selector]){validators.push($.extend({},{validatorName:validatorName},globalRules[selector][validatorName]))}}}return validators}$.extend(Validator.prototype,{getValidatorByName:function(name){return this.options.validators[name]},getValidators:function(element,options){var validators=ValidationUtils.getData(element,validatorCacheID);if(validators){return validators}validators=[];attCache={};var $element=ValidationUtils.getJQueryObject(element);for(var source in options.validatorSources){$.extend(attCache,options.validatorSources[source].apply(this,[$element]))}for(var attr in attCache){validator=this.getValidatorByName(attr);if(validator){var validationObj={validatorName:attr,validator:validator,parameter:attCache[attr]};validators.push(validationObj)}}var tempValidators=ValidationUtils.getData(element,validatorsID);if(tempValidators){validators=$.merge(validators,tempValidators)}validators=$.merge(validators,getValidatorsInRules($element));reOrderValidator(validators);ValidationUtils.setData(element,validatorCacheID,validators);return validators},setOptions:function(options){this.options=$.extend({},$.validation.defaults,options)},addValidator:function(element,validator,params,message,selector,context){var validatorName,validatorFunc,pushVal;var validators=ValidationUtils.getData(element,validatorsID);if(!validators){validators=[];ValidationUtils.setData(element,validatorsID,validators)}validatorName=validator.validatorName;validatorFunc=validator.validatorFunc||this.getValidatorByName(validator.validatorName);if(validatorFunc){pushVal={validatorName:validatorName,validator:validatorFunc,parameter:params||"",message:message,selector:selector};$.extend(pushVal,{context:context});validators.push(pushVal)}$(element).clearValidationCache()},removeValidator:function(element,validator,params,message,selector){var validators,removed;validators=ValidationUtils.getData(element,validatorsID);if(!validators){return}var objParam={validatorName:validator.validatorName,parameter:params||"",message:message,selector:selector};removed=removeRuleFromValidators(validators,objParam);ValidationUtils.setData(element,validatorsID,removed);$(element).clearValidationCache()},validateElement:function($element){var element=$element.get(0);var validators,disabledValidators;var validationSuccess=true;disabledValidators=ValidationUtils.getData(element,"disabledValidators");validators=this.getValidators(element,this.options);for(var i=0;i<validators.length;i++){if(disabledValidators&&disabledValidators[validators[i].validatorName]){continue}var elementParam;if(!validators[i].selector){elementParam=element}else{if(typeof validators[i].selector==="string"){elementParam=$(validators[i].selector,validators[i].context)}else{elementParam=validators[i].selector}}var func=validators[i].validator;var parameter=validators[i].parameter;if($.isFunction(parameter)){parameter=parameter.apply(this,[$element])}if(!func.apply(this,[elementParam,parameter,validators[i].selector])){if(validators[i].validatorName==="datatype"&&this.options.dataTypeMap[validators[i].parameter]){validators[i].validatorName=this.options.dataTypeMap[validators[i].parameter]}validationSuccess=false;this.errors.push({$element:$element.eq(0),validation:validators[i]})}}if(validationSuccess){handleValidationSuccess(element);this.$form.trigger("elementValidationSuccessful",[{target:element}])}else{this.$form.trigger("elementValidationError",[{target:element}])}return validationSuccess},validate:function(element){this.options.clearErrors(this);var self=this;var $elements=$(element||allElements,this.$form);$elements.each(function(){var shouldDisable=ValidationUtils.getData(this,"disabled");if(typeof shouldDisable=="function"){shouldDisable=shouldDisable(this)}if(this.type!=="hidden"&&!shouldDisable&&!$(this).is(":disabled")){var $this=$(this);ValidationUtils.setJQueryObject(this,$this);self.validateElement($this)}});if(this.errors.length>0){this.$form.trigger("validationError");handleFormValidationError(this.$form[0]);return false}this.$form.trigger("validationSuccessful");return true}});function getValidatorParam(param){var paramType=typeof param;if(paramType==="string"){var fromMetaData=param.match(/^@{(.*)}$/);var fromAttr=param.match(/^@(.*)$/);if(fromMetaData){return function($element){return $element.metadata()[fromMetaData[1]]}}else{if(fromAttr){return function($element){return $element.attr(fromAttr[1])}}}return param}return param}function generateValidatorParam(validator){var validatorName,validatorFunc,validatorParam;var valType=typeof validator;if(valType==="object"){validatorName=validator.name;validatorFunc=validator.rule;validatorParam=getValidatorParam(validator.parameter)}else{if(valType==="function"){validatorName=validator.name||validator.toString().match(/^function\s*([^\s(]+)/)[1];validatorFunc=validator}else{validatorName=validator}}return{validatorName:validatorName,validatorFunc:validatorFunc,parameter:validatorParam}}function init($form,options){var validator=new Validator($form);ValidationUtils.setData($form[0],validatorObjID,validator);if(!$.isReady||!$.validation.defaults.messages){$(function(){validator.options.messages=$.extend(validator.options.messages,$.validation.defaults.messages)})}return validator}$.extend($.fn,{validate:function(options){if(!this.length){return true}var selected=this;var isValid=true;this.each(function(){var validatorObj,validationForm;if(this.nodeName==="FORM"){validationForm=this}else{var form=getForm(this);if(form){validationForm=form}else{throw"Invalid element selected for validate()"}}validatorObj=ValidationUtils.getData(validationForm,validatorObjID);if(!validatorObj){validatorObj=init($(validationForm))}if(options){validatorObj.$form.setOptions(options)}if(this.nodeName==="FORM"){isValid=validatorObj.validate()&&isValid}else{isValid=validatorObj.validate(selected)&&isValid}});return isValid},addValidator:function(validator,params,message){if(!this.length){return this}var validatorObj;var valParam=generateValidatorParam(validator);this.each(function(){validatorObj=ValidationUtils.getData(this,validatorObjID);if(!validatorObj){validatorObj=init($(getForm(this)))}validatorObj.addValidator(this,$.extend({},valParam),params,message)});return this},removeValidator:function(validator,params,message){if(!this.length){return this}var validatorObj,selector=this.selector;var valParam=generateValidatorParam(validator);this.each(function(){validatorObj=ValidationUtils.getData(this,validatorObjID);if(!validatorObj){validatorObj=init($(getForm(this)))}validatorObj.removeValidator(this,$.extend({},valParam),params,message,selector)});return this},groupValidator:function(validator,params,message){if(!this.length){return this}var validatorObj;var valParam=generateValidatorParam(validator);validatorObj=ValidationUtils.getData(this[0],validatorObjID);if(!validatorObj){validatorObj=init($(getForm(this[0])))}validatorObj.addValidator(this[0],$.extend({},valParam),params,message,this.selector||this,this.context);return this},disableValidation:function(validatorName,shouldDisable){this.each(function(){if(typeof validatorName=="string"){var disabledValidators=ValidationUtils.getData(this,"disabledValidators");if(!disabledValidators){disabledValidators={};ValidationUtils.setData(this,"disabledValidators",disabledValidators)}disabledValidators[validatorName]=true}else{if(!shouldDisable&&typeof validatorName=="function"){shouldDisable=validatorName}ValidationUtils.setData(this,"disabled",shouldDisable||true)}});return this},enableValidation:function(validatorName){this.each(function(){if(validatorName){var disabledValidators=ValidationUtils.getData(this,"disabledValidators");if(disabledValidators){disabledValidators[validatorName]=false}}else{ValidationUtils.setData(this,"disabled",false);ValidationUtils.setData(this,"disabledValidators",undefined)}});return this},clearValidationCache:function(){if(!this.length){return this}this.each(function(){if(this.nodeName==="FORM"){$(allElements,this).filter(function(){return this.type!=="hidden"}).each(function(){var validators=ValidationUtils.getData(this,validatorsID);$.removeData(this,validationDataId);ValidationUtils.setData(this,validatorsID,validators);$.removeData(this,validatorCacheID)})}else{var validators=ValidationUtils.getData(this,validatorsID);$.removeData(this,validationDataId);ValidationUtils.setData(this,validatorsID,validators);$.removeData(this,validatorCacheID)}});return this},setOptions:function(options){if(!this.length){return this}var validatorObj=ValidationUtils.getData(this[0],validatorObjID);if(!validatorObj){validatorObj=init($(this[0]))}this.clearValidationCache();validatorObj.setOptions(options);return this}});$.extend({validation:{defaults:{},registerRule:function registerRule(selector,validator,message){var valType=typeof validator;if(valType!=="object"&&valType!=="function"){throw"2nd parameter to registerRule must be an object or a function"}var validatorObj=generateValidatorParam(validator);if(!validatorObj.validatorName){throw"missing function alias for 2nd parameter of registerRule"}if(!message){throw"no message passed to registerRule"}if(!globalRules[selector]){globalRules[selector]={}}globalRules[selector][validatorObj.validatorName]={validator:validatorObj.validatorFunc,parameter:validatorObj.parameter,message:message}},unregisterRule:function unregisterRule(selector,validator,message){if(typeof validator!=="string"){throw"2nd paramter of unregisterRule must be a string."}if(globalRules[selector]&&globalRules[selector][validator]){delete globalRules[selector][validator]}},event:{validationError:"validationError",validationSuccessful:"validationSuccessful"}}})})();$(function(){$("#ERROR_LIST").on("click","label",function(e){var id=this.getAttribute("for");if(id){var el=document.getElementById(id);if(el&&!el.form&&!isNaN(el.getAttribute("tabindex"))){el.focus()}}})});
var validationDataId="validation.data";var validatorObjID="validatorObj";var validatorsID="validators";var validatorCacheID="validatorCache";$(function(){});function getForm(element){return element.form||$(element).parents("form")[0]}function handleValidationSuccess(element){var validatorObj=ValidationUtils.getData(getForm(element),validatorObjID);var elementLabel=validatorObj.options.getValidationLabelElement(element);if(elementLabel){var $elementLabel=$(elementLabel);$elementLabel.removeClass("error");var forEl=$elementLabel.find("label[for]").attr("for");if(forEl){$(document.getElementById(forEl)).removeClass("input-error")}}}function handleFormValidationError(element){var validator=ValidationUtils.getData(element,validatorObjID);validator.options.displayErrors(validator,validator.errors)}function validatorsInDataAttributes($element){var element=$element[0],atts={},rightSplit;if(element instanceof Element){var attributes=element.attributes;for(var i=0;i<attributes.length;i++){if(attributes[i].name.substring(0,5)==="data-"){rightSplit=attributes[i].name.substring(5);atts[rightSplit]=decodeHtml(attributes[i].value)}}}else{for(var k in element){if(k.substring(0,5)==="data-"){rightSplit=k.substring(5);atts[rightSplit]=element[k]}}}return atts}function validatorsInMetadata($element){var metadata,atts={};$.metadata.setType("class");metadata=$element.metadata();for(var customRule in metadata){atts[customRule]=decodeHtml(metadata[customRule])}for(var i=0;i<$.validation.defaults.validationAttributes;i++){metadata=$element.metadata({single:"_"+attributes[i]+"_",name:attributes[i],type:"attr"});for(var customRule in metadata){atts[customRule]=decodeHtml(metadata[customRule])}}return atts}function validatorsInOptionRules($element){var isCurrentElement,atts={};if(this.options.rules){for(var i=0;i<this.options.rules.length;i++){isCurrentElement=(!!$element.selector)?$element.selector===this.options.rules[i].element:$element.is(this.options.rules[i].element);if(isCurrentElement){for(var customRule in this.options.rules[i].validation){atts[customRule]=decodeHtml(this.options.rules[i].validation[customRule])}}}}return atts}function getLabelArray(validator,selector){var labels=[];var $elements=$(selector);$elements.each(function(index){labels[index]=validator.options.getElementLabel(this)});return labels}(function(){var idSequence=0;$.extend($.validation.defaults,{validationAttributes:["validation"],errorDiv:"error-notification",errorImgSrc:"../../images/error.gif",errImgAlt:"Error!",dataTypeMap:{Double:"numberType",Float:"numberType",Long:"numberType",Integer:"numberType",BigDecimal:"numberType",BigInteger:"numberType",String:"stringType",Time:"dateType",SQLDate:"dateType",Timestamp:"dateType",Date:"dateType",Boolean:"booleanType"},getElementLabel:function(element){var dataLabel,labelElement;if(dataLabel=ValidationUtils.getValidationAttribute(element,"label")){return dataLabel}else{if(labelElement=this.getValidationLabelElement(element)){return $(labelElement).text()}else{return element.id||element.name||null}}},getValidationLabelElement:function(element){var groupContainer,labelElement,label;if(labelElement=ValidationUtils.getValidationAttribute(element,"labelelement")){label=document.getElementById(labelElement)}else{if(groupContainer=ValidationUtils.getValidationAttribute(element,"groupcontainer")){label=document.getElementById(groupContainer+"_LBL")}else{label=document.getElementById(element.id+"_LBL")}}return label||element},getDataOrAttribute:function(element,name){return ValidationUtils.getValidationAttribute(element,name)||(element.getAttribute&&element.getAttribute("data-"+name))},getErrorMsg:function(validator,element,validatorName,validationParameter,errorMsg,selector){var msgIndex=validatorName;if(msgIndex=="dateType"){if(validationParameter=="Date"){msgIndex="dateOnlyType"}else{if(validationParameter=="Time"){msgIndex="timeType"}}}var msg=errorMsg||validator.options.getDataOrAttribute(element,validatorName+"_msg")||validator.options.messages[msgIndex];var label=validator.options.getElementLabel(element);if(!msg){throw"no error message for "+validatorName+" validation."}var parameter=validationParameter;if($.isFunction(parameter)){parameter=parameter.apply(this,[ValidationUtils.getJQueryObject(element)])}return formatMessage(msg,{label:label,param:parameter,value:escapeHtml(element.value,true,true),labels:getLabelArray(validator,selector),element:element})},getUniqueId:function(element){if(!element.id){element.id="el"+(++idSequence)}return element.id},formatError:function(validator,element,validation){var id=validator.options.getUniqueId(element);var msg='<label class="validationError" for=\''+id+"'>"+validator.options.getErrorMsg(validator,element,validation.validatorName,validation.parameter,validation.message,validation.selector)+"</label>";return msg},errorsToHtml:function(errorMessages,divName){var html="";for(var i=0;i<errorMessages.length;i++){html+="<li>"+errorMessages[i]+"</li>"}return html},displayErrors:function(validator,errors){var msgList=[],error;for(var i=0;i<errors.length;i++){error=errors[i];errMsg=validator.options.formatError(validator,error.$element.get(0),error.validation);msgList.push(errMsg);var $errorFields;if(error.validation.validatorName.substring(0,5)==="group"){$errorFields=$(error.validation.selector)}else{$errorFields=error.$element}$errorFields.each(function(){$elementLabel=$(validator.options.getValidationLabelElement(this));if($elementLabel.length===0){return true}$elementLabel.addClass("error");var forEl=$elementLabel.find("label[for]").attr("for");if(forEl){$(document.getElementById(forEl)).addClass("input-error")}})}showAppError(this.errorsToHtml(msgList,validator.options.errorDiv))},clearErrors:function(validator){validator.errors.length=0;hideAppMessage()},validatorSources:{metadata:validatorsInMetadata,dataAttribute:validatorsInDataAttributes,customRules:validatorsInOptionRules},validators:{required:function required(element,params){if(params=="false"){return true}var $element=ValidationUtils.getJQueryObject(element);if($element.is("input:checkbox, input:radio")){var $fullElement=$("input[name="+element.name.replace(/\./g,"\\.")+"]",getForm(element));if($fullElement.index(element)>0){return true}return $fullElement.filter(function(){return !!this.checked}).length!=0}return $element.val()!=null&&$.trim($element.val())!=""},maxlength:function maxlength(element,params){if($.trim(element.value)==""){return true}var val=element.value;return new String(val).length<=parseFloat(params)},min:function min(element,params){if($.trim(element.value)==""){return true}var minVal,val=DecimalFormat_strip(element.value,",");val=parseFloat(val);minVal=parseFloat(params);if(isNaN(val)||isNaN(minVal)){return true}return val>=minVal},max:function max(element,params){if($.trim(element.value)==""){return true}var maxVal,val=DecimalFormat_strip(element.value,",");val=parseFloat(val);maxVal=parseFloat(params);if(isNaN(val)||isNaN(maxVal)){return true}return val<=maxVal},groupNumberRange:function($elements,param){var element=$elements[0],nextElement;for(var i=1;i<$elements.length;i++){nextElement=$elements[i];if(parseFloat(DecimalFormat_strip(element.value,","))>parseFloat(DecimalFormat_strip(nextElement.value,","))){return false}element=nextElement}return true},groupStringRange:function($elements,param){var element=$elements[0],nextElement;for(var i=1;i<$elements.length;i++){nextElement=$elements[i];if(element.value.toUpperCase()>nextElement.value.toUpperCase()){return false}element=nextElement}return true},groupDateRange:function($elements,param){var element=$elements[0],nextElement,dateA,dateB;dateA=SimpleDateFormat.getInstance(ValidationUtils.getValidationAttribute(element,"format")).parse(element.value);for(var i=1;i<$elements.length;i++){nextElement=$elements[i];if($.trim(nextElement.value)!=""&&$.trim(element.value)!=""){dateB=SimpleDateFormat.getInstance(ValidationUtils.getValidationAttribute(nextElement,"format")).parse(nextElement.value);if(dateA>dateB){return false}}element=nextElement;dateA=dateB}return true},groupMandatory:function($elements,param){var element=$elements[0],nextElement;var eleIsEmpty,nxtIsEmpty;eleIsEmpty=$.trim(element.value)=="";for(var i=1;i<$elements.length;i++){nextElement=$elements[i];nxtIsEmpty=$.trim(nextElement.value)=="";if(eleIsEmpty!==nxtIsEmpty){return false}element=nextElement;eleIsEmpty=nxtIsEmpty}return true},groupNotEqual:function($elements,param){for(var i=0;i+1<$elements.length;i++){if($.trim(elements[i])==$.trim(elements[i+1])){return false}}return true},groupAtleastNSpecified:function($elements,param){var maxNotSpec=$elements.length-param,notSpec=0;for(var i=0;i<$elements.length;i++){if($.trim($elements[i].value)==""){notSpec++}if(notSpec>maxNotSpec){return false}}return true},precision:function(element,param){if($.trim(element.value)==""){return true}return true},maxsize:function(element,param){if($.trim(element.value)==""){return true}var precision=ValidationUtils.getValidationAttribute(element,"precision")||0;var magnitude=param-precision;return parseFloat(element.value).toFixed(precision)<Math.pow(10,magnitude)},datatype:function(element,param){var validatorObj=ValidationUtils.getData(getForm(element),validatorObjID);var validators=validatorObj.options.validators;var mapping=validatorObj.options.dataTypeMap[param];if(mapping&&validators[mapping]){return validators[mapping](element,param)}return true},numberType:function(element,param){if($.trim(element.value)==""){return true}switch(param.toLowerCase()){case"long":case"integer":case"biginteger":return/^-?(?:\d+|\d{1,3}(?:,\d{3})+)$/.test(element.value);break;case"double":case"float":case"bigdecimal":default:return/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(element.value);break}},stringType:function(element,param){return true},dateType:function(element,param){if($.trim(element.value)==""){return true}var format=ValidationUtils.getValidationAttribute(element,"format");return !!SimpleDateFormat.getInstance(format).parse(element.value)},booleanType:function(element,param){if($.trim(element.value)==""){return true}var upperCase=element.value.toUpperCase();return upperCase==="TRUE"||upperCase==="FALSE"},email:function(element,param){return($.trim(element.value)=="")||/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(element.value)},url:function(element,param){return true},digits:function(element,param){return($.trim(element.value)=="")||/^\d+$/.test(element.value)}}})})();
var messageCodeMap={100000:"required",100001:"minlength",100002:"maxlength",100003:"min",100004:"max",100005:"precision",100006:"maxsize",100007:"groupNumberRange",100008:"groupStringRange",100009:"groupDateRange",100010:"groupMandatory",100011:"datatype",100012:"numberType",100013:"stringType",100014:"dateType",100015:"booleanType",100016:"email",100017:"url",100018:"digits",100019:"groupNotEqual",100020:"groupAtleastNSpecified",100021:"minFiles",100022:"maxFiles",100023:"minFileSize",100024:"maxFileSize",100025:"maxUploadSize",100027:"timeType",100028:"dateOnlyType"};function joinLabels(labels){var joined="";for(var i=0;i<labels.length;i++){if(i>0){if(i+1<labels.length){joined+=", "}else{joined+=" and "}}joined+=labels[i]}return joined}$(function(){var validationMessages={};for(var code in messageCodeMap){validationMessages[messageCodeMap[code]]=LBJSErrorMsgs[code]}$.validation.defaults.messages=$.extend({},validationMessages)});
$(function(){$(document.body).on("before.handle.action","form",function(e,params){if(params&&params.options&&params.target){var v=!params.options.skipValidation&&$.validation;if(v&&!params.target.validate(params.options.validationOptions)){params.options.preventDefault=true}}})});
$(function(){$(".tab-group").on("click",".tab-header:not(.active)",function(e){var active=$(e.delegateTarget).find(".tab-header.active");active.removeClass("active");$(document.getElementById(active.find("label").attr("data-tab"))).removeClass("active");var header=$(this).addClass("active");$(document.getElementById(header.find("label").attr("data-tab"))).addClass("active")})});
