if(typeof RED=="undefined"||!RED){var RED={}}RED.VERSION="1.0.0";RED.globals={};RED.server={};RED.env={modules:{core:true}};(function(){var MissingLibraries="";if(null==window.YAHOO){MissingLibraries+="YUI: YAHOO, "}else{if(null==YAHOO.env.modules.dom){MissingLibraries+="YUI: DOM, "}if(null==YAHOO.env.modules.event){MissingLibraries+="YUI: Event, "}}if(MissingLibraries!=""){alert("The RED namespace requires the following client side libraries:\n"+MissingLibraries.substr(0,MissingLibraries.length-2)+".\nPlease add them to your page's client scripts.")}var _Y=YAHOO;var _LANG=YAHOO.lang;var _DOM=YAHOO.util.Dom;var _EVENT=YAHOO.util.Event;RED.lang={namespace:function(namespacePath){var outputNamespace,namespaces,namespaceIndex;outputNamespace=window;if(null!=namespacePath&&_LANG.isString(namespacePath)){namespaces=namespacePath.split(".");for(namespaceIndex=0;namespaceIndex<namespaces.length;namespaceIndex++){outputNamespace[namespaces[namespaceIndex]]=outputNamespace[namespaces[namespaceIndex]]||{};outputNamespace=outputNamespace[namespaces[namespaceIndex]]}}return outputNamespace},getFunctionByName:function(functionName){return eval("(typeof "+functionName+" == 'undefined' ? null : eval('"+functionName+"'));")},loadClientScript:function(scriptPath,targetDocument){if(null==targetDocument){targetDocument=document}var scriptTag=targetDocument.createElement("script");scriptTag.setAttribute("type","text/javascript");scriptTag.setAttribute("language","javascript");scriptTag.setAttribute("src",scriptPath);targetDocument.getElementsByTagName("head")[0].appendChild(scriptTag)},loadStyleSheet:function(sheetPath,targetDocument){targetDocument=targetDocument||document;if(null!=document.createStyleSheet){document.createStyleSheet(sheetPath)}else{var linkTag=targetDocument.createElement("link");linkTag.setAttribute("type","text/css");linkTag.setAttribute("rel","stylesheet");linkTag.setAttribute("href",sheetPath);targetDocument.getElementsByTagName("head")[0].appendChild(linkTag)}},setTimeout:function(callback,delay,scopeObject){var closureCallback=function(){callback.call(scopeObject==null?window:scopeObject)};window.setTimeout(closureCallback,delay)}};RED.lang.namespace("RED.ui");RED.ui.appMessage=(function(){var element=null;function createInternalElement(cssClass){var internalElement;internalElement=document.createElement("div");_DOM.addClass(internalElement,cssClass);element.appendChild(internalElement);return internalElement}function showMessage(text,delay,cssClass){var textElement;if(element!=null){hideMessage()}element=document.createElement("div");_DOM.addClass(element,"app-message".concat(" m-",cssClass));createInternalElement("top");textElement=createInternalElement("text");textElement.innerHTML=text;createInternalElement("bottom");document.body.appendChild(element);_DOM.setStyle(element,"left",((_DOM.getClientWidth()-element.offsetWidth)/2)+"px");_DOM.setStyle(element,"visibility","visible");if(delay!=null){window.setTimeout(function(){hideMessage()},delay)}}function hideMessage(){if(element!=null){document.body.removeChild(element);element=null}}return{show:function(text,delay){showMessage(text,delay,"default")},showSuccess:function(text,delay){showMessage(text,delay,"success")},showWarning:function(text,delay){showMessage(text,delay,"warning")},showError:function(text,delay){showMessage(text,delay,"error")},hide:function(){hideMessage()}}})();RED.lang.namespace("RED.util");RED.util.Collection=function(){var privateMembers={instance:this};var itemIdSeed=0;var idIndexMap={};privateMembers.rebuildIdIndexMap=function(){var itemIndex;idIndexMap={};for(itemIndex=0;itemIndex<this.instance.items.length;itemIndex++){idIndexMap[this.instance.items[itemIndex].getItemId()]=itemIndex}};this.items=[];this.clear=function(){itemIdSeed=0;idIndexMap={};this.items=[]};this.getItemIndexById=function(itemId){return(idIndexMap[itemId]?idIndexMap[itemId]:-1)};this.getItemById=function(itemId){return(idIndexMap[itemId]!=null?this.items[idIndexMap[itemId]]:null)};this.exist=function(itemId){return(idIndexMap[itemId]!=null)};this.add=function(item,itemId){if(!itemId||itemId==""){itemId="";itemId=itemId.concat(itemIdSeed++,new Date().getTime())}if(idIndexMap[itemId]){throw new Error("There is already an item with this ID in the collection")}idIndexMap[itemId]=this.items.length;this.items[this.items.length]={getItemId:function(){return itemId},item:item};return this.items[this.items.length-1]};this.remove=function(itemId){if(null!=idIndexMap[itemId]){this.items.splice(idIndexMap[itemId],1);privateMembers.rebuildIdIndexMap()}};this.sort=function(field,descending){if(this.items.length>0&&this.items[0].item[field]!=null){this.items.sort(function(itemA,itemB){return(itemA.item[field]<itemB.item[field]?-1:0)});if(descending){this.items.reverse()}privateMembers.rebuildIdIndexMap()}}}})();
