if(typeof pln=='undefined'){alert("nvi\nThis file required the PLN Javascript Library(pln.js)and it need to be loaded before this file.");}else{if(!pln.isset(nvi)){var nvi=new function(){var _defaultWaitingPanelId="nvi_modules_default_waiting_panel";var _defaultWaitingPanelPrefixId="default_waiting__";this.toString=function(){return "Nvi Core Class";};var NLM=new function(){var _messageCollection=[];var _console;var _list;var _consoleEnabled=false;var _main_console=window.location.href==top.location.href;if(/ENABLE-NVI-CONSOLE/gi.test(top.location.href)){_consoleEnabled=true;void pln.events.addListener(document,'__documentReady',null,initializeConsole);}var set=pln.node.setProperty;function generateConsole(){_console=pln.node.add(pln.node.create('div'),document.body);var head=pln.node.add(pln.node.create('div'),_console);var btn=pln.node.add(pln.node.create('span'),head);var title=pln.node.add(pln.node.create('span'),head);void set(title,'innerHTML','<strong>NVI DEBUG CONSOLE</strong>~ Version 1.00');void set(btn,'innerHTML','[minimize]');void set(btn,'cursor','pointer');void set(btn,'marginRight','10px');_list=pln.node.add(pln.node.create('div'),_console);void set(_console,'display','none');void set(_console,'zIndex','999999');void set(_console,'position','absolute');void set(_console,'width','800px');void set(_console,'background','#444444');void set(_console,'color','#ffffff');void set(_console,'fontFamily','Verdana,Arial');void set(_console,'fontSize','10px');void set(_console,'right','2px');void set(_console,'top','2px');void set(_console,'border','2px solid #000000');void set(head,'padding','5px');void set(_list,'padding','5px');void set(_list,'overflow','auto');void set(_list,'height','600px');void pln.events.addListener(btn,'click',null,toggle,btn);};function toggle(eventObject,btn){var display=pln.node.getProperty(_list,'display');var displaying=display=='none';void set(_list,'display',displaying?'block':'none');void set(btn,'innerHTML',displaying?'[minimize]':'[maximize]');};function addMessageToConsole($message){var item=pln.node.add(pln.node.create('div'),_list);void set(item,'borderBottom','1px solid #000000');void set(item,'padding','5px 0px');void set(item,'innerHTML',$message);};this.log=function($message,$type,$class,$method){if(_consoleEnabled){try{var message='';if(pln.isString($type)){var type_color="#000000";if($type=='Event')type_color="#228B22";if($type=='Error')type_color="#CC0000";if($type=='Core')type_color="#000000";if($type=='Instanciation')type_color="#0099CC";if($type=='Warning')type_color="#FF6905";if($type=='Report')type_color="#8B008B";message+="<span style='padding:2px 5px;margin-right:5px;background:"+type_color+";'>["+$type+"]</span>";}if(pln.isString($class))message+=$class+" ";if(pln.isString($method))message+='.'+$method+"()<br />";if(message.indexOf('<br />')!=-1)message+='&nbsp;&nbsp;&nbsp;->&nbsp;';message+=$message;void _messageCollection.push("::"+message);var new_message=_messageCollection[_messageCollection.length-1];_main_console?void addMessageToConsole(new_message):void top.nvi.logManager.log(new_message);}catch(error){return null;}}return null;};function initializeConsole(){if(_console)return;try{if(_main_console){void generateConsole();while(_messageCollection.length>0)void addMessageToConsole(_messageCollection.shift());void set(_console,'display','block');}else{while(_messageCollection.length>0)void top.nvi.logManager.log(_messageCollection.shift());}}catch(error){}};this.log('Nvi Log Manager initiated','Core');};var NSRM=new function(){var _ressources={};this.registerToGroup=function(groupId){var items=pln.argsToArray(arguments,1);var group=_ressources[groupId]||(_ressources[groupId]={});var i=0;while(items.length>0){group[i]=items.shift();i++;}};this.unregisterFromGroup=function(groupId){try{var items=pln.argsToArray(arguments,1);while(items.length>0){delete _ressources[groupId][items.shift()];}}catch(error){}};this.getRessources=function(groupId,exceptionObject){try{var collection=[];var group=_ressources[groupId];for(var i in group){var instance=NPM.getInstance(group[i]);var ressources=(instance)?instance.getSharedRessources():null;if(ressources){if((exceptionObject&&exceptionObject.id!=ressources.id)||!exceptionObject)void collection.push(ressources);}}return collection.length>0?collection:null;}catch(error){return null;}};this.getGroupByRessourceId=function(ressourceId){try{var collection=[];for(var i in _ressources){var group=_ressources[i];for(var j in group){if(group[j]==ressourceId){collection.push(i);break;}}}return collection;}catch(error){return null;}};};var NEM=new function(){var _eventCollection={};var _host=this;var _events={__updating:'updating',__ready:'ready',__success:'success',__failed:'failed',__opened:'opened',__closed:'closed',__changed:'change',__moved:'move',__resized:'resize',__rating:'rating',__dateSelected:'date_selected',__validationFailed:'validation_fail',__validationSucceeded:'validation_succeeded',__triggered:'triggered',__pageInitialized:'page_initialized'};this.events=_events;this.dispatchEvent=function(identifier,eventName,eventObject){if(eventName==_events.__ready)void displayWaitingPanel(identifier,false);if(eventName==_events.__updating)void displayWaitingPanel(identifier,true);void pln.events.dispatchEvent(identifier,eventName,eventObject);void NLM.log('Dispatching '+eventName+' event for the '+identifier+' element','Event','Nvi Event Manager','dispatchEvent');};function displayWaitingPanel($id,display){try{var instance=NPM.getInstance($id);var custom_waiting_panel=instance.getCustomWaitingPanel();if(!pln.isNull(custom_waiting_panel)){void pln.node.setProperty(custom_waiting_panel,'display',display?'block':'none');}else{var element=instance.getElement();var default_panel_id=_defaultWaitingPanelPrefixId+$id;var _get=pln.node.getProperty;var width=_get(element,'offsetWidth');var height=_get(element,'offsetHeight');var borderTop=_get(default_panel_id,'border-top-width')||0;var borderRight=_get(default_panel_id,'border-right-width')||0;var borderBottom=_get(default_panel_id,'border-bottom-width')||0;var borderleft=_get(default_panel_id,'border-left-width')||0;var paddingLeft=_get(default_panel_id,'padding-left')||0;var paddingRight=_get(default_panel_id,'padding-right')||0;var paddingBottom=_get(default_panel_id,'padding-bottom')||0;var paddingTop=_get(default_panel_id,'padding-top')||0;void pln.node.setProperty(default_panel_id,'width',(width-borderRight-borderleft-paddingLeft-paddingRight)+'px');void pln.node.setProperty(default_panel_id,'height',(height-borderTop-borderBottom-paddingTop-paddingBottom)+'px');}void pln.node.setProperty(default_panel_id,'display',display?'block':'none');void NLM.log((display?'Displaying':'Hidding')+' the default waiting panel for the '+$id+' panel','Event','Nvi Event Manager','displayWaitingPanel');}catch(error){}};this.addListener=function(identifier,eventName,scopeObject,eventHandler){var identifier=pln.events.sanitizeIdentifier(identifier);void pln.events.addListener.apply(null,pln.argsToArray(arguments));if(identifier!="all")void pln.events.addListener.apply(null,[identifier,eventName,null,ALLTrigger,eventName]);};this.removeListener=function(identifier,eventName,scopeObject,eventHandler){var identifier=pln.events.sanitizeIdentifier(identifier);void pln.events.removeListener(identifier,eventName,scopeObject,eventHandler);if(identifier!="all")void pln.events.removeListener(identifier,eventName,null,ALLTrigger);};function ALLTrigger(eventObject,eventName){void pln.events.dispatchEvent('all',eventName,eventObject);};void NLM.log('Nvi Event Manager initiated','Core');};var NACM=new function(){var _connectionCollection={};this.getConnection=function($id){try{if(!NPM.instanceExist($id)){void NLM.log('There is no panel instance with the selected id:'+$id,'Error','Nvi Ajax Connection Manager','getConnection');}else{var href=window.location.href;var hash=window.location.hash;var url=href.replace(pln.isEmpty(hash)?'#':hash,'');var instance=NPM.getInstance($id);if(pln.isObject(instance)){try{var overwritingUrl=instance.getCustomUpdateViewUrl();if(pln.isString(overwritingUrl))url=overwritingUrl;}catch(error){}}var connectionUrl=url+(url.indexOf('?')!=-1?'&':'?')+"render_only="+$id;var connectionObject=_connectionCollection[$id]||(_connectionCollection[$id]={inUsage:false,connection:null});if(!connectionObject.inUsage)connectionObject.connection=new pln.server.connection(connectionUrl,'POST');return connectionObject;}}catch(error){}};this.clearConnection=function($id){if(!NPM.instanceExist($id)){void NLM.log('There is no panel instance with the selected id:'+$id,'Error','Nvi Ajax Connection Manager','clearConnection');}else{var connectionObject=_connectionCollection[$id];if(pln.isObject(connectionObject)){void connectionObject.connection.abort();delete _connectionCollection[$id];}}};void NLM.log('Nvi Ajax Connection Manager initiated','Core');};var NMIM=new function(){var _collection={};this.find=function(id){try{return pln.isset(_collection[id]);}catch(error){return false;}};this.findByParentId=function(parentId){var collection=[];try{for(var i in _collection){var item=_collection[i];if(item.parentId==parentId)void collection.push(item.id);}}catch(error){}return collection;};this.add=function(item){if(!pln.isObject(item))return;_collection[item.id]=item;};this.remove=function(item){if(!pln.isObject(item))return;delete _collection[item.id];};this.clear=function(){_collection={};};};var NPM=new function(){var _instanceCollection={};var _strictMode=false;var _host=this;function copyDefaultWaitingPanel(id){var new_id=_defaultWaitingPanelPrefixId+id;var waiting_panel=pln.node.getById(new_id);if(pln.isHtmlElement(waiting_panel)){void NLM.log('There is already a default waiting panel for the '+id+' panel','Report','Nvi Panel Manager','copyDefaultWaitingPanel');}else{var target=pln.node.getById(_defaultWaitingPanelId);if(!pln.isHtmlElement(target)){void NLM.log('There is no default waiting panel rendered in the current html page','Warning','Nvi Panel Manager','copyDefaultWaitingPanel');}else{var clone=pln.node.clone(target);var panel=pln.node.getById(id);void pln.node.setProperty(clone,'id',new_id);return pln.node.add(clone,pln.node.getParent(1,panel),panel,false);}}return null;};function cleanupId(id){try{return id.replace(/\s+/gi,'');}catch(error){return null;}};this.getInstance=function(id){try{id=cleanupId(id);var instance=this.instanceExist(id)?_instanceCollection[id]:null;if(pln.isNull(instance)){return window.location.href!=parent.location.href?parent.nvi.panelManager.getInstance(id):null;}else{return instance;}}catch(error){return null;}};this.instanceExist=function(id){try{return pln.isObject(_instanceCollection[cleanupId(id)]);}catch(error){return null;}};this.deleteInstance=function(id){id=cleanupId(id);var instance=this.getInstance(id);try{void instance.deleteInstance();delete _instanceCollection[id];}catch(error){}};this.createInstance=function(id,$constructor,$virtual){id=cleanupId(id);var virtual=$virtual||false;var constructor_name=pln.getFunctionName($constructor);if(this.instanceExist(id)){void NLM.log('There is already a panel instance with the selected id:'+id+' of type '+pln.getFunctionName(constructor_name)+'. Id must be unique!The first instance with the selected id will be returned','Warning','Nvi Panel Manager','createInstance');var instance=this.getInstance(id);try{if(instance.isContentRemovalEnabled()){if(constructor_name=='class_nvi_tooltip_panel'||constructor_name=='class_nvi_modal_panel'){void instance.removeAllContent(true);}}}catch(error){}return instance;}else{if(_strictMode&&!pln.isHtmlElement(pln.node.getById(id))&&!NMIM.find(id)){if($constructor==class_nvi_tooltip_panel||$constructor==class_nvi_modal_panel){NMIM.add({id:id,parentId:null});}else{void NLM.log('The html element linked to tho this class instance cannot be found in the current html document.(id='+id+').','Error','Nvi Panel Manager','createInstance');return;}}var instance=pln.compiler.createClass($constructor,id);void NLM.log('Instanciation of '+id+'('+instance+')','Instanciation');if(!pln.isObject(instance)){void NLM.log('Unable to instanciate the '+id+' panel of type '+constructor_name,'Error','Nvi Panel Manager','createInstance');return;}else{if(!virtual){var waiting=copyDefaultWaitingPanel(id);if(!pln.isHtmlElement(waiting)){void NLM.log('Unable to copy the default waiting panel for the '+id+' panel','Warning','Nvi Panel Manager','createInstance');}}return(_instanceCollection[id]=instance);}}};this.updateView=function(id,$data){try{var instance=this.getInstance(id);if(!pln.isObject(instance)){void NLM.log('The instance is not a valid instance of a panel','Error','Nvi Panel Manager','updateView');return;}}catch(error){return;}var connectionObject=NACM.getConnection(id);if(connectionObject.inUsage)return;connectionObject.inUsage=true;connectionObject.connection.onLoad=function(success,serverData,message){connectionObject.inUsage=false;if(!success){void NLM.log('Ajax connection failed,error message='+message,'Error','Nvi Panel Manager','updateView');return;}else{if(!pln.isset(serverData)){void NLM.log('The returned serverData is null(Panel id:'+id+')','Error','Nvi Panel Manager','updateView');return;}try{var dataObject=pln.decode(serverData);if(!pln.isset(dataObject)){void NLM.log('The dataObject is null(Panel id:'+id+')','Error','Nvi Panel Manager','updateView');return;}}catch(error){void NLM.log('The returned serverData must be a json string(Panel id:'+id+')','Error','Nvi Panel Manager','updateView');return;}if(pln.isString(dataObject.dataHtml)){dataObject.dataHtml=dataObject.dataHtml.replace(/\/\*(\s|.)*?\*\//gi,'').replace(/(^|\s+)\/\/.*/gi,'');dataObject.dataHtml=dataObject.dataHtml.replace(/<!--(\s|.)*?-->/gi,'');dataObject.dataHtml=dataObject.dataHtml.replace(/<link(\s|\w)*[^>]*>/gi,'');}}var extractedObject=pln.extractScriptFromSource(dataObject.dataHtml,true);var source=extractedObject.source;var scripts=extractedObject.scripts;var startRegexp=/^\s*<(\w*)\b[^<]*>/;void source.match(startRegexp);var name=RegExp.$1;try{var endRegexp=new RegExp("<\\s?\/\\s?"+name+">\\s*$","i");if(!pln.isNull(source.match(endRegexp))){source=source.replace(startRegexp,'');source=source.replace(endRegexp,'');}}catch(error){}try{void pln.node.setProperty(id,'innerHTML',source);}catch(error){return;}void pln.node.setProperty(id,'display','');void NEM.dispatchEvent(id,NEM.events.__ready);var instance=_host.getInstance(id);void pln.dispatch(instance,instance.onUpdatedView,success,dataObject,message);void pln.evalScriptCollection(scripts);};void NEM.dispatchEvent(id,NEM.events.__updating);void pln.node.setProperty(id,'display','none');$data=pln.isset($data)?$data:null;var groups=NSRM.getGroupByRessourceId(id);var sharedData=[];while(groups.length>0){var ressources=NSRM.getRessources(groups.shift(),$data);if(!pln.isNull(ressources))sharedData=sharedData.concat(ressources);}void connectionObject.connection.sendAndLoad(pln.encode({data:$data,sharedData:(sharedData.length==0?null:sharedData)}));};this.cancelUpdateView=function(instance){try{var id=instance.getId();}catch(error){void NLM.log('The instance is not a valid instance of a panel','Error','Nvi Panel Manager','cancelUpdateView');return;}void NACM.clearConnection(id);void pln.node.setProperty(id,'display','');void NEM.dispatchEvent(id,NEM.events.__ready);};void NLM.log('Nvi Panel Manager initiated','Core');};var NIS=new function(){var _host=this;var _suffix='_on';var _imagesCollection=[];var _regexpCollection={Extension:/\.\w{3,4}$/i,RollOver:/\brollover\b/i,Activate:/\bactivate\b/i};function initialize(){var collection=document.images;for(var i=0;i<collection.length;i++){var img=collection[i];var name=img.className;if(pln.isNull(name.match(_regexpCollection.RollOver)))continue;var imgObject=createImgObject(img);void preload(imgObject.over);if(!pln.isNull(name.match(_regexpCollection.Activate))){void changeSrc(null,imgObject,'over');continue;}void pln.events.addListener(imgObject.img,'mouseover',null,changeSrc,imgObject,'over');void pln.events.addListener(imgObject.img,'mouseout',null,changeSrc,imgObject,'normal');}};function createImgObject(img){var uri=img.src;var imgObject=imgObjectExist(uri);if(imgObject.exist)return imgObject.imgObject;var extension=uri.match(_regexpCollection.Extension);var path=uri.replace(_regexpCollection.Extension,'');path=path.replace(_suffix,'');imgObject={img:img,normal:uri,over:path+_suffix+extension};_imagesCollection.push(imgObject);return imgObject;};function imgObjectExist(uri){for(var i=0;i<_imagesCollection.length;i++){if(_imagesCollection[i].normal==uri){return{exist:true,imgObject:_imagesCollection[i]};}}return{exist:false,imgObject:null};};function preload(uri){var img=new Image();img.src=uri;};function changeSrc(eventObject,imgObject,state){try{imgObject.img.src=imgObject[state];}catch(error){}};void pln.events.addListener(document,'__documentReady',null,initialize);};this.logManager=NLM;this.eventManager=NEM;this.panelManager=NPM;this.sharedRessourcesManager=NSRM;this.memoryIdManager=NMIM;this.getDefaultWaitingPanelPrefixId=function(){return _defaultWaitingPanelPrefixId;};}}}