if(typeof pln=='undefined'){alert("class_nvi_input_panel\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_panel\nThis file required the NVI CORE(nvi.core.js)and it need to be loaded before this file.");}else if(typeof class_nvi_basic_panel=='undefined'){alert("class_nvi_input_panel\nThis file required the Class Nvi Basic Panel and it need to be loaded before this file.");}else{function class_nvi_input_panel(){var _host=this;var _validationObjectCollection=[];var _initialValue='';var _errorLabelPrefix='nvi_modules_validation_';var _enableWordCount=false;var _disableInputOverCountLimit=true;var _enableValidation=true;var _characterCounter;var _characterCountCallbackCollection=[];var _error_classname='error';var _set=pln.node.setProperty;var _valid=true;this.constructor=function(id){void __super.constructor(id);};this.toString=function(){return "Nvi Input Panel Class";};this.initialize=function(){var element=this.getElement();var inputType=pln.node.getProperty(element,'type');if(inputType=='checkbox'){void pln.events.addListener(element,'click',null,dispatchChangeEvent);}else{if(inputType=='text'){void pln.events.addListener(element,'blur',null,dispatchChangeEvent);}if(pln.isset(element)){if(element.nodeName.toLowerCase()=='select'){void pln.events.addListener(element,'change',null,dispatchChangeEvent);}}}if(pln.isString(_initialValue)&&!pln.isEmpty(_initialValue)){element.value=_initialValue;void pln.events.addListener(element,'focus',null,validateFocusValue);void pln.events.addListener(element,'blur',null,validateBlurValue);}if(_enableWordCount){_characterCounter=new class_nvi_input_characters_count(this.getElement(),null,_disableInputOverCountLimit);_characterCounter.onChange=executeWordCountCallBack;_characterCounter.initialize();}void __super.initialize();};this.terminate=function(){var element=this.getElement();void pln.events.removeListener(element,'focus',null,validateFocusValue);void pln.events.removeListener(element,'blur',null,validateBlurValue);if(pln.node.getProperty(element,'type')=='checkbox'){void pln.events.removeListener(element,'click',null,dispatchChangeEvent);}void __super.terminate();};this.deleteInstance=function(){_characterCounter.terminate();_characterCounter=null;void this.terminate();void __super.deleteInstance();};function executeWordCountCallBack(total,remaining,element){for(var i=0;i<_characterCountCallbackCollection.length;i++){void _characterCountCallbackCollection[i](total,remaining,element);}};function dispatchChangeEvent(){void nvi.eventManager.dispatchEvent(_host.getId(),nvi.eventManager.events.__changed);};this.registerWordCountCallBack=function(callback){if(pln.isFunction(callback)){void _characterCountCallbackCollection.push(callback);_enableWordCount=true;}};this.blockWhenCountIsOverLimit=function(block){if(pln.isBoolean(block))_disableInputOverCountLimit=block;};function manageErrorDisplay(display,validation){if(!pln.isBoolean(display))return;void pln.node[display?'addClassName':'removeClassName'](_host.getElement(),_error_classname);try{var label=pln.node.getById(_errorLabelPrefix+validation.getId());void _set(label,'display',display?'inline':'none');}catch(error){}void validation.manageErrorDisplay(display);};this.getValue=function(){try{var value=this.getElement().value;if(pln.isString(_initialValue)&&!pln.isEmpty(_initialValue)){if(value==_initialValue){value='';this.getElement().value=value;}}try{var tinyMCEInstance=tinyMCE.getInstanceById(this.getId());value=tinyMCEInstance.getContent();}catch(error){}return value;}catch(error){return null;}};this.getType=function(){try{return this.getElement().type.toLowerCase();}catch(error){return null;}};this.isChecked=function(){try{return this.getElement().checked;}catch(error){return null;}};this.disableValidation=function(){_enableValidation=false;};this.enableValidation=function(){_enableValidation=true;};this.addValidationObject=function(validationObject){if(pln.isObject(validationObject))void _validationObjectCollection.push(validationObject);};this.removeValidationObject=function(id,removeAll){var removeAll=pln.isBoolean(removeAll)?removeAll:false;if(!removeAll&&!pln.isString(id))return null;for(var i=0;i<_validationObjectCollection.length;i++){var validationObject=_validationObjectCollection[i];if(removeAll||(!removeAll&&validationObject.getId()==id)){void manageErrorDisplay(false,validationObject);if(!removeAll){void _validationObjectCollection.splice(i,1);break;}}}};this.removeAllValidationObjects=function(){void this.removeValidationObject(null,true);};this.validate=function(){for(var i=0;i<_validationObjectCollection.length;i++)void manageErrorDisplay(false,_validationObjectCollection[i]);var value=this.getValue();if(value==_initialValue)value='';if(!pln.isString(value)&&_enableValidation){void nvi.logManager.log('The value of the input is not valid:'+value,'Error','class_nvi_input_panel','validate');_valid=false;return false;}for(var i=0;i<_validationObjectCollection.length;i++){var validation=_validationObjectCollection[i];if(!validation.validate(value)&&_enableValidation){void manageErrorDisplay(true,validation);void nvi.eventManager.dispatchEvent(this.getId(),nvi.eventManager.events.__validationFailed);_valid=false;return false;}else{void nvi.eventManager.dispatchEvent(this.getId(),nvi.eventManager.events.__validationSucceeded);void manageErrorDisplay(false,validation);}}_valid=true;return true;};this.setInitialValue=function(value){if(pln.isString(value))_initialValue=value;};function validateFocusValue(){var element=_host.getElement();if(element.value==_initialValue)element.value='';};function validateBlurValue(){var element=_host.getElement();if(pln.isEmpty(element.value)||element.value==_initialValue)element.value=_initialValue;};this.reset=function(){this.getElement().value='';void validateBlurValue();};this.getSharedRessources=function(){return{type:'input',id:this.getId(),parameters:{value:this.getValue(),complementaryData:this.getComplementaryDataObject()}};};this.changeErrorCssClassName=function(name){if(pln.isString(name))_error_classname=name;};this.getValidationStatus=function(){return _valid;};};class_nvi_input_panel.extend=class_nvi_basic_panel;function class_nvi_input_characters_count(element,maxlength,disableInputOverCountLimit){var _element=pln.isHtmlElement(element)?element:null;if(!_element)return null;var _maxlength=maxlength;if(isNaN(maxlength)||maxlength==null){_maxlength=pln.node.getAttributeValue(_element,'maxlength');if(isNaN(_maxlength))return null;}else{_maxlength=maxlength;}var _disableInputOverCountLimit=disableInputOverCountLimit||false;var _interval;var _host=this;this.initialize=function(){void pln.events.addListener(_element,'focus',null,activate);void pln.events.addListener(_element,'blur',null,deactivate);void _host.onChange(_element.value.length,_maxlength-_element.value.length,_element);_element.onkeypress=_element.onkeyup=function(event){return validate(event);};};this.terminate=function(){void pln.events.removeListener(_element,'focus',null,activate);void pln.events.removeListener(_element,'blur',null,deactivate);_element.onkeypress=_element.onkeyup=null;};this.onChange;function validate(event){var bypass=false;if(!_disableInputOverCountLimit)return true;if(pln.events.selection.length>1)bypass=true;var keyCode=pln.events.getKeyCode(pln.events.getEventObject(event));if(!bypass&&(keyCode==pln.events.key.BACKSPACE||keyCode==pln.events.key.DELETE))bypass=true;if(!bypass&&pln.events.isKeyDown(pln.events.key.SHIFT)){if(keyCode==37||keyCode==38||keyCode==39||keyCode==40)bypass=true;}if(!bypass){return _element.value.length<_maxlength;}else{return true;}};function cleanup(){var value=_element.value;var new_value=value.length>_maxlength?value.substr(0,_maxlength):null;if(pln.isset(new_value))_element.value=new_value;};function activate(){_interval=setInterval(function(){if(_disableInputOverCountLimit)cleanup();try{void _host.onChange(_element.value.length,_maxlength-_element.value.length,_element);}catch(error){}},80);};function deactivate(){void clearInterval(_interval);};};}