
Ext.Frs.RowLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,scrolls:false,onLayout:function(ct,target){Ext.Frs.RowLayout.superclass.onLayout.call(this,ct,target);if(!this.container.collapsed){var sx=this.scrolls?Ext.ScrollSize():0;var s=target.getStyleSize();var il=ct.items.items;var ilv=il.length;for(var i=0;i<ilv;i++){il[i].setSize(s.width-sx);}}}});Ext.Container.LAYOUTS['row']=Ext.Frs.RowLayout; 

Ext.ns("SaaS.WebUI");SaaS.WebUI.Session=function(){this.AppName="??";this.IsSuperAdmin=false;this.ImageManagerUseDB=true;this.AppDisplayName="";this.connected=false;this.authorized=false;this.role=null;this.user=null;this.userData=null;this.cache=null;this.AfterLogout=false;this.TimeZoneOffset=(new Date()).getTimezoneOffset();this.UI={Workspaces:[],WorkspaceTemplates:{}};this.StartPageContent='AppContent';this.Controller=null;this.IPCMKey1=null;this.IPCMKey2=null;this.IsMultitenant=null;this.CsrfToken=null;};Ext.Frs.SessionController=function(){this.ServiceName='Session';this.bStateLoaded=false;this.iTimeout=60000;this.DataService=Loader.GetServiceInstance(this.ServiceName,this.RequestOK,this.RequestFailed,this);this.addEvents('beforeLoadingStartPage','message','shutdown','connectionlost');this.addEvents('login','loginfailed','logout','notauthorized','authorize','norole','roleassign','expired','exception','status');this.tickerTask={run:this.DataService.CheckSession,scope:this.DataService,interval:this.iTimeout,args:[this.tickerHandler.createDelegate(this),null,this]};this.on('login',this.doLogin,this);this.on('logout',this.doLogout,this);this.on('exception',this.processException,this);};Ext.extend(Ext.Frs.SessionController,Ext.util.Observable,{AssertData:function(){return this.Data!=null;},InitSessionState:function(callback){if(callback){var that=this;var originalCallback=callback;callback=function(){that.RequestOK.apply(that,arguments);originalCallback();};}
this.DataService.InitializeSession(callback);},CheckSessionState:function(){if(this.DataService)this.DataService.CheckSession();},Authorize:function(sLogin,sPassword,sAppId){this.DataService.Authorize(sLogin,sPassword,sAppId,Session.TimeZoneOffset);},ChangePassword:function(sOld,sNew,sConfirm){this.DataService.ChangePassword(sOld,sNew,sConfirm);},Logout:function(sLogin,sPassword,failedCallback){this.DataService.Logout(this.logoutHandler,failedCallback);},TryNTLM:function(sAppId){document.location.href=ApplicationPath+"?NTLM=true&AppId="+sAppId;},StartSessionTicker:function(){Ext.TaskMgr.start(this.tickerTask);},StopSessionTicker:function(){Ext.TaskMgr.stop(this.tickerTask);},tickerHandler:function(oData,oContext,sMethod){Session.connected=true;oContext.fireEvent('status',oData,sMethod);},logoutHandler:function logoutHandler(oData,oContext,sMethod){oContext.fireEvent('logout',oData,sMethod);},RequestOK:function RequestOK(result,userContext,methodName){if(!result)return;Session.connected=true;Session.authorized=result.Authorized||false;Session.AppName=result.AppName||'';Session.IsSuperAdmin=result.IsSuperAdmin;Session.ImageManagerUseDB=result.ImageManagerUseDB;Session.buildVersion=result.BuildVersion;if(result.IsFRSAdmin){Session.IsFRSAdmin=result.IsFRSAdmin;}
if(!Session.authorized){this.fireEvent('notauthorized',result);return;}
this.fireEvent('authorize',result);if(result.UserData)this.assignUserData(result.UserData,true);if(!result.RoleAssigned){this.fireEvent('norole',result);return;}
Session.CsrfToken=result.SessionCsrfToken;this.fireEvent('roleassign',result);this.fireEvent('login',result);if(result.RoleAssigned){if(!Session.userData)
this.DataService.GetUserData(Session.TimeZoneOffset,this.assignUserData.createDelegate(this),null,this);else
this.fireEvent('userdata',Session.user,Session.userData);}
if(result.IPCMKey1){Session.IPCMKey1=result.IPCMKey1;}
if(result.IPCMKey2){Session.IPCMKey2=result.IPCMKey2;}
Session.IsMultitenant=result.IsMultitenant;},assignUserData:function(userData,skipevent){Session.userData=userData;if(skipevent!==true)this.fireEvent('userdata',Session.user,Session.userData);},doLogin:function doLogin(oData){Session.role=oData.ActiveRole;Session.user=oData.UserName;},doLogout:function doLogout(oData){Session.role="";Session.user="";Session.AppName="";Session.AppDisplayName="";Session.authorized=false;Session.AfterLogout=true;Session.userData=null;Ext.util.Cookies.clear('saas-lastDBSelected');},processException:function processException(exception,method){switch(method){case"Authorize":this.fireEvent('loginfailed',exception.get_message(),exception.get_stackTrace());break;default:Ext.MessageBox.show({title:'Error',height:100,msg:exception._message,buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR});break;}},RequestFailed:function RequestFailed(exception,userContext,methodName){Loader.HideProgress();if(Ext.Frs.Loader.SilentErrorHandler(exception)){return;}
Session.Controller.fireEvent('exception',exception,methodName);}});Ext.override(SaaS.WebUI.Session,{Rights:{NotSet:0,View:1,Add:2,Edit:4,Delete:8,True:16,False:32,EditInFinalState:64,SwitchBackToRecallState:128,LinkAdHocInFinalState:256},checkRights:function checkRights(feature,rights){if(this.userData&&this.userData.SystemAccessRights)
{var i=0+(this.userData.SystemAccessRights[""+feature]||0);return i&(0+rights);}
return false;},isActive:function(){var value=Ext.util.Cookies.get('SA');return value=='1';}});var Session=new SaaS.WebUI.Session(); 

Ext.Frs.IFrameHandler=function(){var args=Array.prototype.slice.call(arguments,0),el=Ext.get(args[0]),config=args[0];if(el&&el.dom&&el.dom.tagName=='IFRAME')
{config=args[1]||{};}else
{config=args[0]||args[1]||{};el=config.autoCreate?Ext.get(Ext.DomHelper.append(document.body,Ext.apply({tag:'iframe',src:(Ext.isIE&&Ext.isSecure)?Ext.SSL_SECURE_URL:''},config.autoCreate))):null;}
if(!el||el.dom.tagName!='IFRAME')return el;!!el.dom.name.length||(el.dom.name=el.dom.id);this.addEvents({"domready":true,"documentloaded":true});if(config.listeners)
{this.listeners=config.listeners;Ext.Frs.IFrameHandler.superclass.constructor.call(this);}
Ext.apply(el,this);el.addClass('x-managed-iframe');el.loadMask=Ext.apply({msg:'Loading..',msgCls:'x-mask-loading',maskEl:null,enabled:!!config.loadMask},config.loadMask);var h=Ext.isIE?'onreadystatechange':'onload';el.dom[h]=el.dom[h]?el.dom[h].createSequence(el.loadHandler,el):el.loadHandler.createDelegate(el);if(config.src){el.setSrc(config.src,false,true);}else{el.src=el.dom.src||null;var content=config.html||config.content||false;if(content){el.update(content);}}
return el;};Ext.extend(Ext.Frs.IFrameHandler,Ext.util.Observable,{setSrc:function(url,discardUrl,stripHistory){var src=url||this.src||(Ext.isIE&&Ext.isSecure?Ext.SSL_SECURE_URL:'');this.showMask();this._windowContext=null;this.stripHistory=stripHistory?true:false;(function(){var s=typeof src=='function'?src()||'':src;if(this.stripHistory)
this.dom.contentWindow.location.replace(s);else{if(Ext.isOpera)this.dom.src="";this.dom.src=s;}}).defer(100,this);if(discardUrl!==true){this.src=src;}},scriptRE:/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/gi,update:function(content,loadScripts,callback){loadScripts=loadScripts||this.getUpdateManager().loadScripts||false;this._windowContext=false;content=Ext.DomHelper.markup(content||'');var doc=this.getDocument();if(doc){this._inUpdate=true;this.showMask();doc.open();doc.write(loadScripts===true?content:content.replace(this.scriptRE,""));doc.write('<script type="text/javascript">(function(){'+"var MSIE/*@cc_on =1@*/;"+"parent.Ext.get('"+this.dom.id+"')._windowContext=MSIE?this:{eval:function(s){return eval(s);}}"+"})();<\/script>");doc.close();if(!!content.length){this.checkDOM(false,callback);}else if(callback){callback();}}
return this;},_windowContext:null,getDocument:function(){return this.getWindow().document;},getWindow:function(){var dom=this.dom;return dom?dom.contentWindow||window.frames[dom.name]:window;},print:function(){try{var win=this.getWindow();if(Ext.isIE){win.focus();}
win.print();}catch(ex){throw'print exception:  '+(ex.description||ex);}},destroy:function(){this.removeAllListeners();if(this.dom){this.dom.onreadystatechange=null;this.dom.onload=null;if(this.dom.src){this.dom.src=BlankImage;}
Ext.removeNode(this.dom);}
this._windowContext=null;Ext.apply(this.loadMask,{masker:null,maskEl:null});},execScript:function(block){if(this._windowContext){return this._windowContext.eval(block);}else{throw'execScript:no script context';}},loadMask:{msg:'Loading..',msgCls:'x-mask-loading',maskEl:null,enabled:false},showMask:function(msg,msgCls,forced){if(this.loadMask&&(this.loadMask.enabled||forced)){var lmask=this.loadMask;lmask.masker||(lmask.masker=Ext.get(lmask.maskEl||this.dom.parentNode||this.wrap({tag:'div',style:{position:'relative'}})));lmask.masker.mask(msg||lmask.msg,msgCls||lmask.msgCls);}},hideMask:function(forced){var tlm=this.loadMask;if(tlm&&tlm.masker&&(tlm.enabled||forced)&&(forced||!!this.dom.src.length||this._inUpdate)){tlm.masker.unmask();}},loadHandler:function(e){var rstatus=this.dom.readyState||e.type;switch(rstatus){case'loading':this.showMask();break;case'load':case'complete':this.fireEvent("documentloaded",this);this.hideMask();this._inUpdate=false;break;default:}},checkDOM:function(win,callback){var n=0,win=win||this.getWindow(),manager=this;var t=function(){var domReady=false;domReady=(win.document&&typeof win.document.getElementsByTagName!='undefined'&&(win.document.getElementsByTagName('body')[0]!=null||win.document.body!=null));if(n++<70&&!domReady){t.defer(50);return;}
if(callback)callback();manager.fireEvent("domready",manager);};t();}});Ext.Frs.IFramePanel=Ext.extend(Ext.Panel,{bodyCfg:{tag:'div',cls:'x-panel-body',children:[{tag:'iframe',frameBorder:0,cls:'x-managed-iframe',style:{width:'100%',height:'100%'},html:'Inline frames are not enabled\/supported by your browser.'}]},defaultSrc:null,iframeStyle:{overflow:'auto'},loadMask:false,animCollapse:false,autoScroll:false,closable:false,initComponent:function(){Ext.Frs.IFramePanel.superclass.initComponent.call(this);this.addEvents({documentloaded:true,domready:true});if(this.defaultSrc){this.on('render',this.setSrc.createDelegate(this,[this.defaultSrc,false,true],0),this,{single:true});}},beforeDestroy:function()
{if(this.rendered)
{if(this.tools)
{for(var k in this.tools)
{Ext.destroy(this.tools[k]);}}
if(this.header&&this.headerAsText){var s;if(s=this.header.child('span'))s.remove();this.header.update('');}
Ext.each(['iframe','header','topToolbar','bottomToolbar','footer','loadMask','body','bwrap'],function(elName){if(this[elName]){if(typeof this[elName].destroy=='function'){this[elName].destroy();}
else
{Ext.destroy(this[elName]);}
this[elName]=null;delete this[elName];}},this);}
Ext.Frs.IFramePanel.superclass.beforeDestroy.call(this);},onDestroy:function()
{Ext.Panel.superclass.onDestroy.call(this);},onRender:function(ct,position)
{Ext.Frs.IFramePanel.superclass.onRender.call(this,ct,position);if(this.iframe=this.body.child('iframe.x-managed-iframe'))
{if(this.loadMask)
{this.loadMask=Ext.apply({enabled:true,maskEl:this.body},this.loadMask);}
this.iframe=new Ext.Frs.IFrameHandler(this.iframe,{loadMask:this.loadMask});this.loadMask=this.iframe.loadMask;this.iframe.ownerCt=this;this.relayEvents(this.iframe,["documentloaded","domready"]);if(this.iframeStyle)
{this.iframe.applyStyles(this.iframeStyle);}
this.getUpdater().showLoadIndicator=!this.loadMask.enabled;}},afterRender:function(container)
{var html=this.html;delete this.html;Ext.Frs.IFramePanel.superclass.afterRender.call(this);if(html&&this.iframe){this.iframe.update(typeof html=='object'?Ext.DomHelper.markup(html):html);}},setSrc:function(url,discardUrl,stripHistory)
{var src=url||this.defaultSrc||(Ext.isIE&&Ext.isSecure?Ext.SSL_SECURE_URL:'');if(this.rendered&&this.iframe)
{this.iframe.setSrc(src,discardUrl,stripHistory);}
if(discardUrl!==true){this.defaultSrc=src;}
this.saveState();},getState:function()
{return Ext.apply(Ext.Frs.IFramePanel.superclass.getState.call(this)||{},{defaultSrc:(typeof this.defaultSrc=='function')?this.defaultSrc():this.defaultSrc});},getUpdater:function(){return this.rendered?(this.iframe||this.body).getUpdater():false;},load:function(loadCfg)
{var um;if(um=this.getUpdater()){if(loadCfg&&loadCfg.renderer){um.setRenderer(loadCfg.renderer);delete loadCfg.renderer;}
um.update.apply(um,arguments);}
return this;},doAutoLoad:function(){this.load(typeof this.autoLoad=='object'?this.autoLoad:{url:this.autoLoad});},switchTheme:function(isChangeMode){var win=this.iframe.getWindow();var doc=win.document;if(win&&doc&&win.CssIds){var cssIds=Ext.util.JSON.decode(win.CssIds);Ext.Frs.applyTheme(doc,cssIds,true,isChangeMode);var df=win.Workspace;if(df&&df.reload)
df.reload();}}});Ext.reg('iframepanel',Ext.Frs.IFramePanel); 

Ext.Frs.TreeDataCache=Ext.extend(Ext.tree.TreeLoader,{data:[],NodeStyle:{},history:{deleted:[],added:[],updated:[]},loadData:function(data){this.data=data;this.history={deleted:[],added:[],updated:[]};},getData:function(){return this.data;},setFilter:function(ff){this.dataFilter=ff;},dataFilter:function(o){return true;},findNode:function(ff,data){if(!data)var data=this.data;for(var idx=0,len=data.length;idx<len;++idx){if(!data[idx])continue;if((typeof(ff)!="function"&&data[idx].Id==""+ff)||(typeof(ff)=="function"&&ff(data[idx])))
return data[idx];if(!data[idx].Items)continue;var r=this.findNode(ff,data[idx].Items);if(r)return r;}
return null;},moveNode:function(sNodeId,sToGroupId,oUpdateData){var tgnode=this.findNode(function(o){return o.GroupId==sToGroupId;});if(!(tgnode&&tgnode.Items))return;var node=this.removeNode(function(o){return o.ActionId==sNodeId;});if(!node)return;if(oUpdateData)Ext.apply(node,oUpdateData);tgnode.Items.push(node);node.updated=true;delete tgnode,node;},addNode:function(oNewNode){var parent=oNewNode.GroupId?this.findNode(function(o){return o.GroupId==oNewNode.GroupId}).Items:this.data;if(Ext.isArray(parent)){oNewNode.newnode=true;parent.push(oNewNode);}},updateNode:function(sNodeId,oUpdateData){var node=this.findNode(function(o){return o.ActionId==sNodeId});if(node)Ext.apply(node,oUpdateData);node.updated=true;},removeNode:function(ff){for(var idx=0,len=this.data.length;idx<len;++idx){if(!this.data[idx])continue;if((typeof(ff)!="function"&&this.data[idx].Id==""+ff)||(typeof(ff)=="function"&&ff(this.data[idx]))){var item=this.data[idx];this.data=this.data.without(this.data[idx]);return item;}
var s=this.data[idx].Items;if(s&&s.length>0){for(var idy=0,len2=s.length;idy<len2;++idy){if((typeof(ff)!="function"&&s[idy].Id==""+ff)||(typeof(ff)=="function"&&ff(s[idy]))){var item=s[idy];this.data[idx].Items=s.without(s[idy]);return item;}}}}
return null;},getGroupsList:function(ff){var result=[];for(var idx=0,len=this.data.length;idx<len;++idx){if(!this.data[idx])
continue;if(typeof(ff)!="function"||(typeof(ff)=="function"&&ff(this.data[idx])))
result.push(this.data[idx]);}
return result;},getItemsList:function(ff){var result=[];for(var idx=0,len=this.data.length;idx<len;++idx){if(!this.data[idx].Items||this.data[idx].Items.length==0)
continue;var items=this.data[idx].Items;for(var idy=0,len2=items.length;idy<len2;++idy)
if(typeof(ff)!="function"||(typeof(ff)=="function"&&ff(items[idy])))
result.push(items[idy]);}
return result;},load:function(node,callback){if(this.clearOnLoad){while(node.firstChild){node.removeChild(node.firstChild);}}
if(this.doPreload(node)){if(typeof callback=="function"){callback();}}else if(this.dataUrl||this.url||this.data){this.requestData(node,callback);}},requestData:function(node,callback){if(this.fireEvent("beforeload",this,node,callback)!==false){var o=node.attributes.Items?node.attributes.Items:this.data
node.beginUpdate();for(var i=0,len=o.length;i<len;i++){var oi=o[i];if(!oi)continue;if(!this.dataFilter(oi))continue;if(oi.NodeStyle&&this.NodeStyle[oi.NodeStyle])
Ext.applyIf(oi,this.NodeStyle[oi.NodeStyle]);if(this.fireEvent("beforecreate",oi)!==false)
node.appendChild(this.createNode(oi));}
node.endUpdate();if(typeof callback=="function")callback(this,node);this.fireEvent("load",this,node,this.data);}
else{if(typeof callback=="function")callback()}}}); 

Ext.Frs.TreeNodeUI=Ext.extend(Ext.tree.TreeNodeUI,{focus:Ext.emptyFn,renderElements:function(n,a,targetNode,bulkRender){this.indentMarkup=n.parentNode?n.parentNode.ui.getChildIndent():'';var t=n.getOwnerTree();var bw=t.borderWidth;var buf=['<li class="x-tree-node"><div ext:tree-node-id="',n.id,'" class="x-tree-node-el x-tree-node-leaf ',a.cls,'">','<div class="x-tree-col" style="width:',t.body.getWidth()-bw*2,'px;">','<span class="x-tree-node-indent">',this.indentMarkup,"</span>",'<img src="',this.emptyIcon,'" class="x-tree-ec-icon x-tree-elbow">','<img src="',a.icon||this.emptyIcon,'" class="x-tree-node-icon',(a.icon?" x-tree-node-inline-icon":""),(a.iconCls?" "+a.iconCls:"action-item"),'" unselectable="on">','<a hidefocus="on" class="x-tree-node-anchor" href="',a.href?a.href:"#",'" tabIndex="1" ',a.hrefTarget?' target="'+a.hrefTarget+'"':"",'>','<span unselectable="on">',a.Name,"</span></a>","</div>"];buf.push('<div class="x-clear"></div></div>','<ul class="x-tree-node-ct" style="display:none;"></ul>',"</li>");if(bulkRender!==true&&n.nextSibling&&n.nextSibling.ui.getEl()){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",n.nextSibling.ui.getEl(),buf.join(""));}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",targetNode,buf.join(""));}
this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var cs=this.elNode.firstChild.childNodes;this.indentNode=cs[0];this.ecNode=cs[1];this.iconNode=cs[2];this.anchor=cs[3];this.textNode=cs[3].firstChild;if((n.attributes.emptyNodeAsLeaf||n.attributes.emptyNodeAsLeaf==undefined)&&(!n.attributes.Items||n.attributes.Items.length==0)){n.leaf=true;}}}); 

Ext.Frs.WSProvider=function(config){Ext.Frs.WSProvider.superclass.constructor.call(this);Ext.apply(this,config);this.DataService=new Ext.Frs.ServiceAdapter(UrlPrefix+"Services/StateManager.asmx");this.state={};};Ext.extend(Ext.Frs.WSProvider,Ext.state.Provider,{initState:function(name){if(!this.state[name]){var jsonParams=Ext.encode(Loader.addCsrfParameterValue({name:name}));var json=this.callSync(this.DataService.ServiceUrl+"/LoadComponentState",jsonParams);if(!json)
return;var o=eval("("+json+")");if(o.d)o=o.d;if(o.__type=="SaaS.WebUI.Services.JsonContainer"){o=eval("("+o.JSON+")");}
this.readStateOptions(o);}},get:function(name,defaultValue){var jsonValue=Ext.Frs.WSProvider.superclass.get.call(this,name,defaultValue);return Ext.decode(jsonValue);},set:function(name,value){if(typeof value=="undefined"){value=null;}
value=Ext.encode(value);if(this.state){var oldvalue=this.state[name];if(oldvalue!=value){this.saveStateOption(name,value);Ext.Frs.WSProvider.superclass.set.call(this,name,value);}}},clear:function(name){this.saveStateOption(name,null);Ext.Frs.WSProvider.superclass.clear.call(this,name);},readStateOptions:function(d){Ext.apply(this.state,d);},saveStateOption:function(name,value){this.DataService.call("SaveComponentState",{name:name,jsonValue:value},null,null);},callSync:function(url,postData){var xmlhttp=null;if(window.XMLHttpRequest){xmlhttp=new XMLHttpRequest();}
else if(window.ActiveXObject){if(new ActiveXObject("Microsoft.XMLHTTP")){xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
else{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");}}
url=url+"?rnd="+Math.random();xmlhttp.open("POST",url,false);xmlhttp.setRequestHeader("Content-Type","application/json; charset=utf-8");xmlhttp.send(postData);if(xmlhttp.status.toString().substr(0,1)=="5"){if(Ext.Frs.Loader.SilentErrorHandler({_message:xmlhttp.responseText,_statusCode:xmlhttp.status}))
return null;}
var responseText=xmlhttp.responseText;return responseText;}});Ext.override(Ext.Component,{stateful:false});Ext.override(Ext.Component,{saveState:function(){if(Ext.state.Manager&&this.stateful!==false){var state=this.getState();if(this.fireEvent('beforestatesave',this,state)!==false){Ext.state.Manager.set(this.stateId||this.id,state);this.fireEvent('statesave',this,state);}}},stateful:false}); 

Ext.ns("SaaS.WebUI");SaaS.WebUI.ChangeLanguageDlg=Ext.extend(Ext.Window,{title:'Select Locale',closeAction:'hide',bodyStyle:'background:white;overflow-y:hidden;',width:200,height:300,modal:true,layout:'fit',initComponent:function(){this.items=[this.view=new Ext.list.ListView({cls:'languages-list',store:new Ext.data.SimpleStore({fields:[{name:'id',mapping:0},{name:'text',mapping:1}],data:[],sortInfo:{field:"text",direction:"ASC"}}),columns:[{dataIndex:'text'}],multiSelect:false,singleSelect:true,emptyText:'No languages to display',hideHeaders:true,listeners:{dblclick:{fn:this.onOKBtnClick.createDelegate(this),scope:this}}})];this.view.store.on('load',this.onDataLoaded,this);this.view.setHeight(100);SaaS.WebUI.ChangeLanguageDlg.superclass.initComponent.call(this);this.OKBtn=this.addButton({text:'OK',handler:this.onOKBtnClick.createDelegate(this)});this.CancelBtn=this.addButton({text:'Cancel',handler:this.onCancelBtnClick.createDelegate(this)});this.DataService=Loader.GetServiceInstance(SaaS.WebUI.Services.Session,null,null,this);this.on('render',this.checkHeight,this,{single:true});},checkHeight:function(){var bodyHeight=Ext.getBody().getHeight();if(this.getHeight()>bodyHeight){this.setHeight(bodyHeight);}
this.body.set({style:'overflow-y:hidden;'});},onOKBtnClick:function(){var culture=this.view.getSelectedRecords()[0].data.id;this.DataService.ChangeLanguage(culture.trim(),this.ChangeLanguageComplete);this.hide();},ChangeLanguageComplete:function(d,c,m){if(!d){window.location.reload();}
else{Ext.MessageBox.show({title:'Error',height:100,msg:d,buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR});}},onCancelBtnClick:function(){this.hide();},show:function(){if(!this.dataLoaded){this.DataService.GetLanguagesList(this.GetLanguagesListComplete);}
else{this.checkHeight();}
SaaS.WebUI.ChangeLanguageDlg.superclass.show.call(this);if(!this.dataLoaded){this.getEl().mask('Loading...');}},GetLanguagesListComplete:function(d,c,m){c.view.store.loadData(d);var currentCulture=c.readCookie('CC');if(currentCulture){c.view.clearSelections();var index=c.view.store.find('id',currentCulture,0,false,false);c.view.select(index);}
c.checkHeight();c.center();c.dataLoaded=true;c.getEl().unmask();},onDataLoaded:function(){var count=this.view.store.getCount();if(this.view.rendered&&count){var h=this.view.getHeight();var ih=this.view.getNode(0).offsetHeight;if(h<ih*count){this.view.setHeight(ih*count);this.view.setWidth(this.view.getWidth());}}},readCookie:function(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;},onResize:function(w,h){var bodyHeight=Ext.getBody().getHeight();if(h>bodyHeight){h=bodyHeight}
SaaS.WebUI.ChangeLanguageDlg.superclass.onResize.call(this,w,h);}}); 

SaaS.WebUI.WorkspaceSelectorBase=Ext.extend(Ext.Panel,{closeOnAllTabs:true,defaultTabIndex:0,deferredRender:true,header:false,elements:'header,body,footer',headerAsText:false,frame:false,hideBorders:true,tabsCls:'x-workspace-tab-strip-wrap',workspaceHeaderCls:'x-tab-header',initComponent:function(){SaaS.WebUI.WorkspaceSelectorBase.superclass.initComponent.call(this);this.addEvents('initialize','ready','pluginconfloaded');this.setLayout(new Ext.layout.CardLayout({deferredRender:this.deferredRender}));this.DataService=new Ext.Frs.ServiceAdapter(UrlPrefix+"Services/Workspace.asmx");this.AppPlugins=new SaaS.WebUI.AppPlugins();this.tabs=this.initTabs();this.visibleWorkspacesMenu=new Ext.menu.Menu({items:[]});},destroy:function destroy(ct){SaaS.WebUI.WorkspaceSelectorBase.superclass.destroy.call(this);this.tabs&&this.tabs.destroy();this.visibleWorkspacesMenu&&this.visibleWorkspacesMenu.destroy();this.AppPlugins&&this.AppPlugins.destroy();},initialize:function(){this.fireEvent('initialize');this.loadWorkspaces();setInterval(this.checkIfSessionIsActive,3000);},start:function(){b=Ext.getCmp('AppBody');b.add(this);b.layout.layout();this.fireEvent('ready');},addPlugin:function(o){this.AppPlugins.add(o);},loadWorkspaces:function(){var role=window.__WorkspaceListFrom||null;this.DataService.call("GetRoleWorkspaces",{sRole:role},this.onWorkspacesLoaded.createDelegate(this),null);},onWorkspacesLoaded:function(d){if((d.AllWorkspaces)&&(d.AllWorkspaces.length>0)&&(d.Workspaces)&&(d.Workspaces.length>0)){this.allWorkspaces=d.AllWorkspaces;this.initWorkspacesMenu(d.Workspaces,d.AllWorkspaces);this.processLoadedWorkspaces(d.Workspaces);this.BrandingOptions=d.BrandingOptions;this.AllowClick2Talk=d.AllowClick2Talk;if(d.BrandingOptions&&d.BrandingOptions.UiOptions){this.allowReportAnIssue=d.BrandingOptions.UiOptions.ReportAnIssue===true;}
this.start();}
else{Ext.MessageBox.show({title:'Error',height:100,msg:"You have no available workspaces. Perhaps it is because you do not have sufficient privilegies. Try to relogin.",buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR});}},checkIfSessionIsActive:function(){if(!Session.isActive()){Loader.showLogin('Session Expired');}},processLoadedWorkspaces:function(visibleWorkspaces){visibleWorkspaces.each(function(workspaceConfig){this.addWorkspaceTab(workspaceConfig);},this);},initWorkspacesMenu:function(visibleWorkspaces,allWorkspaces){this.visibleWorkspacesMenu.on('beforeshow',function(e){var d_item=this.getActiveTabIFramePanel();if(!d_item||!d_item.iframe)return;var wnd=d_item.iframe.getWindow();try{Ext.fly(wnd.document).on('click',function(){top.Ext.menu.MenuMgr.hideAll();},this,{single:true});}catch(e){}},this);visibleWorkspaces.each(function(s){if(!s.Name||s.Name=="")return;var itemConfig=this.getVisibleWorkspacesMenuItemConfig(s,visibleWorkspaces,allWorkspaces);if(itemConfig!=null){this.visibleWorkspacesMenu.add(itemConfig);}},this);this.visibleWorkspacesMenu.add('-');this.allWorkspacesMenu=new Ext.menu.Menu({id:'masterObjectMenu',listeners:{beforeshow:this.assertMenuHeight,scope:this}});allWorkspaces.each(function(ws){var itemConfig=this.getAllWorkspacesMenuItemConfig(ws,visibleWorkspaces,allWorkspaces);if(itemConfig!=null){if(!itemConfig.workspaceConfig||itemConfig.workspaceConfig.Closable||!itemConfig.workspaceConfig.VisibleInMainMenu){this.allWorkspacesMenu.add(itemConfig);}}},this);this.visibleWorkspacesMenu.add({text:'<b><u>'+'More ...'+'</u></b>',hideOnClick:false,menu:this.allWorkspacesMenu});},getVisibleWorkspacesMenuItemConfig:function(s){return{text:s.Name,workspaceId:s.ID,handler:this.SelectWorkspaceHandler,scope:this};},getAllWorkspacesMenuItemConfig:function(ws){return{text:ws.Name,workspaceConfig:ws,checked:ws.VisibleInMainMenu||false,checkHandler:this.onMenuWSCheck,scope:this};},onMenuWSCheck:function(item,checked){if(checked){var tr=item.initialConfig.workspaceConfig;var newTab=this.addWorkspaceTab(tr);tr.VisibleInMainMenu=true;this.tabs.setActiveTab(newTab.id);if(!newTab.title||newTab.title=="")return;var position=this.visibleWorkspacesMenu.length-2;var newItem=new Ext.menu.Item({text:newTab.title,workspaceId:newTab.id,handler:this.SelectWorkspaceHandler,scope:this});this.visibleWorkspacesMenu.insert(position,newItem);}
else{item.initialConfig.workspaceConfig.VisibleInMainMenu=false;var tab=this.findTabByWorkspaceId(item.initialConfig.workspaceConfig.ID);if(tab){this.tabs.remove(tab);}
var tm=this.visibleWorkspacesMenu;tm.items.each(function(mi){if(typeof(mi.workspaceId)!="undefined"&&mi.workspaceId==item.initialConfig.workspaceConfig.ID){tm.remove(mi);}});this.tabs.setActiveTab(this.tabs.items.items[0].id);}},SelectWorkspaceHandler:function(item){this.tabs.setActiveTab(item.initialConfig.workspaceId);},assertMenuHeight:function(m){m.el.setHeight(this.menuHeight);m.el.applyStyles('overflow-y:auto;');},getFrameHeight:function(){var h=SaaS.WebUI.WorkspaceSelectorBase.superclass.getFrameHeight.call(this);if(this.AppPlugins)h+=(this.AppPlugins.getSize().height||0);return h;},onRender:function(ct,position){if(Ext.Element.prototype.unselectable){Ext.Element.prototype._disabled_unselectable=Ext.Element.prototype.unselectable;Ext.Element.prototype.unselectable=function(){};}
SaaS.WebUI.WorkspaceSelectorBase.superclass.onRender.call(this,ct,position);if(Ext.Element.prototype._disabled_unselectable){Ext.Element.prototype.unselectable=Ext.Element.prototype._disabled_unselectable;delete Ext.Element.prototype._disabled_unselectable;}
this.body.addClass("x-ws-panel-header");this.header.addClass(this.workspaceHeaderCls);this.header.addClass('x-tab-panel-body-top');this.footer.setStyle("display","none");this.renderItems();this.tabs.delegateUpdates();this.tabs.setActiveTab(this.defaultTabIndex);},initTabs:function(){var tabs=new Ext.TabPanel({enableTabScroll:true,deferredRender:true,border:false,cls:this.tabsCls});tabs.on('tabchange',this.onTabChange,this);tabs.on('beforeadd',this.onBeforeTabAdd,this);tabs.on('beforeremove',this.onBeforeTabRemove,this);tabs.on('beforetabchange',this.onBeforeTabchange,this);tabs.updateScrollButtons=function(){var pos=this.getScrollPos();this.scrollLeft[pos==0?'addClass':'removeClass']('x-ws-tab-scroller-left-disabled');this.scrollRight[pos>=(this.getScrollWidth()-this.getScrollArea())?'addClass':'removeClass']('x-ws-tab-scroller-right-disabled');};tabs.createScrollers=function(){var h=this.stripWrap.dom.offsetHeight;var sl=this.header.insertFirst({cls:'x-ws-tab-scroller-left'});sl.setHeight(h);sl.addClassOnOver('x-ws-tab-scroller-left-over');this.leftRepeater=new Ext.util.ClickRepeater(sl,{interval:this.scrollRepeatInterval,handler:this.onScrollLeft,scope:this});this.scrollLeft=sl;var sr=this.header.insertFirst({cls:'x-ws-tab-scroller-right'});sr.setHeight(h);sr.addClassOnOver('x-ws-tab-scroller-right-over');this.rightRepeater=new Ext.util.ClickRepeater(sr,{interval:this.scrollRepeatInterval,handler:this.onScrollRight,scope:this});this.scrollRight=sr;};tabs.setActiveTab=tabs.setActiveTab.createInterceptor(this.onSetActiveTab,this);return tabs;},onTabChange:function(oSelector,oCurrentTab){oCurrentTab.el.setStyle("display","none");var workspace=this.getTabWorkspace(oCurrentTab);if(workspace&&Ext.isIE){if(workspace.ieTabSwitchFix){workspace.ieTabSwitchFix();}}
if(workspace&&workspace.xtype=="DashboardWorkspace"){workspace.refreshDashboardData();}},onBeforeTabAdd:function(panel,tab){var panelCfg=tab.initialConfig;if(tab.assocTabId){return;}
panelCfg.xtype="iframepanel";panelCfg.header=false;if(typeof panelCfg.id!="undefined"){panelCfg.id='panel'+panelCfg.id;}
tab.panel=this.add(panelCfg);},onBeforeTabRemove:function(panel,tab){var tabExt=this.getActiveTabExt();if(tabExt&&tabExt.Frs&&tabExt.Frs.PendingChanges){tabExt.Frs.PendingChanges.promptSave(this.closeTabInternal,this,tab);}else{this.closeTabInternal(tab);}},closeTabInternal:function(tab){if(this.visibleWorkspacesMenu)
this.visibleWorkspacesMenu.items.each(function(mi){if(mi.workspaceId!=tab.workspaceId)return;this.visibleWorkspacesMenu.remove(mi);return false},this);if(this.allWorkspacesMenu)this.allWorkspacesMenu.items.each(function(mi){if(mi.workspaceConfig.ID!=tab.workspaceId)return;mi.setChecked(false,true);return false;},this);},onBeforeTabchange:function(panel,newTab,oldTab){if(!this.closeOnAllTabs){var el;if(oldTab){el=Ext.fly(this.tabs.getTabEl(oldTab));if(el){el.removeClass("x-tab-strip-closable");}}
if(newTab.activeClosable){el=Ext.fly(this.tabs.getTabEl(newTab));if(el){el.addClass("x-tab-strip-closable");}}}
if(newTab!==undefined)
this.setActiveWorkspace(newTab,oldTab);},setActiveWorkspace:function(tab,oldTab){var tabExt=this.getActiveTabExt();if(tabExt&&tabExt.Frs&&tabExt.Frs.PendingChanges&&tab!=oldTab){tabExt.Frs.PendingChanges.promptSave(this.setActiveWorkspaceInternal,this,tab,oldTab);}else{this.setActiveWorkspaceInternal(tab);}},setActiveWorkspaceInternal:function(tab,oldTab,choice,op){if(oldTab&&choice&&op){if(op.op=='insert'&&choice=='no'){var oldWorkspace=this.getTabWorkspace(oldTab);var objectLayoutPanel=oldWorkspace.objectLayoutPanel;if(objectLayoutPanel)
objectLayoutPanel.setGridVisible();}}
var d_item=this.getTabPanel(tab);var link=d_item.Link;if(link){if(!d_item.rendered){d_item.on('render',d_item.setSrc.createDelegate(d_item,[link,false,true],0),d_item,{single:true});}
else if(d_item.defaultSrc!=link){d_item.setSrc(link,false,true);var wnd=d_item.iframe.getWindow();if(wnd.Workspace&&wnd.Workspace.destroy)wnd.Workspace.destroy();}}
this.layout.setActiveItem(d_item);},onSetActiveTab:function(item){if(item!=null){item=this.tabs.getComponent(item);if(item){var cmd={Scope:"Workspace",CommandId:"open",CommandData:{ObjectType:item.id,Id:item.id}};top.Navigation.saveNavigationState(item.id,item.workspaceId,cmd);top.Navigation.changeTitle(item.title);}}
return true;},getActiveTabIFramePanel:function(){return this.getTabPanel(this.tabs.activeTab);},getTabPanel:function(tab){if(tab==null){return null;}
return tab.panel;},getActiveTabExt:function(){return this.getTabExt(this.tabs.activeTab);},getTabExt:function(tab){var ext=null;var d_item=this.getTabPanel(tab);if(d_item&&d_item.iframe){var wnd=d_item.iframe.getWindow();if(wnd&&wnd.Workspace){ext=wnd.Ext;}}
return ext;},getTabWorkspace:function(tab){var ws=null;if(tab&&tab.panel&&tab.panel.iframe&&tab.panel.iframe.getWindow()&&tab.panel.iframe.getWindow().Workspace){ws=tab.panel.iframe.getWindow().Workspace;}
return ws;},getNewTabId:function(workspaceId){return workspaceId;},makeNewWorkspaceLink:function(tabId,workspaceConfig){return window.UrlPrefix+"WorkspaceLoader.aspx?Id="+encodeURIComponent(workspaceConfig.ID)
+"&Profile="+encodeURIComponent(workspaceConfig.Profile)
+"&LayoutName="+encodeURIComponent(workspaceConfig.LayoutName)
+"&TabId="+encodeURIComponent(tabId)},addWorkspaceTab:function(s){var tabId=this.getNewTabId(s.ID);var link=s.Link;if(!link){link=this.makeNewWorkspaceLink(tabId,s);}
var tab=this.tabs.add({Definition:s,title:s.Name,workspaceName:s.Name,activeClosable:s.Closable,closable:this.closeOnAllTabs?s.Closable:false,Searchable:s.Searchable,selected:s.Default,id:tabId,workspaceId:s.ID,border:false,Profile:s.Profile,Link:link});return tab;},findWorkspaceConfigByWorkspaceId:function(workspaceId){for(var i=0,n=this.allWorkspaces.length;i<n;++i){var workspaceConfig=this.allWorkspaces[i];if(workspaceConfig.ID==workspaceId){return workspaceConfig;}}
return null;},findWorkspaceConfigByConfigItem:function(sItemId,sItemValue){for(var i=0,n=this.allWorkspaces.length;i<n;++i){var workspaceConfig=this.allWorkspaces[i];if(workspaceConfig.Configuration&&workspaceConfig.Configuration[sItemId]==sItemValue){return workspaceConfig;}}
return null;},matchTabWorkspaceId:function(tab,workspaceId){return tab&&tab.Definition&&tab.Definition.ID==workspaceId;},matchTabConfigItem:function(tab,sItemId,sItemValue){return tab&&tab.Definition&&tab.Definition.Configuration&&tab.Definition.Configuration[sItemId]==sItemValue;},matchTabDefItem:function(tab,sItemId,sItemValue){return tab&&tab.Definition&&tab.Definition[sItemId]==sItemValue;},findTabByWorkspaceId:function(workspaceId){for(var i=0,n=this.tabs.items.items.length;i<n;++i){var tab=this.tabs.items.items[i];if(this.matchTabWorkspaceId(tab,workspaceId)){return tab;}}
return null;},getTabByWorkspaceId:function(workspaceId){var tab=this.findTabByWorkspaceId(workspaceId);if(tab){return tab;}
var ws=this.findWorkspaceConfigByWorkspaceId(workspaceId);if(ws){return this.addWorkspaceTab(ws);}
return null;},getTabByConfigItem:function(sItemId,sItemValue){for(var i=0,n=this.tabs.items.items.length;i<n;++i){var tab=this.tabs.items.items[i];if(this.matchTabConfigItem(tab,sItemId,sItemValue)){return tab;}}
var ws=this.findWorkspaceConfigByConfigItem(sItemId,sItemValue);if(ws){return this.addWorkspaceTab(ws);}
if(sItemId==='objectRef'){var p=sItemValue.indexOf('#');if(p>0&&p<sItemValue.length-1){sItemValue=sItemValue.substring(0,p+1);return this.getTabByConfigItem(sItemId,sItemValue);}}
return null;},getTabByObjectRefandProfile:function(sItemIds,sItemValues){for(var i=0,n=this.tabs.items.items.length;i<n;++i){var tab=this.tabs.items.items[i];if(this.matchTabConfigItem(tab,sItemIds[0],sItemValues[0])&&this.matchTabDefItem(tab,sItemIds[1],sItemValues[1])){return tab;}}
var ws=this.findWorkspaceConfigByConfigItem(sItemIds[0],sItemValues[0]);if(ws){return this.addWorkspaceTab(ws);}
return null;},findTabById:function(sId){return this.tabs.items.get(sId);},restoreInitialNavigationState:function(workspaceId,navidata){return this.restoreNavigationState(null,workspaceId,navidata);},restoreNavigationState:function(tabId,workspaceId,navidata){var tab=this.findTabById(tabId);if(!tab){tab=this.getTabByWorkspaceId(workspaceId);}
if(tab){if(navidata){this.navigateTab(tab,navidata);}else{this.tabs.setActiveTab(tab);}
return true;}
return false;},navigateTab:function navigateTab(tab,navidata){tab=tab||this.tabs.activeTab;if(!tab){return false;}
var d_item=this.getTabPanel(tab);tab.navigateTo=Ext.util.JSON.encode(navidata);if(d_item.iframe){var wnd=d_item.iframe.getWindow();if(wnd&&wnd.Workspace&&wnd.Workspace._navigateTo){wnd.Workspace._navigateTo(false);}}
this.tabs.setActiveTab(tab);return true;},updateTopLevelTabNavigationState:function(state,tab,workspace){},doCommand:function(command){var sd=command.Scope.split(":");switch(""+sd[0]){case"CurrentTab":return this.navigateTab(null,command);case"TabById":alert('UI Command: TabById scope is obsolete - use TabByObjectRef or TabByTag instead');return null;case"TabByName":alert('UI Command: TabByName scope is obsolete - use TabByObjectRef or TabByTag instead');return null;case"TabByTag":command.Scope=sd[2];var tab=this.getTabByConfigItem('tags',sd[1]);if(!tab){return false;}
return this.navigateTab(tab,command);case"TabByObjectRef":command.Scope=sd[2];var tab=this.getTabByConfigItem('objectRef',sd[1]);if(!tab){return false;}
return this.navigateTab(tab,command);case"TabByObjectRefandProfile":command.Scope=sd[2];var tab=this.getTabByObjectRefandProfile(['objectRef','Profile'],[sd[1],sd[2]]);if(!tab){return false;}
return this.navigateTab(tab,command);case"TabByWorkspaceId":command.Scope=sd[2];var tab=this.getTabByWorkspaceId(sd[1]);if(!tab){return false;}
return this.navigateTab(tab,command);case"WorkspaceSelector":case"Workspace":if(this["command_"+command.CommandId]){return this["command_"+command.CommandId](command.CommandData);}
break;}},command_OpenLinkfield:function(command){var objectRef=command.ObjectRef;var objectId=command.ObjectId;var linkName=command.FieldName;var linkIdField=linkName+'_RecID';var linkRefField=linkName+'_Category';this.DataService.call("Query",{objectRef:objectRef,objectId:objectId,fieldNames:[linkIdField,linkRefField]},function(result){for(var i=0;i<result.length;i++){if(result[i][0]===linkIdField){var linkId=result[i][1];}
else if(result[i][0]===linkRefField){var linkRef=result[i][1];}}
if(!linkRef||!linkId){throw new Error('Empty '+linkName+' linkfield!');}
else{linkRef=linkRef.replace(/\..*/ig,"");linkRef=linkRef+"#";var command={"Scope":"TabByObjectRef:"+linkRef+":ObjectWorkspace","CommandId":"ShowRecord","CommandData":{"ObjectType":linkRef,"RecId":linkId}};var result=top.Application.doCommand(command);}},null);return true;},command_CloseTab:function(c){var tab=this.findTabById(""+c.Id);if(!tab)return false;this.tabs.remove(tab);return true;},command_ReloadTab:function(c){var tab=this.findTabById(c.Id);if(!tab)return false;var d_item=this.getTabPanel(tab);if(d_item.iframe){this.tabs.setActiveTab(tab);d_item.iframe.location.reload(true);}
return true;},command_OpenObjectTab:function(c){var tab=this.getTabByConfigItem('objectRef',c.ObjectType);if(tab){this.tabs.setActiveTab(tab);return true;}
return false;},command_OpenLinkTab:function(c){var tab=this.findTabByWorkspaceId(""+c.Id);if(tab){this.tabs.setActiveTab(tab);return true;}
var tabId=this.getNewTabId(c.Id);this.tabs.add({Definition:c,title:c.Name,workspaceName:c.Name,activeClosable:c.Closable,closable:c.Closable||false,Searchable:c.Searchable,selected:true,id:this.tabId,workspaceId:c.Id,border:false,Profile:c.Profile,Link:c.Url||(UrlPrefix+"empty.html"),theme:this.currentTheme});tab=this.findTabById(tabId);if(tab){this.tabs.setActiveTab(tab);return true;}
return false;},changeTheme:function(title){this.currentTheme=title;Ext.Frs.changeDocumentCSSTheme(document,title);var tabs=this.tabs.items.items;for(var i=0;i<tabs.length;i++){var tab=tabs[i];var tabDocument=tab.panel.iframe.getDocument();if(tab.Profile==='dashboard'){tab.panel.iframe.getWindow().location.reload();}
else{Ext.Frs.changeDocumentCSSTheme(tabDocument,title);}}},getPluginConfiguration:function(PluginName){this.DataService.call("GetPluginConfiguration",{'PluginName':PluginName},this.pluginConfigurationLoaded.createDelegate(this),null);},pluginConfigurationLoaded:function(d){this.fireEvent('pluginconfloaded',d);}});Ext.reg('SaaS.WebUI.WorkspaceSelectorBase',SaaS.WebUI.WorkspaceSelectorBase); 

SaaS.WebUI.AppPlugins=Ext.extend(Ext.Container,{autoEl:{tag:'div',id:'AppPlugins'},monitorResize:true,initComponent:function(){SaaS.WebUI.AppPlugins.superclass.initComponent.call(this);this.setLayout(new Ext.Frs.RowLayout({}));}}); 

SaaS.WebUI.AboutPopUp=function(){var appName='<div style="padding-left:5px;color:#333;font-size: 17px; font-weight: bold">SaaSIT</div>';var buildVersion='<div style="padding-top:10px;padding-left:5px;color:#333;" >'+(window.BuildVersion||"")+' @ '+(window.BuildDate||"")+'</div>';var copyright='<div style="padding-top:15px;padding-left:5px;color:#333;" >'+CopyrightString+'</div>';Ext.Msg.show({title:'About SaaSIT',msg:appName+buildVersion+copyright,buttons:Ext.Msg.OK,icon:Ext.MessageBox.INFO,minWidth:600});}; 

SaaS.WebUI.SelfServiceAboutPopUp=function(appName){var tpl=new Ext.XTemplate('<div class="logo"></div>','<div class="appName">{appName}</div>','<div class="build-version">{buildVersion} @ {date}</div>','<div class="copyright">{copyright}</div>');var date=window.BuildDate||'';if(date){var parsedDate=date instanceof Date?date:Date.parseDate(date,'m/d/Y');if(parsedDate){date=parsedDate.format(_$R('m/d/Y'));}}
var data={appName:appName||'Self Service',buildVersion:window.BuildVersion||"",date:date,copyright:'Copyright (c) 2009-2011 <b>FrontRange Solutions Inc.</b> All rights reserved.'}
if(!this.about){this.about=new Ext.Window({cls:'selfservice-about white-window',title:String.format('About {0}',appName),tpl:tpl,data:data,buttons:[new Ext.Button({text:'OK',handler:function(){this.about.hide();},scope:this})],width:420,height:200,resizable:false,closeAction:'hide',defaultButton:0,modal:true});}
this.about.show();}; 

SaaS.WebUI.SelfServiceWorkspaceSelector=Ext.extend(SaaS.WebUI.WorkspaceSelectorBase,{initComponent:function(){this.DefaultLogo=ApplicationPath+'lib/ext-js-31/resources/images/uevision/header/header-frontrange-logo.png';SaaS.WebUI.SelfServiceWorkspaceSelector.superclass.initComponent.call(this);this.Navigation=new Ext.Container({autoEl:{tag:'div'},cls:"x-ws-navigation"});this.loginToolbar=this.initLoggedInToolbar();this.topLinksToolbar=this.initTopLinksToolbar();this.bottomLinksToolbar=this.initBottomLinksToolbar();this.infotoolbar=this.initInfoToolbar();this.toolbar=this.initTabsToolbar();this.Navigation.add(this.toolbar);if(this.tabs)this.Navigation.add(this.tabs);if(this.infotoolbar)this.Navigation.add(this.infotoolbar);this.on('beforedestroy',this.doDestroy,this);this.on('ready',function(){var requestResize=false;if(this.infotoolbar){if(!this.AllowClick2Talk&&!this.allowReportAnIssue){var el=this.infotoolbar.getEl();if(el&&el.first()){el.first().hide();}}
else{if(!this.AllowClick2Talk){this.infotoolbar.items.get(1).hide();}
if(!this.allowReportAnIssue){this.infotoolbar.items.get(2).hide();}}}
if(this.BrandingOptions){var bo=this.BrandingOptions;var url=bo.LogoImage?Loader.addCsrfParameterValue(String.format(ApplicationPath+'ServiceCatalog/handlers/DownloadAttachment.ashx?objectid={0}&Mod=',bo.LogoImage)):'';this.addLogo(url||this.DefaultLogo);this.addTopLinks(bo.TopLinks);this.addBottomLinks(bo.BottomLinks);this.configureLoggedInToolbar(bo.SystemMenuOptions);this.configureTabsToolbar(bo.SelectorOptions);requestResize=true;}
else{this.addLogo(this.DefaultLogo);this.addTopLinks([]);this.addBottomLinks([]);}
if(requestResize){this.recalculateSizes();}},this,{single:true});},doDestroy:function(ct){ct.Navigation.destroy();ct.loginToolbar.destroy();if(ct.infotoolbar){ct.infotoolbar.destroy();}
ct.toolbar.destroy();},getFrameHeight:function ss_getframeheight(){var h=SaaS.WebUI.SelfServiceWorkspaceSelector.superclass.getFrameHeight.call(this);h+=this.Navigation.getSize().height;return h;},renderLayout:function(){},renderItems:function(){this.renderLayout();this.logo=this.header.createChild({cls:"x-company-logo"});if(this.topLinksToolbar)this.topLinksToolbar.render(this.header,1);if(this.loginToolbar)this.loginToolbar.render(this.header,2);if(this.AppPlugins)this.AppPlugins.render(this.el,1);if(this.Navigation)this.Navigation.render(this.el,2);this.stripUL=new Ext.Element(this.tabs.header.dom.firstChild.firstChild);this.stripUL.addClass('x-workspace-tab');},onResize:function(){SaaS.WebUI.SelfServiceWorkspaceSelector.superclass.onResize.apply(this,arguments);this.recalculateSizes.apply(this,arguments);},recalculateSizes:function(w,h){var headerWidth=this.header.getSize().width;var tabsWidth=headerWidth-this.toolbar.getSize().width;if(this.infotoolbar){tabsWidth=tabsWidth-this.infotoolbar.getSize().width;}
this.tabs.setWidth(tabsWidth);var maxAvailableWidth=headerWidth-this.logo.getWidth()-this.logo.getMargins('lr');var estimatedAppWidth=this.getEstimatedWidth(this.loginToolbar,maxAvailableWidth)+5;var estimatedTopLinksWidth=this.getEstimatedWidth(this.topLinksToolbar,maxAvailableWidth)-5;var topLinksWidth=0;var appWidth=0;if(estimatedTopLinksWidth+estimatedAppWidth>maxAvailableWidth){var percentTopLinks=estimatedTopLinksWidth/(estimatedAppWidth+estimatedTopLinksWidth);var percentApp=estimatedAppWidth/(estimatedAppWidth+estimatedTopLinksWidth);topLinksWidth=maxAvailableWidth*percentTopLinks;appWidth=maxAvailableWidth*percentApp;}
else{topLinksWidth=maxAvailableWidth-estimatedAppWidth;appWidth=estimatedAppWidth;}
this.topLinksToolbar.setWidth(topLinksWidth);this.loginToolbar.setWidth(appWidth);if(Ext.isNumber(h)){h=Math.max(0,this.adjustBodyHeight(h-this.getFrameHeight()));this.body.setHeight(h);}else if(h=='auto'){this.body.setHeight(h);}
this.tabs.delegateUpdates();},getEstimatedWidth:function(tlb,maxAvailableWidth){var estWidth=0;tlb.setWidth(maxAvailableWidth);tlb.items.items.each(function(item){if(item.rendered){estWidth+=item.getWidth();}},this);return estWidth;},initTabsToolbar:function(){var config={cls:'x-tab-toolbar x-btn-transparent',width:10,items:[' ']};return new Ext.Toolbar(config);},configureTabsToolbar:function(selectorOptions){var tbar=this.toolbar;if(selectorOptions.NewWindow){tbar.add({iconCls:'x-icon-newwindow',tooltip:'New window',handler:this.onNewWindow.createDelegate(this)});tbar.setWidth(tbar.getWidth()+25);}
if(selectorOptions.SelectorMenu){tbar.add({iconCls:'x-icon-selectworkspace',tooltip:'Select workspace',menu:this.visibleWorkspacesMenu});tbar.setWidth(tbar.getWidth()+25);}
tbar.doLayout(false,true);},initLoggedInToolbar:function(){var tbar=["->"];var toggle=(function(){var infoWindow=new Ext.Window({id:'UserInfoWindow',layout:'anchor',footer:false,title:'&nbsp;User Information&nbsp;',closable:true,closeAction:'hide',draggable:false,resizable:false,cls:'x-user-info-window',bodyCssClass:'x-user-info-window-content',items:new Ext.Container({layout:'table',layoutConfig:{columns:2},items:[new Ext.form.Label({text:'Name :',cls:'x-form-label x-user-info-label',ctCls:'x-user-info-label-table-cell'}),new Ext.form.Label({text:Session.userData.DisplayName,cls:'x-form-label'}),new Ext.form.Label({text:'Role :',cls:'x-form-label x-user-info-label',ctCls:'x-user-info-label-table-cell'}),new Ext.form.Label({text:Session.role,cls:'x-form-label'})]})});var windowAligned=false;function toggleWindow(){if(infoWindow.hidden){infoWindow.show();if(!windowAligned){infoWindow.alignTo('UserMenuBtn','t-b',[0,5]);windowAligned=true;}}
else{infoWindow.hide();}};return toggleWindow;})();var userinfo=['Logged in as',{iconCls:"x-icon-header-user",id:"UserMenuBtn",text:Session.user,handler:toggle}];tbar=tbar.concat(userinfo);return new Ext.Toolbar({id:"LoginTbr",cls:"x-app-toolbar x-btn-transparent",items:tbar});},configureLoggedInToolbar:function(systemMenuOptions){var tbar=this.loginToolbar;var isHelp=systemMenuOptions.EnableHelp;var isLogout=systemMenuOptions.EnableLogout;if(isHelp){tbar.add("|");this.helpBtn={text:'User Help',handler:this.openHelp.createDelegate(this)};tbar.add({iconCls:"x-icon-header-help",text:'Help',menu:[this.helpBtn,{text:'About',handler:SaaS.WebUI.SelfServiceAboutPopUp.createDelegate(this,['Self Service'])}]});}
tbar.add("|");tbar.add({iconCls:"x-icon-settings",text:'Settings',menu:this.configureSettingsMenu(systemMenuOptions)});if(isLogout){tbar.add("|");tbar.add({id:"LogoutBtn",text:'Exit',iconCls:"x-icon-header-logout",text:'Log Out',handler:this.doLogout.createDelegate(this)});}},openHelp:function(){top.window.open(UrlPrefix+SelfServiceHelpLink,"_blank");},initTopLinksToolbar:function(){return new Ext.Toolbar({id:"TopLinksTbr",cls:"x-toplinks-toolbar x-btn-transparent",items:[]});},initBottomLinksToolbar:function(){return Ext.getCmp('App.BottomToolbar');},addTopLinks:function(tl){var tbar=this.topLinksToolbar;tbar.removeAll();tl.each(function(item){if(item.URL){tbar.add({text:"<u>"+item.DisplayName+"</u>",handler:function(){top.window.open(item.URL,item.ShowInNewWindow?"_blank":"_self");}});}
else{tbar.add({xtype:'tbtext',cls:'x-plain-text',text:item.DisplayName});}},this);tbar.add("->");tbar.doLayout(false,true);},addBottomLinks:function(tl){var tbar=this.bottomLinksToolbar;if(tbar){tl.each(function(item,i){if(item.URL){tbar.insertButton(i*2,{text:"<u>"+item.DisplayName+"</u>",handler:function(){top.window.open(item.URL,item.ShowInNewWindow?"_blank":"_self");}});}
else{tbar.insertButton(i*2,{xtype:'tbtext',cls:'x-plain-text',text:item.DisplayName});}
tbar.insert(i*2+1,'|');},this);tbar.insert(0,new Ext.Toolbar.Fill());tbar.doLayout(false,true);}},addLogo:function(url){this.logo.applyStyles(String.format('background:url({0}) no-repeat left top;',url));},doLogout:function(btn,e){var tabExt=this.getActiveTabExt();var oldTab={panel:this.layout.activeItem};if(tabExt&&tabExt.Frs&&tabExt.Frs.PendingChanges&&tabExt.Frs.PendingChanges.promptSave){var noPromptLogout=function(){Application.doLogout();};tabExt.Frs.PendingChanges.on('noprompt',noPromptLogout,this,{single:true});tabExt.Frs.PendingChanges.promptSave(function(ctl,btn){var oldWorkspace=this.getTabWorkspace(oldTab);if(btn=='cancel'){if(oldWorkspace){oldWorkspace.fireEvent('workspaceChangeCancelled');}}
else{tabExt.Frs.PendingChanges.un('noprompt',noPromptLogout,this);Application.doLogout();if(oldWorkspace){oldWorkspace.fireEvent('afterWorkspaceChanged');}}},this,oldTab);return false;}else{Application.doLogout();return true;}},initInfoToolbar:function(){var tbar=['->'];tbar.push({text:"<b>"+'Talk with Agent'+"</b>",handler:this.onClickToTalk.createDelegate(this)});tbar.push({text:"<b>"+'Report an Issue'+"</b>",handler:function(){Application.doCommand({Scope:"TabByTag:MyItems:MyItems",CommandId:"NewIssue"});}});return new Ext.Toolbar({id:"InfoTbr",width:270,cls:"x-info-toolbar",items:tbar});},onClickToTalk:function(){var dlg=new SaaS.WebUI.Click2TalkDialog();Loader.ShowProgress('Starting...');dlg.initialize();},configureSettingsMenu:function configureSettingsMenu(systemMenuOptions){var result=[];if(systemMenuOptions.EnableChangePassword){result.push({id:"UserSettingsBtn",iconCls:"x-icon-useredit",text:'Change Password',handler:function(){Application.ChangePasswordDialog();}});}
result.push({id:"ChangeLanguageBtn",iconCls:"x-icon-language",text:'Change Locale',handler:function(){if(!this.ChangeLanguage){this.ChangeLanguage=new SaaS.WebUI.ChangeLanguageDlg({height:'auto'});this.ChangeLanguage.render(Ext.getBody());}
this.ChangeLanguage.show();this.ChangeLanguage.center();}});if(Session.checkRights("RunAdmin",Session.Rights.True))
result.push({id:"AdminUIBtn",iconCls:"x-icon-configuration",text:'Configure Application',handler:function(){Application.doCommand({Scope:"Application",CommandId:"OpenWindow",Confirmation:null,CommandData:{Url:UrlPrefix+"AdminUI/Default.aspx"}});}});return result;},onNewWindow:function(o){window.open("./","_blank","",false);},manageAllWorkspaceItem:function(workspaceId,checked){if(this.allWorkspacesMenu)this.allWorkspacesMenu.items.each(function(mi){if(!mi.workspaceConfig||mi.workspaceConfig.ID!=workspaceId)return;mi.setChecked(checked,true);return false;},this);},addItemToMainMenu:function(tab){if(!tab.title||tab.title=="")return;var position=this.visibleWorkspacesMenu.length-2;var tabAlreadyAdded=false;this.visibleWorkspacesMenu.items.each(function(item){if(typeof(item.workspaceId)!="undefined"&&item.workspaceId==tab.workspaceId){tabAlreadyAdded=true;}});if(tabAlreadyAdded)return;var newItem=new Ext.menu.Item({text:tab.title,workspaceId:tab.id,handler:this.SelectWorkspaceHandler,scope:this});this.manageAllWorkspaceItem(tab.id,true);this.visibleWorkspacesMenu.insert(position,newItem);},removeTabFromMainMenu:function(workspaceId){var tm=this.visibleWorkspacesMenu;tm.items.each(function(mi){if(typeof(mi.workspaceId)!="undefined"&&mi.workspaceId==workspaceId){tm.remove(mi);}});this.manageAllWorkspaceItem(workspaceId,false);},onMenuWSCheck:function(item,checked){if(checked){var tr=item.initialConfig.workspaceConfig;var newTab=this.addWorkspaceTab(tr);tr.VisibleInMainMenu=true;this.tabs.setActiveTab(newTab.id);this.addItemToMainMenu(newTab);}
else{item.initialConfig.workspaceConfig.VisibleInMainMenu=false;var tab=this.findTabByWorkspaceId(item.initialConfig.workspaceConfig.ID);if(tab){this.tabs.remove(tab);}
this.removeTabFromMainMenu(item.initialConfig.workspaceConfig.ID);this.tabs.setActiveTab(this.tabs.items.items[0].id);}},onBeforeTabAdd:function(panel,tab){var panelCfg=tab.initialConfig;if(tab.assocTabId){return;}
panelCfg.xtype="iframepanel";panelCfg.header=false;if(typeof panelCfg.id!="undefined"){panelCfg.id='panel'+panelCfg.id;}
tab.panel=this.add(panelCfg);this.addItemToMainMenu(tab);},onBeforeTabRemove:function(panel,tab){var tabExt=this.getActiveTabExt();if(tabExt&&tabExt.Frs&&tabExt.Frs.PendingChanges&&tabExt.Frs.PendingChanges.promptSave){tabExt.Frs.PendingChanges.on('noprompt',function(){this.closeTabInternal(tab);panel.doRemove(tab,true);panel.fireEvent('remove',panel,tab);},this);tabExt.Frs.PendingChanges.promptSave(function(ctl,btn){var ws=this.getTabWorkspace(tab);if(btn=='cancel'){if(ws){ws.fireEvent('workspaceChangeCancelled');}}
else{this.closeTabInternal(tab);panel.doRemove(tab,true);panel.fireEvent('remove',panel,tab);if(ws){ws.fireEvent('afterWorkspaceChanged');}}},this,tab);return false;}else{this.closeTabInternal(tab);return true;}},closeTabInternal:function(tab){if(this.visibleWorkspacesMenu)
this.visibleWorkspacesMenu.items.each(function(mi){if(mi.workspaceId!=tab.workspaceId)return;this.visibleWorkspacesMenu.remove(mi);return false},this);this.removeTabFromMainMenu(tab.workspaceId);},onBeforeTabchange:function(panel,newTab,oldTab){if(!this.closeOnAllTabs){var el;if(oldTab){el=Ext.fly(this.tabs.getTabEl(oldTab));if(el){el.removeClass("x-tab-strip-closable");}}
if(newTab.activeClosable){el=Ext.fly(this.tabs.getTabEl(newTab));if(el){el.addClass("x-tab-strip-closable");}}}
return this.setActiveWorkspace(newTab,oldTab);},setActiveWorkspace:function(tab,oldTab){var tabExt=this.getActiveTabExt();if(tabExt&&tabExt.Frs&&tabExt.Frs.PendingChanges&&tabExt.Frs.PendingChanges.promptSave){var continueNavigation=function(){this.tabs.setActiveTabInternal(tab)};tabExt.Frs.PendingChanges.on('noprompt',continueNavigation,this);tabExt.Frs.PendingChanges.promptSave(function(ctl,btn){var oldWorkspace=this.getTabWorkspace(oldTab);if(btn=='cancel'){if(oldWorkspace){oldWorkspace.fireEvent('workspaceChangeCancelled');}}
else{this.tabs.setActiveTabInternal(tab);this.setActiveWorkspaceInternal(tab);if(oldWorkspace&&tab!=oldTab){oldWorkspace.fireEvent('afterWorkspaceChanged');}
var workspace=this.getTabWorkspace(tab);if(Ext.isIE7&&workspace&&workspace.WorkspaceFrame&&workspace.WorkspaceFrame.getEl()){workspace.WorkspaceFrame.getEl().repaint();}}},this,tab);tabExt.Frs.PendingChanges.un('noprompt',continueNavigation,this);return false;}else{this.setActiveWorkspaceInternal(tab);return true;}},onRender:function(ct,position){SaaS.WebUI.SelfServiceWorkspaceSelector.superclass.onRender.call(this,ct,position);top.Application.doUrlNavigation();}});Ext.reg('SaaS.WebUI.SelfServiceWorkspaceSelector',SaaS.WebUI.SelfServiceWorkspaceSelector); 

SaaS.WebUI.Navigation=function(){this.reset();SaaS.WebUI.Navigation.superclass.constructor.call(this);}
Ext.extend(SaaS.WebUI.Navigation,Ext.state.Provider,{init:function(){if(!Ext.History)return false;Ext.History.init(this.onHistoryReady,this);Ext.History.on("change",this.onStateChange,this);this.cookie_prefix="saas-";this.cookie_expires=new Date(new Date().getTime()+(1000*60*60*24));this.cookie_path="/";this.cookie_domain=document.domain;this.cookies=this.readCookies();},onStateChange:function(token){if(this.currentHash==token)return;var state=this.stateStack.get(token);if(!state)return;this.currentState=state;this.currentHash=token;this.dispatchState();},changeTitle:function(title){document.title=this.originalTitle+":"+title;},reset:function(){this.currentState=new Ext.util.MixedCollection();this.currentHash=this.getNewHash();this.stateStack=new Ext.util.MixedCollection();},onHistoryReady:function(){this.reset();this.originalTitle=document.title;this.newState();},saveNavigationState:function(tabid,workspaceid,cmd){if(!top.Application||!top.Application.WorkspaceSelector){return;}
if(this.stopUpdateState){return;}
var state={tabid:tabid,workspaceid:workspaceid,cmd:cmd};this.saveLastNaviCommand(state);this.newState();this.updateState(top.Application.WorkspaceSelector.id,state);},newState:function(){if(this.stopUpdateState){return;}
if(this.currentState!=this.stateStack.last()){var sidx=this.stateStack.indexOf(this.currentState);var lidx=this.stateStack.getCount();for(var ii=(sidx+1);ii<lidx;ii++)
this.stateStack.removeAt(ii);}
this.currentState=new Ext.util.MixedCollection();this.currentHash=this.getNewHash();if(!this.stateStack.get(this.currentHash))
this.stateStack.add(this.currentHash,this.currentState);else
this.stateStack.replace(this.currentHash,this.currentState);Ext.History.add(this.currentHash,true);},updateState:function(id,state){if(this.stopUpdateState){return;}
this.currentState.replace(""+id,state);},getNewHash:function(){return""+(new Date()).getTime();},dispatchState:function(){this.stopUpdateState=true;this.currentState.eachKey(function(key,state){if(key.indexOf("__")==0)return;var c=Ext.getCmp(key);if(!c)return;if(key=="AppContent"){c.restoreNavigationState(state.tabid,state.workspaceid,state.navidata);}},this);this.stopUpdateState=false;},doLastStateNavigation:function(){var state=this.cookies["lastnavicommand"];if(!state)return false;state=Ext.decode(state);if(state.tabid&&state.workspaceid){if(top&&top.Application&&top.Application.WorkspaceSelector){var workspaceConfig=top.Application.WorkspaceSelector.findWorkspaceConfigByWorkspaceId(state.workspaceid);if(workspaceConfig&&!(workspaceConfig.Visible||workspaceConfig.VisibleInMainMenu)){return false;}
return top.Application.WorkspaceSelector.restoreInitialNavigationState(state.workspaceid,null);}}
return false;},saveLastNaviCommand:function(state){this.lastNaviCommand=Ext.encode(state);this.setCookie("lastnavicommand",this.lastNaviCommand);},buildCommandUrl:function(cmd){var url=UrlPrefix+"?";var dcmd={Scope:cmd.Scope,CommandId:cmd.CommandId,CommandData:Ext.encode(cmd.CommandData||{})}
return url+Ext.urlEncode(dcmd);},showLinkDialog:function(cmd){var dlg=new SaaS.WebUI.Navigation.PermaLinkDialog();if(!cmd)cmd=Ext.decode(this.lastNaviCommand);dlg.setLinkText(top.Application.getCommandUrl(cmd));dlg.show();},_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode64:function(input){var output="";var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;input=this._utf8_encode(input);while(i<input.length){chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64;}else if(isNaN(chr3)){enc4=64;}
output=output+
this._keyStr.charAt(enc1)+this._keyStr.charAt(enc2)+
this._keyStr.charAt(enc3)+this._keyStr.charAt(enc4);}
return output;},decode64:function(input){var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i<input.length){enc1=this._keyStr.indexOf(input.charAt(i++));enc2=this._keyStr.indexOf(input.charAt(i++));enc3=this._keyStr.indexOf(input.charAt(i++));enc4=this._keyStr.indexOf(input.charAt(i++));chr1=(enc1<<2)|(enc2>>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2);}
if(enc4!=64){output=output+String.fromCharCode(chr3);}}
output=this._utf8_decode(output);return output;},_utf8_encode:function(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}
else if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}
else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}
return utftext;},_utf8_decode:function(utftext){var string="";var i=0;var c=c1=c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}
else if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}
else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}
return string;},readCookies:function(){var cookies={};var c=document.cookie+";";var re=/\s?(.*?)=(.*?);/g;var matches;var pl=this.cookie_prefix.length;while((matches=re.exec(c))!=null){var name=matches[1];var value=matches[2];if(name&&name.substring(0,pl)==this.cookie_prefix){if(!cookies[name.substr(pl)]){cookies[name.substr(pl)]=this.decodeValue(value);}}}
return cookies;},setCookie:function(name,value){document.cookie=this.cookie_prefix+name+"="+this.encodeValue(value)+
((this.expires==null)?"":("; expires="+this.cookie_expires.toGMTString()))+
((this.path==null)?"":("; path="+this.cookie_path))+
((this.domain==null)?"":("; domain="+this.cookie_domain))+
((this.secure==true)?"; secure":"");},clearCookie:function(name){document.cookie=this.cookie_prefix+name+"=null; expires=Thu, 01-Jan-70 00:00:01 GMT"+
((this.path==null)?"":("; path="+this.cookie_path))+
((this.domain==null)?"":("; domain="+this.cookie_domain))+
((this.secure==true)?"; secure":"");},readCookiebyKey:function(key,decodeVal){var cookies={};var c=document.cookie+";";var re=/\s?(.*?)=(.*?);/g;var matches;while((matches=re.exec(c))!=null){var name=matches[1];if(name==key){if(decodeVal){return this.decodeValue(matches[2]);}else{return matches[2];}}}
return null;},setSessionCookie:function(name,value){document.cookie=this.cookie_prefix+name+"="+this.encodeValue(value)+
((this.path==null)?"":("; path="+this.cookie_path))+
((this.domain==null)?"":("; domain="+this.cookie_domain))+
((this.secure==true)?"; secure":"");}});if(Ext&&Ext.History){window.Navigation=new SaaS.WebUI.Navigation();Ext.onReady(function(){window.Navigation.init();});} 

SaaS.WebUI.Navigation.PermaLinkDialog=function(config){SaaS.WebUI.Navigation.PermaLinkDialog.superclass.constructor.call(this,config);}
SaaS.WebUI.Navigation.PermaLinkDialog=Ext.extend(SaaS.WebUI.Navigation.PermaLinkDialog,Ext.Window,{initComponent:function(){this.layout='fit';this.height=200;this.title='Permanent link';this.width=300;this.shadow=false;this.resizable=false;this.modal=true;this.items=[{xtype:"textarea"}];this.buttons=[{text:'Close',handler:this.onCloseBtn.createDelegate(this)}];SaaS.WebUI.Navigation.PermaLinkDialog.superclass.initComponent.call(this);this.on("show",function(){this.items.items[0].focus(true,true);},this);},onCloseBtn:function(){this.close();},setLinkText:function(text){this.items.items[0].setValue(text);}}); 

Ext.ns("SaaS.WebUI.Command");SaaS.WebUI.Command.CommandHandler=function(config){};Ext.override(SaaS.WebUI.Command.CommandHandler,{doCommand:function(command){var sd=command.Scope.split(":");if(top.Application.WorkspaceSelector&&(sd[0].startsWith("TabBy")||sd[0]=="CurrentTab")){return top.Application.WorkspaceSelector.doCommand(command);}else{if(this["__"+sd[0]]){return this["__"+sd[0]](command);}}},__Application:function __Application(command){if(!command.Scope=="Application")return null;switch(command.CommandId){case"OpenWindow":return top.window.open(command.CommandData.Url||"about:blank",command.CommandData.Target||"_blank",command.CommandData.Options||"",command.CommandData.Replace||false);break;case"Reload":top.window.location.reload();break;case"Logout":top.Application.doLogout();break;}
return null;},__Workspace:function __Workspace(command){if(top.Application.WorkspaceSelector){return top.Application.WorkspaceSelector.doCommand(command);}
return null;},doUrlCommand:function(command){return false;},getCommandUrl:function(command){return top.Navigation.buildCommandUrl(command);}}); 

SaaS.WebUI.Command.OWCommandHandler=function(config){};Ext.override(SaaS.WebUI.Command.OWCommandHandler,{doCommand:function(command){var tid=command.CommandData.ObjectType;command.Scope="TabByObjectRef:"+tid+":ObjectWorkspace";return top.Application.doCommand(command);},doUrlCommand:function(command){var scmd={Scope:command.Scope,CommandId:command.CommandId};switch(command.CommandId){case"Search":var itms=command.CommandData.split("|");var crtr=[];itms.each(function(item){if(!item.length)return;var is=item.split(",");crtr.push({FieldName:is[0],Condition:is[1],ConditionType:is[2],FieldValue:is[3],FieldType:is[4],JoinRule:is[5],ObjectId:is[6]});},this);scmd.CommandData={ObjectType:command.ObjectType,SearchCriteria:crtr}
return this.doCommand(scmd);break;default:return this.doCommand(command);break;}},getCommandUrl:function(command){var dcmd={Scope:command.Scope,CommandId:command.CommandId,ObjectType:command.CommandData.ObjectType}
switch(command.CommandId){case"Search":var cmds="";command.CommandData.SearchCriteria.each(function(item){cmds+=[item.FieldName,item.Condition,item.ConditionType||0,item.FieldValue,item.FieldType||"string",item.JoinRule||"AND",item.ObjectId||""].join(",")+"|";},this);var url=UrlPrefix+"?";dcmd.CommandData=cmds;return url+Ext.urlEncode(dcmd);break;default:return top.Navigation.buildCommandUrl(cmd);break;}}}); 

SaaS.WebUI.Command.SSCommandHandler=function(config){};Ext.override(SaaS.WebUI.Command.SSCommandHandler,{doCommand:function(command){return top.Application.doCommand(command);},doUrlCommand:function(command){var scmd={Scope:"TabByTag:MyItems:MyItems",CommandId:command.CommandId};switch(command.CommandId){case"OpenMyItem":scmd.CommandData={ItemId:command.ItemId||null,ItemType:command.ItemType||null};break;case"NewIssue":return this.doCommand(scmd);break;case"SearchOffering":scmd.Scope="TabByTag:ServiceCatalog:ServiceCatalog";scmd.CommandData={SearchString:command.SearchString||null,CategoryId:command.CategoryId||null};break;case"NewOfferingRequest":scmd.Scope="TabByTag:ServiceCatalog:ServiceCatalog";scmd.CommandId="NewServiceRequest";scmd.CommandData={Id:command.OfferingId||null};break;case"SearchMyItem":scmd.CommandData={SearchString:command.SearchString||null,ItemType:command.ItemType||null};break;default:scmd=command;break;}
return this.doCommand(scmd);},getCommandUrl:function(command){var dcmd={Scope:"SelfService",CommandId:command.CommandId};switch(command.CommandId){case"OpenMyItem":dcmd.ItemId=command.ItemId;dcmd.ItemType=command.ItemType;break;case"NewIssue":break;case"SearchOffering":dcmd.SearchString=command.SearchString;dcmd.CategoryId=command.CategoryId;break;case"NewOfferingRequest":scmd.OfferingId=command.OfferingId;break;case"SearchMyItem":scmd.SearchString=command.ItemId;scmd.ItemType=command.ItemType|"All";break;default:return top.Navigation.buildCommandUrl(cmd);break;}}}); 
                                               
