if(typeof pln=='undefined'){alert("class_nvi_input_validation\nThis file required the PLN Javascript Library(pln.js)and it need to be loaded before this file.");}else if(typeof nvi=='undefined'){alert("class_nvi_input_validation\nThis file required the NVI CORE(nvi.core.js)and it need to be loaded before this file.");}else{function class_nvi_input_validation(id,errorMessage,validationFunction){var _validationId=id;var _errorMessage=pln.isString(errorMessage)?errorMessage:null;var _validationFunction=validationFunction;var _validationSummaryErrorPrefix='nvi_modules_validation_summary_error_';var _defaultValidationSummaryId='nvi_modules_validation_summary';var _customValidationSummaryId=null;var _set=pln.node.setProperty;if(!pln.isString(_validationId)){return nvi.logManager.log('The unique id that should be use for this instance of the input validation is undefined or not a String','Error','class_nvi_input_validation',' ');}if(!pln.isFunction(_validationFunction)){return nvi.logManager.log('The validation function used for this instance('+_validationId+')of the input validation class object is undefined or not a function','Error','class_nvi_input_validation',' ');}this.toString=function(){return "Nvi Input Validation Class";};this.manageErrorDisplay=function(display){if(!pln.isBoolean(display))return;var errorId=this.getId();var container=getValidationSummaryContainer();if(!container)return;if(display){try{var node=pln.node.add(pln.node.create('li'),container);void _set(node,'innerHTML',this.getErrorMessage());void _set(node,'id',_validationSummaryErrorPrefix+errorId);void _set(container,'display','');}catch(error){}}else{try{void pln.node.remove(pln.node.getById(_validationSummaryErrorPrefix+errorId));if(pln.node.getLength(container)==0)_set(container,'display','none');}catch(error){}}};function getValidationSummaryContainer(){var container=pln.node.getById(_customValidationSummaryId);if(!container)container=pln.node.getById(_defaultValidationSummaryId);if(!container){return nvi.logManager.log('The default validation summary with the following id:'+_defaultValidationSummaryId+' is not available in the current document','Error','class_nvi_input_validation','getValidationSummaryContainer');}else{return container;}};this.setCustomValidationSummaryId=function(id){if(pln.isString(id))_customValidationSummaryId=id;};this.validate=_validationFunction;this.getId=function(){return _validationId;};this.getErrorMessage=function(){return _errorMessage;};};class_nvi_input_validation.__required=function(){return function(value){return!pln.isEmpty(value);};};class_nvi_input_validation.__integer=function(){return function(value){if(pln.isEmpty(value))return true;return value.match(/^(-|\+)?\d+$/gi)!=null;};};class_nvi_input_validation.__float=function(){return function(value){if(pln.isEmpty(value))return true;return value.match(/^(-|\+)?\d+\.?\d+$/gi)!=null;};};class_nvi_input_validation.__date=function(dateFormat){var _dateFormat=pln.isString(dateFormat)?dateFormat:'mm/dd/yyyy';var _indexes={day:null,month:null,year:null};var _regexp={day:null,month:null,year:null,format_separator:/[^a-z]/gi,integer_separator:/[^\d|-]/gi,compiled:''};var element_collection=_dateFormat.split(_regexp.format_separator);var separator_collection=_dateFormat.match(_regexp.format_separator);for(var i=0;i<element_collection.length;i++){var schema=element_collection[i];var limit=schema.split('').length;_regexp.day=new RegExp('^[d|j]{'+limit+'}$','gi');_regexp.month=new RegExp('^[m]{'+limit+'}$','gi');_regexp.year=new RegExp('^[y|a]{'+limit+'}$','gi');var isDay=_regexp.day.test(schema);var isMonth=_regexp.month.test(schema);var isYear=_regexp.year.test(schema);if(isDay)_indexes.day=i;if(isMonth)_indexes.month=i;if(isYear)_indexes.year=i;var separator=separator_collection[i];if(typeof separator!='undefined'){separator=separator.replace('/','\/');separator=separator.replace('.','\.');}else{separator='';}if(isYear)_regexp.compiled+="(-?\\d{1,4})";if(isMonth)_regexp.compiled+="([0-9]|[0][0-9]|[1][012])";if(isDay)_regexp.compiled+="([0-9]|[0][0-9]|[1|2][0-9]|[3][01])";_regexp.compiled+=separator;}_regexp.compiled=new RegExp('^'+_regexp.compiled+'$','gi');return function(value){if(pln.isEmpty(value))return true;if(_regexp.compiled.test(value)){var year=Number(value.split(_regexp.integer_separator)[_indexes.year]);var month=Number(value.split(_regexp.integer_separator)[_indexes.month])-1;var day=Number(value.split(_regexp.integer_separator)[_indexes.day]);if(year==0||month==0||day==0)return false;var dayLimit=32-new Date(year,month,32).getDate();if(day>dayLimit)return false;}else{return false;}return true;};};class_nvi_input_validation.__url=function(){return function(value){if(pln.isEmpty(value))return true;return value.match(/^((file|ftp|https?):\/\/)?[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:\/~\+#]*[\w\-\@?^=%&amp;\/~\+#]){1,}$/gi)!=null;};};class_nvi_input_validation.__email=function(){return function(value){if(pln.isEmpty(value))return true;return value.match(/^([\w-]+)(\.[\w-]+)*@([a-z\d-]+)(\.[a-z\d-]+)*(\.[a-z]{2,4})$/gi)!=null;};};class_nvi_input_validation.__match=function(inputId){var _inputId=pln.isString(inputId)?inputId:null;return function(value){if(pln.isEmpty(value))return true;try{var valueToMatch=pln.node.getById(_inputId).value;return value==valueToMatch;}catch(error){return false;}};};class_nvi_input_validation.__range=function(min,max){var _min=!isNaN(min)?min:null;var _max=!isNaN(max)?max:null;return function(value){if(pln.isEmpty(value))return true;try{var value=isNaN(value)?Number(value):value;return value>=_min&&value<=_max;}catch(error){}return false;};};class_nvi_input_validation.__textLength=function(min,max){return function(value){if(pln.isEmpty(value))return true;try{return value.length>=min&&value.length<=max;}catch(error){}return false;};};class_nvi_input_validation.__requiredFile=class_nvi_input_validation.__required;}