(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($){$.fn.extend({autocomplete:function(options){var isUrl=typeof options.urlOrData=="string";options=$.extend({},com.azeus.Autocompleter_Defaults,{url:isUrl?options.urlOrData:null,data:isUrl?null:options.urlOrData,delay:isUrl?com.azeus.Autocompleter_Defaults.delay:10,max:options&&!com.azeus.Autocompleter_Defaults.scroll?10:300},options);options.displayedCols=options.displayedCols.length==0?["value"]:options.displayedCols;options.searchCols=options.searchCols.length==0?["value"]:options.searchCols;options.showColHeader=options.displayedCols.length==1?false:options.showColHeader;options.dropDownTrigger=options.mode=="combobox"?true:options.dropDownTrigger;options.requestDelay=options.requestDelay?options.requestDelay:800;options.highlight=options.highlight||function(value){return value};if(options.extraParams&&options.extraParams.ID&&!options.extraParams.ACSID_){if(document.forms.length>0){var acId=options.extraParams.ID;options.extraParams.ACSID_=$(document.forms[0]["ACSID_"+acId+"_"]).val()}}return this.each(function(){new $.Autocompleter(this,options)})},result:function(handler){return this.bind("result",handler)},search:function(handler){return this.trigger("search",[handler])},flushCache:function(){return this.trigger("flushCache")},setOptions:function(options){return this.trigger("setOptions",[options])},unautocomplete:function(){return this.trigger("unautocomplete")},enableAutocomplete:function(){return this.trigger("enableAutocomplete")},disableAutocomplete:function(){return this.trigger("disableAutocomplete")}});window.refreshLiveRegion=function(content){$("#ac_screen_reader").text(content)};$.Autocompleter=function(input,options){var KEY={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var $input=$(input).attr("autocomplete","off").addClass(options.inputClass);var timeout;var requestTimeout;var previousValue=$input.val();var currentValue=$input.val();var mode=options.mode;var cache=$.Autocompleter.Cache(options,mode);var hasFocus=0;var lastKeyPressCode;var config={mouseDownOnSelect:true,scrolling:false};var select=$.Autocompleter.Select(options,input,selectCurrent,hideResultsNow,config,mode);var blockSubmit;var clickedElm=null;var initPrevValue=options.mode=="combobox"?true:false;var autocompleteEnabled=true;$input.data("com.azeus.autocompleter",{cache:cache,options:options,select:select});$(document).click(function(e){clickedElm=e.target;if(!$(clickedElm).hasClass("selectComponent")&&!$(clickedElm).hasClass("form-submit")&&clickedElm!==input&&select.visible()){if(!clickedElm.acParam||$.trim(input.name).indexOf("SUBJECT_CODE")===-1){select.hide()}}});$.browser.opera&&$(input.form).bind("submit.autocomplete",function(){if(blockSubmit){blockSubmit=false;return false}});$input.bind("keydown.autocomplete",function(event){switch(event.keyCode){case KEY.TAB:case KEY.RETURN:if(event.keyCode==KEY.TAB){select.hide();return}if(event.keyCode==KEY.RETURN&&options.doOnEnter){options.doOnEnter();return false}if(selectCurrent()){event.preventDefault();blockSubmit=true;return false}break}}).bind(($.browser.opera?"keypress":"keyup")+".autocomplete",function(event){lastKeyPressCode=event.keyCode;var key=event.keyCode;if((key==16)||(key==17)||(key>=18&&key<=20)||(key>=116&&key<=128)||key==36||key==37||key==39||(key>=44&&key<=45)){return}switch(event.keyCode){case KEY.UP:event.preventDefault();if(select.visible()){select.prev();if(options.selectValOnKeyScroll){selectCurrent(true)}}else{onChange(0,true)}break;case KEY.DOWN:event.preventDefault();if(select.visible()){select.next();if(options.selectValOnKeyScroll){selectCurrent(true)}}else{onChange(0,true)}break;case KEY.PAGEUP:event.preventDefault();if(select.visible()){select.pageUp();if(options.selectValOnKeyScroll){selectCurrent(true)}}else{onChange(0,true)}break;case KEY.PAGEDOWN:event.preventDefault();if(select.visible()){select.pageDown();if(options.selectValOnKeyScroll){selectCurrent(true)}}else{onChange(0,true)}break;case KEY.ESC:select.hide();break;case KEY.RETURN:select.hide();break;default:clearTimeout(timeout);timeout=setTimeout(onChange,options.delay);break}}).focus(function(e){if(hasFocus++==0&&mode=="combobox"&&!config.scrolling&&(options.showComboDropDownOnFocus||options.formatInput($input.val()).length>=options.minChars)){request(options.formatInput($input.val())||"",receiveData,hideResultsNow)}}).blur(function(){hasFocus=0;if(options.setOnBlur){$input.prev("input[type=hidden]").val($input.val())}}).click(function(){var inputVal=$.trim($input.val());var isFocused=$input.is(":focus");if(isFocused&&!select.visible()&&options.formatInput(inputVal).length>=options.minChars){request(options.formatInput($input.val())||"",receiveData,hideResultsNow)}}).bind("search",function(){var fn=(arguments.length>1)?arguments[1]:null;function findValueCallback(q,data){var result;if(data&&data.length){for(var i=0;i<data.length;i++){if(data[i].result.toLowerCase()==q.toLowerCase()){result=data[i];break}}}if(typeof fn=="function"){fn(result)}else{$input.trigger("result",result&&[result.data,result.result])}previousValue="";currentValue=""}$.each(trimWords($input.val()),function(i,value){request(value,findValueCallback,findValueCallback)})}).bind("flushCache",function(){cache.flush();select.emptyList()}).bind("setOptions",function(){$.extend(options,arguments[1]);if("data" in arguments[1]||"displayedCols" in arguments[1]||"searchCols" in arguments[1]||"mode" in arguments[1]){select.emptyList();cache.flush();cache.populate()}}).bind("unautocomplete",function(){select.unbind();$input.unbind();$(input.form).unbind(".autocomplete")}).on("paste",function(){clearTimeout(timeout);timeout=setTimeout(onChange,options.delay)}).bind("textInput",function(){clearTimeout(timeout);timeout=setTimeout(onChange,options.delay)}).bind("inputChange",function(){onChange(0,true)}).bind("enableAutocomplete",function(){autocompleteEnabled=true}).bind("disableAutocomplete",function(){autocompleteEnabled=false}).bind("autocomplete_select_highlighted_or_first",function(){selectCurrent()||selectFirstIfNoneSelected();$input.trigger("autocomplete_on_select_highlighted_or_first")}).bind("autocomplete_hide",function(){stopLoading();select.hide()});if(options.dropDownTrigger){var $dropDownTrigger=$("<input type='button' />").insertAfter($input).addClass(options.dropDownTriggerClass||"").addClass("selectComponent").click(function(){if(!hasFocus){$input.focus()}})}function selectCurrent(retainResults){var selected=select.selected();if(!select.visible()||!selected){return false}var v=selected.result;if($input.is(":disabled")){v=""}previousValue=v;$input.val(v);if(!retainResults){hideResultsNow()}$input.trigger("result",selected);return true}function selectFirstIfNoneSelected(){var selected=select.selected();if(!select.visible()){return false}if(!selected){select.doSelectFirst()}var result=selectCurrent();if(result){$input.trigger("autocomplete_autoselect_first")}return result}function onChange(crap,skipPrevCheck){if(!autocompleteEnabled){return false}if(!options.mustMatch){currentValue=$input.val();$input.prev("input[type=hidden]").val(currentValue)}if(lastKeyPressCode==KEY.DEL&&$input.val()==""){previousValue="";if(options.mustMatch){$input.prev("input[type=hidden]").val("")}select.hide();return}currentValue=$input.val();if(!skipPrevCheck&&currentValue==previousValue){return}if(options.formatInput(currentValue).length>=options.minChars||mode=="combobox"){$input.addClass(options.loadingClass);request(options.matchCase?options.formatInput(currentValue).toLowerCase():options.formatInput(currentValue),receiveData,hideResultsNow)}else{stopLoading();select.hide()}currentValue=lastWord(currentValue);if(initPrevValue){initPrevValue=false}else{previousValue=currentValue}}function trimWords(value){if(!value){return[""]}var result=[];if($.trim(value)){result[0]=$.trim(value)}return result}function lastWord(value){return value}function autoFill(q,sValue){if((lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=KEY.BACKSPACE&&sValue!=""){var qIndex;var qLength=q.length;qIndex=(sValue.toLowerCase()).indexOf(q.toLowerCase());$input.val(sValue);$.Autocompleter.Selection(input,qIndex+qLength,sValue.length)}}function hideResultsNow(){var wasVisible=select.visible();if(wasVisible){select.hide();if(window.top!==window){window.document.body.style.minHeight=window._oldWinHt||"";if($.dialog&&typeof $.dialog.autoAdjust==="function"){$.dialog.autoAdjust()}}}clearTimeout(timeout);stopLoading();var inputVal=$.trim($input.val());var lookUp={};if(options.mustMatch){inputVal=!options.matchCase?inputVal.toLowerCase():inputVal;var dataLookup=select.getDataLookup();var match=false;$.each(dataLookup,function(i,row){var possibleVal=!options.matchCase?(row.result).toLowerCase():row.result;if(possibleVal==inputVal){match=true;lookUp=row;return false}});if(!match){if(hasFocus>0&&!options.dontClearIfMismatch){$input.val(previousValue);currentValue=previousValue;onChange(0,true)}else{if(!options.dontClearIfMismatch){$input.val("");$input.blur()}currentValue=""}previousValue="";$input.prev("input[type=hidden]").val("")}else{var res=lookUp.CODE||lookUp.result||"";$input.prev("input[type=hidden]").val(res)}}if(wasVisible&&mode!="combobox"){}config.scrolling=false}function receiveData(q,data){if(data&&data.length){stopLoading();if(options.noListIfLostFocus&&!$(input).is(":focus")){hideResultsNow();return}select.display(data,q);if(options.autoFill&&q.length>0){if(mode=="combobox"){$.each(data,function(i,row){var result=row.result;if(options.isSubstring(result,q,options.matchCase,options.matchContains)){autoFill(q,result);return false}})}else{autoFill(q,data[0].result)}}config.scrolling=false}else{hideResultsNow()}}function request(term,success,failure){if(!autocompleteEnabled){return}var data=cache.load(term);if(data&&data.length){success(term,data)}else{if((typeof options.urlOrData=="string")&&(options.urlOrData.length>0)){var q=mode=="combobox"?"":term;var dataParams={q:lastWord(q),limit:options.max,matchCase:options.matchCase,matchContains:options.matchContains};$.extend(dataParams,options.extraParams);var extraParams=$.resolveParams(window,dataParams);var queryParams=$.resolveParams(window,options.extraParams.queryParamValues);if(queryParams){$.merge(extraParams,queryParams)}extraParams=$.serializeAsString(extraParams);data=loadFromGlobalCache(options.urlOrData,$.extend({dataType:options.dataType},extraParams));if(data){success(term,data);return}var requests=$(input).data("jquery.autocomplete.requests");if(!requests){requests=[];$(input).data("jquery.autocomplete.requests",requests)}while(requests.length){requests.pop().abort()}function sendRequest(){var ajax=$.ajax({mode:"abort",type:"POST",port:"autocomplete"+input.name,dataType:options.dataType,url:options.urlOrData,data:extraParams,success:function(data){var parsed=options.parse&&options.parse(data)||parse(data);if(mode=="combobox"){cache.addToFullList(parsed)}else{cache.add(term,parsed)}addToGlobalCache(options.url,$.extend({dataType:options.dataType},extraParams),parsed);success(term,parsed)}});requests.push(ajax)}clearTimeout(requestTimeout);requestTimeout=setTimeout(sendRequest,options.requestDelay)}else{select.emptyList();failure(term)}}}function parse(data){var collection=eval(data);var count=collection.length;var parsed=[];for(var i=0;i<count;i++){var row=new Object();row.data=[];if(typeof collection[i]=="string"){row.data.push(collection[i]);row.value=row.data[0]}else{$.each(collection[i],function(col,val){row[col]=val;row.data[row.data.length]=val})}row.result=options.resultColumn?row[options.resultColumn]:row.data[0];parsed[parsed.length]=row}return parsed}function stopLoading(){$input.removeClass(options.loadingClass)}};$.Autocompleter.Cache=function(options,mode){var data={};var fullList=[];var length=0;var needsInit=true;function matchSubset(s,sub){var check=options.isSubstring(s,sub,options.matchCase,options.matchContains);return check||mode=="combobox"}function add(q,value){if(length>options.cacheLength){flush()}if(!data[q]){length++}if(!$(data).prop(q)){data[q]=value}}function populate(){if(!options.data){return false}flush();var stMatchSets={},nullData=0;if(!options.url){options.cacheLength=1}stMatchSets[""]=[];for(var i=0,ol=options.data.length;i<ol;i++){var rawValue=options.data[i];if(!rawValue){continue}var row=new Object();if(typeof rawValue=="string"){rawValue=[rawValue];var value=rawValue[0];row.data=rawValue;row.value=value;row.result=value;if(mode=="filter"){var firstChar=value.charAt(0).toLowerCase();if(!stMatchSets[firstChar]){stMatchSets[firstChar]=[]}if($.inArray(row,stMatchSets[firstChar])==-1){stMatchSets[firstChar].push(row)}}}else{var allValues=[];$.each(rawValue,function(col,val){row[col]=val;allValues.push(val)});row.data=allValues;row.result=row.data[0];colCount=options.searchCols.length;for(var j=0;j<colCount;j++){var cell=row[options.searchCols[j]];firstChar=cell.charAt(0).toLowerCase();if(!stMatchSets[firstChar]){stMatchSets[firstChar]=[]}if($.inArray(row,stMatchSets[firstChar])==-1){stMatchSets[firstChar].push(row)}}}if(mode=="combobox"){addToFullList(row)}else{if(nullData++<options.max){stMatchSets[""].push(row)}}}if(mode=="filter"){$.each(stMatchSets,function(i,value){options.cacheLength++;add(i,value)})}}setTimeout(populate,25);function flush(){data={};length=0;globalCache={};fullList=[];needsInit=true}function addToFullList(rows){fullList=fullList.concat(rows);needsInit=false}return{flush:flush,add:add,populate:populate,addToFullList:addToFullList,load:function(q){if(!options.cacheLength){this.flush();return null}else{if(mode=="combobox"&&!needsInit){return fullList}else{if(!length){return null}}}if(!options.url&&!options.urlOrData&&options.matchContains){var csub=[];for(var k in data){if(k.length>0){var c=data[k];$.each(c,function(i,x){var dataCount=options.searchCols.length;for(var j=0;j<dataCount;j++){if(matchSubset(x[options.searchCols[j]],q)){if($.inArray(x,csub)==-1){csub.push(x)}break}}})}}return csub}else{if(data[q]){return data[q]}else{if(options.matchSubset){for(var i=q.length-1;i>=options.minChars-1;i--){var c=data[q.substr(0,i).toLowerCase()];if(c){var csub=[];$.each(c,function(i,x){var dataCount=options.searchCols.length;for(var j=0;j<dataCount;j++){if(matchSubset(x[options.searchCols[j]],q)){if($.inArray(x,csub)==-1){csub.push(x)}break}}});return csub}}}}}return null}}};$.Autocompleter.Select=function(options,input,select,hideResults,config,mode){var CLASSES={ACTIVE:"ac_over"};var listItems,active=-1,data,term="",needsInit=true,element,list,dataLookup={};function init(){if(!needsInit){return}if($("#ac_screen_reader").size()==0){$("<div id='ac_screen_reader' aria-live='polite' aria-atomic='true' aria-relevant='all'/>").appendTo(document.body)}element=$("<div/>").hide().addClass(options.resultsClass).addClass("selectComponent").css("position","absolute").css("z-index",1000).appendTo(document.body).bind("mousedown mouseleave",function(e){config.scrolling=true;if(e.type!=="mouseleave"){input.focus()}});list=$("<table/>").appendTo(element).mouseover(function(event){if(target(event).nodeName&&target(event).nodeName.toUpperCase()=="TR"&&target(event).firstChild.nodeName.toUpperCase()!="TH"){var currentSelected=list.data("selectedRow");if(currentSelected){currentSelected.removeClass(CLASSES.ACTIVE)}var targetRow=target(event);active=$("tr",list).index(targetRow);list.data("selectedRow",$(targetRow));$(targetRow).addClass(CLASSES.ACTIVE)}}).click(function(event){var targetRow=target(event);if(targetRow.length==0||targetRow.firstChild.nodeName.toUpperCase()=="TH"){return false}select();return false}).mousedown(function(){config.mouseDownOnSelect=true}).mouseup(function(){config.mouseDownOnSelect=false;$(input).focus()}).mouseleave(function(){config.mouseDownOnSelect=false});if(options.width&&options.width>0){element.css("width",options.width)}else{if(options.elementWidth){element.css("width",typeof options.elementWidth=="function"?options.elementWidth():options.elementWidth)}}needsInit=false}function target(event){var element=event.target;while(element&&element.tagName!="TR"){element=element.parentNode}if(!element){return[]}return element}function moveSelect(step){listItems.slice(active,active+1).removeClass(CLASSES.ACTIVE);movePosition(step);if(options.showColHeader&&active==0){movePosition(step)}if(list.data("selectedRow")){list.data("selectedRow").removeClass(CLASSES.ACTIVE)}var activeItem=listItems.slice(active,active+1).addClass(CLASSES.ACTIVE);list.data("selectedRow",activeItem);if(options.scroll){var offset=element.scrollTop()+activeItem.position().top;if((step>0&&element.scrollTop()+options.scrollHeight<activeItem.position().top+(activeItem.height()/2))||(step>0&&element.scrollTop()>activeItem.position().top)){element.scrollTop(activeItem.position().top)}else{if((step<0&&element.scrollTop()+options.scrollHeight<activeItem.position().top+(activeItem.height()/2))||(step<0&&element.scrollTop()>activeItem.position().top)){element.scrollTop(activeItem.position().top)}}}config.scrolling=true;refreshLiveRegion(dataLookup[activeItem.attr("id")].result)}function movePosition(step){active+=step;if(active<0){active=listItems.size()-1}else{if(active>=listItems.size()){active=0}}}function limitNumberOfItems(available){return options.max&&options.max<available?options.max:available}function getMatchedRowIndex(){var selectedIndex=0;var match=false;if(options.showColHeader){selectedIndex=0}$.each(dataLookup,function(rowid,rowdata){var columnCount=options.searchCols.length;for(var i=0;i<columnCount;i++){if(options.isSubstring(rowdata[options.searchCols[i]],term,options.matchCase,options.matchContains)){match=true;return false}}if(match){return false}selectedIndex+=1});return match&&$.trim(term).length>0?selectedIndex:-1}function comboboxSelect(){if(mode=="combobox"){var currentSelected=list.data("selectedRow");if(currentSelected){currentSelected.removeClass(CLASSES.ACTIVE);list.removeData("selectedRow")}if(term.length>0){var matchedRow=-1;matchedRow=getMatchedRowIndex();if(matchedRow>=0){selectedRow=matchedRow;active=matchedRow;var matched=$("#row"+matchedRow,list);matched.addClass(CLASSES.ACTIVE);list.data("selectedRow",matched);active=options.showColHeader?matchedRow+1:matchedRow;if(options.scroll){var offset=element.scrollTop()+matched.position().top;if(offset>options.scrollHeight-50){element.scrollTop(offset)}}}else{if(options.scroll){element.scrollTop(0)}if(options.selectFirst&&term.length==0&&!config.scrolling){active=options.showColHeader?1:0}if(options.mustMatch){hideResults()}}$.Autocompleter.Selection(input,input.value.length,input.value.length)}}}function selectFirst(){if(options.selectFirst){if(!list.data("selectedRow")){active=options.showColHeader?1:0;var current=$("#row0",list);current.addClass(CLASSES.ACTIVE);list.data("selectedRow",current);refreshLiveRegion(dataLookup[current.attr("id")].result)}}}function doSelectFirst(){active=options.showColHeader?1:0;var current=$("#row0",list);current.addClass(CLASSES.ACTIVE);list.data("selectedRow",current);refreshLiveRegion(dataLookup[current.attr("id")].result)}function generateTableHeaders(components){if(options.showColHeader&&options.displayedCols.length>0){components.push("<tr class='selectComponent'>");var headers=[];var labels=options.headerLabels;if(labels){for(var x=0;x<labels.length;x++){if(typeof labels[x]=="string"){headers[x]=labels[x]}else{if(typeof labels[x]=="object"){for(var k in labels[x]){var idx=$.inArray(k,options.displayedCols);if(idx>-1){headers[x]=labels[x][k]}}}}}for(var i=0;i<headers.length;i++){components.push("<th>"+headers[i]+"</th>")}}components.push("</tr>")}}function generateRowContents(components){var max=limitNumberOfItems(data.length);for(var i=0;i<max;i++){if(!data[i]){continue}var columnCount=options.displayedCols.length;dataLookup["row"+i]=data[i];components.push("<tr class='"+(i%2==0?"ac_even":"ac_odd")+" selectComponent' id='row"+i+"'>");for(var j=0;j<columnCount;j++){var colVal=data[i][options.displayedCols[j]];var colValLen=colVal?colVal.length:0;colVal=(mode=="filter"&&$.inArray(options.displayedCols[j],options.searchCols)>=0?options.highlight(escapeHtml(colVal),escapeHtml(term)):escapeHtml(colVal))||"-";colVal=limitMaxDisplayChars(colValLen,options.maxDisplayChars,colVal);components.push("<td>"+colVal+"</td>")}components.push("</tr>")}}function limitMaxDisplayChars(origLength,maxLen,colVal){if(maxLen>0&&origLength>maxLen){var arr=colVal.split(/<\/?strong>/g);var newVal="";var inHighlight=false;var curLen=0;for(var i=0,size=arr.length;i<size;i++){var diff=maxLen-curLen;if(diff==0){break}var partStr=arr[i];var toAdd=partStr.substr(0,diff);if(inHighlight){newVal+="<strong>"}newVal+=toAdd;curLen+=toAdd.length;if(inHighlight){newVal+="</strong>"}if(inHighlight){inHighlight=false}else{inHighlight=true}}return newVal+"..."}return colVal}function show(){var offset=$(input).offset();var topOffset=offset.top+input.offsetHeight;var leftOffset=offset.left;var rightOffset=offset.right;var $win=$(window);var scrollOffsetY=$win.scrollTop();var scrollOffsetX=$win.scrollLeft();var winHeight=$win.height();var winWidth=$win.width();if(options.elementWidth){element.css("width",typeof options.elementWidth=="function"?options.elementWidth():options.elementWidth)}element.css({top:topOffset,left:leftOffset,minWidth:$(input).width(),maxWidth:typeof options.maxWidth=="string"||options.maxWidth>0?options.maxWidth:"none"}).show();if(options.scroll){var remainingSpaceY=winHeight-(topOffset-scrollOffsetY);var maximumHeight=Math.min(options.scrollHeight,remainingSpaceY);element.css({maxHeight:maximumHeight,overflow:"auto"});element.scrollTop(0);if($.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var listHeight=0;listItems.each(function(){listHeight+=this.offsetHeight});var scrollbarsVisible=listHeight>options.scrollHeight;element.css("height",scrollbarsVisible?options.scrollHeight:listHeight);if(!scrollbarsVisible){listItems.width(list.width()-parseInt(listItems.css("padding-left"))-parseInt(listItems.css("padding-right")))}}}var ac_height=element.height();var ac_width=element.width();if(topOffset-scrollOffsetY+ac_height>winHeight){var maximumHeight=Math.min(options.scrollHeight,offset.top-scrollOffsetY);if(offset.top>ac_height){remainingSpaceY=offset.top-scrollOffsetY-20;maximumHeight=Math.max(Math.min(options.scrollHeight,remainingSpaceY),96);element.css({top:offset.top-maximumHeight,maxHeight:maximumHeight});element.height(maximumHeight)}else{if(window.top===window){var doc=$("document");var marginBottom=doc.css("margin-bottom");doc.css("margin-bottom",marginBottom+100)}else{var winBody=window.document.body;var locy=input.getBoundingClientRect().top+input.offsetHeight;window._oldWinHt=winBody.style.minHeight;winBody.style.minHeight=(winBody.offsetHeight+(ac_height-(winHeight-locy))+5)+"px"}}}if(leftOffset-scrollOffsetX+ac_width>winWidth){if(leftOffset-scrollOffsetX>window.innerWidth-(leftOffset-scrollOffsetX)){element.css("left",leftOffset-(ac_width-$(input).width()))}}var tabEl=element[0].getElementsByTagName("table")[0];if(tabEl&&tabEl.offsetHeight>element[0].clientHeight){if(tabEl&&tabEl.offsetWidth>element[0].clientHeight-17){document.body.minHeight=(document.body.offsetHeight+17)+"px"}}if(options.maxItemsShownOnLoad){var $table=element.find("table");var $rows=$table.find("tr");if($rows.size()>0){var rowIndex=$rows.size()>options.maxItemsShownOnLoad?options.maxItemsShownOnLoad:$rows.size();var $nthRow=$rows.eq(rowIndex-1);var maximumHeight=Math.min(($nthRow.offset().top+$nthRow.height())-$table.offset().top+3,remainingSpaceY);element.css({maxHeight:maximumHeight,overflow:"auto"})}}if(window.top!==window&&$.dialog&&typeof $.dialog.autoAdjust==="function"){$.dialog.autoAdjust()}}function fillList(){if(mode=="combobox"&&listItems&&!needsInit&&data.cacheLength){return}list.empty();list.removeData("selectedRow");dataLookup={};var components=[];generateTableHeaders(components);generateRowContents(components);$(components.join("")).appendTo(list)[0];listItems=list.find("tr");if($.fn.bgiframe){list.bgiframe()}}return{display:function(d,q){init();data=d;term=q;fillList();show();comboboxSelect();selectFirst()},next:function(){moveSelect(1)},prev:function(){moveSelect(-1)},pageUp:function(){if(active!=0&&active-8<0){moveSelect(-active)}else{moveSelect(-8)}},pageDown:function(){if(active!=listItems.size()-1&&active+8>listItems.size()){moveSelect(listItems.size()-1-active)}else{moveSelect(8)}},hide:function(){element&&element.hide();active=-1;refreshLiveRegion("")},visible:function(){return element&&element.is(":visible")},current:function(){return this.visible()&&(listItems.filter("."+CLASSES.ACTIVE)[0]||options.selectFirst&&listItems[0])},doSelectFirst:function(){doSelectFirst()},selected:function(){var selected=listItems&&list.data("selectedRow");if(selected&&dataLookup[selected.attr("id")]){listItems.removeData("selectedRow");return dataLookup[selected.attr("id")]}return null},getDataLookup:function(){return dataLookup},emptyList:function(){list&&list.empty();listItems=null;needsInit=true},unbind:function(){element&&element.remove()}}};$.Autocompleter.Selection=function(field,start,end){if(field.createTextRange){var selRange=field.createTextRange();selRange.collapse(true);selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select()}else{if(field.setSelectionRange){field.setSelectionRange(start,end)}else{if(field.selectionStart){field.selectionStart=start;field.selectionEnd=end}}}};var globalCache={};function addToGlobalCache(url,params,data){if(!globalCache[url]){globalCache[url]=[]}globalCache[url].push({requestParams:params,values:data})}function loadFromGlobalCache(url,params){if(globalCache[url]){var match=true;for(var i=0;i<globalCache[url].length;i++){if(globalCAche[url][i].requestParams==params){return globalCache[url][i].values}}}return false}})(jQuery);
(function(win){if(!win.com){win.com={}}if(!win.com.azeus){win.com.azeus={}}$.extend(win.com.azeus,{Autocompleter_Defaults:{urlOrData:Utils.resolve("/JQueryAutocompleteLookup"),inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:0,delay:100,matchCase:false,matchSubset:true,matchContains:false,cacheLength:0,max:100,mustMatch:true,extraParams:{},selectFirst:true,formatItem:function(row,column){return row[column]},formatMatch:null,autoFill:false,maxWidth:"none",highlight:function(value,term){var hasChinese=(value||"").match(/[\u3400-\u9FBF]/);if(hasChinese){return value&&value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+term.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")+")(?![^&;]+;)(?![^<>]*>)","ig"),"<strong>$1</strong>")}return value&&value.replace(new RegExp("(?![^&;]+;)\\b(?!<[^<>]*)("+term.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")+")(?![^&;]+;)(?![^<>]*>)","ig"),"<strong>$1</strong>")},isSubstring:function(str,sub,matchCase,contains){if(!matchCase){str=str&&str.toLowerCase();sub=sub&&sub.toLowerCase()}var i=!str?-1:str.indexOf(sub);if(i==-1){return false}return i==0||contains},formatInput:function(input){return input},scroll:true,minHeight:98,scrollHeight:245,dataType:"text",showColHeader:true,headerLabels:[{CODE:"Code"},{VALUE:"Description"}],displayedCols:["CODE","VALUE"],searchCols:["CODE","VALUE"],mode:"filter",showComboDropDownOnFocus:false,dropDownTrigger:true}})})(window);
